Cài đặt chương trình

Một phần của tài liệu (LUẬN văn THẠC sĩ) xây dựng ứng dụng chatbot tư vấn khách hàng sử dụng các kỹ thuật học sâu (Trang 57)

Chương trình Chatb ot thử nghi m trên máy Window 10 v i các thông s ệ ớ ố ứng

dụng và môi trường như sau:

- H ệ điều hành Windows 10, Intel i7-6700HQ, Ram 16GB

- Python 3.6

- Rasa version 2.1.3 - Rasa X version 0.34.0

Chatbot tiếp c n v i c 2 cách thao tác v i các nút b m (Menu/button based) ậ ớ ả ớ ấ và cho phép người dùng nh p n i dung yêu c u, v i vi c cung c p giao di n nút ậ ộ ầ ớ ệ ấ ệ b m s ấ ẽ giúp người dùng l a chự ọn chính xác và nhanh hơn. Thử nghiệm đượ thực c hiện trên b d ộ ữ liệu gồm 36 intent với 1024 câu mẫu và 4 entity. Chatbot xây dựng các kịch ả để b n có th ể giải quyết được nh ng bài toán c ữ ụ thể ủ c a doanh nghiệp cũng như giải quyết các trường hợp gián đoạn của người dùng, dưới đây là các ví d cụ ủa thử nghiệm.

K ch b n h i giá ị ả ỏ

H i giá là câu hỏ ỏi thường g p cặ ủa người dùng các trang web bán hàng, ở Chatbot Nhất Nam có kh ả năng chào hỏi cũng như trích xuất th c th liên quan ự ể đến s n ph m, gi s n u trong câu h i cả ẩ ả ử ế ỏ ủa người dùng không bao g m entity cồ ủa s n ph m thì Chatbot s ả ẩ ẽ đưa ra các lựa chọn v s n phề ả ẩm, người dùng có th bể ấm nút để ả ờ tr l i ho c nh p tin nh n. ặ ậ ắ

Hình 3.13. Người dùng có th bể ấm nút để trả ờ l i (hình bên trái) hoặc nhập tin nh n (hình bên phải) ắ

K ch b n form nh p liị ả ậ ệu

Sau khi cung c p thông tin v giá s n phấ ề ả ẩm đến khách hàng, Chatbot sẽ thực hiện yêu cầu người dùng nh p form bao g m h tên và s đi n tho i đ nhân viên ậ ồ ọ ố ệ ạ ể h ỗ trợ liên h ệ trực tiếp tư vấn. Form được s d ng nhi u trong Chatbot ử ụ ề như hỏi người dùng v Ultraview n u gề ế ặp các trường h p c n truy c p tr c ti p máy khách ợ ầ ậ ự ế hàng ho c form nh p thông tin doanh nghiặ ậ ệp để tra cứu hóa đơn hoặc th i h n bờ ạ ảo trì, b o hành. ả

D ữ liệu người dùng nh p s ậ ẽ được trích xuất các entity để ưu vào các slot, l các slot s ẽ được action server x lý và gử ửi đến h ỗ trợ viên thông qua mail, socket hoặc Google Drive.

Hình 3. 14 Trường h p nhợ ập form liên h ệ

Trường h p form nh p li u b ợ ậ ệ ị gián đoạn do người dùng h i câu h i khác thì ỏ ỏ Chatbot s v n tr lẽ ẫ ả ời người dùng sau đó tiế ụp t c yêu cầu người dùng hoàn thành form. Hoặc nếu người dùng không muốn điền form liên h bệ ằng ý định t ừ chối thì Chatbot s không yêu cẽ ầu người dùng nh p nậ ữa.

Hình 3.15. Trường hợp form b ị gián đoạn (hình bên trái) Trường hợp t ừ chối nh p form (hình bên ph ậ ải)

K ch b n không hi u câu hị ả ể ỏi của người dùng

