Sortare după similaritate
Acum că ai creat încorporări (embeddings) pentru toate caracteristicile tale, pasul următor este calcularea similarităților. În acest exercițiu, vei defini o funcție numită find_n_closest(), care calculează distanțele cosinus dintre un vector de interogare și o listă de embeddings, returnând cele n distanțe minime împreună cu indecșii lor.
În exercițiul următor, vei folosi această funcție pentru a-ți construi aplicația de căutare semantică a produselor.
distance a fost importat din scipy.spatial.
Acest exercițiu face parte din cursul
Introducere în Embeddings cu API-ul OpenAI
Instrucțiuni pentru exercițiu
- Calculează distanța cosinus dintre
query_vectorșiembedding. - Adaugă un dicționar care conține
distșiindex-ul său la listadistances. - Sortează lista
distancesdupă cheia'distance'din fiecare dicționar. - Returnează primele
nelemente dindistances_sorted.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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 ____