Classifier le sentiment d'un avis
Maintenant que vous avez calculé les embeddings, il est temps de calculer les distances cosinus et d'extraire l'étiquette la plus similaire.
Vous allez définir une fonction appelée find_closest() qui servira à comparer l'embedding d'un vecteur à plusieurs autres et à retourner la distance la plus proche et son index. Vous parcourrez ensuite les avis et utiliserez find_closest() pour trouver la distance la plus faible pour chaque avis, puis extrairez l'étiquette classifiée à l'aide de l'index.
Les objets class_embeddings et review_embeddings que vous avez créés au dernier exercice sont à votre disposition, ainsi que reviews et sentiments.
Cette activité fait partie du cours
Introduction aux embeddings avec l'API d'OpenAI
Instructions de l’exercice
- Définissez une fonction appelée
find_closest()qui retourne la distance et l'index de l'embedding le plus similaire auquery_vector. - Utilisez
find_closest()pour trouver la distance la plus faible entre l'embedding de chaque avis etclass_embeddings. - Utilisez le
'index'declosestpour sous-ensemblonnersentimentset extraire le'label'.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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}')