Clasificarea sentimentului dintr-o recenzie
Acum că ai calculat încorporările (embeddings), este momentul să calculezi distanțele cosinus și să extragi eticheta cu cea mai mare similaritate.
Vei face asta definind o funcție numită find_closest(), care poate fi folosită pentru a compara încorporările unui vector cu mai mulți alții și pentru a returna distanța minimă și indexul acesteia. Vei parcurge apoi recenziile și vei folosi find_closest() pentru a găsi distanța minimă pentru fiecare recenzie, extragând eticheta clasificată pe baza indexului.
Obiectele class_embeddings și review_embeddings pe care le-ai creat în exercițiul anterior sunt disponibile, alături de reviews și sentiments.
Acest exercițiu face parte din cursul
Introducere în Embeddings cu API-ul OpenAI
Instrucțiuni pentru exercițiu
- Definește o funcție numită
find_closest()care returnează distanța și indexul încorporării (embedding) cel mai similare cuquery_vector. - Folosește
find_closest()pentru a găsi cea mai mică distanță între încorporările fiecărei recenzii șiclass_embeddings. - Folosește
'index'-ul dinclosestpentru a indexasentimentsși a extrage'label'.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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}')