Phân loại cảm xúc bài đánh giá
Giờ bạn đã tính xong các embedding, hãy tính khoảng cách cosine và trích xuất nhãn giống nhất.
Bạn sẽ làm điều này bằng cách định nghĩa hàm find_closest(), dùng để so sánh embedding giữa một vector và nhiều vector khác, và trả về khoảng cách gần nhất cùng chỉ số của nó. Sau đó, bạn sẽ lặp qua các bài đánh giá và dùng find_closest() để tìm khoảng cách gần nhất cho mỗi bài, rồi trích xuất nhãn đã phân loại bằng cách dùng chỉ số.
Các đối tượng class_embeddings và review_embeddings bạn đã tạo ở bài trước có sẵn để sử dụng, cùng với reviews và sentiments.
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
- Định nghĩa hàm
find_closest()trả về khoảng cách và chỉ số của embedding giốngquery_vectornhất. - Dùng
find_closest()để tìm khoảng cách gần nhất giữa embedding của mỗi bài đánh giá vàclass_embeddings. - Dùng
'index'củaclosestđể lấy phần củasentimentsvà trích xuất'label'.
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.
# 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}')