开始使用免费开始使用

为更详细的描述生成嵌入向量

最后一个预测标签似乎与评论不太匹配;很可能是因为只对类别标签做嵌入,信息量不足。这一次,将改为对每个类别的描述进行嵌入,让模型更好地"理解"您在对餐厅评论做分类。

您可以使用以下对象:

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 的 Embeddings 入门

查看课程

练习说明

  • 提取一个包含情感描述的列表,并为其生成嵌入向量。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# 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}')
编辑并运行代码