Sorteren op overeenkomst
Nu je al je kenmerken hebt ge-embed, is de volgende stap het berekenen van de overeenkomsten. In deze oefening definieer je een functie find_n_closest(), die de cosinusafstanden berekent tussen een queryvector en een lijst met embeddings en de n kleinste afstanden en hun indexen retourneert.
In de volgende oefening gebruik je deze functie om je semantische productzoekapplicatie mogelijk te maken.
distance is geïmporteerd uit scipy.spatial.
Deze oefening maakt deel uit van de cursus
Introductie tot Embeddings met de OpenAI API
Oefeninstructies
- Bereken de cosinusafstand tussen de
query_vectorenembedding. - Voeg een dictionary met
disten de bijbehorendeindextoe aan de lijstdistances. - Sorteer de lijst
distancesop de sleutel'distance'van elke dictionary. - Retourneer de eerste
nelementen indistances_sorted.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
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 ____