始める無料で始める

類似度で並べ替える

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

次の演習では、この関数を使って意味検索対応のプロダクト検索アプリケーションを動かします。

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

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

OpenAI API ではじめる Embeddings 入門

コースを見る

演習の手順

  • query_vectorembedding のコサイン距離を計算します。
  • dist とその index を含む辞書を distances リストに追加します。
  • 各辞書の 'distance' キーで distances リストをソートします。
  • 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 ____
コードを編集して実行