Tải bản đầy đủ (.pdf) (186 trang)

Xây dựng chatbot trợ lý ảo trên nền web

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.49 MB, 186 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

NGUYỄN NGỌC ĐĂNG

BÁO CÁO ĐỒ ÁN

XÂY DỰNG CHATBOT TRỢ LÝ ẢO TRÊN NỀN WEB

ĐỒ ÁN 2 – SE122.M11

TP. HỒ CHÍ MINH, 2021


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

NGUYỄN NGỌC ĐĂNG - 18520557

BÁO CÁO ĐỒ ÁN

XÂY DỰNG CHATBOT TRỢ LÝ ẢO TRÊN NỀN WEB

ĐỒ ÁN 2 – SE122.M11

GIẢNG VIÊN HƯỚNG DẪN
THS. PHAN TRUNG HIẾU


THS. TRẤN ANH DŨNG

TP. HỒ CHÍ MINH, 2021
2


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ

CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT

MINH

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 25 tháng 09 năm 2021

ĐỀ CƯƠNG CHI TIẾT
Tên đề tài: Xây dựng Chatbot trợ lý ảo trên nền Web
Cán bộ hướng dẫn: THS. PHAN TRUNG HIẾU, THS TRẦN ANH DŨNG
Thời gian thực hiện: từ ngày 25/09/2021 đến ngày 31/12/2021
Sinh viên thực hiện:
1. NGUYỄN NGỌC ĐĂNG - 18520557
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ển
Chatbot (Xử lý 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 cho vấn đề xử lý ngôn ngữ
tự nhiên và các công nghệ liên quan (Node.js, Express, React.js, Javascript) để

3


xây dựng một hệ thống Chatbot trợ lý ảo trên nền web (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
Nhó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, sẽ có thể hồn thiện
được các mục tiêu đã đề ra
Phương pháp thực hiện: Dự án cá nhân, sinh viên đảm nhiệm tất cả các vai trò
trong việc tìm hiểu, thiết kế và xây dựng ứng dụng minh họa cũng như biên soạn
báo cáo phục vụ cho đồ án này
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 ứng dụng minh họa đạt được những mục tiêu sau
Về mặt chức năng, ứng dụ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 để chủ động đưa thông tin đến người dùng
Đố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 đồ án, với trung tâm
là các công nghệ để giải quyết vấn đề trong quá trình phát triển Chatbot
Về 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
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
ChatBot framework và logic ứng dụng để trả về người dùng thông tin mà người
dùng muốn thấy

4


Về mặt bảo mật, thực hiện bảo mật các API key được sử dụng trong quá trình
phát triển hệ thống, tránh trường hợp hệ thống bị lạm dụng cho các mục đích
khác
Cơng nghệ dự kiến sử dụng:
Giao diện người dùng: React.js (Thư viện component React Suite)
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 thuật toán BERT
Classification), Duckling (Named Entity Recognition)
Ngơn ngữ lập trình: Javascript
Cơ sở dữ liệu: MongoDB
Kế hoạch thực hiện:
Với thời gian thực hiện từ 25/09/2021 đến 31/12/2021, nhóm chia khung thời
gian này 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ện
theo 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:
Giai đoạn 1: Khảo sát hiện trạng, tìm hiểu sơ bộ về Chatbot cũng như cách tiếp
cận trong việc thiết kế Chatbot hiện nay
Giai đoạn 2: Tìm hiểu sâu hơn về các cơng nghệ liên quan đến Chatbot (chủ yếu
là về thư viện xử lý ngôn ngữ tự nhiên NLP.js) cũng như cách tận dụng khả năng

của mơi trường trình duyệt để phát triển độ hữu dụng của Chatbot
Giai đoạn 3: Thiết kế hệ thống bao gồm kiến trúc, kịch bản, đặc tả các API được
dùng trong ứng dụng
Giai đoạn 4: Xây dựng giao diện cho ứng dụng minh họa, huấn luyện cho ChatBot
xử lý yêu cầu của người dù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

5


Giai đoạn 5: 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
đồ án
Giai đoạn (Thời gian

Công việc

dự kiến)
Giai đoạn 1

-

hướng tiếp cận xây dựng Chatbot

(25/09/2021 05/10/2021)

Tìm hiểu chung về Chatbot, So sánh các

-


Khảo sát nhu cầu sử dụng Chatbot trong đời
sống hằng ngày

-

Khảo sát nhu cầu tra cứu thông tin nói chung
trên internet

Giai đoạn 2

-

Tìm hiểu sâu hơn về thư viện NLP.js

(06/10/2021 –

-

Tìm hiểu sâu hơn về các Web API để tận dụng
tối đa khả năng của mơi trường trình duyệt

26/10/2021)
-

Xác định phương án tiếp tục xây dựng dự án

-

Tìm hiểu các công nghệ liên quan để xây dựng
ứng dụng


-

Thực hiện refactor mã nguồn của dự án trước
đó

Giai đoạn 3

-

Thiết kế kiến trúc hệ thống

(27/10/2021 –

-

Thiết kế giao diện

14/11/2021

-

Thiết kế API truy vấn thơng tin

-

Hồn thiện đặc tả thiết kế hệ thống

Giai đoạn 4


-

Cài đặt giao diện

(14/11/2021 –

-

Huấn luyện Chatbot xử lý yêu cầu

15/12/2021)

-

Cài đặt hệ thống truy vấn thông tin

6


Giai đoạn 5

-

Hoàn thiện hệ thống

(15/12/2021 –

-

Vận hành thử nghiệm


31/12/2021)
Hướng phát triển dự kiến:
Với nền tảng đã được hoàn thiện trong đồ án này, nhóm hi vọng có thể sử dụng
kết quả của đồ án này để phục vụ cho việc thực hiện khóa luận tốt nghiệp. Với
những bổ sung sau:


Các 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 và tìm cách để liên tục bổ sung cho
Chatbot kiến thức thông qua các cuộc hội thoại trước đó



Xây dựng ứng dụng di động để tăng khả năng bao phủ của Chatbot
Xác nhận của CBHD

TP. HCM, ngày 25 tháng 09 năm 2021

(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


PHAN TRUNG HIẾU

7


MỤC LỤC
1

TỔNG QUAN VỀ ĐỀ TÀI .................................................................................. 19
1.1

1.1.1

Chatbot là gì ............................................................................................. 19

1.1.2

Cái nhìn chung về nhu cầu tra cứu thơng tin ........................................... 20

1.1.3

Lý do lựa chọn đề tài ................................................................................ 21

1.2

2

Giới thiệu về đề tài .......................................................................................... 19

Khảo sát hiện trạng ......................................................................................... 21


1.2.1

CleverBot – Chatbot trò chuyện nổi tiếng nhất thế giới .......................... 24

1.2.2

Google – Nền tảng tra cứu thông tin lớn nhất thế giới ............................ 25

1.3

Đối tượng nghiên cứu ..................................................................................... 25

1.4

Phạm vi nghiên cứu......................................................................................... 26

1.5

Phương pháp nghiên cứu ................................................................................ 26

1.6

Nhiệm vụ của đề tài ........................................................................................ 26

CƠ SỞ LÝ THUYẾT ........................................................................................... 28
2.1

Tổng quan về ECMAScript ............................................................................ 28


2.1.1

Khái niệm ................................................................................................. 28

2.1.2

Cấu trúc .................................................................................................... 28

2.1.3

Ưu điểm .................................................................................................... 29

2.2

Tổng quan về Node.js ..................................................................................... 29

2.2.1

Khái niệm ................................................................................................. 29

2.2.2

Cấu trúc .................................................................................................... 30

2.2.3

Ưu điểm .................................................................................................... 32

2.3


Tổng quan về Express.js ................................................................................. 32

2.3.1

Khái niệm ................................................................................................. 32

8


2.3.2

Cấu trúc .................................................................................................... 33

2.3.3

Ưu điểm .................................................................................................... 34

2.4

2.4.1

Khái niệm ................................................................................................. 35

2.4.2

Cấu trúc .................................................................................................... 35

2.4.3

Ưu điểm .................................................................................................... 36


2.5

Tổng quan về MongoDB ................................................................................ 38

2.5.1

Khái niệm ................................................................................................. 38

2.5.2

Cấu trúc .................................................................................................... 38

2.5.3

Ưu điểm .................................................................................................... 39

2.6

3

Tổng quan về React......................................................................................... 35

Tổng quan về Web API................................................................................... 39

2.6.1

Khái niệm ................................................................................................. 39

2.6.2


Mô tả ........................................................................................................ 40

2.6.3

Ưu điểm .................................................................................................... 41

CHATBOT – BÀI TỐN XỬ LÝ NGƠN NGỮ TỰ NHIÊN ............................ 42
3.1

Giới thiệu về bài toán Chatbot ........................................................................ 42

3.2

Lý thuyết xây dựng Chatbot ........................................................................... 44

3.2.1

Các hướng tiếp cận xây dựng Chatbot ..................................................... 44

3.2.2

Giải quyết các vấn đề phát sinh trong xây dựng Chatbot ........................ 50

3.3

Cấu trúc hệ thống Chatbot .............................................................................. 55

3.3.1
3.4


Ứng dụng của Chatbot ............................................................................. 58

Sơ lược về thư viện NLP.js ............................................................................. 59

3.4.1

Giới thiệu về thư viện NLP.js .................................................................. 59

3.4.2

Ưu điểm của NLP.js ................................................................................. 60

3.4.3

Các khái niệm cơ bản trong NLP.js ......................................................... 61
9


4

THIẾT KẾ HỆ THỐNG ....................................................................................... 67
4.1

Xác định yêu cầu ............................................................................................. 67

4.1.1

Sơ đồ ca sử dụng ...................................................................................... 67


4.1.2

Đặc tả ca sử dụng ..................................................................................... 67

4.2

Thiết kế kiến trúc hệ thống ........................................................................... 111

4.3

Thiết kế mơ hình dữ liệu ............................................................................... 114

4.3.1

Sơ đồ lớp ................................................................................................ 114

4.3.2

Đặc tả lớp dữ liệu ................................................................................... 114

4.4

Thiết kế luồng xử lý ...................................................................................... 128

4.4.1

Luồng xử lý chức năng đăng nhập ......................................................... 128

4.4.2


Luồng xử lý chức năng đăng kí .............................................................. 129

4.4.3

Luồng xử lý chức năng thu phí .............................................................. 130

4.4.4

Luồng xử lý chức năng giao tiếp với Chatbot ........................................ 131

4.4.5

Luồng xử lý chức năng nhận diện giọng nói.......................................... 132

4.4.6

Luồng xử lý chức năng phát giọng......................................................... 133

4.4.7

Luồng xử lý chức năng đăng ký nhận thông báo ................................... 134

4.4.8

Luồng xử lý chức năng nhận thông báo ................................................. 135

4.5

Thiết kế module truy vấn thông tin ............................................................... 136


4.5.1

Truy vấn thông tin thời tiết .................................................................... 136

4.5.2

Truy vấn thông tin tỉ giá tiền tệ .............................................................. 136

4.5.3

Truy vấn thông tin dịch thuật ................................................................. 137

4.5.4

Truy vấn giá cổ phiếu ............................................................................. 138

4.5.5

Truy vấn thông tin dịch COVID-19 ....................................................... 138

4.5.6

Truy vấn kiến thức ................................................................................. 139

4.6

Thiết kế giao diện .......................................................................................... 140
10



5

4.6.1

Màn hình chính....................................................................................... 144

4.6.2

Màn hình đăng nhập ............................................................................... 146

4.6.3

Màn hình đăng kí.................................................................................... 147

4.6.4

Màn hình liệt kê giá dịch vụ ................................................................... 148

4.6.5

Màn hình giao tiếp với Chatbot.............................................................. 149

4.6.6

Màn hình nhập thơng tin thanh tốn ...................................................... 150

4.6.7

Màn hình xem lịch sử thanh tốn ........................................................... 151


4.6.8

Màn hình xem thơng tin người dùng ...................................................... 152

4.6.9

Màn hình danh sách bài viết................................................................... 153

CÀI ĐẶT HỆ THỐNG ....................................................................................... 166
5.1

Quy trình tái cấu trúc hệ thống ..................................................................... 166

5.2

Quy trình huấn luyện Chatbot ....................................................................... 166

5.2.1

Phương thức huấn luyện Chatbot ........................................................... 166

5.2.2

Quá trình huấn luyện Chatbot ................................................................ 167

5.3

5.3.1

Phương thức cài đặt giao diện ................................................................ 168


5.3.2

Quá trình cài đặt giao diện ..................................................................... 168

5.4

Quy trình cài đặt hệ thống xử lý ................................................................... 169

5.4.1

Phương thức cài đặt hệ thống xử lý ....................................................... 169

5.4.2

Quá trình cài đặt hệ thống xử lý ............................................................. 170

5.5

6

Quy trình cài đặt giao diện ............................................................................ 168

Quy trình cài đặt cơ sở dữ liệu ...................................................................... 170

5.5.1

Phương thức cài đặt cơ sở dữ liệu .......................................................... 170

5.5.2


Quá trình cài đặt cơ sở dữ liệu ............................................................... 171

KẾT QUẢ CÀI ĐẶT HỆ THỐNG .................................................................... 172
6.1

Giới thiệu hệ thống ....................................................................................... 172
11


7

6.2

Sơ lược tính năng hệ thống ........................................................................... 172

6.3

Đánh giá độ hoàn thiện hệ thống .................................................................. 176

KẾT LUẬN ........................................................................................................ 180
7.1

7.1.1

Thuận lợi ................................................................................................ 180

7.1.2

Khó khăn ................................................................................................ 180


7.2

Kết quả đạt được ........................................................................................... 181

7.2.1

Ưu điểm .................................................................................................. 181

7.2.2

Nhược điểm ............................................................................................ 181

7.3
8

Đánh giá kết quả làm việc ............................................................................. 180

Hướng phát triển ........................................................................................... 181

PHỤ LỤC ........................................................................................................... 183
8.1

Tài liệu tham khảo......................................................................................... 183

8.2

Danh mục công nghệ được sử dụng .............................................................. 184

LỜI CẢM ƠN ........................................................................................................... 186


12


DANH MỤC HÌNH
Hình 1.1 Dữ liệu Google Trend cho cụm từ "chatbot" trong vòng 5 năm trở lại đây .. 22
Hình 1.2 Một giao diện của Cleverbot ......................................................................... 24
Hình 1.3 Giao diện tra cứu thơng tin của Google......................................................... 25
Hình 2.1 Hình mơ tả cách mà Node.js phân bố cơng việc cho các tiểu trình trong hệ
thống ............................................................................................................................. 31
Hình 2.2 Hình minh họa cho cách hoạt động của Push API trên trình duyệt Google
Chrome ......................................................................................................................... 41
Hình 3.1 Cấu trúc cơ bản của một hệ thống Chatbot ................................................... 42
Hình 3.2 Ví dụ về bài tốn thấu hiểu ngơn ngữ tự nhiên ............................................. 43
Hình 3.3 Ví dụ về bài tốn cấu tạo ngơn ngữ tự nhiên ................................................. 44
Hình 3.4 Mơ tả thuật giải Levenshtein ......................................................................... 45
Hình 3.5 Bảng minh họa phương pháp quy hoạch động của Wagner-Fischer (So sánh
xâu Integration và Intelligent) ...................................................................................... 46
Hình 3.6 Cấu trúc dữ liệu Trie để lưu trữ từ điển cho phép so sánh mờ ...................... 46
Hình 3.7 Hình minh họa cho mạng nơ-ron truyển thẳng ............................................. 47
Hình 3.8 Cấu trúc đầy đủ của một Chatbot .................................................................. 56
Hình 4.1 Sơ đồ ca sử dụng............................................................................................ 67
Hình 4.2 Sơ đồ kiến trúc hệ thống .............................................................................. 111
Hình 4.3 Sơ đồ lớp của hệ thống ................................................................................ 114
Hình 4.4 Sơ đồ luồng xử lý chức năng đăng nhập ..................................................... 128
Hình 4.5 Sơ đồ luồng xử lý chức năng đăng ký ......................................................... 129
Hình 4.6 Sơ đồ luồng xử lý chức năng thu phí ........................................................... 130
Hình 4.7 Sơ đồ luồng xử lý chức năng giao tiếp với Chatbot .................................... 131
Hình 4.8 Sơ đồ luồng xử lý chức năng nhận diện giọng nói ...................................... 132
13



Hình 4.9 Sơ đồ luồng xử lý chức năng phát giọng ..................................................... 133
Hình 4.10 Sơ đồ luồng xử lý chức năng đăng ký nhận thơng báo ............................. 134
Hình 4.11 Sơ đồ luồng xử lý chức năng nhận thông báo ........................................... 135
Hình 4.12 Sơ đồ luồng xử lý truy vấn thơng tin thời tiết ........................................... 136
Hình 4.13 Sơ đồ luồng xử lý truy vấn thông tin tỉ giá ngoại tệ .................................. 137
Hình 4.14 Sơ đồ luồng xử lý dịch thuật ..................................................................... 137
Hình 4.15 Sơ đồ luồng xử lý truy vấn giá cổ phiếu.................................................... 138
Hình 4.16 Sơ đồ luồng xử lý truy vấn thơng tin dịch COVID-19 .............................. 139
Hình 4.17 Sơ đồ luồng xử lý chức năng truy vấn kiến thức ....................................... 140
Hình 4.18 Sơ đồ màn hình .......................................................................................... 141
Hình 4.19 Giao diện màn hình chính (Chưa đăng nhập) ............................................ 144
Hình 4.20 Giao diện màn hình chính (Đã đăng nhập)................................................ 145
Hình 4.21 Giao diện màn hình đăng nhập .................................................................. 146
Hình 4.22 Giao diện màn hình đăng ký ...................................................................... 147
Hình 4.23 Giao diện màn hình liệt kê giá dịch vụ ...................................................... 148
Hình 4.24 Giao diện màn hình giao tiếp với Chatbot................................................. 149
Hình 4.25 Giao diện màn hình nhập thơng tin thanh tốn ......................................... 150
Hình 4.26 Giao diện màn hình xem lịch sử thanh tốn .............................................. 151
Hình 4.27 Giao diện màn hình xem thơng tin người dùng ......................................... 152
Hình 4.28 Giao diện màn hình danh sách bài viết...................................................... 153
Hình 4.29 Giao diện màn hình chỉnh sửa thơng tin tài khoản .................................... 154
Hình 4.30 Giao diện màn hình thiết lập bảo mật tài khoản ........................................ 155
Hình 4.31 Giao diện màn hình thiết lập cá nhân ........................................................ 156
Hình 4.32 Giao diện màn hình bảng điều khiển ......................................................... 157
Hình 4.33 Giao diện màn hình hiển thị thơng tin hệ thống ........................................ 159
14



Hình 4.34 Giao diện màn hình quản lý người dùng ................................................... 160
Hình 4.35 Giao diện màn hình chỉnh sửa thơng tin người dùng ................................ 161
Hình 4.36 Giao diện màn hình quản lý dịch vụ .......................................................... 162
Hình 4.37 Giao diện màn hình quản lý bài viết .......................................................... 163
Hình 4.38 Giao diện màn hình chỉnh sửa bài viết ...................................................... 164
Hình 6.1 Chức năng cơ bản của Chatbot .................................................................... 173
Hình 6.2 Các chức năng khác của Chatbot ................................................................. 173
Hình 6.3 Hỏi Chatbot về tinhg dịch COVID-19......................................................... 174
Hình 6.4 Chức năng đổi giọng nói thành tin nhắn ..................................................... 174
Hình 6.5 Chức năng tra cứu thơng tin sử dụng Wikidata ........................................... 175
Hình 6.6 Màn hình đăng nhập .................................................................................... 175
Hình 6.7 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 .................................................................................................. 176
Hình 6.8 Màn hình quản lý dịch vụ để kiểm soát quyền truy cập người dùng lên các
chức năng hệ thống ..................................................................................................... 176

15


DANH MỤC BẢNG
Bảng 2.1 Bảng danh sách các thành phần Middleware được tích hợp vào Express.JS 33
Bảng 3.1 Bảng danh sách các thành phần trong một Chatbot ...................................... 56
Bảng 3.2 Bảng danh sách thuộc tính trong một Entity ................................................. 61
Bảng 3.3 Bảng danh sách thuộc tính trong một Intent ................................................. 61
Bảng 3.4 Bảng danh sách thuộc tính của một Entity Parameter .................................. 62
Bảng 3.5 Bảng các Entity được hỗ trợ bởi Duckling ................................................... 64
Bảng 3.6 Bảng danh sách thuộc tính của Sentiment .................................................... 65
Bảng 4.1 Bảng mô tả thành phần chính trong hệ thống ............................................. 112
Bảng 4.2 Bảng thuộc tính lớp User ............................................................................ 114
Bảng 4.3 Bảng phương thức lớp User ........................................................................ 115

Bảng 4.4 Bảng thuộc tính lớp Service ........................................................................ 115
Bảng 4.5 Bảng phương thức lớp Service .................................................................... 115
Bảng 4.6 Bảng thuộc tính lớp Session ........................................................................ 116
Bảng 4.7 Bảng phương thức lớp Session ................................................................... 116
Bảng 4.8 Bảng thuộc tính lớp Bill .............................................................................. 116
Bảng 4.9 Bảng phương thức lớp Bill .......................................................................... 117
Bảng 4.10 Bảng thuộc tính lớp PendingBill ............................................................... 117
Bảng 4.11 Bảng phương thức lớp PendingBill .......................................................... 117
Bảng 4.12 Bảng thuộc tính lớp ConfirmBill .............................................................. 118
Bảng 4.13 Bảng phương thức lớp ConfirmBill .......................................................... 118
Bảng 4.14 Bảng thuộc tính lớp Context ..................................................................... 118
Bảng 4.15 Bảng phương thức lớp Context ................................................................. 119
Bảng 4.16 Bảng thuộc tính lớp ActiveContext........................................................... 119

16


Bảng 4.17 Bảng phương thức lớp ActiveContext ...................................................... 120
Bảng 4.18 Bảng thuộc tính lớp Message .................................................................... 120
Bảng 4.19 Bảng phương thức lớp Message ................................................................ 120
Bảng 4.20 Bảng thuộc tính lớp Option ....................................................................... 121
Bảng 4.21 Bảng phương thức lớp Option................................................................... 121
Bảng 4.22 Bảng thuộc tính lớp InformationKey ........................................................ 121
Bảng 4.23 Bảng phương thức lớp InformationKey .................................................... 122
Bảng 4.24 Bảng thuộc tính lớp Utterance .................................................................. 122
Bảng 4.25 Bảng phương thức lớp Utterance .............................................................. 122
Bảng 4.26 Bảng thuộc tính lớp Intent......................................................................... 123
Bảng 4.27 Bảng phương thức lớp Intent .................................................................... 123
Bảng 4.28 Bảng thuộc tính lớp Entity ........................................................................ 123
Bảng 4.29 Bảng phương thức lớp Entity .................................................................... 124

Bảng 4.30 Bảng thuộc tính lớp Trait .......................................................................... 124
Bảng 4.31 Bảng phương thức lớp Trait ...................................................................... 125
Bảng 4.32 Bảng thuộc tính lớp Notification............................................................... 125
Bảng 4.33 Bảng phương thức lớp Notification .......................................................... 125
Bảng 4.34 Bảng thuộc tính lớp Preference ................................................................. 126
Bảng 4.35 Bảng phương thức lớp Preference............................................................. 126
Bảng 4.36 Bảng thuộc tính lớp Blog .......................................................................... 126
Bảng 4.37 Bảng phương thức lớp Blog ...................................................................... 127
Bảng 4.38 Bảng danh sách màn hình trong hệ thống ................................................. 141
Bảng 4.39 Bảng danh sách các thành phần trong màn hình chính ............................. 145
Bảng 4.40 Bảng danh sách thành phần trong màn hình đăng nhập............................ 146
Bảng 4.41 Bảng danh sách thành phần trong màn hình đăng ký ............................... 147
17


Bảng 4.42 Bảng danh sách thành phần trong màn hình liệt kê giá dịch vụ ............... 148
Bảng 4.43 Bảng danh sách thành phần trong màn hình giao tiếp với Chatbot .......... 149
Bảng 4.44 Bảng danh sách thành phần trong màn hình nhập thơng tin thanh tốn ... 150
Bảng 4.45 Bảng danh sách thành phần trong màn hình lịch sử thanh toán................ 151
Bảng 4.46 Bảng danh sách thành phần trong màn hình xem thơng tin người dùng .. 152
Bảng 4.47 Bảng danh sách thành phần trong màn hình danh sách bài viết ............... 153
Bảng 4.48 Bảng danh sách thành phần trong màn hình chỉnh sửa thơng tin tài khoản
.................................................................................................................................... 154
Bảng 4.49 Bảng danh sách thành phần trong màn hình thiết lập bảo mật tài khoản . 155
Bảng 4.50 Bảng danh sách thành phần trong màn hình thiết lập cá nhân .................. 156
Bảng 4.51 Bảng danh sách thành phần trong màn hình bảng điều khiển................... 158
Bảng 4.52 Bảng danh sách thành phần trong màn hình hiển thị thơng tin hệ thống .. 159
Bảng 4.53 Bảng danh sách thành phần trong màn hình quản lý người dùng ............. 160
Bảng 4.54 Bảng danh sách thành phần trong màn hình chỉnh sửa thơng tin người dùng
.................................................................................................................................... 161

Bảng 4.55 Bảng danh sách thành phần trong màn hình quản lý dịch vụ ................... 162
Bảng 4.56 Bảng danh sách thành phần trong màn hình quản lý bài viết ................... 163
Bảng 4.57 Bảng danh sách thành phần trong màn hình chỉnh sửa bài viết ................ 164
Bảng 5.1 Bảng tác vụ cấu trúc lại hệ thống ................................................................ 166
Bảng 5.2 Bảng tác vụ huấn luyện Chatbot ................................................................. 167
Bảng 5.3 Bảng tác vụ cài đặt giao diện ...................................................................... 168
Bảng 5.4 Bảng tác vụ cài đặt hệ thống xử lý .............................................................. 170
Bảng 5.5 Bảng tác vụ cài đặt cơ sở dữ liệu ................................................................ 171
Bảng 6.1 Bảng đánh giá độ hoàn thiện hệ thống ........................................................ 177
Bảng 8.1 Bảng danh sách công nghệ được sử dụng trong đồ án ................................ 184
18


1

TỔNG QUAN VỀ ĐỀ TÀI

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 để 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ắn thoạ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ột cuộ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 chi 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, …). 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ăm só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 tố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ắn tin 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:
• Thương mại (Chatbot gợi ý sản phẩm, chăm sóc khách hàng, …)
• Giáo dục (Chatbot cung cấp thơng tin, thơng báo, kiến thức, …)
• Giải trí (Chatbot gợi ý hình thức, nội dung giải trí, kể chuyện vui, …)
• Tài chính (Chatbot cung cấp thơng tin chứng khốn, tỉ giá, thị trường)
• Tin tức (Chatbot cung cấp thơng tin thời sự, thơng tin nội bộ, …)
• Hỗ 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 đến công việc, …)

19


Nhìn chung thì Chatbot vẫn cịn là một loại hình ứng dụng còn rất nhiều tiềm năng để
khai phá mặc dù khơng u cầu cao về trình độ để có thể khởi đầu
1.1.2 Cái 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ác quyế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 để duy trì 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ủa con
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ủa con
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 tham gia 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 lấy ví 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ộ buổi 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ình cho
sáng hơm sau sang việc uống cà phê và đọc tin tức. Sáng hôm sau, A đang đọc tin 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ủa thủ tướng
chính phủ, người dân được khuyến khích ở nhà để phịng chống đại dịch C. Vậy là A
nghĩ về việc thay vì ra ngồi đường để chạy bộ, có thể mua một máy chạ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áy chạ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 thờ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ững thơ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
20


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ười xung 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
q trình làm việc cũng như giải trí của con người
1.1.3 Lý do lựa chọn đề tài


Như đã được đề cập trong các phần trước, nhu cầu 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àn thiện,
với nhiều hướng tiếp cận để 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ảng web. Lý
do cụ thể bao gồm:
• Đư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
• Tạo 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
• Tạo điều kiện để 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
• 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
• Đặt ra nền tảng cho hướng phát triển của hệ thống trong tương lai

1.2 Khảo sát hiện trạng
Hiện nay, Chatbot là một ứng dụng được sử dụng rộng rãi dưới đủ quy mô cũng như độ
phức tạp. Dưới đây là một số sô liệu cụ thể để khẳng định điều này

21


Hình 1.1 Dữ liệu Google Trend cho cụm từ "chatbot" trong vòng 5 năm trở lại đây

Dữ liệu Google Trend cho cụm từ “Chat bot” có xu hướng tăng dần theo từng năm và
hiện tại đang ở mức khá ổn định
• 1.4 tỷ người đang sử dụng Chatbot (theo như Chatbot.Net)
• 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)
• Gần 6 trên 10 điều hành doanh nghiệp nói rằng 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ên kế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
• 265 tỷ yêu cầu từ khách hàng được đưa ra, tiêu tốn 1,3 nghìn tỷ USD mỗi năm
(theo như Chatbots Journal)
• 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)
• 1 trong 5 u cầu trị chuyện trực tiếp từ khách hàng khơng bao giờ được trả lời
(theo như SuperOffice)
• Tới năm 2022, các ngân hàng sẽ từ động hóa lên tới 90% giao tiếp với khách
hàng của họ sử dụng Chatbot (theo như Lauren Foye of Juniper Research, via
Chatbots Magazine)
Vể ảnh hưởng đến nhân viên chăm sóc khách hàng truyền thống, ta có những số liệu
sau
22


