Sortieren nach Ähnlichkeit
Nachdem du nun alle deine Merkmale eingebettet hast, ist der nächste Schritt die Berechnung der Ähnlichkeiten. In dieser Übung definierst du eine Funktion namens find_n_closest()
, die die Kosinusabstände zwischen einem Abfragevektor und einer Liste von Einbettungen berechnet und die n
kleinsten Abstände und ihre Indizes zurückgibt.
In der nächsten Übung wirst du diese Funktion nutzen, um deine semantische Produktsuche zu aktivieren.
distance
wurde von scipy.spatial
importiert.
Diese Übung ist Teil des Kurses
Einführung in Embeddings mit der OpenAI API
Anleitung zur Übung
- Berechne den Kosinusabstand zwischen
query_vector
undembedding
. - Füge ein Wörterbuch mit
dist
und dessenindex
an die Listedistances
an. - Sortiere die Liste
distances
nach dem'distance'
Schlüssel der einzelnen Wörterbücher. - Gib die ersten
n
Elemente indistances_sorted
zurück.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
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 ____