始める無料で始める

より詳細な説明の埋め込み

先ほど予測されたラベルの中に、レビューの内容をうまく表せていないものがありました。これは、クラスラベルだけを埋め込む場合、取得できる情報が限られているためです。今回は、クラスラベルの代わりに各クラスの説明文を埋め込むことで、レストランのレビューを分類していることをモデルがより正確に「理解」できるようにします。

以下のオブジェクトを使用できます。

sentiments = [{'label': 'Positive',
               'description': 'A positive restaurant review'},
              {'label': 'Neutral',
               'description':'A neutral restaurant review'},
              {'label': 'Negative',
               'description': 'A negative restaurant review'}]

reviews = ["The food was delicious!",
           "The service was a bit slow but the food was good",
           "The food was cold, really disappointing!"]

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

OpenAI API で学ぶ埋め込み入門

コースを見る

演習の手順

  • 感情の説明文を含むリストを取り出し、埋め込みを作成しましょう。

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

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

# Extract and embed the descriptions from sentiments
class_descriptions = ____
class_embeddings = ____
review_embeddings = create_embeddings(reviews)

def find_closest(query_vector, embeddings):
  distances = []
  for index, embedding in enumerate(embeddings):
    dist = distance.cosine(query_vector, embedding)
    distances.append({"distance": dist, "index": index})
  return min(distances, key=lambda x: x["distance"])

for index, review in enumerate(reviews):
  closest = find_closest(review_embeddings[index], class_embeddings)
  label = sentiments[closest['index']]['label']
  print(f'"{review}" was classified as {label}')
コードを編集して実行