• 64% thời gian AI Chatbot giao tiếp với khách hàng sẽ dùng để giải quyết các vấn
đề phức tạp (theo như Salesforce 2)
• Khả năng định hình lại hệ thống nhân sự của một công ty là ảnh hưởng ít được
nhắc đến nhất của Chatbot (khoảng 1 phần 10)
Về ý thích của người dùng, ta có những số liệu sau
• 54% khàch hàng cho rằng cơng ty cần phải chuyển đổi cách mà họ tiếp cận khách
hàng (theo như Salesforce)
• Chỉ 38% người tiêu dùng có nhu cầu trị chuyện trực tiếp với người thật khi tiếp
xúc với một nhãn hàng (theo như Drift)

• 77% người tiêu dùng cho rằng Chatbot thay đổi kì vọng của họ lên cơng ty trong
5 năm tới (theo như Salesforce)
• 70% khách hàng thuộc thế hệ milinials (8x, 9x) có trải nghiệm tích cực với
Chatbot (theo như Forbes)
• Số khách hàng sử dụng nắn tin trực tuyến thay vì thơng qua điện thoại hay thư
điện từ đã tăng 50% kể từ năm 2012 (theo như Forrester)
• Hơn 64% người dùng Facebook tại Brazil, Ấn Độ, Anh, Mỹ nói rằng họ muốn
giao tiếp với một thực thể kinh doanh thông qua Facebook Messenger bởi khả
năng mà họ được hồi âm là cao hơn so với những phương thức khác (theo như
Facebook Business)
Về tiềm năng phát triển của Chatbot, ta có những số liệu sau:
• Thị trường Chatbot được dự báo sẽ tăng trưởng từ 2.6 tỷ USD trong năm 2019
lên 9.4 tỷ USD vào năm 2024 với với tỉ lệ tăng trưởng hàng năm là 29.7% (theo
như Business Insider)
• Tới năm 2023, 30% dịch vụ chăm sóc khách hàng của các tổ chức sẽ được thực
hiện một cách chủ động bởi các hệ thống được điều hành bởi AI và các hệ thống
tích hợp thơng minh khác (theo như Gartner)
Như vậy ta có thể thấy rằng Chatbot là một trong những nhân tố nổi bật trong quá trình
phát triển của các doanh nghiệp và tiềm năng của nó trong tương lai là rất lớn

