ÎncepețiÎncepe gratuit

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

Vezi cursul

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 cu query_vector.
  • Folosește find_closest() pentru a găsi cea mai mică distanță între încorporările fiecărei recenzii și class_embeddings.
  • Folosește 'index'-ul din closest pentru a indexa sentiments ș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}')
Editează și rulează codul