Trong th c t Chatbot s g p tình hu ng không th ự ế ẽ ặ ố ể giải quyết được nh ng ữ câu h i m p m ỏ ậ ờ hoặc câu h i khóỏ , để ả gi i quy t bài toán này ta s dế ẽ ựa vào ngưỡng d ự đoán ụ thể ở đây là dướ, c i 0.6, nguyên nhân của ngưỡng th p có th ấ ể do ý định của người dùng không rõ ràng ho c câu hặ ỏi đó chưa có trong tập d u huữ liệ ấn luyện, Chatbot s lẽ trả ời lại người dùng như sau.

Hình 3.16. Trường hợp Chatbot không hiểu ý người dùng

3.5 Thử nghi m và ệ đánh giá chương trình

Thử nghiệm được ti n hành trên chính t p d ế ậ ữ liệu training bao gồm 36 intent v i 1024 câu m u và 4 entity, viớ ẫ ệc đánh giá chất lượng Chatbot dựa trên độ chính xác c a ủ câu trả ờ l i khi hỏi các câu đơn lẻ trong t p d uậ ữ liệ . Để thực hi n quá trình ệ kiểm th tôi chia ng u nhiên d li u hu n luyử ẫ ữ ệ ấ ện ban đầu thành 768 câu mẫu dùng để hu n luy n và ấ ệ 256 câu mẫ dùng để ểu ki m th và 4 entity, hu n luy n d a theo ử ấ ệ ự c u hình ấ được trình bày trong 3.3.4 C u hình các thành ph nấ ầ . ếK t qu ả được đánh giá d a vào 3 thông s lự ố ần lượt là Precision, Recall và F1-score.

- Precision: là t l s ỉ ệ ố câu đúng (TP) trong số những câu được phân lo i là ạ đúng (TP + FP). ớ V i TP là true positive là nh ng câu d ữ ự đoán là đúng và kết qu ả là đúng, FP là false positive là những câu d ự đoán là sai nhưng kết qu ả là đúng. Precision càng cao thì chính xác các câu d độ ự đoán đúng càng cao.

- Recall: là t l s ỉ ệ ố câu đúng (TP) trong tổng s ố những câu th c s ự ự là đúng (TP + FN). V i FN là false negative là nh ng câu d ớ ữ ự đoán sai nhưng kết qu ả là đúng. Recall càng cao thì t lệ ỏỉ b sót các câu th c s ự ự đúng càng thấp.

- F1-score: là điểm trung bình điều hòa (harmonic mean) c a Precision và ủ Recall. Điểm F1-score càng cao thì mô hình d ự đoán càng chính xác và tin cậy.

Dưới đây là bảng k t qu ế ả thử nghi m cho intent và entity: ệ B ng 3.1. Thông s ả ố đo intent

Ý định (Intents) S câu test ố Thông s ố đo

Precision Recall F1-score

chao_hoi 6 1.00 0.83 0.91 bao_gia 7 1.00 1.00 1.00 loi_font_chu 7 1.00 0.86 0.92 bao_cao_ton_kho 8 0.90 1.00 0.95 nhap_tu_dien 5 0.80 0.80 0.80 tao_lai_so_phieu 8 1.00 1.00 1.00 cai_dat_phan_mem 14 0.82 1.00 0.90 doi_mat_khau 7 1.00 0.86 0.92 tao_du_lieu_moi 17 0.93 0.82 0.87 hoa_don_dien_tu 8 1.00 1.00 1.00 in_nhieu_phieu 7 0.88 1.00 0.93 copy_du_lieu 8 0.89 1.00 0.93 … … … … … Trọng s trung bình ố 256 0.92 0.91 0.91

B ng 3.2. Thông s ả ố đo entity

Thực thể (Entities) S câu ố

test

Thông s ố đo

Precision Recall F1-

score

tu dien tai khoan 23 0.85 1.00 0.92

so_dien_thoai 4 1.00 1.00 1.00

san_pham 4 1.00 1.00 1.00

ten_khach_hang 13 1.00 0.62 0.76

Hình 3. . Bi19 ểu đồ ma tr n nh m l n (Confusion matrix) gi a các ậ ầ ẫ ữ nhãn d ự đoán và nhãn đúng trong tác vụ phân lo i ý đ nh ạ ị

N hã n đú ng Nhãn d ự đoán

Hình 3. . Bi20 ểu đồ ma tr n nh m l n (Confusion matrix) gi a các ậ ầ ẫ ữ nhãn d ự đoán và nhãn đúng trong tác vụ trích xu t th c th ấ ự ể

