Kom igångKom igång gratis

Sortera efter likhet

Nu när du har skapat inbäddningar (embeddings) för alla dina särdrag är nästa steg att beräkna likheterna. I den här övningen definierar du en funktion som heter find_n_closest(). Den beräknar cosinus-avstånden mellan en frågevektor och en lista med inbäddningar och returnerar de n minsta avstånden tillsammans med deras index.

I nästa övning använder du den här funktionen för att bygga din semantiska produktsökning.

distance har importerats från scipy.spatial.

Den här övningen är en del av kursen

Introduktion till inbäddningar med OpenAI API

Visa kurs

Övningsinstruktioner

  • Beräkna cosinus-avståndet mellan query_vector och embedding.
  • Lägg till en ordlista med dist och dess index i listan distances.
  • Sortera listan distances efter nyckeln 'distance' i varje ordlista.
  • Returnera de första n elementen i distances_sorted.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

def find_n_closest(query_vector, embeddings, n=3):
  distances = []
  for index, embedding in enumerate(embeddings):
    # Calculate the cosine distance between the query vector and embedding
    dist = ____
    # Append the distance and index to distances
    distances.append({"distance": ____, "index": ____})
  # Sort distances by the distance key
  distances_sorted = ____
  # Return the first n elements in distances_sorted
  return ____
Redigera och kör kod