Ř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
Pokyny k cvičení
- Vypočítej kosinovou vzdálenost mezi
query_vectoraembedding. - Přidej do seznamu
distancesslovník obsahujícídista jehoindex. - Seřaď seznam
distancespodle klíče'distance'každého slovníku. - Vrať prvních
nprvků zedistances_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 ____