Začněte nyníZačněte zdarma

Řazení podle podobnosti

Teď, když máš všechny příznaky převedené na embeddingy, je dalším krokem výpočet podobností. V tomto cvičení definuješ funkci find_n_closest(), která vypočítá kosinové vzdálenosti mezi dotazovým vektorem a seznamem embeddingů a vrátí n nejmenších vzdáleností spolu s jejich indexy.

V příštím cvičení tuto funkci využiješ k vytvoření aplikace pro sémantické vyhledávání produktů.

distance byl importován z scipy.spatial.

Toto cvičení je součástí kurzu

Introduction to Embeddings with the OpenAI API

Zobrazit kurz

Pokyny k cvičení

  • Vypočítej kosinovou vzdálenost mezi query_vector a embedding.
  • Přidej do seznamu distances slovník obsahující dist a jeho index.
  • Seřaď seznam distances podle klíče 'distance' každého slovníku.
  • Vrať prvních n prvků ze distances_sorted.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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 ____
Upravit a spustit kód