類似度による並べ替え
すべての製品情報を埋め込みに変換したら、次は類似度を計算するステップです。この演習では、find_n_closest() という関数を定義します。この関数は、クエリベクトルと埋め込みのリスト間のコサイン距離を計算し、距離が最も小さい n 件とそのインデックスを返します。
次の演習では、この関数を使ってセマンティック商品検索アプリケーションを完成させましょう。
distance は scipy.spatial からインポート済みです。
この演習はコースの一部です
OpenAI API で学ぶ埋め込み入門
演習の手順
query_vectorとembeddingの間のコサイン距離を計算してください。distとそのindexを含む辞書をdistancesリストに追加してください。distancesリストを、各辞書の'distance'キーを基準に並べ替えてください。distances_sortedの最初のn件の要素を返してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
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 ____