Trier par similarité
Maintenant que vous avez créé les représentations (embeddings) de toutes vos caractéristiques, l'étape suivante consiste à calculer les similarités. Dans cet exercice, vous allez définir une fonction appelée find_n_closest() qui calcule les distances cosinus entre un vecteur de requête et une liste d'embeddings, puis retourne les n plus petites distances ainsi que leurs index.
Dans le prochain exercice, vous utiliserez cette fonction pour activer votre application de recherche sémantique de produits.
distance a été importé de scipy.spatial.
Cette activité fait partie du cours
Introduction aux embeddings avec l'API d'OpenAI
Instructions de l’exercice
- Calculez la distance cosinus entre
query_vectoretembedding. - Ajoutez au tableau
distancesun dictionnaire contenantdistet sonindex. - Triez la liste
distancesselon la clé'distance'de chaque dictionnaire. - Retournez les
npremiers éléments dedistances_sorted.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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 ____