Classifier le sentiment des critiques
À présent que vous avez calculé les enchâssements, il est temps de calculer les distances cosinusoïdales et d'extraire l'étiquette la plus similaire.
Pour ce faire, vous définirez une fonction appelée find_closest()
, qui peut être utilisée pour comparer les intégrations entre un vecteur et plusieurs autres, et renvoyer la distance la plus proche et son indice. Vous passerez ensuite en revue les avis et utiliserez find_closest()
pour trouver la distance la plus proche pour chaque avis, en extrayant l'étiquette classée à l'aide de l'index.
Les objets class_embeddings
et review_embeddings
que vous avez créés dans le dernier exercice sont à votre disposition, ainsi que les objets reviews
et sentiments
.
Cet exercice fait partie du cours
Introduction à l'intégration avec l'API OpenAI
Instructions
- Définissez une fonction appelée
find_closest()
qui renvoie la distance et l'indice de l'intégration la plus similaire àquery_vector
. - Utilisez
find_closest()
pour trouver la distance la plus proche entre les encastrements de chaque revue et le siteclass_embeddings
. - Utilisez le site
'index'
declosest
pour sous-ensemblersentiments
et extraire le site'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}')