Embedding mô tả chi tiết hơn
Một trong những nhãn dự đoán cuối cùng có vẻ không đại diện cho bài đánh giá; nhiều khả năng là do thiếu thông tin khi bạn chỉ embed các nhãn lớp. Lần này, bạn sẽ embed phần mô tả của từng lớp để mô hình "hiểu" rõ hơn rằng bạn đang phân loại các đánh giá nhà hàng.
Các đối tượng sau có sẵn để bạn sử dụng:
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!"]
Bài tập này là một phần của khóa học
Nhập môn Embeddings với OpenAI API
Hướng dẫn bài tập
- Trích xuất một danh sách chứa các phần mô tả cảm xúc và tiến hành embed chúng.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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}')