開始使用免費開始

為更詳細的描述建立嵌入向量

最後有一個預測標籤看起來和評論不太相符;這很可能是因為只對類別標籤建立嵌入向量,資訊太少所致。這次改為對每個類別的描述建立嵌入向量,讓模型更能「理解」你正在分類的是餐廳評論。

以下物件可供你使用:

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!"]

本練習屬於課程

Introduction to Embeddings with the OpenAI API

檢視課程

練習說明

  • 先擷取一個只包含情緒描述的列表,然後為它們建立嵌入向量(embedding)。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# 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}')
編輯並執行程式碼