Classifier le sentiment d’un avis
Maintenant que vous avez calculé les embeddings, il est temps de calculer les distances cosinus et d’extraire le label le plus similaire.
Vous allez définir une fonction appelée find_closest() qui permet de comparer les embeddings entre un vecteur et plusieurs autres, puis de renvoyer la distance la plus proche et son index. Vous parcourrez ensuite les avis et utiliserez find_closest() pour trouver la distance la plus proche pour chaque avis, en extrayant le label classé à l’aide de l’index.
Les objets class_embeddings et review_embeddings que vous avez créés dans l’exercice précédent sont à votre disposition, ainsi que reviews et sentiments.
Cet exercice fait partie du cours
Introduction aux embeddings avec l’API OpenAI
Instructions
- Définissez une fonction appelée
find_closest()qui renvoie la distance et l’index de l’embedding le plus similaire auquery_vector. - Utilisez
find_closest()pour trouver la distance la plus proche entre les embeddings de chaque avis et lesclass_embeddings. - Utilisez le
'index'declosestpour sous‑sélectionnersentimentset extraire le'label'.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Define a function to return the minimum distance and its index
def find_closest(query_vector, embeddings):
distances = []
for index, embedding in enumerate(embeddings):
dist = distance.cosine(____, ____)
distances.append({"distance": dist, "index": index})
return ____(distances, key=lambda x: x["distance"])
for index, review in enumerate(reviews):
# Find the closest distance and its index using find_closest()
closest = ____(review_embeddings[____], ____)
# Subset sentiments using the index from closest
label = ____
print(f'"{review}" was classified as {label}')