vunb / vntk

Vietnamese NLP Toolkit for Node
MIT License
214 stars 63 forks source link

Làm thế nào để lấy được confidence của Bayes Classifier? #44

Closed khachuong closed 5 years ago

khachuong commented 5 years ago

Cho em hỏi chút ạ,

Em đang dùng Bayes Classifier nhưng không biết cách lấy ra confidence, ví dụ:

classifier.classify('bn bạn muốn tham gia sự kiện này?')

Em xin cảm ơn ạ!

vunb commented 5 years ago

@khachuong em có thể làm theo như này:

classifier.getClassifications(classifier.textToFeatures('bn bạn muốn tham gia sự kiện này?'))

Output có dạng: Array<{label, value}> thì value sẽ là confidence của class tương ứng.

khachuong commented 5 years ago

@vunb dạ em đã lấy được rồi anh ạ, em cảm ơn anh rất nhiều 😄

khachuong commented 5 years ago

À anh @vunb ơi, còn 1 vấn đề nữa là, ví dụ em có 2 document cần train như sau:

classifier.addDocument('em có được tham gia không ạ?', 'asktojoin')classifier.addDocument('em là sinh viên có được giảm giá không?', 'askpromotion')

Khi em lấy confidence của câu này ra: classifier.getClassifications(this.textToFeatures('e'))

Thí nó ra kết quả như vậy:

[ { label: 'asktojoin', value: 0.6666666666666666 },
  { label: 'askpromotion', value: 0.6666666666666666 } ]

Trong trường hợp này theo em nghĩ em sẽ không lấy label nào cả vì đều chưa rõ họ đang muốn hỏi gì, anh có hướng để xử lý trường hợp này không ạ? Em cảm ơn anh!

vunb commented 5 years ago

Các tình huống thì em có thể hướng tới, như:

  1. Bổ sung thêm mẫu câu vào mỗi class, thường lấy từ 10 - 50 mẫu. để tăng độ chính xác
  2. Cần thêm điều kiện tiếp theo để quyết định, cái này hướng tới xây dựng Chatbot

Mẫu test em lấy khách quan quá! Trường hợp thế này thì no-response thì hợp lý 😄

khachuong commented 5 years ago

Dạ, em chỉ ví dụ để anh hình dung bài toán thôi ạ, em có train mỗi cái tầm 15 mẫu:

vunb commented 5 years ago

Em dùng thêm bộ phân lớp dùng Fasttext xem. Anh thấy nó có kết quả khả quan hơn và dễ dàng quyết định hơn.

const classifier = new vntk.FastTextClassifier(model);

Về tài liệu em đọc thêm ở đây nhé https://github.com/vunb/node-fasttext

khachuong commented 5 years ago

Dạ, để em thử xem sao, em cảm ơn anh nhiều nhé :D

khachuong commented 5 years ago

@vunb em đã giải quyết được rồi anh ạ, em dùng Fasttext cũng như bổ sung thêm mẫu để train nên khả năng chính xác cũng khá cao anh ạ, em close issue này anh nhé. Chúc anh sức khoẻ ạ :D

vunb commented 5 years ago

Ồ tuyệt vời. Cảm ơn em nhé! Chúc dự án của em thành công 💐