始める無料で始める

レビューの感情分類

埋め込みの計算が完了したので、次はコサイン距離を求めて最も近いラベルを抽出しましょう。

ここでは、find_closest() という関数を定義します。この関数は、1つのベクトルと複数のベクトルの埋め込みを比較し、最も小さい距離とそのインデックスを返します。その後、各レビューに対してループを適用し、find_closest() を使って最も小さい距離を見つけ、そのインデックスから分類ラベルを取得します。

前の演習で作成した class_embeddingsreview_embeddings、および reviewssentiments がすでに利用可能な状態になっています。

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

OpenAI API で学ぶ埋め込み入門

コースを見る

演習の手順

  • query_vector に最も近い埋め込みの距離とインデックスを返す find_closest() 関数を定義してください。
  • find_closest() を使って、各レビューの埋め込みと class_embeddings の間で最も小さい距離を求めてください。
  • 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}')
コードを編集して実行