Các chatbots được thiết kế phức tạp dựa trên nền tảng xử lý ngônngữ tự nhiên, nhưng cũng có nhiều hệ thống khác đơn giản hơn bằng cách tìm từkhoá trong từng câu và dựa vào từ khoá dé tìm
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA CONG NGHE PHAN MEM
NGUYEN TAN PHUC
LE KHAC HAU LINH
KHOA LUAN TOT NGHIEP CHATBOT TIENG VIET HO TRO DU LICH
Building a Vietnamese chatbot to support tourism
KY SU NGANH KY THUAT PHAN MEM
Trang 2ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHAN MEM
NGUYEN TAN PHÚC - 16520954
LE KHAC HẬU LINH - 16520664
KHÓA LUẬN TÓT NGHIỆP
CHATBOT TIENG VIỆT HO TRỢ DU LICH
Building a Vietnamese chatbot to support tourism
KY SU NGANH KY THUAT PHAN MEM
GIANG VIEN HUONG DAN
TS HUYNH NGỌC TÍN
Trang 3THONG TIN HỘI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số
.-ngầy của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
1 ~ Chủ tịch.
"» ~ Thư ký.
== ~ Ủy viên.
Á f7 ~ Ủy viên.
Trang 4ĐHQG TP HÒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ VIỆT NAM
THÔNG TIN Độc Lập - Tự Do - Hạnh Phúc
TP HCM ngày tháng năm
NHAN XÉT KHÓA LUẬN TOT NGHIỆP
(CUA CAN BỘ HƯỚNG DAN)
Tên khóa luân:
CHATBOT TIENG VIỆT HO TRỢ DU LICH
Nhóm SV thực hiện: Cán bộ hướng dẫn:
Lê Khắc Hậu Linh 16520664 TS Huỳnh Ngọc Tín
Nguyễn Tan Phúc 16520954
Đánh giá Khóa luân
* Về cuốn báo cáo:
Số trang Số chương
Số bảng số liệu Số hình vẽ
Số tài liệu tham khảo Sản phẩm
Một số nhận xét về hình thức cuốn báo cáo:
Trang 6ĐHQG TP HÒ CHÍ MINH CỘNG HÒA XÃ HOI CHỦ NGHĨA
TRƯỜNG ĐẠI HỌC CÔNG VIỆT NAM
NGHỆ THÔNG TIN Độc Lập - Tự Do - Hạnh Phúc
TP HCM, ngày tháng năm
NHAN XÉT KHÓA LUẬN TOT NGHIỆP
(CỦA CÁN BỘ PHẢN BIỆN)
Tên khóa luận:
CHATBOT TIENG VIỆT HO TRỢ DU LICH
Nhóm SV thực hiện: Cán bộ phản biên:
Lê Khắc Hậu Linh 16520664 Ths Nguyễn Tan Toàn Nguyễn Tan Phúc 16520954
Đánh giá Khóa luân
+ - Vệ cuôn báo cáo:
Số trang Số chương
Số bảng số liệu Số hình vẽ
Số tài liệu tham khảo Sản phẩm
Một số nhận xét về hình thức cuốn báo cáo:
Trang 7* _ Về nội dung nghiên cứu:
5 Vé thái độ làm việc của sinh viên:
Điểm từng sinh viên:
Lê Khắc Hậu Linh:.
Người nhận xét
(Ký tên và ghi rõ họ tên)
Trang 8LỜI CẢM ƠN
Em xin chân thành cảm ơn quý Thay, Cô trong khoa Công nghệ phan
mêm Trường ĐH Công Nghệ Thông Tin đã trang bị cho em kiến thức nên tang
để có thể hoàn thành tốt luận văn này.
Cảm ơn các bạn trong lớp đã chia sẻ các kinh nghiệm và đã hỗ trợ trong
luc làm luận văn.
Đặc biệt em xin chân thành cảm ơn thầy giáo hướng dẫn TS Huỳnh Ngọc Tín đã hỗ trợ em trong lúc thực hiện luận văn này.
Mặc dù đã cô gắng hết khả năng nhưng không thể nào tránh khỏi những
thiếu sót Rat mong nhận được sự góp ý quý báu của quý thay cô dé dé tài có
thé hoàn chỉnh hơn
Sinh viên
NGUYEN TAN PHÚC LÊ KHÁC HẬU LINH
Trang 9ĐHQG TP HÒ CHÍ MINH CONG HÒA XÃ HỘI CHỦ NGHĨA
TRƯỜNG ĐẠI HỌC CÔNG VIỆT NAM
NGHỆ THÔNG TIN Độc Lập - Tự Do - Hạnh Phúc
TP HCM, ngày tháng năm
DE CUONG CHI TIẾT
TEN DE TAI: CHATBOT TIENG VIET HUONG DAN DU LICH
Cán bộ hướng dẫn: TS Huynh Ngọc Tín
Thời gian thực hiện: Từ ngày 01/10 đến ngày 31/2
Sinh viên thực hiện:
Lê Khắc Hậu Linh - 16520664
Nguyễn Tan Phúc — 16520954
Nội dung đề tai:
Muc tiéu:
* _ Nghiên cứu, tìm hiểu về công nghệ chatbot.
* Tim hiểu cơ chế hoạt động của chatbot Rasa.
« Cai đặt môi trường để thử nghiệm và xây dựng, phát triển hệ thống với
chatbot Rasa.
* Tim hiểu về quy trình du lịch dé áp dung vào việc xây dựng hệ thống.
+ Nang cao kỹ năng chuyên môn về phát triển ứng dụng web va mobile, cả
Trang 105 Nghién cứu quy trình du lich
« Phan tích các yêu cầu đã thu thập được.
«_ Thiết kế cơ bản các yêu cau.
* _ Nghiên cứu công nghệ dé áp dụng.
« Phat triển sản phẩm qua các giai đoạn, đồng thời lấy ý kiến phản hồi
+ Kiểm thử và hoàn thiện.
Những công nghệ được sử dụng:
Kết quả dự kiến:
Kế hoạch thực hién:(M6 ta ké hoạch làm việc và phân công công việc cho từng
sinh viên tham gia)
Xác nhận của CBHD TP HCM, ngày tháng năm
(Ký tên và ghi rõ họ tên) Sinh viên
(Ky tên và ghi rõ họ tên)
Trang 112.1 Mục tiêu Z £ ì ccececeecee 20
2.2 Phạm vi và đối tượng : 222+222222212222E1E2222112tE2211 tre 20
2.2.1 _ Đối tượng nghiên cứu :¿+22+++t2222+++tt2Exxetrrkrrrrrrkrvee 20
2.2.2 Phạm vi nghiên cỨu - (¿+ +k+t‡EE*EEEEkEkeEEErrkrkekekerrrek 20
2.3 Phương pháp thực hiỆNn: ¿- - + ‡EEEkEEkEkEkeEErkrkrkekerrrrree 20
2.4 Ý nghĩa thực tiễn -. 2 222222222212222111222211 21211 cEE.eccre 21
2.5 Kết quả dự kiến:
Chương 3 _ CÔNG NGHỆ CHATBOT VÀ CHATBOT RASA - 23 3.1 Tổng quan về chatbot -¿¿22E++++2222+++2EEEE22222112t222E1eeErrkecrrer 23
3.2 Hoạt động của chaftbot - - + HH re 24
3.3 Sự phát triển của chatbot 22¿-2222+c222EEEcEEEEEErrtrrrrerrrkrrrrei 25
3.4 Các lĩnh vực ứng dụng của chafbOt - - «+5 S++keervrkrrrkekererrrree 26
3.5 Phân tích và thiết kế hệ thống chatbot -2+22+zz+ccvszcz+rz 27
Trang 123.5.1 Cac mô hình chatbO( - ¿+25 222 S££ztzvsreterrrkrkrkererree 27
3.5.2 _ Phân loại chatbot.
3.5.2.1 Flow-oriented chatbO( ¿5c 5++c‡t+rrkrkrrkekererrrerkrke 28
3.5.2.2 _ Chatbot thông minh nhân tao (Artificially intelligent chatbot) 29 3.5.2.3 Chatbot lai (Hybrid chafbot) 5-55 Sxcc+xexsrerererree 30
3.5.2.4 Chatbot được hỗ trợ bởi con TRBƯỜI ccS+csscrserrerereee 31
3.5.3 Các phương pháp xây dựng chafbo( ¿s55 scvxsxexzvere 31
3.5.3.1 So sánh trùng khớp mẫu câu (Pattern matches) - 31
3.5.3.2 Str dung thuật toán phan lớp (Classification algorithms) 32 3.5.3.3 Mạng noron nhân tao (Artificial Neural Network - ANN) 32
3.5.3.4 Xử ly ngôn ngữ tự nhiên (Natural Language Processing - NLP)33
3.5.3.5 Hiểu ngôn ngữ tự nhiên (Natural Language Understanding
-NLU) 34
3.5.4 Các van đề cơ bản khi phát triển hệ thống chatbot - - 35
3.5.4.1 Xác định ý định người dùng «55+ s+cc+xsxseerererkree 36
3.5.4.2 Mô hình học máy cho bài toán phân lớp ý định người dung 37
3.5.4.3 Mô hình dựa trên đối sánh NOI dung ¿+ «scc+xsxsecvxsee 39
3.5.4.4 Mô hình lai -cccecererrerreererererererrree 39
Chương 4 XÂY DỰNG HE THONG CHATBOT HO TRỢ DU LỊCH 4
4.1 Dat Van đề HH 43
4.1.1 Thực trạng quy trình du lịch ở việt nam -« +-+-eseceexe 43
4.2 Hướng giải quyết -2222¿222222 2222112222111 2222111 22211 re 43
4.3 Xác định va phân tích yêu câu - - - «55+ S*S**k‡teEEEkrkrekekerrrrrkrrie 46
4.3.1 Danh sách các ACTOr s5 Set 46
Trang 134.3.2 — Danh sách các Se-Ca§S€ LG HS 11K 1kg kg 47
4.3.2.1 Use-case của Người quản trị hệ thống - s+cs+s+ 474.4 Thiết kế cơ sở dữ liệu -.cccccvtttttrittrrrtrtirrrtrirerirrrirriio 49
4.5 Thiết kế kiến trúc hệ thống - + ++E++E++EE2EE£EEEEEEEEEEErkerkerrree 54
4.5.1 Kiến trúc tong thỂ - + ©E+2E2E2EE2EEE2EE2E211211211 21x e2 54
4.5.2 _ Kiến trúc của ứng dung web -++cs+cx+ExeEEtEEzEzExerkerkerrees 55
4.5.3 _ Kiến trúc của ứng dụng di động - -2cs+cs+EzEcrkerxersereee 564.6 _ Thiết kế giao điện và Xử lý -¿- ¿5c tk E2E121111171211211 211111 xe 56
4.6.1 Giao diện trên ứng dụng Web Sc 12v vn ve re, 56
4.6.1.1 Danh sách các trang c + ss+ + Essikesereesereesvre 56
5.1 Kết quả dat được -c-cs St tEEEE2112111111211 21111111111 ree 78
5.2 _ Thuận lợi và khó khăn - - 2111111112223 1111111995311 1kg y 78
5.2.1 Thun lỢI: Ăn HH HH nh nh HH Hư nh nh nh 78 5.2.2 Khó khăn: ng HH HH TH HH HH nưệp 79
5.3 Hướng phát triển -2+Ee+tEtEE2E12112121712112112121 1x11 xe 79
Trang 14DANH MỤC HÌNH
Hình 4 1: Usecase người quan trị hệ thống - 2 2 s+Sx+£E+£E+2E2EE2EEerxerxrrex 47
Hình 4 2: Usecase khách du lịch - << << E22 2111111111531 18 E555 11E£rrrrsze 49
Hình 4 3: Kiến trúc tổng thê ¿5-2 s2SE2EE2EEEEEEEE121121121111121121111 11111 1e 54Hình 4 4: Kiến trúc của ứng dụng web - -+csecx2E2E2EEEEEE121121121 11111 cxe 55Hình 4 5: Danh sách địa điểm du lịch -¿ cccc¿+ccxvttrttrttrrrrrrrrrrrrrrrrrrrrek 58Hình 4 6: Cập nhập địa điểm du lịch - 22 +¿22222x+22x+£E2EE2zxerkesrxrrrsees 59Hình 4 7: : Tạo mới địa điểm du lịch -¿:- St +E+E+EEEEEE+EeEEEE+E+EeErtzkerrrerssree 59
Hình 4 8: : Danh sách khách sạn - - + 2 E222 16122311151 EEEEEEEEEEesreerrszee 60
Hình 4 9: : Cập nhập khách sạn c2 322122112211 51151151 1115111111111 xeE 60
Hình 4 10: : Tạo mới khách sạn - - - - c2 2222 1322221131251 1 1112811151111 crrrre 61
Hình 4 11: : Danh sách địa điểm ăn uOng ceccececcesessessessesssessessessessesseesessessesseees 61Hình 4 12: : Cập nhập địa điểm ăn uống -:- 2 2 2+E££E+EE2EE2EEzEerEerxersrree 62Hình 4 13: : Tạo mới địa điểm ăn uống 2-22 2+ z+E+EE+EE+EE2EEzEEerxerxerrrrer 62Hình 4 14: Kiểm tra nhiệt độ tại Hồ Chí Minh ngày mai 2 555552 69Hình 4 15: Kiểm tra thời tiết 3-7 ngày tới -:- 2-52 + 2EEEeEEerkerkrree 70Hình 4 16: Liệt kê top dia điểm du lịch Sài Gòn - - 5:52 £EzE+EeEertzxsrers 71Hình 4 17: : Tim theo thé loại địa điểm : địa điểm vui chơi -+ 72Hình 4 18: Tìm theo thé loại địa điểm : danh lam thắng cảnh - 73
Hình 4 19: Tìm khách sạn theo quận - - - ¿c6 2 3321113211311 xre 73 Hình 4 20: Tìm khách sạn theo đánh giá: 4 SaO -.- c c S* ssrssirsrrsee 74 Hình 4 21: Tìm khách sạn theo giá : dưới 4 trăm ¿+5 sc+++cs+ssxssvrsserses 75 Hình 4 22: Tìm khách san theo giá : trên 3 triỆu - 55+ ++c<++csscrsserexs 75 Hình 4 23: Liệt kê các món ăn nØOI c2 + 3322133311133 EEEEEEEEEEErrrsvre 76
Hình 4 24: : Tìm món ăn theo quận : quận 3 - ¿+22 + +2 *+++svssexserssss 76
Hình 4 25: Chi đường (Chợ Bến Thanh) - 2-52 2+S2EE£EE£EE2E2EESEEerxerrrrer 71
Trang 15DANH MỤC BANG
Bảng 4 1 : Danh sách các ACfOF - - +2 21131112 112 1151111111111 11 11111111 xer 46
Bảng 4 2: Usecase người quan trị hệ thống 2-2 2+2E+£E+£E2E2EE2EEerxerxrrer 48
Bang 4 3: Usecase khách du lỊCH: - - 2c 22c 1322111351113 1111151118111 re 49
Bang 4 4: Cơ sở dữ liệu Dia điểm du lịch ¿+ s+sStSt+E‡EEEEEEeEeEEkrxrrererxeerrvrs 51
Bảng 4 5: : Cơ sở dit liệu địa điểm ăn uống ¿- 2 s+cxeEEe£E2E2EEeExerxerrrrer 52
Bang 4 6: Cơ sở dit liệu khách sạn - - 5 St 2S vn HH HH kg rệt 53
Bang 4 7: Kiến trúc ứng dung Web - + 2s tk E2 12E121712121121121 11111 xe 56
Bảng 4 8: Danh sách các trang - - - +2 12111211111 11111 111118111111 11811 811g rnưện 58
Bang 4 9: Danh sách các màn hình - c2 22+ 3221131135115 Exxee 68
Trang 16DANH MỤC TỪ VIET TAT
AI Artificial Intelligence
ML Machine Learning
NLG Natural Language Generation
NLU Natural Language Understanding
NLP Natural Language Processing
SVM Support Vector Machine
Trang 17Nghiên cứu công nghệ chatbot, cấu trúc, các thuật toán
Nghiên cứu Rasa và các đặc điểm riêng biệt của nó Đồng thời tìm hiểu ngôn
ngữ lập trình python dé viết các custom action
Phân tích, thiết kế kiến trúc hệ thống, thiết kế cơ sở dit liệu và giao diện cho
ứng dụng web va ứng dụng di động.
Phát triển ứng dụng web và ứng dụng di động bằng cách sử dụng cácframework Reactjs, Flutter theo hướng day đủ tính năng, thân thiện, dễ sửdụng nhằm nâng cao trải nghiệm của người dùng
Trình bày kết luận và hướng phát triển cho hệ thống hỗ trợ chatbot du lịch
Trang 18Chương 1 MỞ ĐẦU
1.1 Giới thiệu đề tài:
Chatbot Tiếng Việt hỗ trợ du lịch Sài Gòn có tên là Du Lịch Ở Đâu là một
chatbot hỗ trợ tư vẫn thông tin du lịch tại phạm vi Sài Gòn, các thông tin được hỗ
trợ bao gồm như : địa điểm du lịch, địa điểm ăn uống, khách sạn và những câu hỏi
đáp nhanh (thời tiết, trang phục, phương tiện, )
1.2 Lý do chọn đề tài
Chatbot là một chương trình máy tính hoặc trí thông minh nhân tạo tương tác
với con người băng ngôn ngữ tự nhiên, thực hiện cuộc trò chuyện thông qua mộtgiao diện dưới dạng tin nhắn hoặc âm thanh Thuật ngữ “ChatBot” ban đầu được đặtbởi Michael Mauldin dầu tien vào năm 1994 Chatbots còn được gọi làConversational Agents hay Dialog Systems Các chatbots được thiết kế một cáchthuyết phục con người cư xử như một đối tác đàm thoại Theo cách tương tác mà
chúng tương tác với người dùng, các chatbots thường được chia thành hai loại: âm
thanh và tin nhắn Các chatbots được thiết kế phức tạp dựa trên nền tảng xử lý ngônngữ tự nhiên, nhưng cũng có nhiều hệ thống khác đơn giản hơn bằng cách tìm từkhoá trong từng câu và dựa vào từ khoá dé tìm câu trả lời phù hợp
Hiện nay phần lớn các chatbot đều thực hiện truy cập thông qua các trợ lý ảonhư trợ lý Google và Amazon Alexa, dưới ứng dụng tin nhắn như Facebook
Messenger, WeChat hoặc thông qua các ứng dụng va trang web của các tổ chức
riêng lẻ Sự phát triển của trí tuệ nhân tao tạo điều kiện dé chatbot phát triển nhanh
chóng và tạo ra một hệ sinh thái chatbot tương tự hệ sinh thái ứng dụng Chatbot
được sử dụng trong rất nhiều công việc như trong việc chăm sóc khách hàng (cungcấp thông tin sản phẩm, đưa ra các thông tin gợi ý ), quản lý hàng tồn, sắp xếp
lịch, tra cứu dữ liệu y tế, chăm sóc sức khóc Chatbot giúp tối ưu hóa năng suất,
giảm thiểu chi phí thông qua chăm sóc khách hàng, chăm sóc sức khỏe, đời sống
con người Chatbot có lợi thé dé dé dang sử dụng bat cứ ngành nghề nào
Trang 19Du lịch là một trong những ngành kinh tế quan trọng, là một ngành kinh tếtổng hợp có tính liên ngành, liên vùng và xã hội hóa cao Du lịch không những có
khả năng tạo ra nguồn thu nhập rat lớn cho xã hội mà còn góp phan thực hiện chínhsách mở cửa, giao lưu văn hóa, thúc đây sự đổi mới và phát triển nhiều ngành kinh
tế khác, đồng thời giải quyết nhiều van đề mang tinh chất xã hội Sài Gòn, vùng đấtđược thiên nhiên ưu ái ban tặng nhiều tài nguyên quý, độc đáo được phục vụ choviệc phát triển một ngành du lịch với nhiều loại sản phẩm du lịch, hình thức du lịch
phong phú và đa dạng Mặc dù là một thành phó rất phát triển về kinh tế, bên cạnh
đó Sài Gòn còn là vùng đất giàu tiềm năng, lợi thế để phát triển du lịch, tuy nhiên
du lich Sài Gòn chưa phát triển tương xứng với tiềm năng vốn có Lam thé nào dé
du lịch Sài Gòn phát triển đi lên ngày một nhanh và mạnh mẽ, thu hút được lượng
khách du lịch đến thăm quan nhiều hon, nâng cao sức cạnh tranh, nâng cao vi thế dulịch Sài Gòn là một vấn đề quan trọng và cấp thiết cần được đặt ra hiện nay
Trang 20Chương 2 TONG QUAN DE TÀI
2.1 Mục tiêu
Nghiên cứu, tìm hiểu về công nghệ chatbot.
Tìm hiểu cơ chế hoạt động của chatbot Rasa.
Cài đặt môi trường dé thử nghiệm và xây dựng, phát triển hệ thống với
chatbot Rasa.
Tìm hiểu về quy trình du lịch để áp dụng vào việc xây dựng hệ thống.
Nâng cao kỹ năng chuyên môn về phát triển ứng dụng web và mobile, cả
back-end và front-end.
2.2 Phạm vi và đối tượng
2.2.1 Đối tượng nghiên cứu
— Lý thuyết máy học, các thuật toán, phương pháp xây dựng ngôn ngữ tự
nhiên với ngôn ngữ Tiếng Việt.
— Mã nguồn mở Rasa và kỹ thuật xây dựng chatbot.
— Dữ liệu về du lịch Sài Gòn
2.2.2 Phạm vi nghiên cứu
— Nghiên cứu dữ liệu Tiếng Việt dùng trong du lịch và ngôn ngữ hội thoại
sử dụng cho xây dựng chatbot.
— Xây dựng và thực nghiệm hệ thống mô phỏng trợ lý ảo có trí tuệ nhân
tạo, hiểu và có thể trả lời những câu hỏi về thông tin du lịch Sài Gòn
2.3 Phương pháp thực hiện:
Thực hiện theo các bước sau:
Phân tích đề tài.
Nghiên cứu quy trình du lịch
Phân tích các yêu cầu đã thu thập được.
Thiết kế cơ bản các yêu cầu.
Trang 21— Nghiên cứu công nghệ dé áp dụng.
— Phát triển sản phẩm qua các giai đoạn, đồng thời lấy ý kiến phản hồi
— Kiểm thử và hoàn thiện.
— Tạo được một nguồn thông tin chính thức
— Cung cấp sự nhanh chóng, tiện lợi cho người sử dụng.
— Giúp tiết kiệm thời gian trong việc tra cứu thông tin di du lịch.
— Giúp cắt giảm được nhiều chỉ phí phát sinh về mặt vật chất cũng như về mặt
Trang 22Liệt kê top khách sạn nồi bật
Tìm khách sạn theo quận Tìm khách sạn theo đánh giá sao Tìm khách sạn giá rẻ
Tìm khách sạn dưới mức giá (vd: 200 trăm)
Tìm khách sạn trên mức giá (vd: 500 trăm)
m Địa điểm du lịch:
Liệt kê top địa điểm du lịch nồi tiếng Tim địa điểm du lịch theo thé loại
Tìm địa điểm du lịch theo quận
m Địa điêm ăn uông:
Liệt kê quán ăn ngon sài gòn Tìm quán ăn theo quận
Tìm quán ăn theo loại
© Đối với tinh thành quản lý:
m Quản lý địa điểm khách sạn
m Quản lý địa điểm du lịch
m Quản lý địa điểm ăn uống
Trang 23Chương 3 CÔNG NGHỆ CHATBOT VÀ CHATBOT RASA
3.1 Tổng quan về chatbot
Chatbot là một chương trình máy tính có khả năng giao tiếp với con người bằng cách đưa ra câu trả lời cho các câu hỏi và thực hiện cuộc trò chuyện bằng
cách sử dụng xử lý ngôn ngữ tự nhiên Con người đưa vào lời nói hoặc văn bản
ngôn ngữ tự nhiên, trong khi chương trình chatbot sẽ đưa ra phản hồi thông minh
phù hợp nhất đưới dạng văn bản hoặc lời.
Cuộc trò chuyện có thể được bắt đầu bởi người dùng hoặc bởi chatbot Quá
trình giao tiếp bắt đầu khi người dùng nhập câu hỏi hoặc câu dưới dạng lời nói hoặc văn bản cho chương trình Sau đó, đầu vào của người dùng được phân tích
cho các từ khóa hoặc cụm từ mà nó chứa và câu trả lời được lập trình phù hợp
nhất từ cơ sở dữ liệu chatbot Quá trình kết thúc sau khi đầu ra được trình bày
cho người dùng bằng đồ họa hoặc bằng lời nói.
Chatbots còn được gọi là Conversational Agents hay Dialog Systems Các
chatbot được thiết kế một cách thuyết phục con người cư xử như một đối tác đàm
thoại Theo cách tương tác mà chúng tương tác với người dùng, các chatbot
thường được chia thành hai loại: âm thanh và tin nhắn Các chatbot được thiết kế phức tạp dựa trên nền tảng xử lý ngôn ngữ tự nhiên, nhưng cũng có nhiều hệ
thống khác đơn giản hơn bằng cách quét từ khóa trong đầu vào, sau đó trả lời với
từ khóa phù hợp nhất hoặc mẫu từ ngữ tương tự nhất trong cơ sở dữ liệu.
Trang 24Chọn câu trả lời phù
hop nhât
Dữ liệu của chatbot
Hình 3 1: Xử lý hội thoại giữa chatbot và con người
Hiện nay phan lớn các chatbots đều thực hiện truy cập thông qua các trợ lý
ảo như trợ lý Google và Amazon Alexa, dưới ứng dụng tin nhắn như Facebook
Messenger, WeChat hoặc thông qua các ứng dụng Chatbot được sử dụng trong
rất nhiều công việc như trong việc chăm sóc khách hàng(cung cấp thông tin sản
phẩm, đưa ra những gợi ý ), quản lý hàng tồn, sắp xép lịch, tra cứu dit liệu hồ sơ
y tế, chăm sóc sức khỏe, khuyến khích người dùng tập luyện, hướng dẫn chế độ
ăn
3.2 Hoạt động của chatbot
Chatbot tương tác với con người qua âm thanh hoặc văn bản và sử dụng các
nền tảng đề giao tiếp với bot Phần mà các lập trình viên cần phát triển bao gồm:
Translator: Dịch yêu cầu của người dùng giúp máy tính hiểu được yêu cầu cần thực hiện Mục đích (intent) và các thực thể (entities) có trong yêu cầu được
trích xuất dé làm cơ sở cho việc xác định câu tra lời Các kỹ thuật xử lý ngôn ngữ
Trang 25tự nhiên được áp dụng dé phân tích ngữ nghĩa yêu cầu của người dùng.
nếu câu trả lời cần thông tin từ database thì nó sẽ được truy xuất từ cơ sở dữ liệu
của chatbot Tùy thuộc vào kỹ thuật sử dụng sẽ cho mức độ chính xác của câu trả lời khác nhau.
Responsor: Nhận output từ Processor và trả lời lại cho người dùng.
3.3 Sự phát triển của chatbot
Ban đầu chatbot được phát triển như một ứng dụng bình thường, cũng có giao thức tầng ứng dụng, cơ sở dữ liệu và giao diện lập trình ứng dụng Giao diện người dùng của chatbot là giao diện trò chuyện Mặc dù, Chatbot cung cấp các
tính năng dễ dang cho người dùng có thé sử dụng nhưng lại tăng độ phức tap và tỉnh vi trong quá trình xây dựng, quản lý và huấn luyện.
Hầu hết các hệ thống chatbot đều có thé lưu trữ dữ liệu các cuộc đối thoại với
người dùng Các nhà phát triển chatbot sẽ sử dụng nhật ký các cuộc đối thoại dé
phân tích những gì người dùng đang có gắng hỏi và ý định của người dùng là gì?, tại sao chatbot không hiéu?, Với sự kết hợp của các mô hình và công cụ
Machine Learning, các nhà phát triển xây dựng các kịch bản mới cho từng câu
Trang 26hỏi, ý định với các câu trả lời phù hợp nhất, đáp ứng nhu cầu của người dùng.
Chatbot sẽ ngày càng phát triển theo thời gian cũng giống như kinh nghiệm tiếp
xúc với khách hàng của 1 nhân viên bán hàng.
3.4 Các lĩnh vực ứng dung của chatbot
Dịch vụ khách hàng: Chatbot được sử dụng thay thế cho nhân viên chăm sóc khách hàng để trả lời các câu hỏi từ phía khách hàng Chatbot thông minh và xử
lý nhanh hơn con người Nó hoàn toàn tự động hóa và truyền tải thông tin đến
khách hàng ngay lập tức Các chương trình hỗ trợ khách hàng 24/7 và có thể trả lời các câu hỏi của khách hàng và cung cắp thông tin, đề xuất cho khách hàng.
Trong trường hợp trả lời không được, bot sẽ tự động gửi câu hỏi tới nhân viên
chăm sóc và lắng nghe câu trả lời Nó sẽ học cách trả lời loại câu hỏi này và có thể trả lời trong tương lai Ưu điểm nồi bật của chatbot là hệ thống thông minh hơn theo thời gian và có thể tự giải quyết được nhiều câu hỏi hơn.
Du lich lữ hành và bệnh viện: Chatbot ngày càng trở nên phổ biến và tiện
dùng hơn trong ngành công nghiệp y dược và du lịch lữ hành Vì nó có thể cung
cấp cho người ding những dich vụ tốt nhất với giá rẻ hơn Một điểm đặc biệt khi
dùng chatbot là làm tăng mức độ hài lòng cho khách cũng như duy trì lòng trung
thành của khách đối với thương hiệu thông qua hệ thống tự động.
Ngân hàng và dịch vụ tài chính: Chatbot như là người trợ lý của khách hàng,
nó có nhiệm vụ thông báo các thông tin hay cảnh báo các hoạt động bat thường
tới khách hàng Thông qua chatbot khách hàng sẽ hoàn toàn an tâm về dịch vụ sử dụng Ví dụ như khi có đăng nhập bắt thường, bot sẽ cảnh báo cho người dùng
bằng cách nhắn tin vào các tài khoản liên lạc đã cung cấp.
Chatbot như một trợ lí ảo: Một nhóm nhỏ của chatbot đã được thiết kế dé giúp thực hiện các tác vụ cụ thé Nó sẽ làm một số công việc mà đáng ra chúng ta phải mất thời gian xử lý hoặc đi thuê người khác làm Ví dụ như sắp xếp cuộc hẹn,
Trang 27tìm hiểu một vấn đề được chủ nhân yêu cầu và trả lời vấn đề đó cho chủ nhân
heuristic có thé đơn giản như một kết hợp biểu thức dựa trên luật hoặc phức tạp hơn như một tập hợp các phân loại học máy Các hệ thống này không tạo ra bất
kỳ văn bản mới nào, họ chỉ cần chọn một phản hồi từ một tập cố định.
Các mô hình sinh (Generative models) không dựa vào các câu trả lời được xác định trước Nó tạo ra các câu trả lời một các tự động Các mô hình sinh
thường dựa trên các kỹ thuật dịch máy, nhưng thay vì dịch từ ngôn ngữ nảy sang
ngôn ngữ khác, nó dịch từ đầu vào thành đầu ra là các phản hồi.
Cả hai phương pháp đều có một số ưu và nhược điểm riêng Các phương pháp dựa trên truy xuất, do việc lưu trữ các câu trả lời đã được chuẩn bị trước
nên không có các lỗi về mặt ngữ pháp Tuy nhiên, phương pháp này không thể
xử lý cho các câu hỏi hội thoại mới chưa ton tại trong cơ sở dữ liệu Các mô hình này không thể xem xét lại thông tin thực thể theo ngữ cảnh như các tên
được đề cập trước đó trong cuộc trò chuyện Các mô hình sinh có tính thông
minh hơn so với mô hình dựa trên truy xuất Nó có thể tham khảo lại các thực thể trong đầu vào và tạo cảm giác đang nói chuyện với một con người thực sự Tuy nhiên, các mô hình này thường rất phức tạp và khó huấn luyện Các hội thoại tạo ra rat dé mắc lỗi ngữ pháp (đặc biệt là các câu dài) và thường yêu cầu
số lượng lớn dữ liệu đào tạo.
Các kỹ thuật học sâu (Deep Learning) có thể được sử dụng cho cả các mô
Trang 28hình dựa trên truy xuất hoặc mô hình sinh Tuy nhiên hướng nghiên cứu nhận
được sự chú ý nhất hiện nay là mô hình sinh Các kiến trúc Deep Learning như
Sequence to Sequence rất phù hợp dé tạo văn bản và các nhà nghiên cứu dang
hy vọng sẽ đạt được tiến bộ nhanh chóng trong lĩnh vực nay.
Miền mở và miền đóng (Open Domain vs Closed Domain):
- Miền mở (Open Domain) trong một miền mở người dùng có thê thực
hiện cuộc trò chuyện ở bất cứ nội dung gì Không thiết phải có một mục tiêu
hoặc ý định hoàn toàn xác định Cuộc trò chuyện trên các trang mạng xã hội như
Twitter, Facebook thường là miền mở - người dùng có thể trao đổi tất cả các lĩnh vực và nhiều ý định khác nhau Số lượng chủ đề vô hạn và thực tế là cần một lượng kiến thức phong phú để tạo ra các phản hồi hợp lý Do đó chatbot trong miền mở là van đề khó hiện nay.
- Miễn đóng (closed domain) dữ liệu vào và dữ liệu ra trong miền đóng
là bị giới hạn vì hệ thống cố gắng đạt được một mục tiêu rất cụ thể Những chatbot tư vấn khách hàng mua sắm hoặc hỗ trợ kỹ thuật cho khách hàng hoặc dịch vụ chăm sóc khách hàng là những ví dụ về chatbot trong miền đóng Những
hệ thống này cần tập trung vào hoản thành nhiệm vụ cụ thể nào đó một cách
hiệu quả nhất có thể, do đó dữ liệu sẽ bị giới hạn trong một miễn cụ thể Người dùng vẫn có thé thực hiện cuộc trò chuyện ở bat cứ nội dung gì họ muốn, nhưng
hệ thống không bắt buộc phải xử lý tất cả các trường hợp này.
3.5.2 Phân loại chatbot
Có nhiều loại chatbot khác nhau và mỗi loại chatbot có những phản ứng theo những cách khác nhau Không phải tắt cả các chatbot đều thông minh giống nhau và chúng xác định một nhiệm vụ cụ thể Chatbot có thể phân thành bốn
loại như sau :
3.5.2.1 Flow-oriented chatbot
Loại chatbot này thực hiện theo các bước đã được xác định trước bởi
Trang 29người lập trình Trong flow-oriented chatbot, người dùng sẽ trải qua một số câu
hỏi và tùy chọn Do đó, người dùng có thể đưa ra quyết định dựa trên các tùy chọn mà nhà phát triển chatbot đã cung cấp Loại bot này thường cung cấp rất nhiều nút và từ khóa mà qua đó người dùng có thể chọn một hành động cụ thể
dé thực hiện hoặc một thông tin sẽ được hiển thị Loại bot này còn được gọi là chatbot dựa vào luật (rule based chatbot), nó được xây dựng đề thực hiện một số nhiệm vụ được xác định trước dựa trên các quy tắc được cung cấp bởi một lập trình viên Các loại chatbot này có nhược điểm là không thể học để trở nên tốt hơn theo thời gian Việc tạo chatbot dạng này khá đơn giản, chỉ phí thấp và tốc
độ phát triển của loại hình chatbot này khá nhanh.
3.5.2.2 Chatbot thông minh nhân tao (Artificially intelligent chatbot)
Trong thập ky qua, trí tuệ nhân tao đã có những bước phát triển mạnh mẽ.
Nhiều thuật toán, kỹ thuật đã ra đời nhằm dé mô hình hóa những công việc mà
con người có thé thực hiện được Một trong những lĩnh vực thu hút được nhiều
sự quan tâm của các nhà khoa học là áp dụng trí tuệ nhân tạo trong xử lý ngôn
ngữ tự nhiên Ngày nay chúng ta có thể tìm thấy sự tương tác ngôn ngữ tự nhiên
khác nhau với các tác nhân đàm thoại Giao tiếp diễn ra thông qua các công nghệ kỹ thuật số chứ không phải trực tiếp Do đó, giao tiếp qua trung gian máy
tính (computer mediated communication - CMC) đã trở thành một lĩnh vực
nghiên cứu quan trọng để khám phá mô phỏng ngôn ngữ tự nhiên của con
người.
Ngày nay, một trong những dạng phổ biến nhất của CMS là nhắn tin tức thời (instant messaging - IM) Chatbot là một dạng phổ biến của CMS Các chatbot trí tuệ nhân tạo dựa vào trí thông minh nhân tạo để mang lại trải nghiệm người dùng Các ứng dụng này bắt chước tính cách, hành vi của con người, đó là
tương tác và trả lời các câu hỏi trong khi tạo ra một cuộc trò chuyện có ý nghĩa với con người Các chatbot thông minh nhân tạo cho phép người dùng tham gia
trao đổi một cách tự nhiên và có một cuộc thảo luận thực sự Người dùng có thé
Trang 30nhập bat kỳ câu nào va bot có thé phân tích một tập hợp các tham sé dé biểu ý
định của người dùng và phản ứng lại.
< Chỉ tiết Chỉ đường c xay
Hình 3 3: Đoạn hội thoại của một chatbot trí tuệ nhân tạo
Chatbot lai (Hybrid chatbot)
Các chatbot này kết hợp các ưu điểm của Flow-oriented chatbot và
Artificially intelligent chatbot dé mang lại trải nghiệm tốt hơn cho người dùng.
Hầu hết các chatbot hiện có là chatbot lai vì công nghệ xử lý ngôn ngữ tự nhiên
vẫn còn nhiều hạn chế để hiểu được mọi câu hội thoại từ người dùng, có nghĩa
là người ding sẽ không thể luôn nhận được câu trả lời mà họ muốn Với một
chatbot lai, người dùng có thể phải thông qua một loạt các câu hỏi như xảy ra
trong các flow-oriented chatbot nhưng họ cũng có thể nhập các câu hỏi để trao
đổi trực tiếp với bot.
Trang 31dạy chatbot đảm bảo trả lời tốt hơn cho các cuộc hội thoại trong tương lai.
3.5.3 Các phương pháp xây dựng chatbot
3.5.3.1 So sánh trùng khớp mẫu câu (Pattern matches)
Các chatbot hoạt động bằng cách sử dụng phương pháp này dé tìm kiếm
các mẫu câu có trong câu hỏi của người ding và xem có khớp với các câu hỏi đã
được lưu trữ trong cơ sở dir liệu của hệ thống dé đưa ra câu trả lời phù hợp nhất.
Phương pháp Pattern matches dựa theo cấu trúc tiêu chuẩn của ngôn ngữ lập
trình Artificial Intelligence Markup Language (AIML) là một ví dụ AIML là
một dạng của XML định nghĩa các quy tắc để kết hợp các mẫu câu hỏi và xác
định câu trả lời cho nó.
Trang 323.5.3.2 Si dụng thuật toán phan lớp (Classification algorithms)
Giả sử trong trường hợp có rất nhiều câu hỏi riêng biệt với ý định khácnhau đến từ người dùng, mà chatbot chỉ có thé phản hôi khi tat cả câu hỏi này đã
được thiết lập, huấn luyện cho chatbot với các kịch bản đối thoại đã được lưu trữtrong cơ sở dit liệu Sự phức tạp sẽ gia tăng khi chatbot cố gắng kết nối các mẫucâu và tạo nên một cau trúc phân tang trong hệ thống Một giải pháp được sửdụng là áp dụng các thuật toán phân lớp vào chatbot dé giảm việc phân loại quánhiều các câu hỏi Các câu hỏi sẽ được phân lớp theo các điều kiện khác nhau vàtạo ra một cấu trúc dễ quản lý hơn, tăng độ chính xác cho các phản hồi được
chatbot tới cho người dùng Ví dụ: giả sử tập hợp các câu hỏi, tin nhắn tương táccủa người dùng cùng ý định, chủ đề đã được phân lớp trong các lớp cụ thê và sẽ
có nhiều lớp được tạo Nếu người đưa ra một câu mới so với cơ sở đữ liệu hiện
có, chatbot sẽ đối sánh câu này với các câu đã tập hợp trong các lớp Dựa vào
điểm số tương tự của sự so sánh, chatbot sẽ tìm ra lớp chứa câu tương tự và đưa
ra phản hồi chính xác đến người dùng dựa vào lựa chọn câu thích hợp trong lớp
đó Multinomial Naive Bayes là một thuật toán phân loại văn bản được sử dụng
phô biến trong xử lý ngôn ngữ tự nhiên dựa trên tính toán xác suất áp dụng định
ly Bayes Thuật toán này thuộc nhóm học có giám sát Các vector đặc trưng
được xây dựng dựa trên các phương pháp biêu diễn văn bản như đã đề cập trongchương 1 Với phương pháp này, điểm số chỉ thê hiện độ tin cậy và sự liên quannhất định của các câu hỏi, tin nhắn mà người dùng đưa ra đối với một lớp cụ thé
chứ không đảm bảo độ chính xác hoàn toàn.
3.5.3.3 Mạng noron nhân tạo (Artificial Neural Network - ANN)
Phương pháp Mang noron nhân tao là tính toán tỷ lệ chính xác dữ liệu
đầu ra từ dir liệu đầu vào bằng cách tính toán các trọng số cho mỗi kết nối từ cáclần lặp lại khi huấn luyện dữ liệu cho chatbot Mỗi bước trong quá trình huấn
luyện đữ liệu cho chatbot sẽ sửa đổi các trọng số để dữ liệu đầu ra có độ chính
xác cao nhất có thể Mỗi câu hội thoại sẽ được phân tách thành từng từ và mỗi
Trang 33từ chính là dit liệu đầu vào cho các nơron của ANN Cac từ sẽ được kết nối vớinhau và khi huấn luyện dữ liệu cho chatbot, các kết nối này sẽ được đo bằng
trọng số cho hàng ngàn lần lặp lại ở các thời điểm khác nhau Mỗi lần lặp lại
trọng sé sé thay đôi va độ chính xác sẽ được cải thiện Do đó chatbot khi đượchuấn luyện trong thời gian dài sẽ tăng khả năng tự học, tự phát triển về hiểu biết
các ý định của người dùng và đạt được độ chính xác, độ tin cậy cao.
3.5.3.4 Xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP)
Phương pháp NLP sử dụng các thuật toán và truy xuất cơ sở dit liệu dé
làm cơ sở nhận dạng, chuyên đổi dir liệu đầu vào của người dùng thành dé liệu
có cấu trúc và tiễn hành phân loại và đưa ra các câu tra lời tương ứng Dé giaotiếp tự nhiên với con người, thì NLP phải là một phần quan trọng của bất kỳ
công nghệ AI nào được sáng tạo ra và đưa vào sử dụng Một hệ thống NLP hiệu
quả thu thập các câu hỏi, tin nhắn của người dùng, phân tích theo từng từ, nắm
được ý định của người dùng, xác định hành động phù hợp và phản hồi lại bằng
ngôn ngữ mà người dùng sẽ hiêu.
MESSAGING PLATFORM
last 3 pictures Facebook
NATURAL LANGUAGE cocial_nedia ~ Facebook
PROCESSING
MACHINE LEARNING
ACTIONS
Trang 34Hình 3 4: Cau trúc cơ bản của một chatbot sử dung NLP và công nghệ Machine
learning
Khi người dùng gửi tin nhắn đến chatbot thông qua nền tảng nhắn tin
(Messaging platform) như Facebook messenger thì thông tin sẽ được đưa đến hệ
thống NLP dé chatbot phân tích và hiểu được ý định người dùng (Bot Logic).Sau khi trích xuất được ý định người dùng, chatbot sẽ phân loại và gửi đến cơ sở
dữ liệu (Information Sources) dé chọn ra các câu trả lời tương ứng, chính xác va
ra lệnh (Actions) dé phản hồi lại người dùng Ngoài khả năng tự phân tích dựavào NLP, chatbot sẽ tự nhận dạng nhanh chóng các tin nhắn của người dùng và
tao khả năng tự hoc (Machine Learning) thông qua các thuật toán được nhà phát
triển áp dụng và quá trình huấn luyện lâu dài trong tương lai
3.5.3.5 Hiểu ngôn ngữ tự nhiên (Natural Language Understanding
-NLU)
NLU là phương pháp giúp cho các chatbot hiểu được các câu lệnh củangười dùng mà không phải dựa trên bất kỳ ngôn ngữ, câu thoại, cấu trúc nào
được định dạng sẵn ở trong hệ thống, giúp chatbot có thé phản hồi nhanh chóng
đến người dùng NLU là một kỹ thuật nâng cao của NLP NLU thường được sử
dụng cho các chatbot nhận diện giọng nói Các công ty, tập đoàn công nghệ
hàng đầu thế giới đã đi đầu trong việc ứng dụng NLU vào quá trình hình thành
các công nghệ AI đầu tiên, là cha đẻ của Chatbot như Alexa của Amazon, Siri
cua Apple, Google’s Assistant của Google va Cortana cua Microsoft.
Trang 35Bot Instance / | À_- bot-express
Hình 3 5: Hệ thống chatbot sử sử dụng phương pháp NLU
NLU giúp giải quyết một trong những vấn đề mà bất kỳ công nghệ AI
nao cũng gặp phải không chỉ riêng chatbot là làm thế nào dé xử lý những dữ liệuđầu vào không có cau trúc cụ thé, không có định dạng rõ ràng, không có thuậttoán, quy tắc quản lý chặt chẽ Với phương pháp NLU, hệ thống có thể hiểuđược dữ liệu đầu vào và tương tác lại với con người một cách dé dàng NLU có
thé giúp chatbot hiểu được ý định của mỗi người dùng thậm chí không cần được
huấn luyện từ trước NLU hơn cả việc hiểu và giải thích từ ngữ thông thường,NLU có khả năng hiểu được ý nghĩa người dùng kể cả các trường hợp lỗi phô
biến như phát âm sai hoặc không đúng văn phạm, chính tả
3.5.4 Cac van dé cơ bản khi phát triển hệ thống chatbot
Đề các chatbot có thể giao tiếp với người dùng nó cần phải hiểu văn bản
trong các câu hỏi của người dùng và đưa ra những câu trả lời phù hợp Thành
phần đảm nhiệm công việc này trong hệ thống chatbot được gọi là Natural
Language Understanding (NLU) Các kĩ thuật xử lý ngôn ngữ tự nhiên sẽ được
ap dụng dé có thé hiểu được yêu cầu và trả lời yêu cầu một cách phù hợp nhất
Hiện nay, phương pháp tạo chatbot phố biến nhất là các chatbot được sử dụng
Trang 36trong miền ứng dụng đóng (closed domain) và trả lời theo mô hình truy xuấtthông tin (retrieval-based model) Mô hình truy xuất thông tin là mô hình trong
đó, chatbot đưa ra những phản hồi được chuẩn bị trước hoặc tuân theo những
mô thức nhất định Mô hình này khác với mô hình tự động sinh câu trả lời
(generative-based model), trong đó câu trả lời của chatbot được tự động sinh ra
băng việc học từ một tập dữ liệu các đoạn hội thoại Các hệ thống chatbot đượctriển khai trong thực tế phần lớn tuân theo mô hình truy xuất thông tin và được
áp dụng trong những miền ứng dụng nhất định
Ba vấn đề xử lý ngôn ngữ tự nhiên cơ bản trong phát triển hệ thống
chatbot trong miền ứng dụng đóng và theo mô hình truy xuất thông tin :
1) Xác định ý định người dùng (intent detection).
2) Trích xuất thông tin (information extraction)
3) Quản lý hội thoại (Dialog management).
3.5.4.1 Xác định ý định người dùng
Người dùng khi sử dụng hệ thống chatbot, dựa trên các câu hỏi truy vấncủa họ hệ thống sẽ xử lý để tìm ra câu trả lời phù hợp nhất Ví dụ người dùngcủa hệ thống chatbot hỗ tro tư vấn du lịch có thé đưa ra yêu cầu cung cấp thôngtin về một địa điểm du lịch nào đó hoặc có những câu hỏi cần sự trả lời tư van
cho họ Để đưa ra hỗ trợ được chính xác, chatbot cần xác định được ý định
(intent) đó của người dùng Việc xác định ý định của người dùng là rất quantrọng, nó sẽ quyết định hội thoại tiếp theo giữa người dùng và chatbot sẽ diễn ranhư thế nao, có thỏa mãn yêu cầu của họ và quá trình trao đổi có phù hợp giữahỏi — trả lời hay không Vi thế, nếu xác định sai ý định người dùng, chatbot sẽđưa ra những phản hồi không đúng, không hợp ngữ cảnh Khi đó, người dùng cóthé sẽ dừng sử dụng và không tiếp tục sử dụng hệ thống trong tương lai Bài
toán xác định ý định người dùng vì thế đóng vai trò rất quan trọng trong hệ
thống chatbot
Trang 37Đối với các miền ứng dụng đóng, chúng ta có thé giới han số lượng ýđịnh của người dùng nằm trong một tập hữu hạn các ý định đã được định nghĩa
sẵn Các ý định được xây dựng có liên quan đến những nội dung mà chatbot đó
có thể hỗ trợ Do đó, bài toán xác định ý định người dùng có thê quy về bài toánphân lớp văn bản Do đó xác định ý định người dùng có thé gọi là phân loại ýđịnh (intent classification) Với đầu vào là một câu giao tiếp của người dùng, hệthống phân lớp sẽ xác định ý định tương ứng với câu đồ trong tập các ý định đã
được định nghĩa Dé xây dựng một mô hình phân lớp ý định, chúng ta cần một
tập dữ liệu huấn luyện bao gồm các cách diễn đạt khác nhau cho mỗi ý định Ví
dụ, cùng một mục đích hỏi về địa điểm du lịch ở Sài Gòn, người dùng có thé
dùng những cách diễn đạt sau:
¢ - Địa chỉ du lịch
* Tim địa điểm nồi tiếng
* _ Tôi muốn tìm địa điểm nồi tiếng
* Tim địa điểm
* - Tôi muốn tim địa điểm đẹp nhất Sài gòn
¢ _ Tôi muốn tìm địa điểm nồi bật nhất Sài gon
* Tôi muốn tim địa điểm du lịch hang dau
Bước tạo dữ liệu huấn luyện cho bài toán phân lớp ý định là một trongnhững công việc quan trọng nhất khi phát triển hệ thống chatbot và ảnh hưởngrất lớn tới chất lượng của hệ thống chatbot Công việc này đòi hỏi thời gian,công sức khá lớn của nhà phát triển chatbot
3.5.4.2 M6 hình hoc máy cho bài toán phân lớp ý định người dùng
Dựa trên dữ liệu huấn luyện cho bài toán phân lớp ý định, chúng ta sẽ mô
hình bai toán thành bài toán phân lớp văn ban Bai toán phân lớp van ban là một
bài toán kinh điển trong xử lý ngôn ngữ tự nhiên và có rất nhiều thuật toán phânlớp khác nhau có thể được sử dụng Mô hình phân lớp văn bản cho bài toánphân lớp ý định có thê được phát biéu một cách hình thức như sau:
Trang 38Cho một tập huấn luyện bao gồm các cặp (câu hội thoại, ý định), D =
f(x, yØ), , (x, y)}, trong đó x® là các câu hội thoại và y là ý định tương
ứng của câu hội thoại x Các ý định y nằm trong một tập hữu hạn K các ý
định đã được định nghĩa trước Chúng ta cần học từ tập huấn luyện này một mô
hình phân lớp có chức năng phân lớp một câu hội thoại mới vào một trong các ý
định thuộc tập K Kiến trúc của hệ thống phân lớp ý định được minh hoạ trong
Hình 3 6: Kiến trúc của hệ thống phân lớp ý định
Trong bước tiền xử lý đữ liệu, chúng ta sẽ thực hiện các thao tác “làm
sạch” đữ liệu như: loại bỏ các thông tin dư thừa, chuẩn hóa đữ liệu như chuyên
các từ viết sai chính tả thành đúng chính tả, chuẩn hoá các từ viết tắt, Việc
tiền xử lý đữ liệu có vai trò quan trọng trong hệ thống chatbot do đặc thù của
ngôn ngữ chat, nói: viết tắt, sai chính tả, hay dùng tiếng lóng Sau khi tiền xử lý
dữ liệu và thu được đữ liệu đã được làm sạch, chúng ta sẽ trích xuất những đặc
trưng từ đữ liệu này Trong học máy, bước này được gọi là trích xuất đặc trưng
(feature extraction) Trong mô hình học máy truyền thống, bước trích xuất đặc
trưng ảnh hưởng lớn đến độ chính xác của mô hình phân lớp Đề trích xuất được
những đặc trưng tốt, chúng ta cần phân tích đữ liệu chỉ tiết và cần cả những tri
thức chuyên gia trong từng miền ứng dụng cụ thể
Ở bước huân luyện, đâu vào là các đặc trưng đã được trích xuât và áp
dụng các thuật toán học máy dé sinh ra một mô hình phân lớp Các mô hình
Trang 39phân lớp có thé là các luật phân lớp (nếu sử dung decision tree) hoặc là cácvector trọng số tương ứng với các đặc trưng được trích xuất (như trong các mô
hình logistic regression, SVM, hay mang Neural) Chúng ta có thé sử dụng mô
hình phân lớp đã được sinh ra dé phân lớp một câu hội thoại mới Với mỗi câuhội thoại đều phải thực hiện các bước tiền xử lý và trích xuất đặc trưng, sau đó
mô hình phân lớp mới được áp dụng trên dit liệu đã tiền xử lý dé xác định “điểm
số” cho từng ý định trong tập các ý định và đưa ra ý định có điểm số cao nhất
3.5.4.3 M6 hình dựa trên đối sánh nội dung
Mô hình phân lớp ý định dựa trên học máy thống kê yêu cầu dữ liệu huấnluyện bao gồm các cách diễn đạt khác nhau cho mỗi ý định Dữ liệu huấn luyệnnày thông thường được chuẩn bị một cách thủ công Bước chuẩn bị dữ liệu này
mắt rất nhiều thời gian và công sức, đặc biệt là trong các ứng dụng mà số lượng
ý định lớn Một cách tiếp cận khác có thê giảm chi phí chuẩn bị dir liệu huấnluyện là sử dụng mô hình đối sánh thông tin dựa vào nội dung của hội thoại Vớiphương pháp này, tập dit liệu chuẩn bị trước là các cặp câu hỏi - trả lời Với một
câu hội thoại, thuật toán đối sánh thông tin sẽ được áp dụng dé đối sánh với từng
câu hỏi trong tập dữ liệu Câu trả lời cho câu hỏi có nội dung gần giống nhất vớicâu đầu vào sẽ được lựa chọn Các phương pháp tính tương đồng văn bản sẽđược áp dung dé tìm ra giá trị tương đồng trong mỗi so sánh Một trong nhữngthách thức của mô hình đối sánh nội dung là việc xử lý những cách diễn đạt
khác nhau cho cùng một câu hỏi yêu cầu Vì số lượng mẫu cho mỗi ý định
không nhiều, mô hình đối sánh sẽ phải sử dụng các luật hoặc tài nguyên ngữnghĩa dé xử lý những biến thể khác nhau khi diễn đạt một từ, một cụm từ, hay
một ý trong câu.
3.5.4.4 Mô hình lai
Mô hình lai (hybrid model) là mô hình có thé kết hợp nhiều mô hình khácnhau như mô hình học máy, mô hình đối sánh nội dung và đặc biệt là các kỹthuật tiễn bộ trong AI Mô hình lai sẽ khắc phục được nhược điểm của tính đa
Trang 40nghĩa và phong phú trong diễn đạt của ngôn ngữ tự nhiên của phương pháp đốisánh nội dung, giảm chi phí cho chuẩn bị dữ liệu huấn luyện của học máy.
Trích xuất thông tin
Bên cạnh việc xác định ý định trong câu hội thoại của người dùng, chúng
ta cần trích xuất các thông tin cần thiết trong đó Các thông tin cần trích xuấttrong câu hội thoại thường là các thực thể, ví dụ như thời gian, địa chỉ, Thànhphần NLU của các hệ thống chatbot thường được tích hợp thành phần nhận dạngthực thê giúp phát hiện ra các thực thể có trong mỗi hội thoại Dữ liệu vào củamột module trích xuất thông tin là một câu hội thoại Module trích xuất thôngtin sẽ xác định vị trí của các thực thê trong câu (vi tri bắt đầu và kết thúc củathực thé), loại thực thé,
Cách tiếp cận phố biến cho bài toán trích xuất thông tin là mô hình hoábài toán thành bài toán gan nhãn chuỗi (sequence labeling) Đầu vào của bàitoán gán nhãn chuỗi là một dãy các từ và đầu ra là một dãy các nhãn tương ứng
với các từ đầu vào Các mô hình học máy sẽ được sử dụng để học một mô hình
gan nhãn từ một tập dữ liệu đầu vào bao gồm các cặp (x1 Xn, y1 ya), trong đó
X1 Xn là day các từ và yi ya là day các nhãn Thuật toán nhận dang thực thé
được sử dụng phố biến là mô hình CRF (Conditional Random Fields) Với dữ
liệu văn bản, mô hình CRF thường cho kết quả tốt hơn mô hình Hidden MarkovModels Có khá nhiều công cụ mã nguồn mở cai đặt mô hình CRF cho bài toángan nhãn chuỗi như CRF++, CRF Suite, Trong thời gian gần đây, các môhình mạng neural hồi quy (Recurrent Neural Networks) được áp dụng nhiều chobài toán gán nhãn chuỗi Mô hình mạng neural hồi quy đã chứng minh tính hiệuquả với đữ liệu dạng chuỗi vì nó mô hình mối quan hệ phụ thuộc giữa các từ
trong câu Ví dụ, mạng neural hồi quy được áp dụng cho bài toán gán nhãn từ
loại (POS Tagging), bài toán xác định thực thê có tên
Quản lý hội thoại
Trong quá trình trao đổi giữa người sử dụng và chatbot, chatbot sẽ cần