Zacznij terazZacznij za darmo

Sortowanie według podobieństwa

Po osadzeniu wszystkich cech kolejnym krokiem jest obliczenie podobieństw. W tym ćwiczeniu zdefiniujesz funkcję find_n_closest(), która oblicza odległości cosinusowe między wektorem zapytania a listą osadzeń i zwraca n najmniejszych odległości wraz z ich indeksami.

W następnym ćwiczeniu użyjesz tej funkcji, aby zbudować aplikację do semantycznego wyszukiwania produktów.

Moduł distance został zaimportowany z scipy.spatial.

To ćwiczenie jest częścią kursu

Wprowadzenie do osadzeń z OpenAI API

Zobacz kurs

Instrukcje do ćwiczenia

  • Oblicz odległość cosinusową między query_vector a embedding.
  • Dołącz do listy distances słownik zawierający dist oraz jego index.
  • Posortuj listę distances według klucza 'distance' w każdym słowniku.
  • Zwróć pierwsze n elementów z distances_sorted.

Interaktywne ćwiczenie praktyczne

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

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 ____
Edytuj i uruchom kod