K t qu ế ả chỉ ra rằng Chatbot d ự đoán chính xác khoảng 90%. Để lưa chọn được c u hình t t nh t và ấ ố ấ ổn định nhất tôi đã so sánh các biến th c u hình khác ể ấ nhau, v i c u hình u ti là c u hình mớ ấ đầ ên ấ ặc định được cung c p b i Rasa t tên ấ ở đặ là default-config, c u hình thấ ứ hai s d ng mô hình DIET v i thành phử ụ ớ ần tokenizer được tùy bi n s d ng ế ử ụ thư viện Underthesea [25] c a tác gi ủ ả Vũ Anh, và c u hình ấ thứ 3 cũng chính là c u hình ấ được s d ng cho ng d ng dùng ử ụ ứ ụ pretrained-model spaCy h ỗ trợ Tiếng Vi t [15] c a tác gi ệ ủ ả Trần Việt Trung đã được hu n luy n d a trên 18GB các bài báo Ti ng Viấ ệ ự ế ệt và được đặt tên là spaCy- config. K t qu ế ả thu được như sau:

Hình 3.21. Thang đo so sánh điểm intent c a 3 c u hình ủ ấ B ng 3.3ả . Kết qu ả so sánh điểm intent của 3 c u hình ấ

C u hình ấ Precision Recall F1-score

spaCy-config 0.9191 0.9102 0.9086

custom-tokenizer 0.8945 0.8867 0.8843

default-config 0.8657 0.8555 0.8520

Hình 3.22. Thang đo so sánh điểm entity c a 3 c u hình ủ ấ

B ng 3.4ả . Kết qu ả so sánh điểm entity của 3 c u hình ấ

C u hình ấ Precision Recall F1-score

spaCy-config 0.9226 0.8864 0.8878

custom-

tokenizer 0.8328 0.8333 0.8208

default-config 0.8028 0.8103 0.8028

Ở ấ c u hình mặc định c a Rasa default-config ủ đạt điểm th p nh t c nhi m ấ ấ ở ả ệ v phân loụ ại ý định và trích ch n th c th , lý do chính là c u hình này phù h p vọ ự ể ấ ợ ới m i ngôn ng ọ ữ chữ Latinh nhưng không thể chính xác m t ngôn ng c ở ộ ữ ụ thể ví d ụ Tiếng Vi t. ệ C u hình stom-config ấ cu thể ệ hi n k t qu vư t tr i hế ả ợ ộ ơn default-config ở ả c 2 tác vụ, điều đó chứng minh đượ ằc r ng l a ch n tokenizer phù h p v i ngôn ự ọ ợ ớ ngữ ẽ tăng đáng kể s kh ả năng dự đoán của Chatbot. c u hình spaCy-config ta Ở ấ thu được k t qu t t nh t, v i vi c s d ng ế ả ố ấ ớ ệ ử ụ tính năng tokenizer và pretrain-model spaCy s d ng cho Ti ng Viử ụ ế ệt giúp Chatbot có đủ thông tin ng c nh c a t vữ ả ủ ừ ựng dù chưa từng huấn luy n ệ trước đó. Với k t qu t t nhế ả ố ất, tôi đã chọn c u hình spaCy-ấ config để xây d ng Chatbot Nh t Nam. ự ấ

T quá trình tìm hi u nghi p v , xây d ng và các k t qu t ừ ể ệ ụ ự ế ả ừ thực nghiệm thì tôi có những đánh giá sau:

D ữ liệu huấn luyện và các k ch b n xây d ng là y u t vô cùng quan tr ng ị ả ự ế ố ọ trong xây d ng m Chatbot, d u và k ch bự ột ữ liệ ị ản được cung c p càng nhi u và t ấ ề ỉ m thì Chatbot s càng linh ho t và thông minh. ỉ ẽ ạ

Việc định nghĩa và xây dựng các ý định, th c th ự ể cũng đóng vai trò rất quan trọng. N u d ệu huấế ữ li n luy n nhiệ ều nhưng được phân lo i m t cách m p m , ạ ộ ậ ờ không có hoạch định rõ ràng, ví d các câu m u cùng mụ ẫ ột ý định nhưng lại đặt vào 2 intent khác nhau s r t khó cho Chatbot ẽ ấ biết được ý định của người hỏi.

