Ordinare per somiglianza
Ora che hai creato gli embedding di tutte le tue caratteristiche, il passo successivo è calcolare le similarità. In questo esercizio definirai una funzione chiamata find_n_closest(), che calcola le distanze coseno tra un vettore di query e una lista di embedding e restituisce le n distanze più piccole e i relativi indici.
Nel prossimo esercizio userai questa funzione per abilitare la tua applicazione di ricerca semantica dei prodotti.
distance è stata importata da scipy.spatial.
Questo esercizio fa parte del corso
Introduzione agli Embeddings con l'API di OpenAI
Istruzioni dell'esercizio
- Calcola la distanza coseno tra
query_vectoredembedding. - Aggiungi alla lista
distancesun dizionario contenentediste il suoindex. - Ordina la lista
distancesper la chiave'distance'di ciascun dizionario. - Restituisci i primi
nelementi indistances_sorted.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
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 ____