Zacznij terazZacznij za darmo

Klasyfikacja wydźwięku recenzji

Masz już obliczone osadzenia – czas teraz wyliczyć odległości cosinusowe i wyodrębnić najbardziej podobną etykietę.

W tym celu zdefiniujesz funkcję find_closest(), która porównuje osadzenia jednego wektora z wieloma innymi i zwraca najmniejszą odległość wraz z jej indeksem. Następnie przejdziesz pętlą po recenzjach i użyjesz find_closest(), aby dla każdej z nich znaleźć najbliższą odległość i wyodrębnić sklasyfikowaną etykietę na podstawie indeksu.

Do dyspozycji masz obiekty class_embeddings i review_embeddings utworzone w poprzednim ćwiczeniu, a także listy reviews i sentiments.

To ćwiczenie jest częścią kursu

Wprowadzenie do osadzeń z OpenAI API

Zobacz kurs

Instrukcje do ćwiczenia

  • Zdefiniuj funkcję find_closest(), która zwraca odległość i indeks osadzenia najbardziej podobnego do query_vector.
  • Użyj find_closest(), aby znaleźć najmniejszą odległość między osadzeniami każdej recenzji a class_embeddings.
  • Skorzystaj z 'index' zmiennej closest, aby zindeksować sentiments i wyodrębnić wartość 'label'.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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}')
Edytuj i uruchom kod