Không th có m t bài toán cể ộ ụ thể để quy ho ch hạ ết các trường h p có th xợ ể ảy ra trong m t phiên h i cộ ỏ ủa người dùng, cho nên c n xây d ng k ch b n cho nh ng ầ ự ị ả ữ trường hợp chưa được hu n luy n Chatbot không b trong tình c nh không th ấ ệ để ị ả ể đưa ra câu trả ời cho ngườ l i dùng hoặc đưa câu trả ờ l i sai l ch. ệ

K T LU N Ế Ậ

Trong luận văn này tôi đã tìm hiểu tổng quan v h ề ệ thống Chatbot, các thành phần c u trúc và nhi m v c a các thành ph n trong Chatbot, tìm hi u mô hình ấ ệ ụ ủ ầ ể Transformer và mô hình DIET để ứ ng d ng vào trong Chatbot ụ giải quy t bài toán ế bán hàng, tư vấn và h tr khách hàng. Chatbot đư c xây d ng d a trên công c ỗ ợ ợ ự ự ụ Rasa và tích h p tri n khai trên website c a doanh nghiợ ể ủ ệp.

Các vấn đề mà luận văn đã đạ được t

1. Xây dựng phương pháp phân loại ý định và trích xu t th c th giúp ấ ự ể Chatbot có kh ả năng trả ờ ự độ l i t ng các câu h i c a khách hàng m t cách chính ỏ ủ ộ xác nh t. Nh ng câu h i khó không có trong d ấ ữ ỏ ữ liệu huấn luy n s ệ ẽ được chuyển đến chuyên viên tư vấn.

2. Xây d ng ự Chatbot b ng công c Rasa s d ng mô hình DIET trong quá ằ ụ ử ụ trình huấn luy n và tích h p thành công vào Website công ty s d ng Wordpress. ệ ợ ử ụ Tùy chỉnh mô hình để có th x lý Tiể ử ếng Việt tốt hơn.

3. Đánh giá độ chính xác mô hình trong nhi m v phân loệ ụ ại ý định và trích xuất thực thể.

4. So sánh v i các tùy ch nh cớ ỉ ấu hình để đưa ra cấu hình t t nhố ất ứng d ng ụ cho Chatbot.

Định hướng phát tri n ể

1. M rở ộng thêm các ý định và thực th ph c v nghi p v doanh nghi p. ể ụ ụ ệ ụ ệ 2. Xây d ng Chatbot h ự ỗ trợ multi intent – người dùng có th h i nhi u câu ể ỏ ề h i kép v i cùng m t intent. ỏ ớ ộ

3. Xây d ng Chatbot có kh ự ả năng phân tích cảm xúc để đánh giá và đưa ra

TÀI LI U THAM KH O Ệ Ả

[1] Moussiades, E. Adamopoulou and Lefteris, "An Overview of Chatbot Technology".

[2] P. Suta, X. Lan, B. Wu, P. Mongkolnam and J. H. Chan, "An Overview

of Machine Learning in Chatbots," 2020.

[3] Kompella and Ravindra, 2018. [Online]. Available:

https://towardsdatascience.com/architecture-overview- -a-of

conversational- -chat-ai bot-4ef3dfefd52e.

[4] R. Vargas, A. Mosavi and R. Ruiz, "DEEP LEARNING: A REVIEW,"

2018.

[5] "WildML," 2015. [Online]. Available:

http://www.wildml.com/2015/09/recurrent-neural-networks-tutorial- part-1-introduction- -rnns/. to

[6] Ruder and Sebastian, "An overview of gradient descent optimization algorithms," 2017.

[7] R. Pascanu, T. Mikolov and Y. Bengio, "On the difficulty of training recurrent neural networks".

[8] A. Vaswani, N. Shazeer, N. Parmar, J. Uszkoreit, L. Jones, A. N. Gomez,

L. Kaiser and I. Polosukhin, Attention is all you need, 2017.

