始める無料で始める

レビューの感情を分類する

すでに埋め込みを計算したので、次はコサイン距離を求めて、最も近いラベルを取り出します。

これを行うために、1つのベクトルと複数のベクトルの埋め込みを比較し、最小距離とそのインデックスを返すfind_closest()という関数を定義します。続いて、レビューをループして各レビューについてfind_closest()で最小距離を見つけ、インデックスを使って分類されたラベルを抽出します。

前の演習で作成したclass_embeddingsreview_embeddingsのオブジェクトに加えて、reviewssentimentsも利用できます。

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

OpenAI API ではじめる Embeddings 入門

コースを見る

演習の手順

  • find_closest()という関数を定義し、query_vectorに最も類似する埋め込みの距離とインデックスを返してください。
  • 各レビューの埋め込みとclass_embeddingsとの最小距離をfind_closest()で見つけてください。
  • closest'index'を使ってsentimentsを部分抽出し、'label'を取り出してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Define a function to return the minimum distance and its index
def find_closest(query_vector, embeddings):
  distances = []
  for index, embedding in enumerate(embeddings):
    dist = distance.cosine(____, ____)
    distances.append({"distance": dist, "index": index})
  return ____(distances, key=lambda x: x["distance"])

for index, review in enumerate(reviews):
  # Find the closest distance and its index using find_closest()
  closest = ____(review_embeddings[____], ____)
  # Subset sentiments using the index from closest
  label = ____
  print(f'"{review}" was classified as {label}')
コードを編集して実行