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

Сортировка по схожести

Теперь, когда все признаки преобразованы в эмбеддинги (векторные представления), можно перейти к вычислению схожести. В этом упражнении вы определите функцию find_n_closest(), которая вычисляет косинусные расстояния между вектором запроса и списком эмбеддингов и возвращает n наименьших расстояний вместе с их индексами.

В следующем упражнении вы воспользуетесь этой функцией для создания приложения семантического поиска товаров.

distance уже импортирован из scipy.spatial.

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

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

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

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

  • Вычислите косинусное расстояние между query_vector и embedding.
  • Добавьте в список distances словарь, содержащий dist и его index.
  • Отсортируйте список distances по ключу 'distance' каждого словаря.
  • Верните первые n элементов из distances_sorted.

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

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

def find_n_closest(query_vector, embeddings, n=3):
  distances = []
  for index, embedding in enumerate(embeddings):
    # Calculate the cosine distance between the query vector and embedding
    dist = ____
    # Append the distance and index to distances
    distances.append({"distance": ____, "index": ____})
  # Sort distances by the distance key
  distances_sorted = ____
  # Return the first n elements in distances_sorted
  return ____
Редактировать и запускать код