LỜI CAM ĐOAN
Tôi cam đoan luận văn này là công trình nghiên cứu của cá nhân tôi Tất cả số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác
Tác giả
Trang 3LỜI CẢM ƠN
Trong quá trình học tập, nghiên cứu và làm luận văn vừa qua, được sự giúp đỡ và hướng dẫn nhiệt tình của Thầy TS Đoàn Thanh Nghị - Trưởng Khoa Công nghệ thông tin trường Đại học An Giang (nay thuộc Đại học Quốc gia Thành phố Hỗ Chí
Minh), luận văn của tôi được hoàn thành theo hạn định Tôi xin bảy tỏ lòng biết ơn
sâu sắc tới Thầy TS Đoàn Thanh Nghị đã tận tình hướng dẫn và đành nhiễu thời gian quý báu của Thây cho tôi trong thời gian hướng dẫn luận văn cũng như Thầy đã truyền tải những kiến thức trong suốt thời gian học tập và nghiên cứu
Đồng thời, xin gửi lời cảm ơn đến Ban giám đốc Sở Thông tin và Truyền thông
An Giang, đã tạo mọi điều kiện thuận lợi để tơi hồn thành xong khóa học này Cảm ơn Quý Thay, Cô Khoa Công nghệ thông tin Trường Đại học Khoa học - Đại học Huế
Quý Thây, Cô đã tận tình truyền đạt những kiến thức và kinh nghiệm quý báu cho tôi và tập thể lớp Cao học Khoa học máy tính trong suốt quá trình học tập
Và cuối cùng xin cảm ơn gia đình, đồng nghiệp và các thành viên lớp Cao học
Khoa học máy tính, các bạn đã chia sẽ với tôi những niềm vui, tỉnh thần đoàn kết,
kiến thức, kinh nghiệm trong học tập và trong cuộc sống Trân trọng
Tác giả
Trần Trung Hiếu
Trang 4MỤC LỤC LỜI CAM ĐOAN HH HH HH gu ru g i LỜI CẢM ƠN HH ae ii 10 08 P0 on ': ,ÔỎ iil DANH MỤC CÁC BẢNG 222 222222122212221221221222222 are vi DANH MỤC CÁC HÌNH 5S 222212212211211221212112212121222 re vii DANH MUC THUAT NGU VIET TAT o.oo ceceeseeseceseeseeteeeeeteees viii
)09610001 1
1 Lý do chọn để tài - 5s 2s 22222211211121112111211121112111212121222222 re 1 2 Muerdich nghién: cttuyescsse:cccsnnnesrnnrencee nen EERE REE 2 3 Đối tượng nghiên cứu và phạm vi nghiên cứu -©2-2222222222222222222-e2 2 4 Cơ sở nghiên cứu khoa hỌC 12t 12112111121121 1112111111 tre 3 5 Phương pháp nghiên CỨU c1 3211 1212111 1E 1E tr Hye 6 6 Ý nghĩa thực tiễn của để tài 52 22 21222112111211211222222ee 6 Chuong 1: TONG QUAN VÈ CÔNG NGHỆ CHATBOT -¿ 7 1-1 Chatbot làuØÌ Thecesseensnneniriinneieistdatnkstsenk ri urE HHHH4 gì 8t-0000-T58590E1012EE10 0 öĐ-GES 1000 7 1.2 Lịch sử phát triển của Chatbot -©22222222122211221121112211211222222 2x0 7
1.3 Giới thiệu Microsoft bot framewOrK . - - c2 1112211112521 1 115211112 x ky 7
1.4 Chatbot hoạt động như "nã n .ằằ 9
Trang 51.13 Phương pháp đánh giá thực nghiệm : 2t Sssshrrerrerrrrersree 21 1.14 Tiêu kết chương Ì -2-©22222222212221222122121122121221221.2 re 21
Chương 2 - MƠ HÌNH HỆ THĨNG TRẢ LỜI TỰ ĐỌNG DỊCH VU CONG
TRỰC TUYỂN 22 22222222212221221122222212212222222222222 2 ee 22 2.1 Xây dựng phát biểu bài toàn các se Case 2- 2222222222212 22
2.1.1 Khái niệm mô hình - - 221112231 111521 111521111521 11 151111118211 k kg 22
2.1.2 Các sơ đồ trong UML 552222 22122212212212211211221212222 e6 22
2.1.3 Sơ đồ se Case 0 220 2212221221122111211211212121 re 22
2.1.4 Sơ đỗ lớp - 55 222 2212221222221122122122112222222222 are 23
2.2 Phân tích hiện trạng c2: 2: 211 121211 111 tt Hy Hà Hà tt 24
2.3 Phân tích yêu cầu hệ thống 2- 22 222225122512111211121112111211211211 xe 25 2.3.1 Yêu cầu chức năng -552 222 221122122122121121122112122 xe 25 2.3.2 Yêu cầu phi chức năng 2-2222 2212212221221212212212222 e6 26 2.3.3 Đặc tả qui trình c1 nhà Hà HH HH Hà Hay 26 2.3.4 Đặc tả yêu cầu chức năng 522222 2212221222122222122222 xe 32
2.3.5 Sơ db Use Case o.ccccccccccsccssssssssssssssessssesssisssssessisssieessiesssesssiessseesseeees 33 2.3.6 Dae ta se: BSTtoooorraaootitthttgNitGBIIGIINRBIRISUIGENEHNGEINNNUNGGERSUHGGIRNRHINGSEIR0dSaA 35
23.7 SO AB NSP ooo cece cece cseeseeeeeteetetetettettrstisetisttiesetteettteteseteseteseeses 39 2.3.8 Mô tả các bảng mô hinh trong co sO dit H6u eerie 40 2.4 Tiểu kết chương 2 22-222 22222512211221121112111211121112111211221122 2e 42 Chuong 3: CAI DAT VA THU NGHIEM MO HINH TRA LOI TU DONG 43
3,1„;Mô6 †ã.gữ liệu và thực:nEghiẾT:zszcssseeeneessenoieitesÐleDNGIEISDSIISEROWISSEQAISSeraR 43
3.1.1 Đặc tả dữ liỆu -52-: 22222212221 22112111211121112211211211 211 rae 43
3.1.2 Phương pháp thu thập ¿3 c3 323212 EEtxsrrrytyrerterrse 43
Trang 63.3.1 Máy chủ nh HH HH HH HH He 51 3.3.2 Chức năng của máy chủ: tiếp nhận tin nhắn, xử lý và trả về câu trả lời cho người dÙIEisszertssesssnieosieÐisgSiFESHBEEAEDEIEENIGRIEEEIGGNBIEISDRIIEESBRIAESSRSĐSAAgBRI 52 B.A Tramg quan tr oo e.- 52 3.5 Thiết kế giao din ooo coc cece see 22122212221211221122112212222222 re 53
3.5.1 Giao diện màn hình chính Chatbot 2 22221 E222 5E£2zzesszxres 53
35:7 Giao:diện;trang quản? ĂTÍzxszsereenstegooxthrbgitn0ibdg 80301039 38yt808380inen8 33
3.6 Cài đặt Bot với MS Visual SfudiO - 2 c2 1112211112221 1 1522111121112 x e2 54
Trang 7DANH MỤC CÁC BẢNG
Bang 1.1 Biéu diễn tập dữ liệu văn bản bằng mô hình túi từ - 222222222 18 Bang 2.1 Cac ky hiệu trong sơ đồ Use Case 2- 222222 122212221222221222 e0 22 Bảng 2.2 Các ký hiệu trong sơ đỒ lớp -©22-221222112212212112222122222 xe 24 Bảng 2.3 Yêu cầu nghiệp vụ đối với người đùng khách 222222 2222222222ee 25 Bang 2.4 Yéu cau nghiép vu déi voi ngwoi ding throng oe 25 Bang 2.5 Yéu cau nghiép vu d6i voi ngwoi quan thi cee ee cece cece eee 26 Bảng 2.6 se Case Đặt câu hỏi -.- S12: 211211111111 Hy Hà Ha He 35 Bang 2.7 Use Case Thêm lĩnh Vực 12: 211212112 12t rry Hy ray tret 35 Bang 2/8 Use Gase Sửa [Th VWGssessesssisotrsstbinfESEBBLEENEGRSSEIGGNBIEISDEIEEEDNIREEEGĐISSAgBA 36 Bảng 2.9 Use Case Xóa lĩnh Vực c2 21H nh HH Ha Hà Hà He 37 Bảng 2.11 Use Case Sửa người dùng - c St nhà HH Ha tre 38 Bang 2.12 Use Case Xóa người dÙng - c2 S232 E nrrrrHyrheret 39 Bang 2,13 Bang lin hyue-rever cece eceem erence 40 Bang 2.14 Banerchitiet lin hy Cwescscececsensmescemmeecemuen menue een eenemens 40 Bảng 2.15 Bảng tukhoa_ ÌÍV cc c1 t1 t1 11 11H Hy HH Hà Hà Hà Hệ 40 Bảng 2.16 Bảng thufUc 12:3 11 12 12111111 1111 HH HH HT HH HH Hệ 40 Bảng 2.17 Bảng chitlef_ thufuG 1 1 212121 Hà HH Hà Hà Ha Hà tet 41 Bảng 2:18 Bằng thufueDhUs:sezssssersissensirtsitnitigSiiDERGRSSSVRGRHDSSSRNttSGionN(toszmual 41 Bang 2.19 Ban guserss.ccsinissurnisee nessa canine een nneenneneevernn nomena’ 41
Bang 3.1 Cơ sở dữ liệu thu thập thuộc lĩnh vực Báo chí òc các: 46 Bảng 3.2 Cơ sở dữ liệu thu thập thuộc lĩnh vực Xuất bản s n n2 nen ree 46 Bảng 3.3 Cơ sở dữ liệu thu thập thuộc lĩnh vực Phát thanh truyền hình 47 Bảng 3.4 Cơ sở dữ liệu thu thập thuộc lĩnh vực Bưu chính :sc+s+5: 48 Bảng 3.5 Câu hỏi mẫu thuộc lĩnh vực Bưu chính S2 2121 5E15151152125251 2552 48 Bảng 3.6 Câu hỏi mẫu thuộc lĩnh vực Báo chí -. is s E2121515115111515515151 5x2 49
Bảng 3.7 Câu hỏi mẫu thuộc thủ tục Cho phép họp báo (trong nước) 50
Trang 8DANH MỤC CÁC HÌNH
Tình: 1.1 Tioat:đơng:của: ChatbdĂccs:cecccsesreoeiessesiinieiinioBidrstindinsSA201118 221011 01621613 8100800 9
Hình1.2 Sơ đồ hoạt động Wit.ai 0222 2222221222221 ee 10 Hinh 2.3 Qui trình xóa lĩnh VựC 2 2 211201 221121121 1121111111111 8111k HH ra 28 Hình 2.4 Qui trình thêm thủ tục về thông tin - 22222 222221122122122122 22 ee 28 Hình 2.5 Qui trình sửa thủ tục về thông tin -2-222222222212221221222122.22 e6 29 Hình 2.6 Qui trình xóa thủ tục về thông tin - 522222 22122212221222212222 e6 30 Hình 2.7 Qui trình thêm thông tin người dùng .- c5: cc sec sisierrererrsres 31 Hình 2.8 Qui trình sửa thông tin người dùng - ccc St ssehrerrerrrrreree 31 Hình 2.9 Qui trình xóa thông tin người dùng St tnhrrhkerrerrrrrree 32 Hình 2.10 Sơ đồ chức năng - 22222 221222112211221211211211211212222 2e 33 Hình 2.11 Sơ đồ Use Case tổng quát - 22222 2222211221122112212212112112222 e6 33 Hinh 2.12 So dé Use Case quản lý lĩnh vực 22222: 2222212221222222222.2 xe 34 Hình 2.13 So dé Use Case quản lý thủ tục -22- 222 22222212221222.22222 e6 Hình 2.14 Sơ đồ Use Case quản lý người đùng
Bảng 2 l0 1Jse Case Thêm:ngưỡi:đÙngs::csccseccniseiiinnenenieniasiinon ii niasegtnriei 37 Hình 2.15 Sơ đồ lớp -©22- 222 2212212211221121121121121121212221222 2e 39
Hình 3.1 Giao diện ChafbO 2G 2221122211115211 1155111111111 1221 1112011111111 vxy 53
Hình 3.2 Giao diện trang đăng nhập - 5 2 t2 32t *2E re rererret 33 HHìỉnh:3:3 Giao điện trang:ChỮ sessseasseissasitfieHÐitESEEBIEEMEGBSEEIGGNBIEISDEIEEEBRIRESESĐASSAgBRI 34 Hình 3.4 Giao diện trang quản lý lĩnh VỰC - c2: 2S 2x nhe 34 Hình 3.5 Giao diện trang thêm - 2 12121121121 21121121 E11 E1 E1 HH tiệt 34 Hình 3.6 Cài đặt Bot c2: n1 55 Hình 3.7 Cài đặt Bot 2:2: n1 re 55
Trang 9DANH MỤC THUẬT NGỮ VIẾT TẮT STT Tên viết tắt Tên đầy đủ 1 AI Artificial Intelligence
2 AIML Artificial Intelligence Markup Language 3 CNTT Công nghệ thông tin
4 CSDL Cơ sở dữ liệu 5 K-NN K-Nearest-Neighbor
6 NB Naive Bayes
7 NLP Natural Language Processing 8 NLU Natural Language Understanding
9 SQL Structure Query Language
10 Sở TT&TT Sở Thông tin và Truyền thông
Trang 10
MỞ ĐẦU
1 LÝ DO CHỌN ĐÈ TÀI
Trong những năm gần đây, khoa học kỹ thuật đã đạt được nhiều thành tựu
nỗi bật, đặc biệt là ngành Công nghệ thông tin (CNTT) với nhiều ứng dụng vào các lĩnh vực trong đời sống của con người, từ lao động sản xuất đến các hoạt động kinh
tế, chính trị, giáo dục, xã hội Hiện nay, CNTTT là một trong những ngành mũi nhọn
và được ưu tiên hàng đầu ở nước ta Song song với việc ứng dụng CNTT vào phát
triển kinh tế, xã hội thì Chính phủ luôn quan tâm việc ứng dụng CNTTT vào các hoạt
động quản lý hành chính nhà nước, hướng đến xây dựng một Chính phú hiện đại và hiệu quả
Thực tế hiện nay, các thiết bị di động, máy tính, mạng Internet đã được người
dân sử đụng rộng rãi qua giao tiếp hàng ngày như tra cứu thông tin, tìm kiếm thông
tin, các dịch vụ trực tuyến Với mong muốn, nâng cao chất lượng, hiệu quả cung cấp
dịch vụ công của các cơ quan nhà nước, đảm bảo phục vụ người dân và doanh nghiệp ngày càng tốt hơn, hướng tới số hóa hồ sơ, giấy tờ giấy, chuyên hoạt động sử dụng
hồ sơ, văn bản giấy, giao dịch trực tiếp sang hoạt động sử dụng hồ sơ, văn bản điện tử, giao dịch điện tử và cung cấp dịch vụ công không phụ thuộc vào thời gian, địa
giới hành chính; thúc đây cải cách hành chính, nhất là cải cách thủ tục hành chính thông qua việc ứng dụng công nghệ thông tin; cải thiện vị trí của Việt Nam về chỉ số dịch vụ công trực tuyến trong chỉ số phát triển Chính phủ điện tử theo xếp hạng của Liên hợp quốc
Trang 11Trong luận văn cao học này, tôi đã nghiên cứu ứng dụng thực tế "Xây dựng hệ thống trả lời tự động các Dịch vụ công trực tuyến sử dụng công nghệ
Chatbot"
Hiện nay, tỉnh An Giang có 654 thủ tục hành chính Dịch vụ công trực tuyến mức 3 và mức 4 Do đó với thời gian có hạn, tôi xin thực hiện một thủ tục hành chính
tại Sở Thông tin và Truyền thông 2 MỤC ĐÍCH NGHIÊN CỨU
- Mục tiêu chung: nghiên cứu tính khả thị trong việc ứng dụng thành tựu của ngành khoa học máy tính vào lĩnh vực thủ tục hành chính theo công nghệ xử lý ngôn ngữ tự
nhiên NLP để trả lời tự động các nội dung của người dân khi thực hiện thủ tục hành
chính tại tỉnh An Giang
- Mục tiêu cụ thể:
" Xây dựng ứng dụng tự động trả lời các thủ tục hành chính công
" Xây dựng CSDL bộ câu hỏi liên quan thủ tục hành chính công của Sở Thông tin và Truyền thông
“_ Xây dựng Cổng Dịch vụ công tỉnh An Giang tại một địa chỉ duy nhất trên
mạng dé théng nhất việc cung cấp thông tin, hỗ trợ tổ chức, cá nhân thực hiện, giám sát, đánh giá thủ tục hành chính, dịch vụ công trực tuyến và tiếp nhận,
xử lý phản ánh, kiến nghị
3 DOI TUONG NGHIÊN CỨU VÀ PHẠM VI NGHIÊN CỨU
- Đối tượng nghiên cứu:
“ Mô hình thực hiện dịch vụ công trực tuyến liên quan đến xử lý ngôn ngữ tự nhiên NLP
“ Bộ dữ liệu thủ tục hành chính lĩnh vực Báo chí - xuất bản tại Sở thông tin và Truyền thông
" NLP trong Chatbot
Trang 12động, Chatbot, xử lý ngôn ngữ tự nhiên và nghiên cứu thực tế vào 01 thủ tục hành
chính thuộc lĩnh vực Báo chí - xuất bản do Sở Thông tin và Truyền thông phụ trách 4 CƠ SỞ NGHIÊN CỨU KHOA HỌC
Cơ sở nghiên cứu khoa học ngoài nước:
Trên thế giới đã có nhiễu tài liệu liên quan đến phân tích ngữ nghĩa như: Phân lớp tự động văn ban cua S Fabrizio [12] thuc hién gan nhãn cho từng văn bản theo chủ đề đã được định nghĩa trước dựa vào nội dung của văn bản; truy hỗi thông tin của C.D Manning, P Raghavan and H Schiitze [7], hoi dap tu dong, Chatbot va xu ly ngôn ngữ tự nhiên cua D Jurafsky and J-H Martin [8]
Cach tiép cận phân lớp tự động van ban cua S Dumais, J Platt, D Heckerman
and M Sahami [11], D-D Lewis and W-A Gale [12] biểu điễn văn bản bằng mô hình túi từ (Bag-of-Words — BoW) và huấn luyện mô hình phân lớp của X Wu and
V Kumar [13]
Trong công bố của D Jurafsky and J-H Martin [§], lĩnh vực hỏi đáp va Chatbot nghiên cứu các mô hình tương tác giữa máy tính với người dùng bằng các đoạn đối thoại thông minh tự động sử dụng ngôn ngữ tự nhiên Hỏi đáp và Chatbot ngày cảng trở nên phô biến và được xây đựng như một trợ lý ảo trong rất nhiều lĩnh vực và nhiều
khía cạnh trong cuộc sống như là trợ lý sức khỏe, trợ lý giáo dục, trợ lý bảo tàng Tiếp cận dựa trên tập <câu hỏi, trả lời> và các luật đã tạo sẵn
Phương pháp phổ biến trong việc xây dựng các ứng dụng cho hỏi đáp của
Chatbot là tạo các bộ tập câu dữ liệu đầu vào được dự đoán trước và câu trả lời tương
ứng với đữ liệu đầu vào Các câu giao tiếp đối thoại của người dùng sẽ được so sánh
với các tập dữ liệu mặc định để tìm ra mẫu câu trả lời phù hợp nhất
Một trong những cách tạo ra các tập câu hỏi trả lời là dựa trên AIML — một ngôn
ngữ giống như XML AIML cho phép hỏi đáp, Chatbot tạo ra các chủ để và các tập
Trang 13Để đưa ra chính sách phù hợp hơn với người dân, nhiều quốc gia trên thế giới đã có những cách làm đề thu hút người dân tham gia vào quá trình ra quyết định Ví dụ, Sở cảnh sát Thành phố New York đã áp dụng các nền tảng crowdsourcing cho phép người dân gửi ý tưởng và thông qua các phương tiện truyền thông xã hội dé giao lưu với người dân Chatbot là một công cụ khác dé thu hút sự tham gia của người dân
vào hoạt động của Chính phủ Bằng cách thực hiện các cuộc điều tra, các thành phố
có thể thu thập ý kiến phản hôi trực tiếp của người dân thông qua tính năng yêu cầu đặt câu hỏi của Chatbot Ví dụ, thay vì gọi điện đến văn phòng thành phố để đưa ra các vướng mắc, người dân có thể phản hồi ý kiến trực tiếp thông qua việc tích hợp Chatbot vào trang web của thành phố hoặc trang mạng xã hội
Tại Anh và Mỹ: Theo báo cáo của C Bousquet [6], H Mehr [10], Chatbot có thê được ứng dụng trong dịch vụ công và Chính phủ điện tử, giúp cải thiện giao tiếp của người dân với địch vụ công tại Vương Quốc Anh và Mỹ Tại London của Anh hay Boston của Mỹ, người dân đăng ký xin trợ cấp nhà thường phải hỏi và làm thủ
tục rất phức tạp, dễ sai sót Để hạn chế sai sót đó, người dân có thể hỏi đáp thủ tục và
được hướng dẫn bởi Chatbot Vương Quốc Anh cũng sử dụng Chatbot trong lĩnh vực y tế công cộng Khởi động Babylon Health đã bắt đầu một cuộc thử nghiệm kéo dài 6 tháng từ tháng 01/2017, sử dụng Chatbot để thay thế dịch vụ của Sở Y tế, nhờ ứng
dụng dành cho điện thoại dị động cua Babylon, người dân có thể gọi đến Chatbot để
được tư vấn về những vấn đề y tế không khẩn cấp Thay vì nói chuyện với các nhà cung cấp dịch vụ có trình độ về y tế chưa vững, người đân có thê nhắn tin voi Chatbot đề kiểm tra các triệu chứng ngay lập tức và nhận được lời khuyên cùng các biện pháp phòng tránh phù hợp Chatbot được xây dựng với mục tiêu giúp cho việc tư vấn, chăm sóc các yêu cầu y tế trở nên đơn giản hơn, đồng thời cho phép người dân tránh được các cuộc hẹn khám bác sĩ không cân thiết Đối với các thành phố không có Sở Y tế như ở Mỹ, việc xây dựng và ứng dụng các Chatbot vào nền y tế công cộng có thể làm
đơn giản hoá các dịch vụ Ví dụ, nếu một người dân lo sợ bị phơi nhiễm với một căn
bệnh truyền nhiễm thì người dân đó có thê nhắn tin đến một Chatbot trên trang web về sức khỏe cộng đồng của thành phố để trình bày vẻ tình trạng, triệu chứng và sẽ nhận được những hướng dẫn phù hợp Hầu hết các cuộc gọi đến đề yêu cầu thông tin
Trang 14thường đơn giản như câu hỏi về giờ làm việc của địch vụ công, những con đường nào sẽ đóng cửa trong một sự kiện hoặc một số thông tin khác Đây là những câu hỏi mà Chatbot dé dang tra lời ngay qua điện thoại hoặc qua tin nhắn Bằng việc xử lý các yêu cầu đơn giản, Chatbot giúp thành phố có thể tập trung nhân viên để xử lý các yêu cầu phức tạp hơn của công dân nhằm cung cấp dịch vụ tốt hơn và nhanh hơn
Tai Singapore: Thang 11/2016, nhóm nghiên cứu của San Francisco and Singapore- based AI đã xây dựng Chatbot dựa trên nền tảng xử lý ngôn ngữ tự nhiên và trí tuệ nhân tạo, cho phép người dân có thê kết nối dé dang voi dich vụ công của nước này
Cơ sở nghiên cứu khoa học rong nước:
Công trình nghiên cứu của Nguyễn Thanh Tuấn [3] đề xuất xây dựng hệ thống hỏi đáp tự động cho câu hỏi định nghĩa trong Y khoa Hệ thống hỏi đáp tự động cho
câu hỏi định nghĩa có 3 thành phân: phân tích câu hỏi, tìm kiếm tài liệu và trích chọn
câu trả lời Thành phần phân tích câu hỏi dựa vào cú pháp ngữ pháp của câu hỏi được định nghĩa trong ngôn ngữ tiếng Anh đề phân tích và trích ra các thuật ngữ trong câu hỏi Thành phần tìm kiếm tài liệu có liên quan đến thuật ngữ cần định nghĩa và trả về một tập các tài liệu có độ liên quan được sắp xếp giảm dần với máy học SVM Thành phan trích chọn câu trả lời là quá trình xử lý dựa trên kết quả tìm kiếm đề trích ra câu trả lời có độ liên quan cao nhất với câu hỏi trong tập kết quả tìm kiếm để trả lời câu hỏi người dùng
Thành phố Đà Nẵng đã đưa Chatbot vào trong du lịch với tên gọi Ứng dung Chatbot “Danang Fantasticity” Chatbot thuong xuyén duoc cập nhật thông tin du
lich day du bao gồm các chuyên mục: Điểm tham quan, sự kiện, trải nghiệm, nơi lưu
trú, tình hình thời tiết tại Đà Nẵng trong vòng 3 ngày và những thông tin du lich can
biết (nhà vệ sinh công cộng, vị trí các cây ATM, số điện thoại đường đây nóng )
Bên cạnh đó, tổng đài 1022 của Cổng dịch vụ công trực tuyến Đà Nẵng trực tiếp trả lời, giải đáp thủ tục liên quan đến người dân và doanh nghiệp
Trang 15từ ghép (đa âm tiết) Điều này gây khó khăn cho việc tách từ tự động một cách chính xác, ảnh hưởng đến kết quả của các bài toán phân tích đữ liệu văn bản
5 PHƯƠNG PHÁP NGHIÊN CỨU
- Tìm hiểu quy trình nghiệp vụ tại bộ phận một cửa liên quan đến thủ tục hành chính thuộc lĩnh vực Thông tin Báo chí - xuất bản
- Tổng hợp các câu hỏi thường gặp của người dân khi thực hiện thủ tục hành
chính tại bộ phận một cửa
- Nghiên cứu các tài liệu có liên quan đến lĩnh vực nghiên cứu phân lớp tự
động văn bản, hỏi dap tự động, Chatbot, xử lý ngôn ngữ tự nhiên và các tài liệu có
liên quan đồng thời để ra những cải tiến cho phù hợp với ứng đụng mà luận văn đang hướng tới và định hướng phát triển trong tương lai
6 Y NGHIA THUC TIEN CUA DE TAI
Đề tài có tính ứng dụng cao Ngoài việc triển khai ứng dụng thực tế cụ thé tại Công thông tin điện tử Sở Thông tin và Truyền thông An Giang, tập trung vào thủ tục hành chính của Sở Thông tin và Truyền thông, thì nó có thể triển khai
thành một số ứng dụng khác như nhận dạng giọng nói để thực hiện các thủ tục hành chính của tỉnh
Chatbot chỉ là ứng dụng nhỏ của xử lý ngôn ngữ tự nhiên Luận văn có ý nghĩa thực tiễn lớn phù hợp thực tế triển khai đúng theo Thông tư 01/2018/TT-VPCP ngày 23/11/2018 về Hướng dẫn thi hành một số quy định của Nghị định số 61/2018/ND-
CP ngày 23 tháng 4 năm 2018 của Chính phủ về thực hiện cơ chế một cửa, một cửa
liên thông trong giải quyết thủ tục hành chính và từ đó có thể nghiên cứu đề phát triển tích hợp sâu hơn về xử lý ngôn ngữ tự nhiên như xử lý nhận dạng giọng nói và ứng
Trang 16Chương 1: TONG QUAN VÈ CÔNG NGHỆ CHATBOT
1.1 CHATBOT LÀ GÌ?
Chatbot là một chương trình được tạo ra từ máy tính, là một công cụ có thể
giao tiếp, tương tác với con người thông qua một trí tuệ nhân tạo đã được lập trình sin Trong đa số các trường hợp thì Chatbot được sử dụng qua ứng đụng nhắn tin dé nói chuyện với con người Nó có khả năng trả lời những câu hỏi mà người dùng đưa ra, thông thường lúc ban dau thì nó sẽ đựa vào những từ khóa trong câu hỏi của người dùng để trả lời và dần dần nó sẽ học hỏi được thêm từ trải nghiệm người dùng và làm những cuộc trò chuyện tiếp xúc với con người trở nên cá nhân hơn, giống thật hơn Chatbot thường được chia thành 2 loại theo cách mà chúng tương tác với người dùng: âm thanh (Audiofory) và tin nhắn (Textual)
1.2 LICH SU PHAT TRIEN CUA CHATBOT
Chatbot đầu tiên ra đời năm 1966, tên là Eliza, va la mét chương trình máy
tinh cla Joseph Weizenbaum (Vién Công nghệ Massachusetts, Mỹ) Thực ra Eliza là nỗ lực của Joseph nhằm tạo ra một liệu pháp điều trị tâm lý mới bằng máy tính Đây là chương trình giả làm bác sĩ tâm lý, có thê trả lời những câu hỏi đơn giản Nếu câu nào không hiểu, máy sẽ lẫy một từ khóa trong câu của bệnh nhân và bảo họ giải thích
thêm Mặc dù có sự hạn chế về nhiều mặt, Eliza vẫn được xem là tiền đề để có thể
phát triển Chafbot như ngày nay
Thời gian gần đây, Chatbot đang trỗi dậy mạnh mẽ Nếu năm 2016, mọi người vẫn còn khá bỡ ngỡ với Chatbot thì nay nó đã thật sự gây được tiếng vang và tạo nên một cơn sốt công nghệ chưa từng có trong kỷ nguyên công nghệ 4.0 và năm 2018,
hứa hẹn sẽ là một sự bức phá mạnh mẽ của Chatbot
1.3 GIỚI THIỆU MICROSOFT BOT FRAMEWORK
Luận văn Chatbot của tôi sử dụng nền tảng Microsoft Bot Framework và kết hợp sử dụng SQL Server để thiết kế cơ sở dữ liệu, đồng thời sử dụng phần mềm
Trang 17Microsoft Bot Framework là một nền tảng để xây dựng, kết nối, thử nghiệm
và triển khai những Chatbot mạnh mẽ và thông minh Microsoft Bot Framework bao gôm các phan sau:
- Bot Builder SDK: Bộ công cụ được chia sé trén GitHub dudi dạng mã nguồn
mở theo giấy phép MIT này sẽ cung cấp tất cả mọi thứ bạn cần đề xây dựng Chatbot bằng Node.js, NET hay REST API
- Bot Framework Developer Portal: Cho phép bạn kết nối Chatbot của mình tới Skype, Slack, Facebook Messenger, những kênh giao tiếp phổ biến khác Đơn giản chỉ việc đăng ký Bot, chọn kênh giao tiếp và đưa lên Bot Directory
- Bot Emulator: là một ứng đụng cho phép các nhà phát triển Bot kiểm tra
và gỡ lỗi chương trình của họ, cục bộ hoặc từ xa Với Bot Framework Emulator, bạn có thể trò chuyện với Bot của mình và kiểm tra các thông điệp mà Bot của bạn
gửi và nhận Bot Framework Emulator hiển thị các tin nhắn như khi người dùng
chúng xuất hiện trên giao diện web chat và ghi lại các hoạt động khi bạn trao đổi
với Bot
- Bot Connector Service: có service sẽ giúp bạn kết nối được với Bot của bạn
thông qua việc thiết lập các kênh giao tiếp channel
- Bot Directory: là một thư mục cộng đồng chứa tất cả những Bot đã được kiêm duyệt đăng ký thông qua Developer Portal và người dùng có thể trải nghiệm, khám phá những Bot có sẵn hoặc bổ sung thêm Bot mà mình phát triển vào Bot Directory
SQL Server cũng tương tự như các hệ quan tri co so dit liéu khac (Postgres,
Trang 181.4 CHATBOT HOẠT ĐỘNG NHƯ THÉ NÀO?
Chatbot tương tác với con người bằng âm thanh hoặc văn bản và qua các platform Xem Hinh 1.1
USER MESSAGING PLATFORM BOT
Show me lastest Show me lastest J TRANSLATOR product product C request PROCESSOR DATABASE products Product: ABC Price: 105 Product ABC Price 105 RESPONDENT
Hình 1.1 Hoạt động của Chatbot
Translator: Dịch yêu cầu của user, giúp máy tính hiểu được yêu cầu mình cần thực hiện quyết định việc Chatbot có thông minh hay không
Processor: Xử lý yêu cầu, thành phần này giúp khả năng của Chatbot không
bị giới hạn, máy tính làm được gì thì Chatbot cũng làm được như vậy
Respondent: Nhan output va đóng gói gửi trả lại kết quả cho người dùng 1.5 BOT FRAMEWORK EMULATOR
Bot Framework Emulator la mét tng dụng cho phép các nhà phát triển
Bot kiểm tra và gỡ lỗi chương trình của họ, cục bộ hoặc từ xa Với Bot Framework Emulator, bạn có thể trò chuyện với Bot của mình và kiểm tra các thông điệp mà Bot của bạn gửi và nhận Bot Framework Emulator hiển thị các
tin nhắn khi người dùng xuất hiện trên giao diện web chat và ghi lại các hoạt
Trang 191.6 WIT.AI
Witai (đã sáp nhập với Facebook) là một nên tảng ngôn ngữ tự nhiên cho các nhà phát triển Wit.ai cung cấp AI như một dịch vụ Ngoài việc sử dụng nó như là một nền tảng để xây dựng Chatbot, các nhà phát triển cũng có thể sử đụng nó để
xây dựng các ứng dụng cho thiết bị di động, các hệ thống tự động hóa trong nhà,
thiết bị đeo và robot Wit.ai cho biết hãng hiện đang có 45.000 nhà phát triển từ khắp nơi trên thế giới
So với các nền tang khac, wit.ai nổi bật hơn nhờ việc đã hỗ trợ 77 ngôn ngữ,
trong đó có tiếng Việt, ngoài ra đây cũng là nền tảng hoàn toàn miễn phí và không có giới hạn sử dụng Hiện tại, witai chỉ hỗ trợ việc phân tích cú pháp ngữ nghĩa (Semantic parsing), tuy nhiên kết quả trả về sau phân tích đã chứa tất cả thông tin cần thiết để Bot hiểu được yêu cầu của người đùng Những yếu tố trên là lý do tôi chon wit.ai để tích hợp vào luận văn nghiên cứu - Sơ đồ hoạt động co Sesanesensets C4 @ = oO C4 wit.ai natural language request Hình1.2 Sơ đồ hoạt động Wit.ai - Kỹ thuật
Nhu da dé cập bên trén, hién tai, wit.ai chi lam việc phân tích cú pháp ngữ
nghia (Semantic parsing), phân tích cú pháp ngữ nghĩa là việc chuyển ngôn ngữ tự nhiên thành dạng mà máy tính có thể hiểu được, trong trường hợp này là các intent
Trang 21Kết quả trên chứa tất cả thông tin cần thiết dé Bot hiểu được yêu cầu người
dùng, dựa vao intent “hoilinhvuc” Bot sé hiéu người dùng cần hỏi về các lĩnh vực,
sau đó Bot sẽ đựa vào các entity khác để làm rõ lĩnh vực cần hỏi Tuy nhiên vẫn có vài trường hợp wit.ai không thê phân tích chính xác Đề giải quyết vấn đề đó, wit.ai sẽ cung cấp cho người dùng tính năng huấn luyện Bot Với tất cả những dữ liệu trên, chắc chắn Bot sẽ đạt được độ chính xác ngày càng cao hơn
- Kết nối và sử dụng
Hiện nay, Microsoft Bot Framework chưa chính thức hỗ trợ kết nối đến wit.ai,
tuy nhiên chúng ta vẫn có thê kết nối đến wit.ai thông qua các package được chia sẻ trên NuGet Có nhiều package đã được chia sẻ, nổi bật là các gói sau:
- Witsharp: chwa thể gửi tin nhắn tới wit
- Wit.ai.net: nhận về ít dữ liệu, hơn nữa dùng action để xác định hành động
của Bot, tuy nhiên tính năng này đã lượt bỏ khỏi wit, nên không còn dùng được nữa - BotBuilder-Wit.ai: dung cac action, tuong tu wit.ai.net
- Witai.dotnet.api: hỗ trợ nhận về hầu hết dữ liệu, thuận tiện cho việc nâng
cấp sau này Đây cũng là lý do tôi chon witai.dotnet.api dé phát triển Chatbot
Witai.dotnet.api cung cấp hau hết tính năng của wit.ai Đề sử dụng, trước hết
ta cần tạo một thể hiện của class WitAiApi
WitAiApi api = new WitAiApi();
Mọi phương thức duge thé hién boi WitAiApi déu co mét request model 1a input va két qua tra vé la response model
Request model mở rộng dựa trén request model BaseWitRequest, phai duoc cung cấp AccessToken khi được gọi để xác nhận yêu cầu
Response model mo rong dựa trén response model BaseWitResponse, co cac thuộc tính IsSuccessful và ErrorMessage thông báo yêu cầu thành công hay thất bại
Trang 221.7 CÁC KỸ THUẬT PHƯƠNG PHÁP SỬ DỤNG 1.7.1 Xử lý ngôn ngữ tự nhiên (NLP)
1.711 Khái niệm
Xử lý ngôn ngữ tự nhiên (NLP) ra đời từ những năm 1940, là một nhánh của trí tuệ nhân tạo, tập trung vào việc nghiên cứu sự tương tác giữa máy tính và ngôn ngữ tự nhiên của con người Mục tiêu của lĩnh vực này là giúp máy tính hiéu và thực hiện hiệu quả những nhiệm vụ liên quan đến ngôn ngữ của con người như: tương tác giữa người và máy, cải thiện hiệu quả giao tiếp giữa con người với con người, hoặc đơn giản là nâng cao hiệu quả xử lý văn bản và lời nói
1.7.1.2 Những bài toán cơ bản
(Dién, 2018) (Natural Language Generation — NLG) Trong đó, hiểu ngôn ngữ tự nhiên (NLU) bao gồm 4 bước chính sau đây:
- Phân tích hình vị: là sự nhận biết, phân tích, và miêu tả cầu trúc của những
hình vị trong một ngôn ngữ cho trước và các đơn vị ngôn ngữ khác, như từ gốc, biên
từ, phụ tố, từ loại, Có hai loại bài toán điển hình trong phần này, bao gồm bài toán
tách tử (word segmentation) và gán nhãn từ loại (POS)
- Phân tích cú pháp: là quy trình phân tích một chuỗi các biểu tượng, ở dạng ngôn ngữ tự nhiên hoặc ngôn ngữ máy tính, tuân theo văn phạm hình thức Văn phạm hình thức thường dùng trong phân tích cú pháp của ngôn ngữ tự nhiên bao gồm Văn phạm phi ngữ cảnh (Context-free grammar — CFG), Văn phạm danh mục két néi (Combinatory categorial grammar — CCG) va Van phạm phụ thuộc (Dependency grammar — DG) Đầu vào của quá trình phân tích là một câu gồm một
chuỗi từ và nhãn từ loại của chúng, và đầu ra là một cây phân tích thể hiện cấu trúc
cú pháp của câu đó Các thuật toán phân tích cú pháp phổ biến bao gồm CKY,
Earley, Chart, và GLR
- Phân tích ngữ nghĩa: là quá trình liên hệ cấu trúc ngữ nghĩa, từ cấp độ cụm
từ, mệnh đề, câu và đoạn đến cấp độ toàn bài viết, với ý nghĩa độc lập của chúng Nói
cách khác, việc này nhằm tìm ra ngữ nghĩa của đầu vào ngôn từ Phân tích ngữ nghĩa
Trang 23bao gồm hai mức độ: Ngữ nghĩa từ vựng biểu hiện các ý nghĩa của những từ thành phân, và phân biệt nghĩa của từ; Ngữ nghĩa thành phần liên quan đến cách thức các từ liên kết để hình thành những nghĩa rộng hơn
- Phân tích diễn ngôn: ngữ đụng học là môn nghiên cứu về mối quan hệ giữa ngôn ngữ và ngữ cảnh sử dụng (context-ofuse) Ngữ cảnh sử dụng bao gồm danh tính của người hoặc vật, và vì thế ngữ dụng học bao gồm những nghiên cứu về cách ngôn ngữ được đùng để đề cập (hoặc tái đề cập) tới người hoặc vật Ngữ cảnh sử dụng bao gồm ngữ cảnh diễn ngôn, vì vậy ngữ dụng học cũng bao gồm những nghiên cứu về cách thức cấu tạo nên diễn ngôn, và cách người nghe hiểu người đang đối
thoại với mình
Khia cạnh thứ hai của NLP là sinh ngôn ngữ tự nhiên (NLG) Đây là một nhiệm
vụ trong quá trình xử ly ngôn ngữ tự nhiên trong việc sinh ra ngôn ngữ tự nhiên từ
một hệ thống máy biểu diễn như một cơ sở tri thức hoặc một dạng biểu diễn logic
NLG đóng vai trò quan trọng trong rất nhiều ứng dụng NLP, bao gồm sinh hội thoại, tương tác người — máy, dịch thuật máy và tóm tắt văn bản tự động
1.7.2 Một số ứng dụng của NLP
- Truy xuất thông tin (Information Retrieval — IR) có nhiệm vụ tìm các tài liệu
dưới dạng không có cấu trúc (thường là văn bản) đáp ứng nhu cầu về thông tin từ những nguồn tổng hợp lớn Những hệ thống truy xuất thông tin phổ biến nhất bao gồm các công cụ tìm kiếm như Google, Yahoo hoặc Bing search Những công cụ này cho phép tiếp nhận một câu truy vấn dưới dạng ngôn ngữ tự nhiên làm đầu vào và
cho ra một danh sách các tài liệu được sắp xếp theo mức độ phù hợp
- Trả lời câu hỏi (QA) có khả năng tự động trả lời câu hỏi của con người ở dạng ngôn ngữ tự nhiên bằng cách truy xuất thông tin từ một tập hợp tài liệu Một hệ thống QA đặc trưng thường bao gồm ba mô đun: Mô đun xử lý truy vấn (Query Processing Module) — tiến hành phân loại câu hỏi và mở rộng truy vấn; Mô đun xử ly tai ligu (Document Processing Module) — tién hành truy xuất thông tin đề tìm ra tài
liệu thích hợp; và Mô hình xử lý câu trả lời (Answer Processing Module) — trích chọn câu trả lời từ tài liệu đã được truy xuẤt
Trang 24- Dịch máy (Machine translation — MT) là việc sử dụng máy tính để tự động
hóa một phần hoặc toàn bộ quá trình dịch từ ngôn ngữ này sang ngôn ngữ khác Các phương pháp dịch máy phổ biến bao gồm dịch máy dựa trên ví dụ (example-based
machine translation — EBMT), dịch máy dựa trên luật (rule-based machine translation
~ RBMT), và dịch máy thống kê (statistical machine translation — SMT) Nhitng nghiên cứu gần đây tập trung vào dịch máy thống kê bởi nhiều ưu điểm của nó so với
các phương pháp khác Dịch dựa trên từ (word-based translation), dịch dựa trên cú phap (syntax-based translation), dich dua trén cụm từ (phrase-based translation), và
dich đựa trên cụm từ phân cấp (hierarchical phrase-based translation) là những mô hình địch máy thống kê thành công nhất
1.7.3 NLP trong Chatbot
1.7.3.1 Phân loại ý định người dùng
Thông thường, người dùng thường truy cập hệ thống Chatbot với mong muốn
hệ thống sẽ đưa ra những hành động trợ giúp mình về một vấn dé nao do Vi du,
người dùng của hệ thống Chatbot trả lời trực tuyến một cửa có thể đưa ra câu hỏi về
một thủ tục hành chính khi bắt đầu cuộc hội thoại Đề có thể đưa ra hỗ trợ một cách chính xác, Chatbot cần xác định được ý dinh (intent) cua người dùng Việc xác định
ý định của người đùng sẽ quyết định hội thoại tiếp theo giữa người và Chatbot sẽ diễn ra như thế nào Vì thế, nếu xác định sai ý định người đùng, Chatbot sẽ đưa ra những phản hồi không đúng, không hợp ngữ cảnh Vì vậy, bài toán xác định ý định người dùng đóng vai trò rất quan trọng trong hệ thống Chatbot
Đối với miền ứng dụng đóng, chúng ta có thê giới hạn rằng số lượng ý định của người dùng nằm trong một tập hữu hạn những ý định đã được định nghĩa sẵn, có liên quan đến những nghiệp vụ mà Chatbot có thể hỗ trợ Với giới hạn này, bài toán xác định ý định người đùng có thể quy về bài toán phân lớp văn bản 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
Để xây dựng một mô hình phân lớp intent, 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 intent Ví dụ, cùn ø một mục đích
hỏi về lĩnh vực báo chí, người dùng có thể dùng những cách diễn đạt sau:
Trang 25s Lĩnh vực báo chỉ có bao nhiêu thủ tục ?
« Lĩnh vực báo chí gồm những thủ tục gì ? « Có những thủ tục nào trong lĩnh vực báo chí ?
» Những thủ tục nào thuộc lĩnh vực báo chí ?
¢ Bao chí có những thủ tục nào?
s Báo chí có bao nhiêu thủ tịc ? + Thủ tục báo chí như thể nào ?
Có thể nói, bước tạo dữ liệu huấn luyện cho bài toán phân lớp Intent là một
trong những công việc quan trọng nhất khi phát triển hệ thống Chatbot và ảnh hưởng lớn tới chất lượng sản phẩm của hệ thống Chatbot về sau Công việc này đòi hỏi thời gian, công sức khá lớn
1.7.3.2 Trích xuất thông tin
Bên cạnh việc xác định Intent 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ất trong một
câu hội thoại thường là các thực thể thuộc về một loại nào đó Ví dụ, khi người dân muốn hỏi về thủ tục hành chính, hệ thống cần biết lĩnh vực hay thủ tục người dân
muốn hỏi về vấn dé gi
Đầu vào của một module trích xuất thông tin là một câu hội thoại Module trích xuất thông tin cần xác định vị trí của các thực thể trong câu (vị trí bắt đầu và vị trí kết thúc của thực thể) Ví dụ sau minh họa một câu hội thoại và các thực thể được trích xuất từ đó
« Câu hội thoại: Thủ tục cho phép họp báo trong nước gồm có bao nhiêu bước
thực hiện?
« Câu có các thực thể được xác định: [Thủ tục cho phép họp báo trong
nước |tutuc gôm có [bao nhiêu ]soluong [bước thực hiện ]cachthuc ?
Trong câu trên có 3 thực thể (nằm trong các đấu []) với các loại thực thể tương ứng (được viết với font chữ nhỏ hơn ở dưới)
Trang 261.7.3.3 Quản lý hội thoại
Trong các cuộc hội thoại dài (long conversation) giữa người va Chatbot, Chatbot sẽ cần ghi nhớ những thông tin về ngữ cảnh (context) hay quản lý các trạng thái hội thoai (dialog state) Van dé quan lý hội thoại (dialoge management) khi đó là quan trọng để đảm bảo việc trao đổi giữa người và máy là thông suốt
Chức năng của thành phần quản lý hội thoại là nhận đầu vào từ thành phần
NLUU, quản lý các trạng thái hội thoại (dialogue state), ngữ cảnh hội thoại (dialogue
context), và truyền đầu ra cho thành phần sinh ngôn ngữ (Natural Language Generation, viết tắt là NLG) Ví đụ module quản lý dialogue trong một Chatbot trả lời trực tuyến một cửa cần biết khi nào người dùng đã cung cấp đủ thông tin để phản hồi lại người dùng Hiện nay, các sản phẩm Chatbot thường dùng mô hình máy trạng thái hữu han (Finite State Automata — FSA), m6 hinh Frame-based (Slot Filling) hoac kết hợp hai mô hình này
1.8 TÁCH TỪ
Tách từ là một bước quan trọng không thể thiếu trong việc tiền xử lý đữ liệu,
nhằm xác định các từ có trong văn bản Trong tiếng Anh, các từ được tách biệt với
nhau bởi khoảng trắng do đó việc tách từ rất đơn giản Trong tiếng Việt, các từ không được tách biệt bởi khoảng trắng mà phụ thuộc rất nhiều vào ngữ cảnh của câu trong tiếng Việt và các từ đơn hay đa âm tiết Điều này gây khó khăn cho việc tách từ tự động một cách chính xác và làm ảnh hưởng đến kết quả của các bài toán phân tích đữ
liệu văn bản
Vi du minh họa tách từ trong văn bản:
“Cấp giấy phép trưng bày tủ thông tin” => cấp giấy phép trưng bày tủ thông tin
Sau khi tách từ trong từng văn bản, các từ viết hoa sẽ được chuẩn hóa thành các ký tự thường dé đồng nhất cùng một dạng từ trong từng văn bản đề tăng độ chính xác trong việc tiền xử lý đữ liệu Các từ trong văn bản có mức độ quan trọng khác nhau đổi với văn bản và cả trong phân loại văn bản Một số từ như từ nỗi giữa các
Trang 27po? 66,
câu, từ chỉ số lượng (©và”, “các”, “những, “mỗi”, ), dấu chấm câu, các ký tự đặc
biệt được gọi là từ dừng (stopword) không mang tính phân biệt trong khi phân loại cần được loại bỏ trước khi xử lý Có nhiều phương pháp loại bỏ stopword như: dùng
một danh sách các stopword hoặc loại bỏ theo tần suất xuất hiện của từ (chỉ số
TF*IDF) thấp, trong luận văn này tôi sử dụng một đanh sách các stopword cho trước
Sau khi loại bỏ các stopword, văn bản có thể xem như là một tập hợp các đặc trưng
gồm các từ “quan trọng” còn lại để biểu điễn văn bản
1.9 MƠ HÌNH TÚI TỪ
Túi từ (Bag of Words - BoW) là một mô hình được sử dụng trong xử lý ngôn
ngữ tự nhiên với mục đích là phân loại tài liệu Đề xây dựng mô hình túi từ, các văn
bản sau khi tách từ và được loại bỏ từ dừng phải được mô tả dưới dạng bảng để từ đó các giải thuật máy học có thể xử lý được Đồng thời câu hỏi được biêu diễn dạng véc- tơ (có n thành phần, chiều) mà giá trị thành phần thứ j là tần số xuất hiện từ thứ j
trong văn bản Nếu xét tập Q có m thủ tục và từ điển D có n từ vựng, thì Q có thể
được biểu điễn thành bảng có kích thước mxn, dòng thứ ¡ của bảng là véc-tơ biểu
diễn văn bản thủ tục thứ ¡ tương ứng Ví dụ minh họa về biểu diễn tập dữ liệu văn
ban bang m6 hinh tui tir (xem Bang 1.1)
Trang 281.10 TRONG SO
Để có thể tính độ tương đồng trước hết các câu hỏi phải được véc-tơ hóa thành các véc-tơ có độ dài bằng nhau thông qua việc tinh TF — IDF
TF — Term Frequency:
Tần suất xuất hiện của từ trong văn bản Mỗi văn bản có độ dài (tổng số từ) khác nhau và số lần xuất hiện của từ trong văn bản cũng khác nhau Vì vậy số lần
xuất hiện của từ được tính như sau:
_ max{ƒf(,):wei (1)
Trong do:
f(t, i) la tầng số xuất hiện từ † trong van ban i
max{f(w,i): w € ¡} là số lần xuất nhiều nhất của một từ bat ky w trong văn bản
IDF — Inverse Document Frequency:
Tần số nghịch của một từ trong tập văn bản Tính IDF để giảm giá trị của những từ thường xuyên xuất hiện trong văn bản Mỗi từ chỉ có một giá trị IDF duy nhất trong tập văn bản
|D| (1.2)
Trong do:
|D| tổng số văn bản trong tap D
l{d €D:t€ đ}| số văn bản chứa từ t nhất định, với điều kiện † xuất hiện Nếu từ t không xuất hiện ở bất cứ một văn bản nao trong tập thì mẫu số sẽ bằng 0 nên phép chia cho không không hợp lệ Vì thế với trường hợp này thường cộng thêm 1 vào mẫu số tương đương với mẫu thức 1 + {d S D:t € d}
TF —IDF - Term frequency — Inverse document frequency:
Trang 29Trọng số của một từ trong văn bản thu được qua thống kê thể hiện mức độ
quan trọng của từ này trong một văn ban và tạo ra tập các véc-tơ chứa chỉ số TE*IDE
cho từng văn bản sau khi đã xác định được TF-IDE
tfidf (t, i, D) = tf (t, i) * idf(t, D) (1.3)
Những từ có giá trị TF-IDF cao là những từ xuất hiện thường xuyên trong văn ban va có thể xuất hiện ít trong văn bản khác Với giá trị TF - IDF cao này giúp lọc ra được những từ phổ biến làm từ khóa của văn bản đó
1.11 DO TUONG DONG COSINE
Để tính được độ tương đồng của hai tài liệu thì tài liệu phải được biêu diễn theo mô hình không gian véc-tơ, mỗi thành phần của véc-tơ chỉ đến một từ tương ứng trong danh sách từ điển đã thu được từ quá trình tiền xử lý tài liệu Không gian véc-tơ hay số chiều của véc-tơ phải được chuân hóa kích thước bằng nhau và bằng số từ điển trong danh sách Giá trị mỗi phần tử của véc-tơ là trọng số mỗi từ trong
câu Trọng số của một từ được xác định thông qua việc tính tÍ-idf và độ đo tương đồng của hai véc-tơ được xác định bởi: XV Il «lll vl cosine(x,v)= (1.4)
V6i x, y là hai véc-tơ có độ dài bằng nhau và có J chiéu Trong dé x; la trong số tÊ- idf của từ j trong tài liệu x và y¡ là trọng số tf-iđf của từ j trong tài liệu y
1.12 PHAN LOAI VAN BẢN
Trong NLP, phân loại văn bản là một bài toán xử lí văn bản cổ điển, gán các nhãn phân loại lên một văn bản mới dựa trên mức độ tương tự của văn bản đó so với
các văn bản đã được gán nhãn trong tập huấn luyện Các ứng dụng của phân lớp văn bản thường rất đa đạng như: lọc email spam, phan tich cam xtc (sentiment analysis),
phân loại tin tức,
Trang 30Có rất nhiều phương pháp đề phân loại văn bản như : thuật toán Naive Bayes,
K-NN, Cay quyét dinh (Decision Tree), Mang Neuron nhan tao (Artificial Neural
Network) va SVM Mỗi phương pháp đều cho kết quả tương đương nhau, tuy nhiên phương pháp phân loại văn bản bằng thuật toán SVM được sử đụng phổ biến hơn cả 1.13 PHƯƠNG PHÁP ĐÁNH GIÁ THỰC NGHIỆM
Để so sánh hay đánh giá hiệu quả của một giải thuật hay phương pháp phân lớp máy học với một giải thuật phân lớp khác, trong máy học người ta thường sử dụng nghỉ thức kiểm tra và các độ đo chính xác trên cùng tập dữ liệu mẫu đề đánh giá Trong máy học, có hai nghi thức kiểm tra thường được sử dụng là:
- Nghi thức thứ nhất: Nếu dữ liệu có một tập học và một tập kiểm tra sẵn dùng, người ta sử dụng tập dữ liệu học để xây dựng mô hỉnh và sử dụng tập dữ liệu kiểm
tra để đánh giá hiệu quả của giải thuật học
- Nghỉ thức thứ hai: Nếu đữ liệu không có sẵn một tập kiểm tra, người ta sử dụng nghi thức k-fold hoặc hold-out đề đánh giá
Nghi thức kiểm tra k-fold: chia tập đữ liệu thành k phan (fold) bang nhau, lập
lại k lần, mỗi lần sử dung k-1 folds dé hoc va 1 fold dé kiém tra, sau dé tinh trung
bình của k lần kiểm tra Khi tập dữ liệu có hơn 300 phần tử, phương pháp được sử dụng là 10-fold (k =10) Nếu tập dữ liệu ít hơn thì sử dụng leave-1-out (k = số phần
tử) được đề nghị sử dụng
Nghi thức hold-out: lấy ngẫu nhiên 2/3 tập dữ liệu đề học và 1⁄3 tập dữ liệu còn lại dùng để kiểm tra, có thể lập lại k lần ở bước này và sau đó tính giá trị trung bình
1.14 TIỂU KÉT CHƯƠNG 1
Trong chương này, tôi đã trình bày một số nội dung về phân loại văn bản, tách từ Các phương pháp này đều có chung là yêu cầu nhận dạng vector đặc trưng Nhưng trong nội dung này tập trung vào phần nghiên cứu ngôn ngữ tự nhiên là tách từ
Trang 31Chuong 2 - MO HiNH HE THONG TRA LOI TU DONG DICH VU CONG TRUC TUYEN
2.1 XÂY DỰNG PHAT BIEU BAI TOAN CAC USE CASE 2.1.1 Khái niệm mô hình
Mô hình là một dạng trừu tượng hóa của thế giới thực, là một hình ảnh (một biểu diễn) của hệ thống thực, được diễn tả ở một mức độ trừu tượng nào đó, theo một quan điểm nào đó, bởi một hình thức diễn tả (văn bản, phương trình, đỗ thị ) Dùng mô hình đề diễn tả một hệ thống được gọi là mô hình hóa Như vậy, quá trình phân
tích và thiết kế hệ thống được gọi chung là quá trình mô hình hóa quan hệ 2.1.2 Cac so dé trong UML
UML là ngôn ngữ dùng để trực quan hóa, chi tiết hóa, sinh ra mã ở dạng nguyên mẫu, lập và cung cấp tài liệu
2.1.3 Sơ đồ Use Case
Là cầu nối giữa các chức năng và hành vi của hệ thống với khách hàng/người dùng cuối
Bao gồm mot tap hop cac Use Case, cac Actor va thể hiện mối quan hệ tương
tac gitta Actor va Use Case
Cac ky hiéu trong so dé Use Case:
Bang 2.1 Cac ky hiéu trong so dé Use Case
Khái niệm Kí hiệu Ý nghĩa
Tác nhân CD - La mot vai (role) mà một người dùng
Trang 32Use Case
se Case Name ) ri - Là một chuỗi các hành động mà hệ
thống thực hiện mang lại một kết quả
quan sát được đối với acfor
- Có thể hiểu một use-case là một chức
năng của hệ thống, mang một ý nghĩa nhất định đối với người dùng
- Mỗi use-case được biểu diễn bởi một mô tả Use Case - Tập hợp tất cả các use-case tạo thành lược đô use-case Hanh vi Association
- Cho biết tác nhân nào sẽ tương tác với
use-case Một use-case luôn được khởi tạo bởi một tác nhân và có thể tương tác
với nhiều tác nhân
Trang 33Bảng 2.2 Các ký hiệu trong sơ đồ lớp
Khái niệm Kí hiệu Ý nghĩa
Lớp - Class mô tả về một nhóm đối Tàn tượng có au g tinh chat, hanh dong
Attributes trong hé thong
Mahsh - Trong đó:
Class Name: là tên của lớp
Attributes (thuộc tính): mô tả tính chất của đối tượng
Method (Phương thức): chỉ các hành động mà đối tượng này có thể
thực hiện trong hệ thống
Hanh vi 01 — Là quan hệ ngữ nghĩa được thiết lập
TS 0.* giữa l lớp, 2 lớp hay nhiều lớp
2.2 PHÂN TÍCH HIỆN TRẠNG
- Thực chất đó chính là nhu câu thông tin mà hệ thống ứng dụng phải đáp ứng Tuy nhiên, việc phân tích cụ thể hóa đánh giá bổ sung có vai trò quan trong trong việc quyết định hiệu quả của hệ thống Các luồng thông tin có thể phân loại thành:
- Các thông tin trả lời: những thông tin loại này thường được lưu trữ thành những cơ sở đữ liệu, quá trình tìm kiếm thông tin bằng phương pháp thủ công đòi hỏi phải mất nhiều thời gian công sức nhiều lúc còn không thể thực hiện được
- Các thông tin ứng dụng: phương thức tơ chức Ngồi ra còn có một số luồng thông tin khác áp dụng cho từng hệ thống cụ thể mà mỗi hệ thống cần phải xác định riêng cho mình
- Mô tả hoạt động của hệ thống:
Trang 34- Gửi tin nhắn: cho phép người dùng gửi câu hỏi đến hệ thống Chatbot
- Thêm, sửa, xóa: cho phép quản trị thêm, sửa, xóa thông tin lĩnh vực, thủ tục,
người dùng, tập huấn luyện
2.3 PHAN TICH YEU CAU HE THONG
2.3.1 Yêu cầu chức năng 2.3.1.1 Yêu cầu hệ thống
- Cho phép đặt câu hỏi liên quan đến các thủ tục hành chính thuộc thầm quyền giải quyết của Sở Thông tin và Truyền thông
- Hỗ trợ cho người dùng thường và quản trị trong việc quản lý hệ thống như
thêm, sửa, xóa các lĩnh vực, thủ tục, tập huấn luyện,
2.3.1.2 Yêu cầu nghiệp vụ * Đối với người dùng
Bảng 2.3 Yêu cầu nghiệp vụ đối với người dùng khách STT Công việc Loại công việc 1 Đặt câu hỏi 'Tra cứu
* Đối với người dùng thường
Trang 35* Đối với quản trị
Tương tự người dùng thường, nhưng thêm quyền quản trị người dùng thường Bảng 2.5 Yêu cầu nghiệp vụ đối với người quản trị
STT Công việc Loại công việc 1 Thêm người dùng Thêm
2 Sửa người dùng Sửa 3 Xóa người dùng Xóa
2.3.2 Yêu cầu phi chức năng
e_ Giao diện:
- Gan gũi, thân thiện va dé str dụng cho người dùng e Tinh ding dan:
- Hệ thống tự động tìm câu trả lời phù hợp e Tính tiến hóa:
- Phát triển hệ thống và nâng cấp chương trình khi có nhu cầu e Tinh an toan:
- Dam bao tinh toàn vẹn dữ liệu
2.3.3 Dac ta qui trinh
Trang 36Qui trình Thêm lĩnh vực, gồm có 4 bước :
Bước 1: Người dùng đăng nhập vào website
Bước 2: Người dùng chọn nút Thêm trên menu Lĩnh vực, nhập thông tin lĩnh
vực cần thêm
Bước 3: Thông tin lĩnh vực được thêm vào cơ sở dữ liệu Bước 4 : Hiển thị danh sách lĩnh vực lên website
Sửa lĩnh vực
Qui trình Sửa lĩnh vực, gồm có 4 bước:
Bước 1: Người dùng đăng nhập vào website
Bước 2: Người dùng chọn nút Sửa trên danh sách lĩnh vực nhập thông tin cân sửa Bước 3: Thông tin lĩnh vực được cập nhật vào cơ sở dữ liệu , 9 - > SY Dang nhhap—>} & Người dùng Website Nhập thông tin 8
(a-—@ “ |đ—Hiển thị <2 pdate |
Website Cơ sở dữ liệu Form sửa Hình 2.2 Qui trình sửa lĩnh vực Bước 4: Hiển thị danh sách lĩnh vực lên website Xóa lĩnh vực
Qui trình Xóa lĩnh vực, gồm có 3 bước:
Bước 1: Người dùng đăng nhập vào website
Trang 37Bước 2: Người dùng chọn nút xóa trên danh sách lĩnh vực tại lĩnh vực cần xóa Hệ thống xóa lĩnh vực khỏi cơ sở đữ liệu
Bước 3: Hiển thị danh sách lĩnh vực lên website Người dùng Delete a —_ aay 4 4@———————— & lá—Hiển thị i: j = Ze” Website Cơ sở dữ liệu Hình 2.3 Qui trình xóa lĩnh vực 2.3.3.2 Qui trình quản lý thông tin thủ tục
Trang 38Qui trình Thêm thủ tục gồm có 4 bước : Bước 1: Người dùng đăng nhập vào website
Bước 2: Người dùng chọn nút Thêm trên menu Thú tục, nhập thông tin thủ
tục cần thêm
Bước 3: Thông tin thủ tục được thêm vào cơ sở dữ liệu Bước 4 : Hiển thị danh sách thủ tục lên website
Sửa thủ tục về thông tin Đăng nhập——> 3 Người dùng Website Nhập thông tin e ! _ 9 9 ® l@ h=" cờ Sun Website Cơ sở dữ liệu Form sửa
Hình 2.5 Qui trình sửa thủ tục về thông tin Qui trình Sửa thủ tục gồm có 4 bước:
Bước 1: Người dùng đăng nhập vào website
Bước 2: Người dùng chọn nút Sửa trên danh sách thủ tục, nhập thông tin cần sửa
Bước 3: Thông tin thủ tục được cập nhật vào cơ sở dữ liệu Bước 4: Hiển thị danh sách thủ tục lên website
Xóa thủ tục về thông tin
Qui trình Xóa thủ tục gồm có 3 bước:
Bước 1: Người dùng đăng nhập vào website
Trang 39Bước 2: Người dùng chọn nút xóa trên danh sách thủ tục tại thủ tục cần xóa Hệ thống xóa thủ tục khỏi cơ sở dữ liệu
Bước 3: Hiển thị danh sách thủ tục lên website Đăng nhập—>‡ Người dùng Delete 6 ø@)——@-= Website Cơ sở dữ liệu
Hình 2.6 Qui trình xóa thủ tục về thông tin 2.3.3.3 Qui trình quản lý thông tin người dùng
Thêm thông tin người dùng
Qui trình Thêm người dùng gồm có 4 bước : Bước 1: Người dùng đăng nhập vào website
Bước 2: Người dùng chọn nút Thêm trên menu Người dùng, nhập thông tin người dùng cần thêm
Bước 3: Thông tin người dùng được thêm vào cơ sở dữ liệu Bước 4: Hiền thị danh sách người đùng lên website
Trang 40Đăng nhập——>‡ @ Người dùng Website Nhập thông tin l2) | E @— @ |đ—Hiẩển thi Œ Za insert SS Cơ sở dữ liệu
Website Form thêm
Hình 2.7 Qui trình thêm thông tin người dùng Sửa thông tin người dùng
Qui trình Sửa người dùng, gồm có 4 bước: Bước 1: Người dùng đăng nhập vào website
Bước 2: Người dùng chọn nút Sửa trên danh sách người dùng, nhập thông tin cần sửa Bước 3: Thông tin người dùng được cập nhật vào cơ sở dữ liệu @ —“ > ăng nhập——> & Người dùng Website Nhập thông tin e oO= _ = aes thi cà Update / S † Cơ sở dữ liệu
Website Form stra
Hình 2.8 Qui trình sửa thông tin người dùng