НачатьНачать бесплатно

Классификация тональности отзывов

Теперь, когда эмбеддинги вычислены, пора рассчитать косинусные расстояния и извлечь наиболее похожую метку.

Для этого вы определите функцию find_closest(), которая сравнивает эмбеддинги одного вектора с несколькими другими и возвращает наименьшее расстояние и его индекс. Затем вы пройдёте по всем отзывам и с помощью find_closest() найдёте ближайшее расстояние для каждого из них, извлекая классифицированную метку по индексу.

Объекты class_embeddings и review_embeddings, созданные в предыдущем упражнении, уже доступны вам для использования, как и reviews и sentiments.

Это упражнение является частью курса

Введение в эмбеддинги с OpenAI API

Посмотреть курс

Инструкции к упражнению

  • Определите функцию find_closest(), которая возвращает расстояние и индекс наиболее похожего эмбеддинга для query_vector.
  • Используйте find_closest(), чтобы найти ближайшее расстояние между эмбеддингами каждого отзыва и class_embeddings.
  • Используйте 'index' из closest, чтобы обратиться к sentiments и извлечь 'label'.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# 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}')
Редактировать и запускать код