23


Để khảo sát rõ hơn tình trạng thực tiễn của Chatbot cũng như nhu cầu tra cứu thông tin,
ta khảo sát hai đối tượng sau
1.2.1 CleverBot – Chatbot trò chuyện nổi tiếng nhất thế giới

Hình 1.2 Một giao diện của Cleverbot

Cleverbot là một phần mềm chatbot sử dụng thuật toán trí tuệ nhân tạo để thiết lập một

cuộc trị chuyện với con người. Nó được tạo ra bởi nhà khoa học nghiên cứu về AI tên
là Rollo Carpenter. Người tiền nhiệm của nó là Jabberwacky. Dự án được bắt đầu vào
năm 1996 và chính thức được đưa lên mạng vào năm 1997. Trong khoảng thập kỉ đầu
tiên trong sự tồn tại của nó, Cleverbot học cách giao tiếp thơng qua việc lắng nghe hàng
nghìn cuộc trị chuyện giữa ơng Carpenter với những người đồng sự của ông. Sau khi
phiên bản web của Cleverbot được ra mắt, con số này đến nay đã lên tới 150 triệu
Một số thành tích nổi bật của Cleverbot bao gồm: Trong bài thử Turing được tổ chức
chính thức tại ngày hội Techniche 2011 tại Học viện công nghệ Guwahati Ấn Độ.
Cleverbot đạt được điểm tỉ lệ 59.3% số người tham gia đồng ý đây là con người, đạt
được với 1334 phiếu bầu, so với tỉ lệ 63.3% mà người thật. Số điểm trên 50.5% được
xét là đạt bài kiểm tra này
Thay vì sử dụng một kịch bản hoặc các quy định cho trước, Cleverbot sử dụng logic mở
để tìm kiếm một cách phản hồi phù hợp từ dữ liệu chính là các cuộc trị chuyện trước
đó của Cleverbot với người dùng
24


1.2.2 Google – Nền tảng tra cứu thông tin lớn nhất thế giới

Hình 1.3 Giao diện tra cứu thơng tin của Google

Google là nền tảng cơng cụ tìm kiếm lớn nhất thế giới hiện tại, với 92% lưu lượng yêu
cầu tìm kiếm diễn ra tại đây và cũng biến Google trở thành trang web được truy cập
nhiều nhất thế giới. Tuy nhiên cái ta quan tâm ở đây là Google Knowledge Graph. Đây
là dịch vụ giúp Google thu thập thông tin từ nhiều nguồn khác nhau và cung cấp thông
tin đó cho người dùng ngay tại trang hiện kết quả tìm kiếm. Thơng tin đó có thể là về
một cá nhân, tập thể, thời tiết, chứng khốn, v.v. Và nó cũng trở thành nền tảng để các
trợ lý ảo như Google Home có thể trả lời câu hỏi của người dùng
1.3 Đối tượng nghiên cứu
Đồ án này hướng đến nghiên cứu các đối tượng sau

• Các cơng nghệ
o MongoDB
o Express.js
o React.js
o Node.js
o Javascript (ECMAScript 6)
25


×