Ngoài ra một số tính năng khác được cài đặt bao gồm: — Cho phép người dùng đặt thông báo được hẹn giờ đề giao qua tất cả thiết bị của người dùng sử dụng thông báo Push — Cho phép người d
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHÀN MÈM
NGUYÊN NGỌC ĐĂNG
BE HAI LONG
KHOA LUAN TOT NGHIEP
Building a Cross-platform Virtual Assistant Chatbot
KY SU NGANH KY THUAT PHAN MEM
TP HO CHi MINH, 2022
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHAN MEM
NGUYEN NGỌC DANG - 18520557
BE HAI LONG - 18520302
KHOA LUAN TOT NGHIEP
XAY DUNG CHATBOT TRO LY AO DA NEN TANG
Building a Cross-platform Virtual Assistant Chatbot
KY SU NGANH KY THUAT PHAN MEM
GIANG VIEN HUONG DAN
THS TRAN ANH DUNG
TP HO CHi MINH, 2022
Trang 3THÔNG TIN HỘI ĐÒNG CHÁM KHÓA LUẬN TÓT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số
¬ eee eee e nese eee eae ees ngày của Hiệu trưởng Trường Dai hoc Công nghệ Thông tin.
— cece eee e cent eee nena ee eee — Chủ tịch.
Boece cece ence ence eee eee ee eea eens enaeenaeenees — Uy viên
Ắ= cece e nee e eee n teen e een e ena e ened — Uy viên
Trang 4ĐẠI HỌC QUÓC GIA TP HÒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh Phúc
CÔNG NGHỆ THONG TIN
TP HCM, ngày 10 tháng 07 năm 2022
NHẬN XÉT KHÓA LUẬN TÓT NGHIỆP
(CUA CAN BO HƯỚNG DAN)
Tên khóa luân:
XÂY DỰNG CHATBOT TRỢ LÝ AO DA NEN TANG
Nhóm SV thực hiện: Cán bô hướng dẫn:
Nguyễn Ngọc Đăng 18520557 ThS Trần Anh Dũng
Bề Hải Long 18520302
Đánh giá Khóa luận
1 Vé cuôn báo cáo:
Số trang 227 Số chương 5
Số bảng số liệu 58 Số hình vẽ 78
Số tài liệu tham khảo 7⁄4 Sản pham 1
Một sô nhận xét về hình thức cuôn báo cáo:
Báo cáo đầy đủ các chương yêu cầu của báo cáo khóa luận Hình thức trình bàyhợp lý và tuân theo yêu cầu khóa luận tốt nghiệp trong phụ lục khoa đã cung cấp
Danh mục bảng, danh mục hình, tài liệu tham khảo trình bày đúng chuẩn Sinh
viên chủ động chỉnh sửa báo cáo theo góp ý của giảng viên hướng dẫn.
2 Về nội dung nghiên cứu:
Trọng tâm nghiên cứu của khóa luận là việc áp dụng các phương pháp giải quyết
các bài toán xử lý ngôn ngữ tự nhiên vào việc xây dựng Chatbot trợ lý ảo các bài
toán được đề cập và hướng giải quyết bao gồm:
— Bài toán xác định ý niệm: Sử dụng mô hình mạng nơ-ron truyền thăng
Trang 5— Bài toán xác định thực thé đặt tên: Sử dụng kết hợp biéu thức thường quy
và tìm mờ từ điển bằng khoảng cách Levenshtein
— Bai toán phân tích cảm xúc: Sử dụng mô hình tinh chỉnh từ mô hình luyện
đề cập về các quy trình tiền xử lý cũng như cách thiết kế hệ thống Chatbot sao
cho thân thiện với người dùng Cho thấy nỗ lực tìm hiểu về vấn đề xử lý ngôn
ngữ tự nhiên trên nhiều khía cạnh
Về chương trình ứng dụng:
Sinh viên thực hiện xây dựng hệ thống Chatbot đa nền tảng trên trình duyệt web
sử dụng React và trên thiết bị di động sử dụng Flutter Hệ thong Chatbot có khảnăng truy vấn thông tin từ cơ sở dữ liệu hoặc sử dụng API bên thứ ba dé cungcấp thông tin thời gian thực cho người dùng Ngoài ra một số tính năng khác
được cài đặt bao gồm:
— Cho phép người dùng đặt thông báo được hẹn giờ đề giao qua tất cả thiết
bị của người dùng sử dụng thông báo Push
— Cho phép người dùng chỉnh sửa thông tin tài khoản cũng như thiết lập cá
nhân trong hệ thống (bao gồm việc nhận diện giọng nói và phát âm phảnhồi)
— Phan tang truy cập thông tin của người dùng dễ dàng thông qua bang quan
lý của quản trị viên
— Ứng dung di động mở rộng một số các chức năng như cho phép người
dùng tương tác với thiết bị thông qua chatbot, tùy chỉnh giao diện
Trang 6Về cơ bản hệ thống hoạt động với số lượng lỗi tối thiêu, nhóm sinh viên đã cung
cấp đầy đủ tài liệu thiết kế bao gồm các biêu đồ UML (ca sử dụng, lớp, tuần tự)
và mô tả các màn hình giao diện.
4 Về thái độ làm việc của sinh viên:
Nhóm sinh viên có thái độ nghiêm túc, chăm chỉ, tích cực thực hiện đề tài, đãtong hợp và vận dụng tốt một khối lượng lớn kiến thức dé giải quyết các van đề
trong đề tài, thể hiện được khả năng nghiên cứu và áp dụng nhiều công nghệ
trong đề tài Chủ động báo cáo định kỳ thường xuyên và luôn hoàn thành rất tốtcác công việc do giảng viên hướng dẫn đề ra
Đánh gia chung:
Kết quả đạt được của đề tài đáp ứng tốt yêu cầu của một khóa luận tốt nghiệp kỹ
sư ngành Kỹ thuật phần mềm Xếp loại Xuất sắc
Điểm từng sinh viên:
Nguyễn Ngọc Đăng: 10/10 (Mười)
Bề Hải Long: 10/10 (Mười)
Người nhận xét
(Ký và ghi rõ họ tên)
TRAN ANH DŨNG
Trang 7ĐẠI HỌC QUOC GIA TP HO CHÍMINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh Phúc
CÔNG NGHỆ THÔNG TIN
TP HCM ngày 16 tháng 7 năm 2022
NHẠN XÉT KHÓA LUẬN TÓT NGHIỆP
(CUA CÁN BỘ PHAN BIEN)
Tên khóa luân:
XÂY DỰNG CHATBOT TRỢ LÝ AO DA NEN TANG
Nhom SV thuc hién: Can bô phan biên:
Nguyễn Ngoc Đăng 18520557 TS Nguyễn Trịnh Đông
Bề Hải Long 18520302
Đánh gia Khóa luận
1 Về cuôn báo cáo:
Số trang 227 Số chương 5
Số bảng số liệu 58 Số hình vẽ 78
Số tài liệu tham khảo J4 Sản phẩm 1
Một số nhận xét về hình thức cuốn báo cáo:
Cách thức trình bày khóa luận phù hợp với các quy định, phân bố nội dung từngmục rõ ràng, cụ thể, có hình ảnh trực quan Các chương mục được trình bày hợp
lý và theo thứ tự.
2 Vê nội dung nghiên cứu:
e Khóa luận tập trung tìm hiểu và áp dụng kiến thức trong học máy và xử lý
ngôn ngữ tiếng Việt và các công cụ lập trình để phát triển hệ thống chatbot
Trang 8đa nền tảng Đối với phương diện khoa học, Khóa luận sử dụng thuật toán
Wagner-Fischer và độ đo khoảng cách Levenshtein dé xác định độ tương
tự của từ khóa Về ứng dung, Khóa luận đưa ra giải pháp phát triển chatbot
có thể tương tác với người dùng dựa trên suy diễn mờ trong hệ thống.Đồng thời Khóa luận đã xây dựng hệ thống chatbot, chạy thử nghiệm và
có khả năng trả lời được một số câu hỏi liên quan đến một số lĩnh vực
e Khéa luận phát triển phần mềm ứng dụng dựa trên các bộ khung phát triển
phần mềm NodeJS, Express và cơ sở dữ liệu MongoDB
e Sinh viên đã tiễn hành tìm hiểu cơ sở lý thuyết dé áp dụng vào phát triển
e Phan phân tích thiết kế đã cơ bản giải quyết được các yêu cầu chung cho
bài toán phân tích thiết kế hệ thống thông tin Từ việc đặc tả các usecaseđến các sơ đồ kỹ thuật cần thiết dé phát trién hệ thống
Tóm lại, Khóa luận đã lựa chọn cách tiếp cận nghiên cứu các lý thuyết liên quan
sau đó phân tích thiết kế hệ thong và triển khai xây dựng phan mém
._ Về chương trình ứng dụng:
Trên cơ sở lý thuyết và quá trình phát triển hệ thống, Khóa luận đã đưa ra kết quả
là một phần mềm có các ưu điểm và nhược điểm sau:
Ưu điểm: Khóa luận đã xây dựng hệ thống chatbot, chạy thử nghiệm trên môitrường di động Ứng dụng có khả năng trả lời được một số câu hỏi liên quan đến
nhiều lĩnh vực thời tiết, chứng khoán, ngoại tệ, dịch thuật, v.v
Trang 9Nhược điểm: Dựa trên kết quả đạt được, bộ suy diễn còn hạn chế khi chỉ sử dụngmột thuật toán Wagner-Fischer Bộ dữ liệu huấn luyện ít Ứng dụng mới trả lờiđược những câu hỏi ngắn.
4 Về thái độ làm việc của sinh viên:
Sinh viên đã giải quyết một khối lượng lớn kiến thức dé giải quyết van đề, có thái
độ tích cực, chủ động bổ sung, sửa đôi khóa luận, cung cấp day đủ tài liệu khiđược yêu câu.
Đánh gia chung:
Khóa luận đạt yêu cầu của một khóa luận tốt nghiệp kỹ sư, xếp loại Giỏi
Điểm từng sinh viên:
Trang 10LOI CAM ON
Nhóm chúng em trân trong gửi lời cảm on đến thay Trần Anh Dũng đã tạo điều kiện
cho chúng em có cơ hội được thực hiện khóa luận tốt nghiệp
Trong vòng 15 tuần, nhờ sự chỉ dẫn nhiệt tình của Thay, chúng em đã tiếp thu đượcnhững kiến thức quan trọng cùng những góp ý chân thành đề có thé hoàn thành khóa
luận một cách hoàn chỉnh.
Cũng xin cảm ơn thay cô và bạn bè trong Khoa Công nghệ Phần mềm đã nhiệt tình
hồ trợ, tạo điêu kiện cho nhóm em làm bài báo cáo này.
Mặc dù đã có găng hoàn thành báo cáo với tat cả nỗ lực song báo cáo của nhóm chúng
em chắc chăn không tránh khỏi những thiêu sót, chúng em rât mong nhận được sự
thông cảm và góp ý chân thành từ các thầy cô Nhóm em xin chân thành cảm ơn
Thành pho Ho Chí Minh, ngày 7 thang 6 năm 2022
Lớp SE505.M21
Nguyễn Ngọc Đăng, Bé Hải Long
Trang 11MỤC LỤC
THONG TIN HỘI DONG CHAM KHÓA LUẬN TOT NGHIỆP 3
098/9 090)0 075 10
109800905 11DANH MUC HINH wessscsssessssssssssessssssssssesssessssssssssessssssssssssssessssssssssssssssssssesssesnseese 15
1.1.2 Góc nhìn chung về nhu cầu tra cứu thông tin ¿s52 35
1.1.3 Lý do lựa chọn đề tài ¿5s te EEEEEEEEE1211211211 211111 1xx 361.2 Đối tượng nghiên CỨU + 2E SE2EE2E2EEEEEEEEEEEE1211211211212 211111111 xe 36
2.2.1 Các vấn đề còn tỒn tại 5:5: S tt EEE E21 EE1E121511112151111 1151111151 ExE 44
2.2.2 Các van đề được tập trung trong đề tài - :-csccczzsrxerxerxee 44
Trang 12Chương 3: NGHIÊN CỨU LÝ THHUY ÉT - 2-5 s£sssssssesseessessse 46
3.1 Giới thiệu về bài toán ChatbOt -2- 5c ©5225£22E+EEt2EE2EE2EEeEErkerrxerxerkrree 46
3.2 Lý thuyết xây dựng ChatbOt ¿2-2-5 2E£2EE2EEEEE2EE2EE2EEEEE2EE2EEEEkrrrrrer 48
3.2.1 Các hướng tiếp cận xây dựng Chatbot ¿2-52 s+2sc2xzEzrxerxersez 48
3.2.2 Giải quyết các van dé phát sinh trong xây dựng Chatbot - 603.3 Cau trúc hệ thống Chatbot cccccccccscsssessessesssessessessesssessessessessseesessessessseeseeseess 65
3.4 Ứng dụng của Chatbot 2-5 £+S£+EE+EE£EE2EE2EEEEEEEEEEEEEEEEEEEEEE2EEEEerkrrer 69
3.4.1 Phép thử 'TUTIng - - s1 + 111191 TH ng rưy 69
3.4.2 Ứng dụng của Chatbot trong thực tẾ - 2-22 ++x+txetE++E+Exerxerxee 70
3.5 Sử dụng thư viện NLP.js vào tác vụ nhận diện ý niệm - 70
3.5.1 Giới thiệu thư viện NLP.JS 5 51 2119k SH vn nh Hư 70
3.5.2 Các khái niệm sử dung trong NLP.Js - - 5 S5 << ++csscese 71 3.5.3 Thực hiện tác vụ nhận diện ý niệm - 5 +5 + + £++£+sssessrsee 75 3.6 Tinh chỉnh mô hình PhoBERT vào tác vụ phân tích cảm xúc 76
3.6.1 Giới thiệu về mô hình PhoBERTT - ¿2+ x+zxzx++z++zx+zxzsez 76
3.6.2 Thực hiện tác vụ phân tích cảm XÚC - 5 5 + *++£++kEseeeseeseersee T7
3.7 Tinh chỉnh mô hình BARTpho vào tác vụ cấu tạo ngôn ngữ tự nhiên 78
3.7.1 Giới thiệu về mô hình BAR'Tpho 2: ¿2+2 s+£E£££+£z+£++zxzsez 78
3.7.2 Thực hiện tác vụ cau tao ngôn ngữ tự nhiên - - «<< <++sx+2 79
3.8 Nghiên cứu tình huống: Một số ví dụ xử lý ngôn ngữ tự nhiên của Chatbot.79
Chương 4: CHATBOT TRỢ LÝ AO - YOURCHATSTARTER 87
4.1 Xác định yêu cầu hệ thong c.cceceecceccescscssesessssecsessessessessessessesessessessessessesseaee 87
4.1.1 Sơ d6 ca sử UUing e.cccceccescssessecsessessessessesssscsessessessessesssssesssessessessesseeseesease 87
4.1.2 Đặc tả Ca SỬ CUI oo ee cceeccesccenseeseeeececesceceseeeeaeessceceseeceaeeeeaecesaeeeseeesaes 92
4.2 Thiết kế kiến trúc hệ thống 2-22 +¿©++2++2E++2E+tEE+2EE2rxerxrerxrr 1294.3 Thiết kế mô hình dữ liệu ¿2 2 5£ +E£+E££EE£EEtEEE£EEEEEerEerkrrrerrxees 133
4.3.1 Sơ đỒ lớp ¿- + ScSE E2 12 12212112112112211211211 2111121111111 re 133
4.3.2 Dac ta lop dit LGU nh ăia45<Ả 134
4.4 Thiết kế luồng xử lý -¿- 2 2 2 +k£EE£EE£EEEEE2EE2EEEEEEEE1E711111 1.1 ty, 145
Trang 134.4.1 Luồng xử lý chức năng đăng nhập 2:2 5¿2c+2x+czx++rxrrred 145 4.4.2 Luồng xử lý chức năng đăng kí - 2-2 2+SSE‡EEeEEeEeEzEerrerrees 146 4.4.3 Luồng xử lý chức năng thu phí -¿ -¿+¿©5++cx+2zxczxeerxesrxerred 147 4.4.4 Luồng xử lý chức năng giao tiếp với Chafbot -¿scs+-: 148 4.4.5 Luồng xử lý chức năng phát âm đoạn Chat -:- 25525522552 150 4.4.6 Luồng xử lý chức năng gửi thông báo Push - ¿5z se: 151
4.4.7 Luồng xử ly chức năng gửi thông báo theo lịch trình 152
4.4.8 Luồng xử lý chức năng cập nhật thông tin người dùng 153
4.4.9 Luồng xử lý chức năng cập nhật thiết lập cá nhân . - 154
4.4.10 Luồng xử lý chức năng cập nhật cấp bậc người dùng - 155
4.5 Thiết kế các Module truy van thông tỉn -¿ -¿ 2 ©5z+zx2zx+zx+srxze 156 4.5.1 Truy van thông tin thời tiẾt ¿2-52 + 2+S£+E££E££E££EeEEEEEeEErEerrerreei 156 4.5.2 Truy van thông tin tỉ giá tiỀn tỆ - 2-2 2 2+E+£E+EEeEEeEEeErEerrerrees 157 4.5.3 Truy van thông tin dich thuật - 2-2 2+52+s2+E+E+£EeExeEkzrzrerrerrees 158 4.5.4 Truy vấn giá C6 phiẾu : ¿ 2 s+2E+EE2EEEEEEEEEEEEEEEEEEEEEerkrrrkrrrree 159 4.5.5 Truy van thông tin dịch CO'VID- | 2-2 + ++++£+£++£x+zxzrezrxees 160 4.5.6 Truy van thông tin từ Google Knowledge Graph - : 161
4.6 Thiết kế giao diGn o.cceeceescssesssessessessessessessessssssessessessssssessessesssssessesseesesseeeses 162
4.6.1 Thiết kế giao diện trên nền tảng Web ¿25+ x+cx+£++EzEzerreei 164 4.6.2 Thiết kế giao diện trên nền tảng di động - - 2 2 2 2+2: 186
4.7 Thực hiện tác vụ nhận diện ý niỆm - - 5-5 22c 3+ E*sEseeerseeerrsree 204
4.7.1 Phương thức thực hiỆN - - s vn HH ng ngư 204 4.7.2 Kết quả thực hiện -2-22©5¿22+t2EE£EE+22E2212112712221 21121 crre 206 4.8 Thực hiện tác vụ nhận diện thực thé đặt tên - - ¿2 + x+x+xezzxzxezez 207
4.8.1 Phương thức thực hiỆn Gv 9v 9v 9 HH ng nghe 207 4.8.2 Kết quả thực hiện 2-2-5 22222EEEEEE2E122127121211221 211112 ec xee 208
4.9 Thực hiện tác vụ phân tích cảm XÚC . 5 2+ *++E+EEseeeeeseereeeeee 209
4.9.1 Phương thức thực hiện - -. c5 2133111311813 reree 209
4.9.2 Kết quả thực hiện 2-2 ©522S22EESEEEEE2E12E1271211211271 1111 1E xe 212
4.10 Thực hiện tác vụ cầu tạo ngôn ngữ tự nhiÊn 55s <+<s+ssessees 212
Trang 144.10.1 Phương thức thực Him G5 21121 23191119 11 11 8 ngư, 212
4.10.2 Kết quả thực hiện -¿- 2 £©S+E+SE+EEEEE2EE2EEEEEEEEEEEEEEEEEEE.cEerreeg 2154.11 Giới thiệu hệ thống -¿- 2: £©5£+SE+EE£EE£EEEEEEEEEEEEEEEEEEEEEEEEEEErrrrreeg 2154.12 Sơ lược chức năng hệ thống -:- 2:22 5¿2++2£++£E++Ex2zxrzreersre 216
Chương 5: KET LUẬN -s-s-s< s2 ssSsEseEssEssexseEseEsstssesserserssrssesse 221
5.1 Đánh giá kết quả làm viỆc - + 2-5255 2E22EE‡EEEEEEEEEEEEEEEerkrrreererred 221
5.1.1 Thuận lỢI - - 5 5 + s1 9 9n HH nh Tho nu ngưng 221
5.1.2 KAO KWAN nn "- - 2215.2 Kết quả dat đƯỢC 55s S221 12k 1E 1511211111211 2111 11111111111 c1 xe 222
>n G.n 222
“2h 2225.3 Hướng phát triÊn 2-2: ++2EE2EEE2EE2EEEEEESEE+SEkEEEEEEEEEEEE1E11.E1EE crrree 223
TÀI LIEU THAM KHẢO -°- 5° 222 ss£©ss£EssesseEssersserseessersee 224
PHU LỤC 6c để , con ẤT 42 4414044846846886846840686 86 227
Phụ lục 1 Danh mục công nghệ được sử dung - - 5 +«<++x£<<xsseess 227
Phụ lục 1.1 ECMASCTIpt Õ - - SG SH HH ngệp 228 Phụ lục 1.2 Python Ổ - s6 + 1119 Hệ 229 Phụ lục 1.3 ÏNO(e.Js - ó5 2G SH HH HH nh nh TT HH Hưng 229
I3008)0/108.0.{ e2111157 -::'ÔÔÔÔỐÔ 230 Phu luc 1.5 MongoDB 1122757 da 230 200801000050) 231
Phu luc 1.7 Web APD cececeeccecescecceseeseeeeseeseeseeaeceeceeeeeeseeseeaeeaeeaeeaeeeserentes 231
I8) dt 119.5637410 010177 231 Phụ lục 1.9 Wikidata và SPAIRQL, - - -G Q2 HS HS SH ng ret 232
Trang 15Hình 3.4 Đặc tả độ đo Levenshte1n - G5 1112211111921 11 9111118211 1 8x re 49
Hình 3.5 Bảng minh họa thuật toán quy hoạch động của Wagner-Fischer (So sánh
xâu Integration va InteÏÏIØ€TIV) - << + k3 91 11 vn TH ng trên 50
Hình 3.6 Bang minh họa thuật toán Seller (Tìm kiếm xâu “think” trong xâu “i am
shrinky”) #, GHI ! Bar \IỂU, Í -‹ Q.Q.QLLLerdee 51
Hình 3.7 Cấu trúc dữ liệu Trie để lưu trữ từ điển cho phép so sánh mờ 52Hình 3.8 Hình minh hoa cho mạng nơ-ron truyền thăng 2-5 5552 s2 56
Hình 3.9 Hình minh họa cấu trúc của mô hình Transformer 2 - 2 + 60
Hình 3.10 Cấu trúc đầy đủ của một Chatbot 2-55 2+5£+£2+E££Eezkerxersersxee G7Hình 4.1 Sơ đồ ca sử dụng hệ thống xác thực người dùng -5z=5+ 87Hình 4.2 Sơ đồ ca sử dung hệ thống Chatbot c.ccccccccscsssesssecstessessseesseeseesessseesseens 88Hình 4.3 Sơ đồ hệ thống dich vụ bỗ trợ người dùng -2- 5c ©5+2cz+cxcrxczez 89
Hình 4.4 Sơ đồ ca sử dung hệ thống quan lý nội dung ¿5-52 s2 s2 90
Hình 4.5 Sơ đồ ca sử dụng hệ thống quản lý hóa đơn thanh toán - 90Hình 4.6 Sơ đồ ca sử dụng hệ thống truy vấn thông tin 2 s2 szxz>sz 91
Trang 16Hình 4.7 Sơ đồ ca sử dụng hệ thống quản lý thông báo 2-2-5552 91 Hình 4.8 Sơ đồ kiến trúc hệ thống -2¿- 5¿©2+22++E++2EE+2E+vrxtzrxrzrxerreee 129
Hình 4.9 Sơ đồ lớp của hệ thống 2 2 2 E++E£2EE+EE£EEEEEEEE2EEEEEEEErEerrrrrkee 133
Hình 4.10 Sơ đồ luồng xử lý chức năng đăng nhập 2-2 ¿s52 145 Hình 4.11 Sơ đồ luồng xử lý chức năng đăng ký 2:2 5+2cxscxccscee 146 Hình 4.12 Sơ đồ luồng xử lý chức năng thu phí - ¿2 s+2cx+5zs+zsee¿ 147 Hình 4.13 Sơ đồ luồng xử lý cho việc giao tiếp với Chatbot (Trường hợp chung) 148 Hình 4.14 Sơ đồ luồng xử lý cho việc giao tiếp với Chatbot (Trường hợp cần tra cứu
01901505) -555ỒỐỒẼ£ỒỒ 149
Hình 4.15 Sơ đồ luồng xử lý chức năng phát âm đoạn Chat -. : 5- 150
Hình 4.16 Sơ đồ luồng xử lý chức năng gửi thông báo Push - 151
Hình 4.17 Sơ đồ luồng xử lý chức năng gửi thông báo theo lịch trình 152
Hình 4.18 Sơ đồ luồng xử lý chức năng cập nhật thông tin người dùng 153
Hình 4.19 Sơ đồ luồng chức năng cập nhật thiết lập cá nhân - 154
Hình 4.20 Sơ đồ luồng xử lý chức năng cập nhật cấp bậc người dùng 155
Hình 4.21 So đồ luéng xử lý truy van thông tin thời tiết - 2-2 25s: 156 Hình 4.22 Sơ đồ luồng xử lý truy van thông tin tỉ giá ngoại tệ - 157
Hình 4.23 Sơ đồ luồng xử lý dịch thuật ¿ 2 222++2x+2x++zx+zrxsrxerseee 158 Hình 4.24 Sơ đồ luồng xử lý truy van giá cô phiếu -¿-cs¿©cs5sce¿ 159 Hình 4.25 Sơ đồ luồng xử lý truy van thông tin dịch COVID-I9 - 160 Hình 4.26 So đồ luéng xử lý truy van thông tin từ Google Knowledge Graph l6 Hình 4.27 Sơ đồ màn hình 2 ¿+ ++++E+++E++2E++EE+2EE+2EEtEExerxverxrzrrrrrree 162 Hình 4.28 Giao diện màn hình chính (Chưa đăng nhập) : +55: 164
Trang 17Hình 4.29 Giao diện màn hình chính (Đã đăng nhập) - - 5555 ++<<s+s 165 Hình 4.30 Giao diện màn hình đăng nhập - - 5 5525 + E+kEsesseesses 166 Hình 4.31 Giao diện màn hình đăng Ky - 55 32213 +kseereeerrerrrrrrsxrs 167 Hình 4.32 Giao diện màn hình liệt kê giá dịch VU - - 55s +++ssxcsecsees 168
Hình 4.33 Giao điện màn hình giao tiếp với Chatbot - -¿ 5¿©csc5s+¿ 169
Hình 4.34 Giao diện màn hình nhập thông tin thanh toán 5+ 170
Hình 4.35 Giao diện màn hình danh sách bài viẾt ¿2 + s+s+x+zs+szEezszszz 172Hình 4.36 Giao diện màn hình chỉnh sử hồ sơ người dùng - : 173Hình 4.37 Giao diện màn hình thiết lập bảo mật người dùng -. - 174Hình 4.38 Giao điện màn hình thiết lập cá nhân người dùng 175Hình 4.39 Giao diện màn hình dashboard quản trị hệ thong "—— 177
Hình 4.40 Giao diện màn hình quản lý người dùng s5 ++<ss++sss++s+2 178 Hình 4.41 Giao diện màn hình chỉnh sửa thông tin người dùng - 180
Hình 4.42 Giao diện màn hình quản lý dịch vụ hệ thống ¬ 182Hình 4.43 Giao diện màn hình quản lý bài viẾt ¿5 2 s2 +2 2+£z+£z+see: 183Hình 4.44 Giao diện màn hình chỉnh sửa bài viẾt - - s x+++x++x++xrxees 184
Hình 4.45 Giao diện màn hình Đăng nhập - 5 555 ++ + ssEesersrrrerrre 186 Hình 4.46 Giao diện màn hình Đăng ký c5 S5 + **sEEsseresererserersee 188 Hình 4.47 Giao diện man hình Khung chat - 5 55+ £++se+seexeseesess 190
Hình 4.48 Giao diện màn hình khung chat (kèm bản đỒ) cuc tr neererersey 190Hình 4.49 Giao diện màn hình Danh sách bài viẾt 2s + ++x++x+xee: 192Hình 4.50 Giao điện màn hình Thiết lập tài khoản -2¿ 52 555522 194
Hình 4.51 Giao diện màn hình Chỉnh sửa thông tin người dùng - 197
Trang 18Hình 4.52 Giao diện màn hình Thiết lập âm thanh và thông báo 199
Hình 4.53 Giao diện màn hình Nâng cấp dịch vVụ - 2< << cccccsssseeeeeeees 201 Hình 4.54 Giao diện màn hình Thiết lập bảo mật - - -ccSsssreee, 203 Hình 4.55 Sơ đồ quy trình thực hiện tác vụ nhận diện ý niệm - 206
Hình 4.56 Kết quả huấn luyện mô hình nhận diện ý niệm - 207
Hình 4.57 Sơ đồ quy trình thực hiện tác vụ xác định thực thé đặt tên 208
Hình 4.58 Sơ đồ quy trình thực hiện tác vu phân tích cảm xúc - - - 211
Hình 4.59 Sơ đồ quy trình thực hiện tác vụ cau tao ngôn ngữ tự nhiên 214
Hình 4.60 Giao diện chính của ChatbO( - 55 <5 333332222 EE+Sssseeeeeeees 217 Hình 4.61 Màn hình quản lý người dùng giúp quản trị viên dé dàng quản lý các tài khoản trong hệ thống - ¿+ StS2+S£9E£2E2EEEEEEEE21221221211211217121 7111111 1 ty 218 Hình 4.62 Màn hình quản lý cấp bậc người dùng ¿2 +22 218 Hình 4.63 Các tính năng trong ứng dụng di động của Chatbot - 220
Hình 4.64 Ứng dụng di động cho phép người dùng tùy chỉnh diện mạo của ứng dụng
Hình phụ lục I Hình ảnh giao diện làm việc của Google Colaboratory (Thông qua
Jupyter Notebook)_ HS TK nh KH ng 234
Trang 19Bảng 3.5 Bảng danh sách thuộc tính của một Entity Parameter - - 73
Bảng 3.6 Bảng các Entity được hỗ trợ bởi Duckling -¿- ¿5555555552 74
Bảng 4.1 Bảng mô tả sơ lược các Actor trong sơ đồ ca sử dụng - 92Bang 4.2 Bảng mô tả thành phần chính trong hệ thống - 2-2 2 252: 130
Bảng 4.3 Bảng thuộc tính lớp US€T 5 5 2 331113 EE£EESESEEsreeeeseeereereree 134 Bảng 4.4 Bảng thuộc tính lớp Service - 2c 311123 19 1 v.v ngriệp 134 Bảng 4.5 Bảng phương thức lớp Service c2 32+ ierirrrrrrrrrkre 135 Bảng 4.6 Bảng thuộc tính lớp S€SSIOI - G1111 99112 1 ng, 135 Bảng 4.7 Bảng phương thức lớp S€SSIOH - c5 3+ 132 ESsEEseerereerrserersee 135
Bảng 4.8 Bảng thuộc tính lớp BÏÌ 2c 3 1133111311 1 EEESEEEErkrrrkreree 136 Bang 4.9 Bảng thuộc tính lớp PendingBIÌ] -. 555 5 + +sseeseeeeseeseee 136
Bảng 4.10 Bảng phương thức lớp PendingBiill - - 5+5 ++ss+sexseeseerseess 137
Bảng 4.11 Bảng thuộc tính lớp ConfirmBiIÏl 5+ «+ +£++££se£zs+seeesees 137 Bảng 4.12 Bảng thuộc tính lớp COnn(€XK - 5 5 S5 2 E21 3 Ekreseerrsee 138
Bảng 4.13 Bảng phương thức lớp COTIf€XÍ -.- G5 + 132 E*Esesereeeeerserersee 138
Bảng 4.14 Bảng thuộc tính lớp ActiveCOnf€XE - SG HS Hiệp 139 Bảng 4.15 Bảng thuộc tính lop Message - - - c Si, 139 Bảng 4.16 Bảng thuộc tính lớp Option -¿-22222222++22EEEE52et2EEEEExeerrrre 140
Trang 20Bang 4.17 Bảng thuộc tính lớp InformationKey - « + s + s+vsseeseeee 140
Bảng 4.18 Bảng phương thức lớp InformationKey - «+5 «+ <+sc<s+s 140
Bảng 4.19 Bảng thuộc tính lớp Utfera'nC© - s5 + 1S eiep 141 Bảng 4.20 Bảng thuộc tính lớp Ïnf€nif - - + 3231 rririrerrerxee 141
Bảng 4.21 Bảng thuộc tinh lớp EnLIẨy Ác 1 211911 ng re, 142
Bảng 4.22 Bảng thuộc tính lớp “TTAIÍ( - c3 E219 Series 142
Bảng 4.23 Bảng thuộc tính lớp NotIÍiCatiOT - 2 5 1k ssekssesekee 143 Bảng 4.24 Bảng thuộc tính lop Preference 3+ vs sessrrserersee 143 Bảng 4.25 Bảng thuộc tính lớp BÌOg - c5 3112119 119119111 rệt 144
Bảng 4.26 Bảng danh sách màn hình trong hệ thống -2 5¿ 525552: 163
Bang 4.27 Bảng danh sách các thành phan trong màn hình chính 165
Bang 4.28 Bảng danh sách thành phan trong màn hình đăng nhập 167
Bang 4.29 Bảng danh sách thành phan trong màn hình đăng ký - 168
Bang 4.30 Bảng danh sách thành phan trong màn hình liệt kê giá dịch vụ 169
Bảng 4.31 Bảng danh sách thành phan trong màn hình giao tiếp với Chatbot 170
Bảng 4.32 Bảng danh sách thành phan trong màn hình nhập thông tin thanh toán 171 Bảng 4.33 Bảng danh sách thành phần trong màn hình danh sách bài viết 172 Bảng 4.34 Bảng danh sách thành phần trong màn hình chỉnh sửa hồ sơ người dùng
Trang 21Bảng 4.37 Bảng danh sách các thành phần trong màn hình dashboard quản trị hệ
Bang 4.38 Bảng danh sách các thành phan trong màn hình quản lý người dùng 179
Bảng 4.39 Bảng danh sách các thành phần trong màn hình chỉnh sửa thông tin người Bang 4.41 Bảng danh sách các thành phan trong màn hình quan lý bài viết 183
Bang 4.42 Bảng danh sách các thành phan trong màn hình chỉnh sửa bài viết 184
Bảng 4.43 Bảng danh sách các thành phan trong màn hình Đăng nhập 187
Bảng 4.44 Bảng danh sách các thành phan trong màn hình Đăng ký 189
Bảng 4.45 Bảng danh sách các thành phan trong màn hình Khung chat 191
Bang 4.46 Bang danh sách các thành phan trong màn hình Danh sách bai viét 193
Bang 4.47 Bảng danh sách các thành phan trong màn hình Thiết lập tài khoản 195 Bang 4.48 Bảng danh sách các thành phan trong màn hình Chỉnh sửa thông tin người
Trang 22DANH MỤC TU VIET TAT
AI Artificial Intelligent Tri tuệ nhân tao
API Application Programming Interface | Giao diện lập trình ứng
dụng
BERT Bi-directional Encoder Thẻ hiện mã hóa hai chiều
Representations from Transformer | từ mô hình Transformer
CPU Central Processing Unit Don vi xử lý trung tâm
DAO Data Access ObJect Đối tượng truy cập dữ liệu
GPT Generative Pre-trained Transformer | Mô hình Transformer luyện
san mang tính cau tạo
GPU Graphics Processing Unit Don vị xử ly đồ họa
HTML, HyperText Markup Language Ngôn ngữ đánh dấu cho
siêu văn bản
HTTP Hypertext Transfer Protocol Giao thức chuyền giao siêu
văn bản
ID Identifier Ma nhan dién
JSON JavaScript Object Notation Biểu diễn đối tượng
JavascrIpt
NER Named Entity Recognition Nhận diện thực thé đặt tên
Trang 23NLG Natural Language Generation Câu tạo ngôn ngữ tự nhiên NLP Natural Language Processing Xu lý ngôn ngữ tự nhiên
NLU Natural Language Understanding Thau hiểu ngôn ngữ tự
nhiên
RAM Random Access Memory Bộ nhớ truy xuất ngẫu
nhiên
UC Use Case Ca str dung
UI User Interface Giao diện người dùng
URL Uniform Resource Locator Cu phap dinh vi tai nguyén
đồng nhất
Trang 24TÓM TAT KHÓA LUẬN
Trong bối cảnh nhu cầu tra cứu thông tin ngày càng lớn, cũng như việc phổ cậpInternet đang diễn ra với tốc độ càng cao trong bối cảnh hậu đại dich COVID-19.Nhóm nhận thấy tiềm năng trong việc phát triển một hệ thống Chatbot trợ lý ảo hỗtrợ người dùng tra cứu thông tin trên mang Internet Dé tạo ra được sản phẩm, nhómphải giải quyết hai bài toán lớn trong xử lý ngôn ngữ tự nhiên, gồm thấu hiểu ngônngữ tự nhiên Dé giải quyết hai van đề này Nhóm đã kết hợp nhiều hướng tiếp cận
bao gôm:
e Su dụng giải thuật tim mờ như giải thuật tìm độ do Levenshtein
e Sử dụng mô hình mạng nơ-ron truyền thăng
e© Sử dụng mô hình Transformer (Tinh chỉnh mô hình huấn luyện trước gồm
BARTpho và PhoBERT
Sau quá trình miệt mài nghiên cứu, thực hiện thiết kế va cài đặt hệ thống Nhóm
đã hoàn thiện hệ thống Chatbot đa nền tảng với những điểm nổi bật sau:
e_ Chatbot phản hồi câu hỏi của người ding
e_ Chatbot cung cấp thông tin thời gian thực cho người dùng như tin tức, thời
tiết, ti giá ngoại tệ, chỉ số chứng khoán
e Chatbot cung cấp thông tin kiến thức cho người dùng dựa theo kho tri thức của
Wikidata va Google Knowledge Graph
e Chatbot có khả năng xác định câu hỏi của người dùng dựa vào mô hình mang
nơ-ron truyền thang dé thực hiện tác vụ nhận diện ý niệm
e Chatbot có kha năng phân tích cảm xúc của người dùng dựa vào mô hình tinh
chỉnh từ mô hình PhoBERT
e Chatbot có khả năng cấu tạo phản hồi dựa vào mô hình tinh chỉnh từ mô hình
BARTpho
24
Trang 25e Người dùng có thể giao tiếp với Chatbot thông qua giao diện trên trình duyệt
web hoặc ứng dụng trên điện thoại chạy nên tang iOS va Android Với ứngdụng điện thoại b6 sung một số chức năng bổ sung
e_ Quản trị viên có thé quan lý mức độ truy cập thông tin của người dùng thông
qua giao diện riêng trên trình duyệt web
25
Trang 26DE CƯƠNG CHI TIẾT
Tên đề tài: Xây dựng Chatbot trợ lý ảo đa nền tảng
Cán bộ hướng dẫn: ThS TRAN ANH DŨNG
Thời gian thực hiện: từ ngày 17/02/2022 đến ngày 11/06/2022
Sinh viên thực hiện:
1 NGUYÊN NGỌC ĐĂNG - 18520557
2 BÉ HAI LONG - 18520302
Nội dung đề tài:
Mục tiêu đề tài
Xây dựng ứng dụng Chatbot trợ lý ảo đạt được các mục đích sau:
Tìm hiểu về Chatbot nói chung và các công nghệ liên qua đến việc phát triểnChatbot (Xử lý ngôn ngữ tự nhiên — Gồm thấu hiểu ngôn ngữ tự nhiên và cấu
tạo ngôn ngữ tự nhiên, thu thập, lưu trữ dữ liệu, phân tích ngữ cảnh) Xác định
được đặc điểm, ưu điểm cũng như nhược điểm của các cách tiếp cận khác nhau
trong việc phát triển Chatbot
Nghiên cứu sâu hơn về việc sử dụng thư viện NLP.Js và mô hình Transformercho van đề xử lý ngôn ngữ tự nhiên và các công nghệ liên quan (Node.js,
Express, React.js, Javascript, Flutter, Python) để xây dựng một hệ thống
Chatbot trợ lý ảo đa nền tảng (Chatbot chạy như một dịch vụ Backend và
Frontend được xây dựng để tận dụng hiệu quả nhất các tính năng của Chatbot)
Xây dựng ứng dụng Chatbot trợ lý ảo có tính thực tiễn trong cuộc sống, giúpích người dùng trong việc tiếp cận thông tin
26
Trang 27Nhóm hi vọng với nền tảng lý thuyết đã được truyén đạt trong quá trình học
tập trên giảng đường cũng như khả năng tự tìm hiểu thông tin, khả năng làm
việc nhóm của bản thân, sẽ có thê hoàn thiện được các mục tiêu đã đê ra.
Phương pháp thực hiện: Dự án theo nhóm, sinh viên Nguyễn Ngọc Đăng
thực hiện tìm hiểu và cai đặt hệ thống xử lý Sinh viên Bề Hải Long thực hiệntìm hiểu và cài đặt giao diện người dùng Cả hai chịu trách nhiệm xử lý các
van đề phát sinh trong quá trình phát triển và hoàn thiện báo cáo
Kết quả mong đợi: Sau khi xác định đề tài và định hướng nghiên cứu, nhóm
hi vọng có thể xây dựng được hệ thống Chatbot đạt được những mục tiêu sau
Về mặt chức năng, hệ thống có thé thực hiện trả lời các câu hỏi của người dùng
về một số các vấn đề khác nhau mà người dùng muốn biết, thực hiện một số
tương tác trò chuyện cơ bản, cho phép người dùng tương tác nhanh với phản
hồi của chatbot, tận dụng tính năng thuộc Web API (Ví dụ như Web
Notification, Web Speech API) của trình duyệt web và các API tương đương
trên thiết bị di động để chủ động đưa thông tin đến người dùng
Các chức năng chính Chatbot hỗ trợ dự kiến bao gồm:
— Nhận yêu cầu hỏi đáp về thông tin cơ bản (Điểm báo, thời tiết)
— Nhận yêu cầu hỏi đáp về kinh tế (Giá ngoại tệ, chỉ số chứng khoán, giá
các tài sản đầu tư như vàng, dầu, v.v
— )
— Nhan yêu cau hỏi đáp về dịch COVID (Cập nhật số ca nhiễm, tình hình
tiêm chủng, tin tức mới nhất từ bộ Y Tế)
— _ Nhận yêu cau hỏi đáp về kiến thức (Tìm định nghĩa, dịch thuật, làm tính
toán)
— Nhận yêu cầu gửi thông báo cho người dùng theo lịch đặt sẵn (Dé nhắc
nhở hoặc cung cấp thông tin định kỳ cho người dùng)
— Nhận yêu cầu điều hướng người dùng thông qua hệ thống bản đồ
27
Trang 28— Cho phép người dùng gửi hình ảnh và thực hiện một số tác vụ trích xuất
thông tin từ hình anh đó (Tìm nguồn hình anh, đọc nội dung hình anh)
— Hỗ trợ cá nhân hóa phản hồi từ thông tin người dùng
— (B6 sung nếu kế hoạch cho phép) Nhận diện vân tay âm thanh dé xác
định thông tin ca khúc từ một đoạn nhạc
Chatbot sẽ giao tiếp với API các dịch vụ bên thứ 3 dé thu thập thông tin và trả
về phản hồi dưới dạng ngôn ngữ tự nhiên hoặc đồ họa cung cấp thông tin
(Infographic) Chatbot giao tiếp với người dùng thông qua giao diện nền Web
hoặc ứng dụng di động cho thiết bi Android và iOS Ngoài ra hệ thống sẽ chophép việc phân lớp người dùng và hỗ trợ người dùng nâng cấp tài khoản củamình thông qua phương thức thanh toán điện tử dé nâng cao trải nghiệm người
dùng Hệ thống cũng cung cấp cho quản trị viên một giao diện quan ly dé có
thé theo dõi trạng thái hệ thống cũng như tương tác với người dùng một các
hiệu quả.
Đối với nhà phát triển, ứng dụng trở thành cơ hội để áp dụng các công nghệ
khác nhau đã được nghiên cứu, tìm hiểu trong quá trình thực hiện khóa luận,
với trung tâm là các công nghệ dé giải quyết van đề trong quá trình phát triểnChatbot Các công nghệ bao gồm nhưng không giới hạn với:
— Mô hình máy học cho bài toán thấu hiểu ngôn ngữ tự nhiên
— Thuật toán trích xuất thực thé đặt tên (Sử dụng biểu thức thường quy,
tìm kiếm mờ)
— Thuật toán cấu tạo ngôn ngữ tự nhiên
— Giao tiếp với API các dịch vụ bên thứ 3 qua giao thức RESTful API
hoặc Web Socket
— Các Browser API hỗ trợ nâng cao trải nghiệm tương tác giữa người và
máy bao gồm Push API, Speech Recognition API, Speech SynthesisAPI (Và các API tương đương trong các thiết bị đi động)
28
Trang 29Về mặt thâm mỹ, xây dựng một giao diện giao tiếp với Chatbot thân thiện, đơn
giản và dễ nhìn, tạo thiện cảm cho người sử dụng Giao diện được tùy chỉnh
sao cho phù hợp với môi trường sử dụng của người dùng (Web hoặc thiết bị diđộng).
Về mặt logic, tạo được liên kết giữa kết quả xử lý yêu cầu người dùng của hệthống Chatbot và logic ứng dụng dé trả về người dùng thông tin mà người dùng
Máy chủ xử lý: Node.js (Runtime Environment), Express (Server Middleware)
Thành phần xử lý ngôn ngữ tự nhiên: Thư viện NLP.js (Sử dụng mô hình forward Neural Network cho tác vụ thông hiểu ngôn ngữ), Transformer (Sửdụng mô hình PhoBERT cho tác vụ thông hiểu ngôn ngữ), VNCoreNLP (Thư
Feed-viện xử lý ngôn ngữ tiếng Việt)
Ngôn ngữ lập trình: Javascript, Dart
Cơ sở dữ liệu: MongoDB
Kế hoạch thực hiện:
Với thời gian thực hiện từ 17/02/2021 đến 11/06/2021, nhóm chia khung thờigian nay ra thành các giai đoạn lớn với các phần việc nhỏ hơn có thé thực hiệntheo thứ tự bất kì miễn là nằm trong giới hạn cho phép của giai đoạn đó, các
giai đoạn này như sau:
29
Trang 30Giai đoạn 1: Refactor lại hệ thông mã nguồn, xác định các chức năng, chỉnh
sửa được thực hiện trong dự án này
Giai đoạn 2: Tìm hiêu vê các công nghệ liên quan sẽ được sử dụng trong dự
án Xây dựng bản nguyên mẫu của hệ thông đề minh họa cách sử dụng của các
công nghệ này
Giai đoạn 3: Thiết kế hệ thong bao gom kiến trúc, kịch ban, đặc tả các API
được dùng trong ứng dụng Nội dung của giai đoạn này cũng như khối lượng
công việc thực hiện sẽ bi ảnh hưởng bởi kết quả của giai đoạn 2
Giai đoạn 4: Từ thiết kế hệ thống đã được hoàn thiện trong giai đoạn 3, xâydựng giao diện cho hệ thống, huấn luyện cho ChatBot xử lý yêu cầu của ngườidùng và xây dựng server lấy dữ liệu cho việc trả lời câu hỏi của ChatBot
Giai đoạn 5: Tùy thuộc vào kết quả của giai đoạn 4, hoàn thiện hệ thống bằng
việc liên kết giao diện với hệ thống Chatbot và hệ thống lấy dữ liệu trả lời, đưa
vào thử nghiệm, hoàn thiện báo cáo luận án
Giai đoạn Công việc Người thực Số giờ thực
(Thời gian dự hiện hiện dự
kiến) kiến
Giai đoạn | Thực hiện refactor mã nguồn | Nguyễn Ngoc 24
(17/02/2022 - | của dự án trước đó Đăng
03/03/2022)
Xác định các chức năng được | Cả 2 thành 4 cài đặt mới viên
Xác định các thành phần hệ | Nguyễn Ngọc 4thong cần chỉnh sửa lại Đăng
30
Trang 31Xây dựng nguyên mẫu hệ
thống sử dụng các công nghệ
đã được tìm hiêu
Cả 2 thành viên
Trang 32Thiết kế API truy vấn thông | Nguyễn Ngọc 12
tin Đăng
Thiết kế hệ thống phản hồi | Nguyễn Ngọc 8bằng hình ảnh Đăng
Thiết kế hệ thống phản hồi | Nguyễn Ngọc 4
cấu tạo ngôn ngữ tự nhiên Đăng
Hoàn thiện đặc tả thiết kế hệ | Cả 2 thành 12thong viên
Thiết kế kiểm thử Bề Hải Long 8
Giai doan 4 Cài đặt giao diện trên nền | Nguyễn Ngọc 36
Cài đặt hệ thống truy vấn | Nguyễn Ngọc 24
thông tin Đăng
Cài đặt các chức năng còn lại | Cả 2 thành 40trong thiết kế viên
Giai đoạn 5 Hoàn thiện hệ thong Ca 2 thanh ~20(21/05/2022 — vién
11/06/2022) - : :
Kiêm thử hệ thông Bê Hải Long ~20
32
Trang 33Vận hành thử nghiệm Nguyễn Ngọc ~12
Đăng
Hoàn thiện báo cáo Nguyễn Ngọc ~12
Đăng
Hướng phát triển dự kiến:
Với nền tảng đã được hoàn thiện trong khóa luận này, nhóm hi vọng có thể sử
dụng kết quả của khóa luận dé hoàn thiện một sản phẩm Chatbot trợ lý ảo vớitính thực tiễn tốt hơn Cụ thể với những bé sung sau:
— Cac cải thiện trên hi vọng sẽ đưa dự án lên trở thành một trợ lý ảo chuyên
biệt cho tiếng Việt
— _ Tăng cường huấn luyện Chatbot
— Bồ sung các nội dung mới cho kho trí thức của Chatbot
Xác nhận của CBHD TP HCM, ngày 19 thang 02 năm 2022 (Ký tên và ghi rõ họ tên) Sinh viên
(Ký tên và ghi rõ họ tên)
NGUYÉN NGỌC ĐĂNG
TRAN ANH DŨNG
BE HAI LONG
33
Trang 34Chương 1: MỞ ĐẦU
1.1 Giới thiệu về đề tài
1.1.1 Chatbot là gì
Chatbot (hay còn gọi là Chatterbot) là một dạng phần mềm ứng dụng được dùng
dé chủ động thiết lập một cuộc trò chuyện thông qua tin nhắn văn bản hoặc tin nhănthoại (Text-to-speech) Thay cho việc phải kết nối trực tiếp tới một người khác.Chatbot thường được thiết kế để mô phỏng lại hành vi của một con người trong mộtcuộc trò chuyện thông thường Tuy nhiên đa số các chatbot hiện nay thường yêu cầu
sự tu chỉnh và kiểm tra liên tục, đa số chúng thường không thê giao tiếp một cách
thuyết phục như con người hay có thé vượt qua được bài kiểm tra Turing (sẽ được
giải thích chỉ tiết hơn trong phần sau) Tuy vậy so với các chatbot đời đầu được thiết
kế thuần túy cho mục đích nghiên cứu (ELIZA, ALICE, v.v.) Các chatbot hiện nayđược sử dụng trong hệ thống trao đôi thông tin với đa dạng các mục đích như chămsóc khách hàng, yêu cầu hướng dẫn hoặc thu thập thông tin Chatbot có thể được
dựng nên nhờ việc sử dụng các công cụ xử lý ngôn ngữ tự nhiên cực kì hiện đại, các
công cụ trí tuệ nhân tạo tối tân Chúng cũng có thê được tạo nên chỉ bằng việc quét
và chọn ra các từ khóa được đưa vào và đưa ra các câu trả lời chung dựa trên việc so
khớp từ khóa đó với một cơ sở dữ liệu có sẵn Sự linh hoạt trong cách thức cài đặt
này chính là một trong những lý do mà chatbot trở nên phô biến trong môi trườngđiện toán hiện nay Đa số các chatbot được hiện thực hóa dưới dạng một cửa số nhắntin hoặc một trợ lý ảo truy cập được thông qua mạng máy tính Chúng có thé được
phân loại dựa vào lĩnh vực sử dụng như sau:
e Thương mại (Chatbot gợi ý san phẩm, chăm sóc khách hang, v.v.)
e- Giáo dục (Chatbot cung cấp thông tin, thông báo, kiến thức, v.v.)
e Giải trí (Chatbot gợi ý hình thức, nội dung giải trí, kế chuyện vui, v.V.)
e Tài chính (Chatbot cung cấp thông tin chứng khoán, tỉ giá, thị trường)
e Tin tức (Chatbot cung cấp thông tin thời sự, thông tin nội bộ, v.v.)
34
Trang 35e H6 trợ làm việc (Chatbot quản lý thông báo, lịch trình làm việc, thông tin liên
quan dén công việc, v.v.) 1.1.2 Góc nhìn chung về nhu câu tra cứu thông tin
Chúng ta không thê phủ nhận rằng một trong những lợi thế của mạng Internet làkhả năng tiếp cận thông tin nhanh và chính xác Trong các nguồn lực phát triển xãhội, thông tin được coi là nguồn tài nguyên quan trọng nhất Thông tin là tri thức, làsức mạnh và là bí quyết góp phần định hướng đúng, giúp lãnh đạo quản lý ra cácquyết định chính xác hơn Mọi hoạt động kinh tế - xã hội đều liên quan tới thông tin
Nhu cầu tra cứu thông tin là đòi hỏi khách quan của con người (cá nhân, nhóm, xã
hội) đối với việc tiếp nhận và sử dụng thông tin dé duy tri hoạt động sống Khi đòi
hỏi về thông tin trở lên cấp thiết thì nhu cầu tra cứu thông tin xuất hiện Thông tin trởthành nhu cầu của con người, là một dạng của nhu cầu tinh thần, nhu cầu bậc cao củacon người Nhu cầu nảy sinh trong quá trinh thực hiện các loại hoạt động khác củacon người, thông tin về đối tượng hoạt động, về môi trường và các phương tiện hoạt
động là yếu tố quan trọng tạo nên hiệu quả hoạt động của con người Bất kỳ hoạt
động nào muốn có kết quả tốt thì cũng cần phải có thông tin Mọi người càng thamgia nhiều hoạt động khác nhau thì nhu cầu tin của con người càng phong phú hơn,tham gia hoạt động phức tạp thì nhu cầu tin càng trở lên sâu sắc hơn
Ta lay vi dụ về việc tra cứu thông tin như sau: Buổi tối một ngày, A đang nghĩ về
việc chạy bộ budi sáng hôm sau A sẽ có nhu cầu tra cứu thời tiết của ngày hôm sau
và A biết được rằng thời tiết ngày mai khả năng cao sẽ mưa A đổi kế hoạch của mìnhcho sáng hôm sau sang việc uống cà phê và đọc tin tức Sáng hôm sau, A đang đọctin tức trên một trang mạng Có một thông tin quan trọng hiện lên: Theo chỉ đạo củaThủ tướng Chính phủ, người dân được khuyến khích ở nhà dé phòng chống đại dịch
C Vậy là A nghĩ về việc thay vì ra ngoài đường để chạy bộ, có thể mua một máychạy bộ không phải là một ý tưởng tồi Vì thế A lại tìm kiếm thông tin về một máychạy bộ giá vừa phải và có thé được chuyền đến trong thời gian ngắn Như ta có thé
thấy, chỉ với một công việc ban đầu đó là chạy bộ, A đã thực hiện tra cứu từ thông tin
35
Trang 36thời tiết, đến thông tin thời sự, rồi lại đến thông tin sản phẩm máy chạy bộ Nhữngthông tin này có thể không thật sự cần thiết cho A trong việc có chạy bộ hay không.
Nhưng ở đây ta cũng có thể thấy, với việc sử dụng mạng Internet mà việc tiếp cận
thông tin cũng trở nên cực kì dễ dàng và nó giúp ích cho A trong việc lựa chọn cách
thức chạy bộ cho bản thân mà không gây ra bắt tiện cho bản thân hay những ngườixung quanh Bởi vậy nhu cầu tra cứu thông tin, đặc biệt là thông qua mạng Internet
là một nhu cầu không thê thiếu trong quá trình làm việc cũng như giải trí của con
nguoi.
1.1.3 Ly do lwa chon dé tai
Như đã được dé cập trong các phan trước, nhu cau tra cứu thông tin của con ngườiđang ngày một gia tăng Cũng như nền tảng công nghệ Chatbot đang dần được hoànthiện, với nhiều hướng tiếp cận dé xây dựng một Chatbot từ đơn giản đến cực kì hiệnđại Nhóm phát triển muốn thực hiện xây dựng một Chatbot trợ lý ảo trên nên tảngweb Lý do cụ thê bao gồm:
e Đưa người dùng ra khỏi sự phụ thuộc của các công cụ tìm kiếm trong việc tra
cứu thông tin
e Tao ra một môi trường thân thiện hơn với người dùng trong việc tra cứu thông
tin
° Áp dụng các kiến thức đã được học về thiết kế một hệ thống phần mềm với đầy
đủ các thành phần
e Tạo điều kiện dé tìm hiểu về các cách tiếp cận xây dựng hệ thống Chatbot và
lựa chọn một cách tiếp cận phù hợp đề thực hiện xây dựng Chatbot
e Tạo điều kiện tìm hiểu về các Web API và áp dụng chúng để nâng cao trải
nghiệm người dùng với Chatbot
e Đặt ra nền tảng cho hướng phát triển của hệ thống trong tương lai
1.2 Đối tượng nghiên cứu
Khóa luận này hướng đên nghiên cứu các đôi tượng sau:
36
Trang 37o Python (PyTorch, Transformer)
e Đối tượng phạm vi dé tài hướng đến:
o Người có nhu câu tra cứu thông tin
o Người có nhu cầu trò chuyện với một phong cách giống người
1.3 Phạm vi nghiên cứu
Ứng dụng YourChatStarter được viết chủ yếu bằng ngôn ngữ lập trình Javascript(Chuân ECMAScript 6) Ngoài ra nhóm phát triển sẽ tiến hành xây dựng hệ thốngfrontend dé tạo môi trường giao tiếp với người dùng sử dung React, cùng với đó làmột giao diện cho thiết bị di động chạy hệ điều hành Android và iOS thông quaFlutter, phần chatbot cũng một số tính năng khác sẽ được phát triển chạy trên Node.js
và giao tiếp với frontend sử dụng Express.js, Dữ liệu được quản lý bằng MongoDB.Một số chức năng liên quan đến các tác vụ học sâu (Deep Learning) sử dụng Python
dé huấn luyện mô hình trên Google Colab và tạo máy chủ cục bộ dé giao tiếp với
phần còn lại của hệ thống Hệ thống được cài đặt nhiều công cụ khác nhau (sẽ được
liệt kê ở phần Công nghệ sử dụng - Phụ lục 1)
1.4 Phương pháp nghiên cứu
Nhóm đã sử dụng các phương pháp nghiên cứu:
e Đọc tài liệu thiết kế các công nghệ sử dụng
e Phân tích các ứng dụng gần giống với mục tiêu của khóa luận
e Đọc các tài liệu hướng dẫn thêm
e Phân tích mã nguồn các dự án tương tự
37
Trang 381.5 Nhiệm vụ của đề tài
Đề tài: “Xây dựng Chatbot trợ lý ảo đa nền tảng” sẽ bao gồm 2 nhiệm vụ chính
e Tìm hiểu về các công nghệ liên quan đến dự án
o Tìm hiểu chung về Chatbot và cách thức giải quyết các van dé trong
việc thiết kế một Chatbot
o Tìm hiểu về NLP.js Thư viện hỗ trợ xử lý ngôn ngữ tự nhiên cho
Chatbot
o Tìm hiểu thêm về các Web API bao gồm
= SpeechSynthesis API (thuộc về Web Speech API)
* SpeechRecognition API (thuộc về Web Speech API)
= Push API (thuộc vé Service Worker API)
o Trình bày kết quả tìm hiểu trong báo cáo này
e Xây dựng ứng dụng minh họa (YourChatStarter) có những chức năng sau đây.
o_ Đăng kí: Đăng kí tài khoản để sử dụng trong hệ thốngo_ Đăng nhập: Đăng nhập vào tài khoản để sử dụng hệ thống
o Xem thông tin người dùng
o Mua gói cao cấp của hệ thong (Bao gồm tính năng thanh toán online)
o Quản lý đơn hàngo_ Giao tiếp với Chatbot (mô phỏng một cửa số chat)
o Chỉnh sửa thông tin và thiết lập cá nhân của người dùng
o Chức năng quản lý hệ thống người dùng, dịch vụ, hóa đơn dịch vụ và
bài viết công khai cho quản trị viêno_ Xem các bài viết công khai từ đội ngũ phát triển
e Xây dựng Chatbot giao tiếp với người dùng thông qua YourChatStarter với
khả năng
o_ Chào hỏi, giao tiếp cơ bảno_ Cung cấp thông tin về thời tiết
38
Trang 39o Cung cấp thông tin về tỉ giá
o_ Cung cấp tính năng đổi đơn vị
o Thực hiện phép toán
o Dịch thuật theo yêu cầuo_ Cung cấp tin tức thời gian thực qua báo điện tửo_ Đặt thông báo nhắc nhở người dùng
o Cung cấp thông tin về thực thé
o_ Thu thập thông tin để cá nhân hóa phản hồi
o Phản hồi để xây dựng một chuỗi hội thoại
o Phản hồi các trường hop đầu vào không như dự định
e Xây dung ứng dụng trên nền tảng di động với khả năng sử dung tat cả các tính
năng của Chatbot
39
Trang 40Chương 2: TONG QUAN
2.1 Khao sat hién trang
Hiện nay, Chatbot là một ứng dụng được sử dung rộng rãi dưới đủ quy mô cũngnhư độ phức tạp Dưới đây là một số sô liệu cụ thé dé khang định điều này:
Interest over time Hor
Hình 2.1 Dữ liệu Google Trend cho cum từ "chatbot" trong vòng 5 nam tro lại đây
Dữ liệu Google Trend cho cụm từ “Chat bot” có xu hướng tăng dan theo từng năm
và hiện tại đang ở mức khá ồn định:
e 1.4 tỷ người dang sử dụng Chatbot (theo như Chatbot.Net)
e_ 56% doanh nghiệp tin rằng chatbot là một trong những nhân tố đột phá trong
việc kinh doanh của họ (theo như Accenture)
e Gần 6 trên 10 điều hành doanh nghiệp nói rang Chatbot có thé cải thiện khả
năng của tô chức trong việc xử lý yêu cầu của khách hàng bằng mạng lưới liênkết với những con bot khác Chúng có thé đem lại sự chăm chút đến từng cánhân đối với từng đối tượng tiếp xúc với trang web (theo như Accenture)
Về mặt trải nghiệm, ta có những số liệu sau:
e 265 tỷ yêu cầu từ khách hang được đưa ra, tiêu tốn 1,3 nghìn tỷ USD mỗi năm
(theo như Chatbots Journal)
e 30% khách hàng sẽ rời bỏ một nhãn hàng và không bao giờ trở lại vì trải
nghiệm không tốt (theo như OpenText)
40