TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
LUẬN VĂN THẠC SĨ
Ứng dụng học sâu trong hệ thống Chatbot
hỗ trợ chăm sóc khách hàng
ĐINH HUY TUẤN
Ngành: Toán Tin
Giảng viên hướng dẫn: TS.LÊ CHÍ NGỌC
Viện:
Chữ kí của GVHD
Tốn ứng dụng và Tin học
HÀ NỘI, 05/2021
LUẬN VĂN THẠC SĨ
ĐINH HUY TUẤN
Lời cảm ơn
Tác giả xin gửi lời cảm ơn trân trọng tới TS. Lê Chí Ngọc, người đã trực tiếp
hướng dẫn tác giả hết sức nhiệt tình, chu đáo, ln động viên về mặt tinh thần
để tác giả có thể hồn thành luận văn này. Tác giả xin trân trọng cảm ơn Viện
Toán Ứng dụng và Tin học, Phòng đào tạo Bộ phận quản lý đào tạo sau đại
học, Trường Đại học Bách Khoa Hà Nội đã tạo mọi điều kiện thuận lợi để tác
giả hoàn thành luận văn này. Cuối cùng, tác giả xin gửi lời cảm ơn tới gia đình,
người thân và bạn bè đã luôn động viên giúp đỡ tác giả trong suốt quá trình
thực hiện đề tài.
1
LUẬN VĂN THẠC SĨ
ĐINH HUY TUẤN
Tóm tắt nội dung luận văn
Những năm gần đây, Chatbot đang được nghiên cứu và phát triển với tốc độ
chóng mặt bởi các trung tâm nghiên cứu, các trường đại học, học viện, các doanh
nghiệp và ứng dụng trong rất nhiều các lĩnh vực. Cùng với sự phát triển của
lĩnh vực học sâu, chatbot ngày càng linh hoạt trong việc hiểu ngôn ngữ và đưa
ra phản hồi mơt cách chính xác. Trong nội dung của luận văn, tác giả tập trung
vào xây dựng Chatbot trên một miền cụ thể là lĩnh vực tài chính với ngôn ngữ
Tiếng Việt. Tác giả cũng đề xuất các phương pháp tích hợp mơ hình học sâu
trong xử lý ngơn ngữ tự nhiên vào thành phẩn hiểu ngôn ngữ và thành phần
quản lý hội thoại của Chatbot. Kết quả thực nghiệm đã cho thấy việc áp dụng
mơ hình học sâu trong một miền cụ thể đã cải thiện độ chính xác, qua đó làm
tăng chất lượng cho Chatbot. Kết quả mà luận văn thu được sẽ làm tiền đề cho
việc phát triển các Chatbot trở lên hiệu quả hơn và áp dụng vào thực tế trong
nhiều lĩnh vực khác nhau như y tế, giáo dục, thương mại, . . .
Từ khóa: Deep learning, Natural Language Understanding, Dialog management, Intent Detection, Slot Filling..
Hà Nội, ngày 14 tháng 05 năm 2021
Giáo viên hướng dẫn
HỌC VIÊN
Kí và ghi rõ họ tên
Kí và ghi rõ họ tên
2
Mục lục
1 MỞ
1.1
1.2
1.3
ĐẦU
Lý do lựa chọn đề tài . . . . . . . . . . . .
Mục tiêu đề tài . . . . . . . . . . . . . . .
Phạm vi và cấu trúc đề tài . . . . . . . . .
1.3.1 Mục tiêu và nhiệm vụ . . . . . . .
1.3.2 Đối tượng và phạm vi nghiên cứu .
1.3.3 Ý nghĩa khoa học và thực tiễn . .
1.3.4 Bố cục luận văn . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2 CƠ SỞ LÝ THUYẾT
2.1 Phương pháp học sâu . . . . . . . . . . . . . . . . . . . . . .
2.1.1 Mạng neural . . . . . . . . . . . . . . . . . . . . . . .
2.1.2 Một số mơ hình mạng neural . . . . . . . . . . . . .
2.2 Xử lý ngôn ngữ tự nhiên . . . . . . . . . . . . . . . . . . . .
2.2.1 Tổng quan . . . . . . . . . . . . . . . . . . . . . . . .
2.2.2 Một số khái niệm cơ bản . . . . . . . . . . . . . . . .
2.2.3 Quy trình xử lý ngơn ngữ tự nhiên . . . . . . . . . .
2.2.4 Các ứng dụng của xử lý ngôn ngữ tự nhiên . . . . .
2.3 Tổng quan về hệ thống chatbot . . . . . . . . . . . . . . . .
2.3.1 Khái niệm . . . . . . . . . . . . . . . . . . . . . . . .
2.3.2 Các mơ hình Chatbot . . . . . . . . . . . . . . . . .
2.3.3 Phân loại Chatbot . . . . . . . . . . . . . . . . . . .
2.3.4 Một số phương pháp xây dựng Chatbot . . . . . . .
2.3.5 Các vấn đề cơ bản khi phát triển hệ thống Chatbot
3 MƠ HÌNH ĐỀ XUẤT
3.1 Xây dựng kiến trúc của chatbot . . . .
3.2 Bài toán xác định ý định người dùng .
3.2.1 Các phương pháp biểu diễn từ
3.2.2 Mơ hình ngơn ngữ . . . . . . .
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9
9
10
12
12
12
12
13
.
.
.
.
.
.
.
.
.
.
.
.
.
.
14
14
14
15
20
20
21
21
22
24
24
24
25
25
26
.
.
.
.
28
28
29
30
31
LUẬN VĂN THẠC SĨ
3.3
3.4
3.5
ĐINH HUY TUẤN
3.2.3 Thuật toán phân lớp ý định . . . . . . . . . . . .
Bài tốn trích rút thơng tin . . . . . . . . . . . . . . . .
3.3.1 Các mơ hình gán nhãn chuỗi (sequence labeling)
3.3.2 Hidden Markov Model . . . . . . . . . . . . . . .
3.3.3 Conditional Random Field . . . . . . . . . . . . .
Bài toán quản lý cuộc hội thoại . . . . . . . . . . . . . .
3.4.1 Mơ hình máy trạng thái hữu hạn FSA . . . . . .
3.4.2 Mơ hình Frame-based . . . . . . . . . . . . . . .
Bài toán sinh ngôn ngữ . . . . . . . . . . . . . . . . . . .
3.5.1 Template-Base . . . . . . . . . . . . . . . . . . . .
3.5.2 Plan-based . . . . . . . . . . . . . . . . . . . . . .
3.5.3 Class-based . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
33
36
37
37
38
39
39
40
41
41
42
43
4 DỮ LIỆU VÀ HỆ THỐNG
44
4.1 Giới thiệu về mã nguồn mở RASA . . . . . . . . . . . . . . . . . . 44
4.1.1 Kiến trúc tổng thể . . . . . . . . . . . . . . . . . . . . . . . 44
4.1.2 Luồng xử lý . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.1.3 Mơ hình xác định ý định và trích rút thơng tin song song
(Dual Intent Entity Transformer) . . . . . . . . . . . . . . . 46
4.1.4 Mơ hình Transformer Embedding Dialogue . . . . . . . . . 47
4.2 Xây dựng bộ dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2.1 Quá trình thu thập dữ liệu . . . . . . . . . . . . . . . . . . 49
4.2.2 Mô tả chức năng . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2.3 Xây dựng bộ dữ liệu NLU . . . . . . . . . . . . . . . . . . . 50
4.2.4 Xây dựng câu trả lời . . . . . . . . . . . . . . . . . . . . . . 53
4.2.5 Xây dựng dữ liệu kịch bản . . . . . . . . . . . . . . . . . . . 53
4.3 Cấu hình cài đặt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.3.1 Xây dựng bộ Word2Vec cho lĩnh vực tài chính . . . . . . . 54
4.3.2 Cài đặt NLU Tiếng Việt cho RASA . . . . . . . . . . . . . 54
4.3.3 Cấu hình pipeline cho RASA . . . . . . . . . . . . . . . . . 55
4.4 Kết quả mơ hình . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.4.1 Phương pháp đánh giá . . . . . . . . . . . . . . . . . . . . . 57
4.4.2 Đánh giá mơ hình . . . . . . . . . . . . . . . . . . . . . . . . 57
4.4.3 Kết quả chạy thực nghiệm Chatbot . . . . . . . . . . . . . 60
5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
62
5.1 Kết luận . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.2 Hướng phát triển . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4
Danh sách hình vẽ
1.1
1.2
Kiến trúc của hệ thống Contact Center . . . . . . . . . . . . . . .
Kiến trúc của hệ thống tích hợp chatbot . . . . . . . . . . . . . . .
11
12
2.1
2.2
2.3
2.4
2.5
Cấu trúc neural nhân tạo . . . . . . . . . . . .
Kiến trúc mạng CNN với bộ lọc F và stride S
Max pooling và average pooling . . . . . . . .
Kiến trúc mạng RNN . . . . . . . . . . . . . .
Kiến trúc của hệ thống phân lớp ý định . . .
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
4.11
4.12
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
15
18
19
20
26
Các bước xử lý chính trong pipeline của NLU . . .
Các cách biểu diễn từ . . . . . . . . . . . . . . . . .
Mơ hình encoder . . . . . . . . . . . . . . . . . . . .
Mơ hình Transformer . . . . . . . . . . . . . . . . .
Mơ hình HMM . . . . . . . . . . . . . . . . . . . . .
Mơ hình máy trạng thái hữu hạn FSA . . . . . . .
Phương pháp sinh ngôn ngữ dựa trên tập mẫu câu
Phương pháp sinh ngôn ngữ Plan-based . . . . . .
Phương pháp sinh ngôn ngữ Class-based . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
trả lời
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
29
30
32
36
38
40
42
42
43
Kiến trúc tổng thể của RASA . . . . . . . .
Quy trình xử lý tin nhắn . . . . . . . . . . .
Mơ hình high-level của DIET . . . . . . . .
Mơ hình kiến trúc mạng của DIET . . . . .
Mô hình Transformer Embedding Dialogue
Quá trình thu thâp dữ liệu . . . . . . . . . .
Mô tả các chức năng của Chatbot . . . . . .
Ví dụ dữ liệu ý định Đặt lệnh . . . . . . . .
Ví dụ về câu trả lời trong RASA . . . . . .
Ví dụ dữ liệu kịch bản . . . . . . . . . . . .
Cấu hình Pipeline cho word2vec . . . . . . .
Cấu hình Pipeline cho PhoBERT . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
44
45
46
47
48
49
50
52
53
54
56
56
5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
LUẬN VĂN THẠC SĨ
4.13
4.14
4.15
4.16
4.17
ĐINH HUY TUẤN
Cấu hình Pipeline cho Dialog management . .
Kết quả thực nghiệm bài toán xác định ý định
Ma trận Confussion bài toán xác định ý định .
Chạy thực nghiệm với chức năng Đặt lệnh . . .
Chạy thực nghiệm với các chức năng khác . . .
6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
57
58
59
60
61
Danh sách bảng
3.1
Dữ liệu frame-base cho nghiệp vụ mở tài khoản . . . . . . . . . . .
41
4.1
4.2
4.3
4.4
4.5
Thống kê và mô tả chi tiết dữ liệu ý định người dùng
Thống kê và mô tả chi tiết dữ liệu thực thể . . . . . .
Danh mục thực thể cho từng chức năng chatbot . . .
Kết quả thực nghiệm bài toán xác định ý định . . . .
Kết quả thực nghiệm bài tốn trích rút thông tin . . .
51
51
52
58
58
7
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Bảng kí hiệu và các từ ngữ viết tắt
Từ viết tắt
Ý nghĩa
DIET
Mơ hình phân loại ý định và thực thể đồng thời
TED
Mơ hình Transformer quản lý hội thoại
HMM
Hidden Markov model, Mơ hình Markov ẩn
CRF
Condidtional Random Field, Mơ hình trường điều kiện ngẫu nhiên
CNN
Convolution Neural Network, Mạng neural tích chập
RNN
Recurent Neural Network, Mạng neural hồi tiếp
LSTM
Long-short Term Memory, Mạng bộ nhớ dài-ngắn
ANN
Artificial Neural Network, Mạng neural nhân tạo
BERT
Mơ hình biểu diễn từ hai chiều
NLU
Hệ thống hiểu ngôn ngữ tự nhiên
8
CHƯƠNG 1. MỞ ĐẦU
1.1
Lý do lựa chọn đề tài
Những năm gần đây, ngành công nghệ thông tin và lĩnh vực máy học đang
phát triển rất nhanh và được ứng dụng rộng rãi. Trong đó, Chatbot đang được
nghiên cứu và phát triển với tốc độ chóng mặt bởi các trung tâm nghiên cứu, các
trường đại học, học viện, các doanh nghiệp và ứng dụng trong rất nhiều các lĩnh
vực. Chatbot là ứng dụng phần mềm dùng trong hệ thống thảo luận trực tuyến
bằng văn bản hoặc văn bản chuyển thành giọng nói, thay vì thảo luận trực tiếp
với người dùng thật. Theo cách tương tác với người dùng, các chatbot thường
được chia thành hai loại: âm thanh và tin nhắn. Các chatbot được thiết kế phức
tạp dựa trên nền tảng xử lý ngơn ngữ tự nhiên, nhưng cũng có nhiều hệ thống
khác đơn giản hơn bằng cách quét từ khóa trong đầu vào, sau đó trả lời với từ
khóa phù hợp nhất hoặc mẫu từ ngữ tương tự nhất trong cơ sở dữ liệu.
Có rất nhiều cơng cụ cũng như thư viện hỗ trợ cho Chatbot như: Dialogflow,
Wit.ai, IBM Waston Service, RASA , hay như đối với tiếng Việt thì có FPT.AI.
Các công cụ, thư viện này hiện nay hầu hết đều áp dụng các công nghệ mới nhất
của học máy, học sâu, để nâng cao khả năng giao tiếp của chương trình Chatbot.
Để chương trình Chatbot thực hiện giao tiếp thì cần có các kênh trên nền tảng
điện tốn đám mây như Google Assistant và Amazon Alexa, dưới ứng dụng tin
nhắn như Facebook Messenger, WeChat hoặc thông qua các ứng dụng và trang
web của các tổ chức riêng lẻ. Chatbot được sử dụng trong nhiều ứng dụng khác
nhau như trong việc chăm sóc khách hàng (cung cấp thơng tin sản phẩm, đưa ra
các thông tin gợi ý, giải đáp thắc mắc, ...). Chatbot giúp tối ưu hóa năng suất,
giảm thiểu chi phí chăm sóc khách hàng, chăm sóc sức khỏe, đời sống con người.
Hiện nay, các nhà đầu tư hoặc người dùng sản phẩm tài chính có thể tìm hiểu
thơng tin về các dịch vụ tài chính thơng qua các cơng cụ tìm kiếm thơng tin trên
internet và thơng tin từ các cơng ty tài chính. Tuy nhiên những thơng tin hữu
ích và thiết thực với người dùng cịn hạn chế, khách hàng phải mất rất nhiều
thời gian trong việc tìm hiểu thơng tin. Cùng với đó, cách kênh chăm sóc khách
hàng của các cơng ty tài chính chỉ có một lượng hữu hạn nhân viên trực tổng
9
LUẬN VĂN THẠC SĨ
ĐINH HUY TUẤN
đài, không đủ để đáp ứng lượng lớn khách hàng, cũng như không thể đáp ứng
trong mọi thời điểm.
Với mong muốn tạo một chatbot có khả năng hỗ trợ tư vấn thơng tin về tài
chính góp phần nâng cao trải nghiệm của khách hàng khi sử dụng sản phẩm tài
chính, tơi đề xuất đề tài "Ứng dụng học sâu trong hệ thống chatbot hỗ trợ chăm
sóc khách hàng" làm đề tài luận văn của mình.
1.2
Mục tiêu đề tài
Hệ thống chatbot hỗ trợ tư vấn tài chính và chăm sóc khách hàng là hệ thống
nhằm cung cấp các chức năng chính của chatbot trong lĩnh vực tài chính và được
giới hạn phạm vi hỗ trợ và chăm sóc khách hàng sử dụng các sản phẩm tài chính.
Chatbot ở đây một chương trình máy tính xử lý đầu vào ngôn ngữ tự nhiên từ
người dùng và tạo ra các phản hồi thông minh gửi lại cho người dùng. Chatbot
được cung cấp bởi các công cụ điều khiển theo quy tắc hoặc công cụ thông minh
nhân tạo tương tác với người dùng thông qua giao diện dựa trên văn bản là chủ
yếu. Đây là những chương trình máy tính độc lập, chạy ở máy chủ web có thể
được tích hợp vào bất kỳ nền tảng nhắn tin nào đã mở cho các nhà phát triển
thông qua các API như Facebook Messenger, Slack, RocketChat, Zalo, ...
Hệ thống tư vấn tài chính dựa vào chatbot được xây dựng một nền tảng
chatbot hồn chỉnh cho các cơng ty để giới thiệu giao diện trị chuyện trong lĩnh
vực tài chính. Chức năng chính của chatbot này là tư vấn thơng tin sản phẩm
tài chính nên chatbot cần có dữ liệu đủ lớn về tài chính - chứng khốn nhằm
hỗ trợ việc trả lời nhanh các yêu cầu từ khách hàng như đặt lệnh giao dịch, hỏi
thông tin sản phẩm, đăng ký mô giới chứng khoán, đăng ký mở tài khoản chứng
khoán, ...
Thực tế khi tham gia vào sử dụng các sản phẩm tài chính, khách hàng thường
gặp rất nhiều khó khăn trong việc tìm hiểu thơng tin, cách sử dụng, lợi ích mà
sản phẩm mang lại, đánh giá nhu cầu sử dụng của khách hàng. Cùng với đó, số
lượng sản phẩm và dịch vụ ngày càng tăng lên, khách hàng trở lên "ngập lụt"
trong thơng tin và đơi khi chính khách hàng cũng khơng nhận thức rõ được nhu
cầu của mình nên rất khó để tự tìm kiếm sản phẩm phù hợp. Ngoài ra, đối với
các khách hàng đã và đang sử dụng sản phẩm tài chính, nhu cầu về được chăm
sóc và giải đáp các thắc mắc, hay thậm chí là phàn nàn, góp ý trong q trình
sử dụng sản phẩm cũng rất cao.
Nhu cầu tăng cao dẫn đến cần có một hệ thống tư vấn thơng tin và chăm sóc
khách hàng. Hệ thống này sẽ hỗ trợ cho người dùng lựa chọn các dịch vụ du lịch
phù hợp theo yêu cầu của mỗi cá nhân khách hàng. Thực trạng hiện nay ở các
10
LUẬN VĂN THẠC SĨ
ĐINH HUY TUẤN
cơng ty tài chính, hệ thống này là các phần mềm hỗ trợ chức năng chat, hoặc
gọi điện giữa người vời người, được gọi là Contact Center. Hệ thống này được
vận hành bời các tổng đài viên, là người trực tiếp giải đáp các thắc mắc, tư vấn
và chăm sóc khách hàng. Dưới đây là mơ hình kiến trúc của hệ thống Contact
Center.
Hình 1.1: Kiến trúc của hệ thống Contact Center
Tuy nhiên, lượng người dùng ngày càng tăng mà số lượng tổng đài viên để
phục vụ khách hàng lại hữu hạn. Cùng với đó, nhu cầu được giải đáp và tư vấn
ngay tại thời điểm đó của khách hàng cũng là một nhu cầu quan trọng nhưng
hệ thống hiện tại khó có thể đáp ứng (do các tổng đài viên chỉ phục vụ được
trong giờ hành chính, hoặc trong một khung giờ nhất định). Như vậy giải pháp
thay thế các tổng đài viên bằng chatbot mang lại rất nhiều hiệu quả. Thứ nhất,
chatbot có thể giải đáp một lượng lớn người dùng, không bị phụ thuộc vào số
lượng nhân viên. Thứ hai, chatbot nâng cao trải nghiệm người dùng, do luôn
sẵn sàng phục vụ khách hàng, bất kể thời gian nào. Khi tích hợp vào hệ thống,
chatbot đảm nhiệm chức năng như một tổng đài viên, bao gồm chat, gọi điện
với khách hàng, thực hiện các tác vụ tra cứu thông tin, thao tác nghiệp vụ, ...
11
LUẬN VĂN THẠC SĨ
ĐINH HUY TUẤN
Hình 1.2: Kiến trúc của hệ thống tích hợp chatbot
1.3
1.3.1
Phạm vi và cấu trúc đề tài
Mục tiêu và nhiệm vụ
Ứng dụng mã nguồn mở Rasa để xây dựng thử nghiệm hệ thống chatbot hỗ
trợ chăm sóc khách hàng cho cơng ty chứng khốn. Như vậy, nhiệm vụ của luận
văn bao gồm: tìm hiểu các lý thuyết về học sâu và các thuật toán liên quan đến
chatbot; Tìm hiểu các phương pháp xử lý ngơn ngữ tự nhiên với ngơn ngữ Tiếng
Việt; tìm hiểu các phương pháp giải quyết bài tốn phân loại và trích rút thơng
tin từ người dùng và cuối cùng là tìm hiểu cách xây dựng và thiết kế một hệ
thống chatbot.
1.3.2
Đối tượng và phạm vi nghiên cứu
Luận văn này nghiên cứu về ứng dụng học sâu để xử lý ngôn ngữ tự nhiên
Tiếng Việt trong Chatbot. Luận văn cũng giới thiệu về mã nguồn mở Rasa và
các kỹ thuật xây dựng chatbot. Dữ liệu các cuộc hội thoại của hệ thống giao
dịch chứng khoán cũng đã được chuẩn bị.
Phạm vi nghiên cứu là xây dựng và thực nghiệm hệ thống chatbot có thể thay
thế các nhân viên chăm sóc khách hàng trong việc hỗ trợ người dùng sử dụng
hệ thống giao dịch chứng khốn và sản phẩm tài chính.
1.3.3
Ý nghĩa khoa học và thực tiễn
Thực nghiệm các giả thuyết về các kỹ thuật xử lý ngơn ngữ tự nhiên, kỹ thuật
tính tốn độ tương đồng về mặt ngữ nghĩa trong văn bản Tiếng Việt. . . giúp
chatbot hiểu được câu đàm thoại khi giao tiếp với con người. Thực nghiệm các
kỹ thuật học máy, khai phá dữ liệu trong huấn luyện và trang bị khả năng tự
học của chatbot.
12
LUẬN VĂN THẠC SĨ
ĐINH HUY TUẤN
Khách hàng sử dụng sản phẩm tài chính giao tiếp với hệ thống chatbot hoạt
động tự động trên nền tảng trí tuệ nhân tạo, từng bước đưa Việt Nam bắt kịp
và hội nhập theo xu hướng phát triển của công nghiệp 4.0.
Tăng lượng người dùng đến với sản phẩm tài chính, nâng cao chất lượng chăm
sóc khách hàng.
1.3.4
Bố cục luận văn
• Phần 1: Mở đầu.
• Phần 2: Cơ sở lý thuyết.
• Phần 3: Mơ hình đề xuất
• Phần 4: Dữ liệu và hệ thống
• Phần 5: Kết luận và hướng phát triển.
13
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
2.1
Phương pháp học sâu
Học sâu là một nhánh đặc biệt của ngành Học máy, và bắt đầu trở nên phổ
biến trong thập kỷ gần đây do các nhà khoa học đã có thể tận dụng khả năng
tính tốn mạnh mẽ của các máy tính hiện đại cũng như khối lượng dữ liệu khổng
lồ (hình ảnh, âm thanh, văn bản,. . . ) trên Internet.
Các mạng huấn luyện theo phương pháp Học sâu còn được gọi với cái tên
khác là mạng nơ-ron sâu (Deep Neural Network) do cách thức hoạt động của
chúng. Về cơ bản, các mạng này bao gồm rất nhiều lớp khác nhau, mỗi lớp sẽ
phân tích dữ liệu đầu vào theo các khía cạnh khác nhau và theo mức độ trừu
tượng nâng cao dần [13].
Với cách thức học thông tin từ dữ liệu lần lượt qua rất nhiều lớp, nhiều tầng
khác nhau như vậy, các phương pháp này có thể giúp cho máy tính hiểu được
những dữ liệu phức tạp bằng nhiều lớp thơng tin đơn giản qua từng bước phân
tích. Đó cũng là lý do chúng được gọi là các phương pháp Học sâu.
Tuy có nhiều điểm ưu việt trong khả năng huấn luyện máy tính cho các bài
tốn phức tạp, Học sâu vẫn cịn rất nhiều giới hạn khiến nó chưa thể được áp
dụng vào giải quyết mọi vấn đề. Điểm hạn chế lớn nhất của phương pháp này
là yêu cầu về kích thước dữ liệu huấn luyện, mơ hình huấn luyện Học sâu địi
hỏi phải có một lượng khổng lồ dữ liệu đầu vào để có thể thực hiện việc học qua
nhiều lớp với một số lượng lớn nơ-ron và tham số. Đồng thời, việc tính tốn trên
quy mơ dữ liệu và tham số lớn như vậy cũng yêu cầu đến sức mạnh xử lý của
các máy tính server cỡ lớn. Quy trình chọn lọc dữ liệu cũng như huấn luyện mơ
hình đều tốn nhiều thời gian và cơng sức, dẫn đến việc thử nghiệm các tham số
mới cho mô hình là cơng việc xa xỉ, khó thực hiện.
2.1.1
Mạng neural
Mạng neural nhân tạo là một mơ hình xử lý thơng tin phỏng theo cách thức
xử lý thông tin của các hệ neural sinh học. Nó được tạo nên từ một số lượng lớn
các phần tử (neural) kết nối với nhau thông qua các liên kết (trọng số liên kết)
14
LUẬN VĂN THẠC SĨ
ĐINH HUY TUẤN
làm việc như một thể thống nhất để giải quyết một vấn đề cụ thể nào đó [13].
Cấu trúc neural nhân tạo được mơ tả như hình vẽ:
Hình 2.1: Cấu trúc neural nhân tạo
Các thành phần cơ bản của một neural nhân tạo bao gồm:
• Tập các đầu vào: Là các tin hiệu vào (input signal) của neural, các tín hiệu
này thường được đưa vào dưới dạng một vector N chiều.
• Tập các liên kết: Mỗi liên kết được thể hiện bởi một trọng số liên kết .
• Bộ tổng: Được dùng để tính tổng của tích các đầu vào với trọng số liên kết
của nó.
• Ngưỡng (cịn gọi là độ lệch - bias): Ngưỡng này thường được đưa vào như
một thành phần của hàm truyền.
• Hàm truyền: Hàm này dùng để giới hạn phạm vi đầu ra của mỗi neural. Nó
nhận đầu vào là kết quả của hàm tổng và ngưỡng.
• Đầu ra: Là tín hiệu đầu ra của một neural, với mỗi neural sẽ có tối đa là
một đầu ra.
2.1.2
Một số mơ hình mạng neural
a. Mạng nhiều tầng truyền thẳng (MLP)
Mơ hình mạng neuron được sử dụng rộng rãi nhất là mơ hình mạng nhiều
tầng truyền thẳng (MLP : Multi Layer Perceptron). Một mạng MLP tổng
15
LUẬN VĂN THẠC SĨ
ĐINH HUY TUẤN
quát là mạng có n (n ≥ 2) tầng (thông thường tầng đầu vào không được
tính đến): trong đó gồm một tầng đầu ra (tầng thứ n) và (n − 1) tầng ẩn.
[13]
Đầu vào là các vector (x1 , x2 , ..., xp ) trong không gian p chiều, đầu ra là các
vector (y1 , y2 , ..., yq ) trong không gian q chiều. Đối với các bài tốn phân loại,
p chính là kích thước của mẫu đầu vào, q chính là số lớp cần phân loại. Mỗi
neuron thuộc tầng sau liên kết với tất cả các neuron thuộc tầng liền trước
nó. Đầu ra của neuron tầng trước là đầu vào của neuron thuộc tầng liền sau
nó. Hoạt động của mạng MLP như sau: tại tầng đầu vào các neuron nhận
tín hiệu vào xử lý (tính tổng trọng số, gửi tới hàm truyền) rồi cho ra kết
quả (là kết quả của hàm truyền); kết quả này sẽ được truyền tới các neuron
thuộc tầng ẩn thứ nhất; các neuron tại đây tiếp nhận như là tín hiệu đầu
vào, xử lý và gửi kết quả đến tầng ẩn thứ 2;. . . ; quá trình tiếp tục cho đến
khi các neuron thuộc tầng ra cho kết quả [13].
b. Mạng tích chập CNN
Mạng neuron Tích chập (Convolutional Neural Network - CNN), một
họ các mạng neuron ưu việt được thiết kế cho mục đích xử lý các dạng dữ
liệu thường có cấu trúc khơng gian. Các kiến trúc dựa trên hiện nay xuất
hiện trong mọi ngóc ngách của lĩnh vực thị giác máy tính, và đã trở thành
kiến trúc chủ đạo mà hiếm ai ngày nay phát triển các ứng dụng thương mại
hay tham gia một cuộc thi nào đó liên quan tới nhận dạng ảnh, phát hiện
đối tượng, hay phân vùng theo ngữ cảnh mà không xây nền móng dựa trên
phương pháp này [9].
Các phép tốn cơ bản nhằm tạo nên bộ khung sườn của tất cả các mạng
nơ-ron tích chập bao gồm các tầng tích chập convolution, các chi tiết cơ bản
quan trọng như đệm (padding) và stride, các tầng pooling dùng để kết hợp
thông tin qua các vùng không gian kề nhau, và các bộ lọc f ilter ở mỗi tầng
[9].
Tầng tích chập:
Trong một tầng tích chập [9], một mảng đầu vào và một mảng hạt nhân
tương quan (kernel) được kết hợp để tạo ra mảng đầu ra bằng phép toán
tương quan chéo. Theo mỗi trục, kích thước đầu ra nhỏ hơn một chút so với
đầu vào. đầu vào là một mảng hai chiều với chiều dài W và chiều rộng H .
Ta kí hiệu kích thước của mảng là W × H hoặc (W, H). Chiều dài và chiều
rộng của hạt nhân đều là 2. Chú ý rằng trong cộng đồng nghiên cứu học
sâu, mảng này cịn có thể được gọi là hạt nhân tích chập, bộ lọc hay đơn
16
LUẬN VĂN THẠC SĨ
ĐINH HUY TUẤN
thuần là trọng số của tầng. Kích thước của cửa sổ hạt nhân là chiều dài và
chiều rộng của hạt nhân (ở đây là w × h ).
Bởi vì hạt nhân có chiều dài và chiều rộng lớn hơn một, ta chỉ có thể tính
độ tương quan chéo cho những vị trí mà ở đó hạt nhân nằm hồn tồn bên
trong ảnh, kích thước đầu ra được tính bằng cách lấy đầu vào H × W trừ
kích thước của bộ lọc tích chập h × w bằng (H − h + 1) × (W − w + 1) . Điều
này xảy ra vì ta cần đủ khơng gian để dịch chuyển hạt nhân tích chập qua
tấm hình. Kế tiếp, ta lập trình quá trình ở trên trong hàm tương quan. Hàm
này nhận mảng đầu vào X với mảng hạt nhân K và trả về mảng đầu ra Y.
Tầng tích chập thực hiện phép tốn tương quan chéo giữa đầu vào và hạt
nhân, sau đó cộng thêm một hệ số điều chỉnh để có được đầu ra. Hai tham
số của tầng tích chập là hạt nhân và hệ số điều chỉnh. Khi huấn luyện mơ
hình chứa các tầng tích chập, ta thường khởi tạo hạt nhân ngẫu nhiên, giống
như cách ta làm với tầng kết nối đầy đủ [9].
Padding và Stride:
Giả sử kích thước của đầu vào là nh × nw và kích thước của cửa sổ hạt nhân
tích chập là kh × kw , kích thước của đầu ra sẽ là:
(nh − kh + 1) × (nw − kw + 1)
Do đó, kích thước của đầu ra tầng tích chập được xác định bởi kích thước
đầu vào và kích thước cửa sổ hạt nhân tích chập.
Padding:
Nếu chúng ta chèn thêm tổng cộng ph hàng đệm (phân nửa ở phía trên và
phân nửa ở phía dưới) và pw cột đệm (phân nửa bên trái và phân nửa bên
phải), kích thước đầu ra sẽ là:
(nh − kh + ph + 1) × (nw − kw + pw + 1)
Stride:
Khi thực hiện phép tương quan chéo, ta bắt đầu với cửa sổ tích chập tại
góc trên bên trái của mảng đầu vào, rồi di chuyển sang phải và xuống dưới
qua tất cả các vị trí. Trong các ví dụ trước, ta mặc định di chuyển qua một
điểm ảnh mỗi lần. Tuy nhiên, có những lúc để tăng hiệu suất tính tốn hoặc
vì muốn giảm kích thước của ảnh, ta di chuyển cửa sổ tích chập nhiều hơn
một điểm ảnh mỗi lần, bỏ qua các vị trí ở giữa.
Ta gọi số hàng và cột di chuyển qua mỗi lần là sải bước (stride). Nhìn chung,
khi sải bước theo chiều cao là sh và sải bước theo chiều rộng là sw , kích
thước đầu ra là:
17
LUẬN VĂN THẠC SĨ
ĐINH HUY TUẤN
[
(nh − kh + ph + 1)
(nw − kw + pw + 1)
]
]×[
sh
sw
Hình 2.2: Kiến trúc mạng CNN với bộ lọc F và stride S
Pooling
Khi xử lý ảnh, ta thường muốn giảm dần độ phân giải không gian của các
biểu diễn ẩn, tổng hợp thông tin lại để khi càng đi sâu vào mạng, vùng tiếp
nhận (ở đầu vào) ảnh hưởng đến mỗi nút ẩn càng lớn. Nhiệm vụ cuối cùng
thường là trả lời một câu hỏi nào đó về tồn bộ tấm ảnh. Vậy nên các nút
của tầng cuối cùng thường cần phải chịu ảnh hưởng của toàn bộ đầu vào.
Bằng cách dần gộp thông tin lại để tạo ra các ánh xạ đặc trưng thưa dần,
ta sẽ học được một biểu diễn toàn cục, trong khi vẫn có thể giữ ngun tồn
bộ lợi thế đến từ các tầng tích chập xử lý trung gian. Hơn nữa, khi phát
hiện các đặc trưng cấp thấp như cạnh, ta thường muốn cách biểu diễn này
bất biến với phép tịnh tiến trong một chừng mực nào đó. Ví dụ, nếu ta lấy
ảnh X với một ranh giới rõ rệt giữa màu đen và màu trắng và dịch chuyển
toàn bộ tấm ảnh sang phải một điểm ảnh, tức Z[i, j] = X[i, j + 1] thì đầu ra
cho ảnh mới Z có thể sẽ khác đi rất nhiều. Đường biên đó và các giá trị kích
hoạt sẽ đều dịch chuyển sang một điểm ảnh [9].
Max pooling và Average pooling
Giống như các tầng tích chập, các tốn tử gộp bao gồm một cửa sổ có kích
thước cố định được trượt trên tất cả các vùng đầu vào với giá trị sải bước
nhất định, tính tốn một giá trị đầu ra duy nhất tại mỗi vị trí mà cửa sổ
(đơi lúc được gọi là cửa sổ gộp) trượt qua. Tuy nhiên, khơng giống như phép
tốn tương quan chéo giữa đầu vào và hạt nhân ở tầng tích chập, tầng gộp
khơng chứa bất kỳ tham số nào (ở đây khơng có “bộ lọc”). Thay vào đó, các
tốn tử gộp được định sẵn. Chúng thường tính giá trị cực đại hoặc trung
18
LUẬN VĂN THẠC SĨ
ĐINH HUY TUẤN
bình của các phần tử trong cửa sổ gộp. Các phép tính này lần lượt được gọi
là là gộp cực đại (max pooling) và gộp trung bình (average pooling)[9].
Trong cả hai trường hợp, giống như với tốn tử tương quan chéo, ta có thể
xem như cửa sổ gộp bắt đầu từ phía trên bên trái của mảng đầu vào và
trượt qua mảng này từ trái sang phải và từ trên xuống dưới. Ở mỗi vị trí
mà cửa sổ gộp dừng, nó sẽ tính giá trị cực đại hoặc giá trị trung bình của
mảng con nằm trong cửa sổ (tùy thuộc vào phép gộp được sử dụng).
Một tầng gộp với cửa sổ gộp có kích thước p × q được gọi là một tầng gộp
p × q . Phép gộp sẽ được gọi là phép gộp p × q .
Hình 2.3: Max pooling và average pooling
c. Mạng hồi quy
Cho đến nay, chúng ta đã gặp hai loại dữ liệu: các vector tổng quát và hình
ảnh. Dữ liệu hình ảnh đã được thiết kế các tầng chuyên biệt nhằm tận dụng
tính chính quy (regularity property) của hình ảnh. Nói cách khác, nếu ta
hốn vị các điểm ảnh trong một ảnh, ta sẽ thu được một bức ảnh trông
giống như các khuôn mẫu kiểm tra (test pattern) hay thấy trong truyền
hình analog, và rất khó để suy luận về nội dung của chúng.
Trong khi các mạng nơ-ron tích chập có thể xử lý hiệu quả thơng tin trên
chiều khơng gian, thì các mạng nơ-ron hồi quy được thiết kế để xử lý thông
tin tuần tự tốt hơn. Các mạng này sử dụng các biến trạng thái để lưu trữ
thơng tin trong q khứ, sau đó dựa vào chúng và các đầu vào hiện tại để
xác định các đầu ra hiện tại [9].
Các mạng neural hồi quy, còn được biến đến như là RNNs, là một lớp của
mạng neural cho phép đầu ra được sử dụng như đầu vào trong khi có các
trạng thái ẩn [9]. Thơng thường là như sau:
19
LUẬN VĂN THẠC SĨ
ĐINH HUY TUẤN
Hình 2.4: Kiến trúc mạng RNN
Tại mỗi bước t, giá trị kích hoạt a<t> và đầu ra y <t> được biểu diễn như
sau:
a<t> = g1 (Waa a<t−1> + Wax x<t> + ba )
và
y <t> = g2 (Wya a<t> + by )
với Waa , Wax , Wya , ba , by là các hệ số được chia sẻ tạm thời và g1 , g2 là các
hàm kích hoạt.
2.2
2.2.1
Xử lý ngơn ngữ tự nhiên
Tổng quan
Xử lý ngơn ngữ chính là xử lý thơng tin khi đầu vào là "dữ liệu ngôn ngữ" (dữ
liệu cần biến đổi), tức dữ liệu "văn bản" hay "tiếng nói". Các dữ liệu liên quan
đến ngơn ngữ viết (văn bản) và nói (tiếng nói) đang dần trở nên kiểu dữ liệu
chính con người có và lưu trữ dưới dạng điện tử. Đặc điểm chính của các kiểu
dữ liệu này là khơng có cấu trúc hoặc nửa cấu trúc và chúng không thể lưu trữ
trong các khuôn dạng cố định như các bảng biểu. Theo đánh giá của cơng ty
Oracle, hiện có đến 80% dữ liệu khơng cấu trúc trong dữ liệu của lồi người đang
có. Với sự ra đời và phổ biến của Internet, của sách báo điện tử, của máy tính cá
nhân, của viễn thông, của thiết bị âm thanh, ... ai cũng có thể tạo ra dữ liệu văn
bản hay tiếng nói. Vấn đề là làm sao ta có thể xử lý chúng, tức chuyển chúng từ
các dạng ta chưa hiểu thành các dạng ta có thể hiểu và giải thích được, tức là
ta có thể tìm ra thơng tin, tri thức hữu ích cho mình [15].
20
LUẬN VĂN THẠC SĨ
2.2.2
ĐINH HUY TUẤN
Một số khái niệm cơ bản
a. Ngôn ngữ tự nhiên
Ngôn ngữ là hệ thống để giao thiệp hay suy luận dùng một cách biểu diễn
phép ẩn dụ và một loại ngữ pháp theo logic, mỗi cách bao hàm một tiêu
chuẩn hay sự thật thuộc lịch sử và siêu việt. Nhiều ngôn ngữ sử dụng điệu
bộ, âm thanh, lý hiệu, hay chữ viết, và cố gắng truyền khái niệm, ý nghĩa,
và ý nghĩ, cho nên khó phân biệt[14].
b. Xử lý ngôn ngữ tự nhiên
Xử lý ngôn ngữ tự nhiên (natural language processing - NLP) là một nhánh
của trí tuệ nhân tạo tập trung vào các ứng dụng trên ngơn ngữ của con
người. Trong trí tuệ nhân tạo thì xử lý ngơn ngữ tự nhiên là một trong
những phần khó nhất vì nó liên quan đến việc phải hiểu ý nghĩa ngơn ngữ
- cơng cụ hồn hảo nhất của tư duy [14].
c. Trí tuệ nhân tạo
Trí tuệ nhân tạo hay trí thơng minh nhân tạo (tiếng Anh: artificial intelligence hay machine intelligence, thường được viết tắt là AI) là trí tuệ được
biểu diễn bởi bất cứ một hệ thống nhân tạo nào. Thuật ngữ này thường
dùng để nói đến các máy tính có mục đích khơng nhất định và ngành khoa
học nghiên cứu về các lý thuyết và ứng dụng của trí tuệ nhân tạo [14].
d. Nhập nhằng
Nhập nhằng trong ngôn ngữ học là hiện tượng thường gặp, trong giao tiếp
hàng ngày con người ít để ý đến nó bởi vì họ xử lý tốt hiện tượng này. Nhưng
trong các ứng dụng liên quan đến xử lý ngôn ngữ tự nhiên khi phải thao tác
với ý nghĩa từ vựng mà điển hình là dịch tự động nhập nhằng trở thành vấn
đề nghiêm trọng. Ví dụ trong một câu cần dịch có xuất hiện từ đường, vấn
đề nảy sinh là cần dịch từ này là road hay sugar, con người xác định chúng
khá dễ dàng căn cứ vào văn cảnh và các dấu hiệu nhận biết khác nhưng với
máy thì khơng. Một số hiện tượng nhập nhằng: Nhập nhằng ranh giới từ,
Nhập nhằng từ đa nghĩa, Nhập nhằng từ đồng âm (đồng tự), Nhập nhằng
từ loại [14].
2.2.3
Quy trình xử lý ngơn ngữ tự nhiên
Để máy tính có thể hiểu và thực thi một chương trình được viết bằng ngơn
ngữ cấp cao, ta cần phải có một trình biên dịch thực hiện việc chuyển đổi chương
trình đó sang dạng ngơn ngữ đích. Chương này trình bày một cách tổng quan
21
LUẬN VĂN THẠC SĨ
ĐINH HUY TUẤN
về cấu trúc của một trình biên dịch và mối liên hệ giữa nó với các thành phần
khác - "họ hàng" của nó - như bộ tiền xử lý, bộ tải và soạn thảo liên kết, v.v.
Cấu trúc của trình biên dịch được mơ tả trong chương là một cấu trúc mức quan
niệm bao gồm các giai đoạn: Phân tích từ vựng, Phân tích cú pháp, Phân tích
ngữ nghĩa [15].
a. Phân tích từ vựng (Lexical Analysis)
Trong một trình biên dịch, giai đoạn phân tích từ vựng sẽ đọc chương trình
nguồn từ trai sang phải để tách ra thành các thẻ từ.
b. Phân tích cú pháp (Syntax Analysis)
Giai đoạn phân tích cú pháp thực hiện cơng việc nhóm các thẻ từ của chương
trình nguồn thành các ngữ đoạn văn phạm, mà sau đó sẽ được trình biên
dịch tổng hợp thành thành phẩm. Thông thường, các ngữ đoạn văn phạm
này được biểu diễn bằng dạng cây phân tích cú pháp (parse tree).
c. Phân tích ngữ nghĩa (Semantic Analysis)
Giai đoạn phân tích ngữ nghĩa sẽ thực hiện việc kiểm tra xem chương trình
nguồn có chứa lỗi về mặt ngữ nghĩa không và tập hợp thông tin về kiểu.
Một phần quan trọng trong giai đoạn phân tích ngữ nghĩa là kiểm tra kiểu
và ép chuyển đổi kiểu.
2.2.4
Các ứng dụng của xử lý ngôn ngữ tự nhiên
1. Nhận dạng tiếng nói (speech recognition)
Từ sóng tiếng nói, nhận biết và chuyển chúng thành dữ liệu văn bản tương
ứng. Giúp thao tác của con người trên các thiết bị nhanh hơn và đơn giản
hơn, chẳng hạn thay vì gõ một tài liệu nào đó bạn đọc nó lên và trình soạn
thảo sẽ tự ghi nó ra. Đây cũng là bước đầu tiên cần phải thực hiện trong
ước mơ thực hiện giao tiếp giữa con người với robot. Nhận dạng tiếng nói
có khả năng trợ giúp người khiếm thị rất nhiều [12].
2. Tổng hợp tiếng nói (speech synthesis)
Từ dữ liệu văn bản, phân tích và chuyển thành tiếng người nói. Thay vì
phải tự đọc một cuốn sách hay nội dung một trang web, nó tự động đọc cho
chúng ta. Giống như nhận dạng tiếng nói, tổng hợp tiếng nói là sự trợ giúp
tốt cho người khiếm thị, nhưng ngược lại nó là bước cuối cùng trong giao
tiếp giữa người với robot [12].
3. Nhận dạng chữ viết (optical character recognition, OCR)
22
LUẬN VĂN THẠC SĨ
ĐINH HUY TUẤN
Từ một văn bản in trên giấy, nhận biết từng chữ cái và chuyển chúng thành
một tệp văn bản trên máy tính. có hai kiểu nhận dạng: Thứ nhất là nhận
dạng chữ in như nhận dạng chữ trên sách giáo khoa rồi chuyển nó thành
dạng văn bản điện tử như dưới định dạng doc của Microsoft Word chẳng
hạn.Phức tạp hơn là nhận dạng chữ viết tay, có khó khăn bởi vì chữ viết
tay khơng có khuôn dạng rõ ràng thay đổi từ người này sang người khác.
Với chương trình nhận dạng chữ viết in có thể chuyển hàng ngàn đầu sách
trong thư viện thành văn bản điện tử trong thời gian ngắn. Nhận dạng chữ
viết của con người có ứng dụng trong khoa học hình sự và bảo mật thông
tin (nhận dạng chữ ký điện tử) [12].
4. Dịch tự động (machine translation)
Từ một tệp dữ liệu văn bản trong một ngơn ngữ (ví dụ như tiếng Anh), máy
tính dịch và chuyển thành một tệp văn bản trong một ngơn ngữ khác [12].
5. Tóm tắt văn bản (text summarization)
Từ một văn bản dài, máy tóm tắt thành một văn bản ngắn hơn (một trang)
với những nội dung cơ bản [12].
6. Tìm kiếm thơng tin (information retrieval)
Từ một nguồn rất nhiều tệp văn bản hay tiếng nói, tìm ra những tệp có nội
dung liên quan đến một vấn đề (câu hỏi) ta cần biết (hay trả lời). . . Điển
hình của cơng nghệ này là Google, một hệ tìm kiếm thơng tin trên Web, mà
hầu như chúng ta đều dùng thường xuyên. Cần nói thêm rằng mặc dù hữu
hiệu hàng đầu như vậy, Google mới có khả năng cho chúng ta tìm kiếm câu
hỏi dưới dạng các từ khóa (keywords) và ln “tìm” cho chúng ta rất nhiều
tài liệu không liên quan, cũng như rất nhiều tài liệu liên quan đã tồn tại thì
Google lại tìm khơng ra [12].
7. Trích chọn thơng tin (information extraction)
Từ một nguồn rất nhiều tệp văn bản hay tiếng nói, tìm ra những đoạn bên
trong một số tệp liên quan đến một vấn đề (câu hỏi) ta cần biết hay trả
lời. Một hệ trích chọn thơng tin có thể “lần” vào từng trang Web liên quan,
phân tích bên trong và trích ra các thơng tin cần thiết, nói gọn trong tiếng
Anh để phân biệt với tìm kiếm thơng tin là “find things but not pages” [12].
8. Phát hiện tri thức và khai phá dữ liệu văn bản (knowledge discovery and text
data mining)
Từ những nguồn rất nhiều văn bản thậm chí hầu như khơng có quan hệ với
nhau, tìm ra được những tri thức trước đấy chưa ai biết. Đây là một vấn đề
23
LUẬN VĂN THẠC SĨ
ĐINH HUY TUẤN
rất phức tạp và đang ở giai đoạn đầu của các nghiên cứu trên thế giới [12].
2.3
Tổng quan về hệ thống chatbot
2.3.1
Khái niệm
Chatbot là một chương trình máy tính có khả năng giao tiếp với con người
bằng cách đưa ra câu trả lời cho các câu hỏi và thực hiện cuộc trò chuyện bằng
cách sử dụng xử lý ngôn ngữ tự nhiên. Con người đưa vào lời nói hoặc văn bản
ngơn ngữ tự nhiên, trong khi chương trình chatbot sẽ đưa ra phản hồi thơng
minh phù hợp nhất [1].
Hoạt động của chatbot
Chatbot tương tác với con người qua âm thanh hoặc văn bản và sử dụng các
nền tảng để giao tiếp với bot. Phần mà các lập trình viên cần phát triển bao
gồm:
• Translator :
Dịch yêu cầu của người dùng giúp máy tính hiểu được yêu cầu cần thực
hiện. Mục đích và các thực thể có trong u cầu được trích xuất để làm cơ
sở cho xác định câu trả lời. Các kỹ thuật xử lý ngơn ngữ tự nhiên được áp
dụng để phân tích ngữ nghĩa yêu cầu của người dùng.
• Processor:
Xử lý yêu cầu của người dùng dựa vào dữ liệu được Translator cung cấp.
Câu trả lời sẽ được truy xuất từ cơ sở dữ liệu của chatbot. Tùy thuộc vào
kỹ thuật sử dụng sẽ cho mức độ chính xác của câu trả lời khác nhau.
• Responsor:
Nhận output từ Processor và trả lời lại cho người dùng.
2.3.2
Các mơ hình Chatbot
Mơ hình truy xuất thơng tin và mơ hình sinh thơng tin ( Retrieval Based
model vs. Generative Models ). Các mơ hình dựa trên truy xuất (Retrieval-based
models) sử dụng kho lưu trữ các phản hồi được xác định trước và một số loại
heuristic để chọn một phản hồi phù hợp dựa trên đầu vào và ngữ cảnh. Các
heuristic có thể đơn giản như một kết hợp biểu thức dựa trên luật hoặc phức
tạp hơn như một tập hợp các phân loại học máy. Các hệ thống này không tạo ra
bất kỳ văn bản mới nào, họ chỉ cần chọn một phản hồi từ một tập cố định [1].
24