[9] F. Chaubard, M. Fang, G. Genthial, R. Mundra and R. Socher, "Natural

Language Processing with Deep Learning," 2019.

[10] L. Google, "Tensor2Tensor," 2018. [Online]. Available:

https://colab.research.google.com/github/tensorflow/tensor2tensor/blob/ master/tensor2tensor/notebooks/hello_t2t.ipynb#scrollTo=OJKU36Qafq OC.

[11] J. L. Ba, J. R. Kiros and G. E. Hinton, "Layer Normalization," 2016. [12] K. He, X. Zhang, S. Ren and J. Sun, "Deep Residual Learning for Image

Recognition," 2015.

[13] T. Bunk, D. Varshneya, V. Vlasov and A. Nichol, "DIET: Lightweight Language Understanding for Dialogue Systems," 2020.

[14] X.-S. Vu, T. Vu, S. N. Tran and L. Jiang,

"https://github.com/sonvx/word2vecVN," [Online].

[15] T. V. Trung. [Online]. Available: https://gitlab.com/trungtv/vi_spacy. [16] D. Q. Nguyen and A. T. Nguyen, "PhoBERT: Pre-trained language

models for Vietnamese," [Online]. Available:

https://github.com/VinAIResearch/PhoBERT.

[17] Y. Liu, M. Ott, NamanGoyal, J. Du, M. Joshi, D. Chen, OmerLevy, MikeLewis, L. Zettlemoyer and V. Stoyanov, "RoBERTa: ARobustly Optimized BERT Pretraining Approach," 2019.

[18] J. Lafferty, A. McCallum and F. Pereira, "Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data," 2001.

[19] M. Korobov, "sklearn-crfsuite," 2015. [Online]. Available:

https://sklearn-crfsuite.readthedocs.io/.

[20] Ledell, A. Fisch, S. Chopra, K. Adams, A. Bordes and J. Westom, "Emed All The Things!," 2017.

[21] X. Liu, A. Eshghi, P. Swietojanski and V. Rieser, "Benchmarking Natural Language Understanding Services for building Conversational Agents," 2019.

[22] A. Vanzo, E. Bastianelli and O. Lemon, Hierarchical multi-task natural language understanding for cross-domain conversation ai: Hermit nlu, 2019, pp. 254-263.

[23] T. Bocklisch, J. Faulkner, N. Pawlowski and A. Nichol, "Rasa: Open Source Language Understanding and Dialogue Management," 2017. [24] V. Vlasov, J. E. M. Mosig and A. Nichol, "Dialogue Transformers," 2020. [25] V. Anh, "Underthesea - Vietnamese NLP Toolkit," 2018. [Online].

Available: https://underthesea.readthedocs.io/en/latest/readme.html. [26] A. Sherstinsky, "Fundamentals of Recurrent Neural Network (RNN) and

Long Short-Term Memory (LSTM) Network," 2021.

[27] M.-W. C. K. L. K. T. Jacob Devlin, "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding," 2019.

[28] O. V. Q. V. L. Ilya Sutskever, "Sequence to Sequence Learning with Neural Networks".

[29] "Michael Phi," 25 9 2018. [Online]. Available:

https://towardsdatascience.com/illustrated-guide- -lstms-and-gru-s-a-to step- -by step-explanation-44e9eb85bf21.

[30] M. Sonali, B. Maind and M. P. Wankar, "Research Paper on Basic of Artificial Neural Network," 2014.

[31] Mavuduru and Amol, 2 12 2020. [Online]. Available:

https://towardsdatascience.com/what-are-transformers-and-how-can-

you-use-them-f7ccd546071a.

[32] J. Alammar, "The Illustrated Transformer," [Online]. Available: https://jalammar.github.io/illustrated-transformer/.

[33] J. Mosig and V. Vlasov, "Why Rasa uses Sparse Layers in Transformers," 19 4 2021. [Online]. Available: https://rasa.com/blog/why-rasa-uses- sparse-layers- -transformers/. in

Một phần của tài liệu (LUẬN văn THẠC sĩ) xây dựng ứng dụng chatbot tư vấn khách hàng sử dụng các kỹ thuật học sâu (Trang 57)

Tải bản đầy đủ (PDF)

(72 trang)