CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Calculez la distance cosinus entre query_vector et embedding.
  • Ajoutez au tableau distances un dictionnaire contenant dist et son index.
  • Triez la liste distances selon la clé 'distance' de chaque dictionnaire.
  • Retournez les n premiers éléments de distances_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 ____
Modifier et exécuter le code