始める無料で始める

類似度による並べ替え

すべての製品情報を埋め込みに変換したら、次は類似度を計算するステップです。この演習では、find_n_closest() という関数を定義します。この関数は、クエリベクトルと埋め込みのリスト間のコサイン距離を計算し、距離が最も小さい n 件とそのインデックスを返します。

次の演習では、この関数を使ってセマンティック商品検索アプリケーションを完成させましょう。

distancescipy.spatial からインポート済みです。

この演習はコースの一部です

OpenAI API で学ぶ埋め込み入門

コースを見る

演習の手順

  • query_vectorembedding の間のコサイン距離を計算してください。
  • 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 ____
コードを編集して実行