Nach Ähnlichkeit sortieren
Jetzt, da du alle Features eingebettet hast, berechnest du als Nächstes die Ähnlichkeiten. In dieser Übung definierst du eine Funktion namens find_n_closest(), die die Kosinus-Distanzen zwischen einem Abfragevektor und einer Liste von Embeddings berechnet und die n kleinsten Distanzen samt ihrer Indizes zurückgibt.
In der nächsten Übung verwendest du diese Funktion, um deine semantische Produktsuche zu ermöglichen.
distance wurde aus scipy.spatial importiert.
Diese Übung ist Teil des Kurses
Einführung in Embeddings mit der OpenAI API
Anleitung zur Übung
- Berechne die Kosinus-Distanz zwischen dem
query_vectorundembedding. - Hänge ein Dictionary mit
distund seinemindexan die Listedistancesan. - Sortiere die Liste
distancesnach dem'distance'-Schlüssel der einzelnen Dictionaries. - 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 ____