Benzerliğe göre sıralama
Artık tüm özelliklerini gömme vektörlerine dönüştürdüğüne göre, sıradaki adım benzerlikleri hesaplamak. Bu egzersizde, bir sorgu vektörü ile bir gömme listesi arasındaki kosinüs uzaklıklarını hesaplayan ve n en küçük uzaklığı ve bunların indekslerini döndüren find_n_closest() adlı bir fonksiyon tanımlayacaksın.
Sonraki egzersizde, bu fonksiyonu anlamsal ürün arama uygulamanı etkinleştirmek için kullanacaksın.
distance, scipy.spatial içinden içe aktarıldı.
Bu egzersiz, kursun bir parçasıdır
OpenAI API ile Embeddings’e Giriş
Egzersiz talimatları
query_vectorileembeddingarasındaki kosinüs uzaklığını hesapla.distve onunindexdeğerini içeren bir sözlüğüdistanceslistesine ekle.distanceslistesini, her sözlükteki'distance'anahtarına göre sırala.distances_sortediçindeki ilknöğeyi döndür.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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 ____