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_vectorundembedding. - Füge ein Wörterbuch mit
distund dessenindexan die Listedistancesan. - Sortiere die Liste
distancesnach dem'distance'Schlüssel der einzelnen Wörterbücher. - Gib die ersten
nElemente indistances_sortedzurück.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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 ____