Luận văn Nghiên cứu, xây dựng Chatbot hỏi đáp thông tin khách sạn sử dụng Rasa Framework
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
----------------------------------
CHU LÊ LONG
NGHIÊN CỨU, XÂY DỰNG CHATBOT HỎI ĐÁP
THÔNG TIN KHÁCH SẠN SỬ DỤNG
RASA FRAMEWORK
LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)
HÀ NỘI - 2020
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
----------------------------------
CHU LÊ LONG
NGHIÊN CỨU, XÂY DỰNG CHATBOT HỎI ĐÁP
THÔNG TIN KHÁCH SẠN SỬ DỤNG
RASA FRAMEWORK
CHUYÊN NGÀNH:
KHOA HỌC MÁY TÍNH
MÃ SỐ:
8.48.01.01
LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)
NGƯỜI HƯỚNG DẪN KHOA HỌC
PGS.TS. NGUYỄN MẠNH HÙNG
HÀ NỘI – 2020
i
LỜI CAM ĐOAN
Tôi là Chu Lê Long, học viên lớp Cao học khóa 2019 đợt 1, chuyên ngành
Khoa học máy tính của trường Học viện Công nghệ Bưu chính Viễn thông.
Tôi xin cam đoan luận văn này là do tôi tự nghiên cứu, tìm hiểu, xây dựng.
Nội dung của luận văn có tham khảo, sử dụng các thông tin và tài liệu từ các nguồn
sách, tạp chí, bài báo được liệt kê trong danh mục các tài liệu tham khảo và được
trích dẫn hợp pháp.
Tác giả
(Ký và ghi rõ họ tên)
CHU LÊ LONG
ii
LỜI CÁM ƠN
Em xin gửi lời cảm ơn tới các thầy cô giáo, cán bộ của Học viện Công nghệ
Bưu chính Viễn thông nói chung đã giảng dạy, truyền đạt kiến thức cho em trong
quá trình học tập và nghiên cứu chương trình Thạc sĩ.
Em xin gửi lời cảm ơn sâu sắc tới PGS.TS. Nguyễn Mạnh Hùng đã
tận tình hướng dẫn, giúp đỡ và động viên em để hoàn thành luận văn “NGHIÊN
CỨU, XÂY DỰNG CHATBOT HỎI ĐÁP THÔNG TIN KHÁCH SẠN SỬ
DỤNG RASA FRAMEWORK”.
Do kiến thức và kinh nghiệm thực tiễn còn hạn chế nên luận văn không
tránh khỏi những thiếu sót nhất định. Em xin trân trọng tiếp thu các ý kiến
của các thầy, cô để luận văn được hoàn thiện hơn.
Trân trọng cám ơn.
Tác giả
(Ký và ghi rõ họ tên)
CHU LÊ LONG
iii
MỤC LỤC
DANH MỤC BẢNG BIỂU.....................................................................................vii
MỞ ĐẦU ....................................................................................................................1
1.1. Khái niệm........................................................................................................2
1.2. Lịch sử ra đời..................................................................................................2
1.3. Phân loại chatbot............................................................................................6
1.4.2. DM (Quản lý hội thoại).........................................................................9
1.5. Một số nền tảng phát triển chatbot ............................................................10
1.6. Một số ứng dụng của chatbot......................................................................11
1.8. Kết luận chương ...........................................................................................15
2.1.1 Xác định ý định người dùng ...................................................................16
2.1.2 Trích xuất thông tin ................................................................................20
2.1.3 Quản lý hội thoại ....................................................................................21
2.2. Rasa framework ...........................................................................................27
iv
2.2.6. Actions ................................................................................................33
2.2.7. Policies................................................................................................34
2.3. Kết luận chương ...........................................................................................35
SẠN...........................................................................................................................36
3.1. Giới thiệu bài toán........................................................................................36
3.2. Xây dựng Chương trình ..............................................................................41
3.2.1. Nguồn dữ liệu xây dựng......................................................................41
3.2.2. Xây dựng ý định..................................................................................41
3.2.3. Xây dựng thực thể...............................................................................44
3.2.4. Xây dựng câu trả lời............................................................................45
3.2.6. Đào tạo cho chatbot ............................................................................49
3.2.7. Kiểm tra chatbot..................................................................................52
3.3. Kết quả thực nghiệm....................................................................................52
3.3.1. Môi trường thực nghiệm.....................................................................52
3.3.2. Thiết kế ...............................................................................................52
3.3.3. Kết quả thực nghiệm...........................................................................53
3.4. Đánh giá ........................................................................................................62
3.5. Kết luận chương ...........................................................................................63
v
DANH MỤC KÝ HIỆU VÀ CÁC CHỮ VIẾT TẮT
Tꢀ viết
tꢁt
Tꢀ chuꢂn
Diễn giải
nhân tạo
Giao diẹn lạp trình ứng dụng
AI
Artificial Intelligence
Application Programming
Interface
Trí tuệ
API
̂
̂
CRF
DL
Conditional Random Fields
Mô hình CRF
Deep learning
Học sâu
DM
Dialog Management
Quản lý hội thoại
FAQ
Frequently Asked Questions
Các câu hỏi thường gặp
ML
Machine Learning
Học máy
NLG
NLP
NLU
QA
Natural language generation
Natural Languague Processing
Sinh ngôn ngữ tự nhiên
Xử lý ngôn ngữ tự nhiên
Natural language understanding Hiểu ngôn ngữ tự nhiên
Question Answering
Các cạ
̆p câu hỏi đáp
SDK
Software Development Kit
Bọ công cụ hꢀ trợ phát triển
̂
vi
DANH MỤC HÌNH VẼ VÀ ĐỒ THỊ
Hình 1.1: Phân loại Chatbot [7] ..................................................................................6
Hình 1.2: Kiến trúc chung của chatbot [8]..................................................................8
Hình 2.1 Xác định ý định người dùng [4].................................................................16
Hình 2.2: Xác định ý định dựa trên học máy [1] ......................................................18
Hình 2.3: Trích xuất thông tin thực thể [4]...............................................................20
Hình 2.4: Trích xuất thông tin thực thể dựa trên học máy........................................21
Hình 2.5: Quản lý hội thoại [4].................................................................................22
Hình 2.6: Mô hình máy trạng thái hữu hạn (Finite-State Machines) [10] ................23
Hình 2.7: Mô hình Frame-based [10]........................................................................24
Hình 2.8: Một chatbot hướng menu..........................................................................25
Hình 2.9: NLP engine trích xuất thông tin dựa trên kỹ thuật học máy.....................26
Hình 2.10: Các thành phần của Rasa [4]...................................................................28
Hình 2.11: Chế độ học tương tác của Rasa [4] .........................................................29
Hình 2.12: Công cụ Rasa X.......................................................................................29
Hình 2.13: Cách thức Rasa phản hồi một tin nhắn ...................................................30
Hình 2.14: Cấu trúc của một chương trình Rasa.......................................................31
Hình 3.1: Đào tạo một model....................................................................................49
Hình 3.2: Đào tạo cho chatbot dạng shell .................................................................50
Hình 3.3: Chế độ đào tạo cho chatbot bằng Interactive Learning ............................50
Hình 3.4: Trực quan hóa cuộc hội thoại....................................................................51
Hình 3.5: Học tương tác qua Rasa X ........................................................................51
Hình 3.6: End-to-end testing với Rasa......................................................................52
Hình 3.7: Kiến trúc chung của hệ thống ...................................................................53
Hình 3.8: Intent Confusion matrix ............................................................................55
Hình 3.9: Hỏi về các loại phòng của khách sạn........................................................58
Hình 3.10: Hỏi về các thông tin thời gian check-in, check-out của khách sạn.........59
Hình 3.11: Hỏi về các thông tin dạng FAQ khác của khách sạn ..............................60
Hình 3.12: Đặt phòng................................................................................................62
vii
DANH MỤC BẢNG BIỂU
Bảng 2.1: Ưu và nhược điểm của chatbot dựa trên quy tắc [12] ........................................25
Bảng 2.2: Ưu và nhược điểm của chatbot dựa trên AI [12]................................................27
Bảng 3.1: Bảng confusion matrix .......................................................................................40
Bảng 3.2: Bảng các ý định (intent) của chabot...................................................................41
Bảng 3.3: đánh giá trích chọn thông tin thực thể (entity)...................................................56
Bảng 3.4: đánh giá mô hình Rasa Core ..............................................................................56
1
MỞ ĐẦU
Ngày nay, cùng với sự phát triển của khoa học kỹ thuật, Chatbot đang được
ứng dụng phổ biến và mạnh mẽ trong nhiều lĩnh vực, tạo nên một cơn sốt công nghệ
khi có nhiều hãng công nghệ nổi tiếng thế giới tham gia như Google, Facebook,
Microsoft, IBM...Theo Grand View Research, thị trường Chatbot dự kiến sẽ đạt
khoảng 1,25 tỷ đô la trên toàn cầu vào năm 2025. Hơn nữa, các chuyên gia dự đoán
rằng thị trường này sẽ tăng trưởng với tốc độ tăng trưởng gộp hàng năm hơn 24%.
Đặc biệt là xu hướng chuyển dịch phát triển AI chatbot có khả năng hội thoại, xử lý
những tương tác phức tạp hơn với khách hàng. Ở Việt Nam, chatbot đã bắt đầu được
áp dụng ở trong một số lĩnh vực như chăm sóc khách hàng, mua sắm trực tuyến, trả
lời thông tin ngân hàng, y tế… Đối với lĩnh vực du lịch, khách sạn chatbot chưa được
sử dụng nhiều dù rằng đây là lĩnh vực rất phù hợp cho các ứng dụng chatbot. Chatbot
có thể thay thế con người trong việc trả lời các câu hỏi có tính lặp đi lặp lại, hꢀ trợ
khách hàng 24/7, tiếp thị quảng cáo cho doanh nghiệp…
Với mong muốn hiểu sâu hơn về chatbot và các kỹ thuật giúp chatbot trả lời
câu hỏi xử lý theo ngôn ngữ tự nhiên (NLP), em quyết định chọn đề tài “Nghiên cứu,
xây dựng Chatbot hỏi đáp thông tin khách sạn sử dụng Rasa Framework” làm đề tài
luận văn thạc sĩ. Qua đề tài em muốn nâng cao sự hiểu biết về AI Chatbot, NLP (xử
lý ngôn ngữ tự nhiên) và nghiên cứu khả năng áp dụng thực tiễn tại Việt Nam.
Nội dung luận văn được chia ra làm 3 phần như sau:
Chương 1: Giới thiệu tổng quan về hệ thống chatbot, kiến trúc high-level và
các thành phần cơ bản của AI chatbot, một số nền tảng và ứng dụng của chatbot.
Chương 2: Nghiên cứu một số kĩ thuật được sử dụng trong chatbot, tìm hiểu
về Rasa Framework.
Chương 3: Trình bày về quá trình xây dựng chatbot trả lời thông tin khách sạn,
thực nghiệm và đánh giá các kết quả.
2
CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ CHATBOT
1.1.Khái niệm
Theo từ điển Cambridge, chatbot là một một chương trình máy tính được thiết
kế để trò chuyện với con người, đặc biệt là qua internet [15].
Chatbot thường trao đổi với người dùng qua hình thức tin nhắn hoặc âm thanh.
Do được thiết kế để mô phỏng cách trò chuyện với con người, các hệ thống chatbot
thường phải điều chỉnh và thử nghiệm liên tục.
Chatbot thường được sử dụng trong các hệ thống hội thoại cho các mục đích
khác nhau bao gồm dịch vụ khách hàng, định tuyến yêu cầu hoặc để thu thập thông
tin. Mặc dù một số ứng dụng chatbot sử dụng các phương pháp phân loại từ (word-
classification), xử lý ngôn ngữ tự nhiên (NLP) và trí tuệ nhân tạo (AI), một số ứng
dụng khác chỉ cần quét các từ khóa chung và tạo phản hồi bằng các cụm từ phổ biến
thu được từ thư viện hoặc cơ sở dữ liệu liên quan.
Ngày nay, hầu hết các chatbot được truy cập trực tuyến thông qua cửa sổ popup
của trang web hoặc thông qua các trợ lý ảo như Google Assistant, Amazon Alexa
hoặc các ứng dụng nhắn tin như Facebook Messenger hoặc WeChat...
1.2.Lịch sử ra đời
Dưới đây là tóm tắt lịch sử ngắn gọn về lịch sử hình thành của chatbot [6],
[16]. [17].
1950
Phép thử Turing là một phương pháp để xác định xem một cꢀ máy có thể
chứng minh trí thông minh của nó giống với não người hay không. Nếu một cꢀ máy
có thể tham gia vào một cuộc hội thoại với con người mà không bị phát hiện là một
cꢀ máy, thì nó đã thể hiện được trí tuệ của con người. Các phép thử Turing được thực
hiện để xác định xem một chương trình máy tính có thể phân biệt được máy tính với
con người trong một cuộc trò chuyện chỉ có văn bản thuần túy hay không. Bằng cách
gõ câu hỏi cho cả hai đối tượng thử nghiệm, người thẩm vấn sẽ cố gắng xác định đối
tượng nào là máy tính và đối tượng nào là con người. Máy tính sẽ vượt qua phép thử
3
Turing nếu người thẩm vấn không thể nói sự khác biệt giữa chủ thể con người và máy
tính.
1966
Chatbot đầu tiên ra đời năm 1960, tên là Eliza, và là một chương trình máy
tính của Joseph Weizenbaum (Viện Công nghệ Massachusetts, Mỹ). Chương trình
được thiết kế theo cách bắt chước cuộc trò chuyện của con người. Chatbot Eliza hoạt
động bằng cách chuyển các từ mà người dùng đã nhập vào máy tính và sau đó ghép
nối chúng vào danh sách các câu trả lời có kịch bản. Nó sử dụng một kịch bản mô
phỏng một nhà tâm lý trị liệu. Kịch bản được chứng minh là một tác động đáng kể
đến việc xử lý ngôn ngữ tự nhiên và trí thông minh nhân tạo và là một trong những
chương trình đầu tiên có thể vượt qua bài kiểm tra Turing.
1972
Parry được xây dựng bởi bác sĩ tâm thần người Mỹ Kenneth Colby vào năm
1972. Chương trình bắt chước một bệnh nhân tâm thần phân liệt. Nó là một chương
trình ngôn ngữ tự nhiên tương tự như suy nghĩ của một cá nhân. Parry hoạt động
thông qua một hệ thống phức tạp các giả định, phân bổ và “phản ứng cảm xúc” được
kích hoạt bằng cách thay đổi trọng số được gán cho các đầu vào bằng lời nói. Trong
cùng năm đó, Parry và Eliza đã “gặp” và “nói chuyện” với nhau tại Hội nghị Quốc tế
về Truyền thông Máy tính ở Washington DC. Sau đó, Parry cũng đã vượt qua một
phiên bản của Turing Test.
1981
Được phát triển vào những năm 1980 và phát hành trực tuyến vào năm 1997,
chatbot Jabberwacky được thiết kế để “mô phỏng trò chuyện của con người tự nhiên
theo cách thú vị và hài hước”. Mục đích ban đầu của dự án Chatbot Jabberwacky là
tạo ra một trí tuệ nhân tạo có khả năng vượt qua các phép thử Turing. Nó được thiết
kế để bắt chước tương tác của con người và thực hiện các cuộc hội thoại với người
dùng. Mục đích cuối cùng của chương trình là chuyển từ một hệ thống dựa trên văn
bản sang toàn bộ hoạt động bằng giọng nói. Tác giả của nó tin rằng nó có thể được
kết hợp vào các vật thể xung quanh nhà như robot, các thiết bị thông minh, …Trong
4
khi tất cả các chatbot trước đó dựa trên cơ sở dữ liệu tĩnh để trả lời và trò chuyện,
Jabberwacky thu thập cụm từ được sử dụng bởi những người tham gia trò chuyện với
nó. Nó tự thêm những câu trả lời vào cơ sở dữ liệu và tự động phát triển nội dung của
riêng mình. Trong năm 2008, Jabberwacky đã phát hành một phiên bản mới và đổi
tên thành Cleverbot.
1992
Được tạo ra bởi Creative Labs vào đầu những năm 1990, Dr SBAITSO là từ
viết tắt của Sound Blaster Artificial Intelligent Text to Speech Operator. Dr.
SBAITSO “trò chuyện” với người dùng như thể nó là một nhà tâm lý học. Mặc dù
hầu hết các câu trả lời của nó đều là “WHY DO YOU FEEL THAT WAY?” nghĩa là
“Bạn cảm thấy như thế nào?”. Thay vì bất kỳ loại tương tác phức tạp, khi đối mặt với
một cụm từ mà nó không thể hiểu được, nó thường trả lời là “THAT’S NOT MY
PROBLEM” (Đó không phải là vấn đề của tôi).
1995
ALICE được xây dựng trên cùng một kỹ thuật được sử dụng để tạo nên ELIZA.
ALICE ban đầu được sáng tạo bởi Richard Wallace, ra đời vào ngày 23 tháng 11 năm
1995. Chương trình được viết lại bằng ngôn ngữ Java vào năm 1998. ALICEBOT sử
dụng một lược đồ XML có tên AIML (Artificial Intelligence Markup Language-
Ngôn ngữ đánh dấu trí thông minh nhân tạo) để xác định các quy tắc trò chuyện
heuristic. Tuy nhiên, nó lại không thể vượt qua Các phép thử Turing.
2001
SmarterChild là một Chatbot có sẵn trên mạng AOL Instant Messenger và
Windows Live Messenger (trước đây là MSN Messenger). AOL Instant Messenger
là một chương trình tin nhắn tức thời và hiện diện do AOL tạo ra, sử dụng giao thức
nhắn tin tức thời OSCAR độc quyền và giao thức TOC để cho phép người dùng đăng
ký giao tiếp trong thời gian thực. SmarterChild đóng vai trò giới thiệu cho việc truy
cập dữ liệu nhanh và cuộc trò chuyện được cá nhân hóa thú vị hơn. Hơn nữa, khi kết
hợp với các nhà mạng, chúng trở thành một kênh tiếp thị hiệu quả và miễn phí. Chúng
5
giúp người dùng giao tiếp nhanh chóng với hệ thống mạng bằng cách hiển thị các
thông tin ngắn gọn với các lựa chọn trên bàn phím điện thoại.
2006
IBM Watson được tạo ra với mục tiêu vượt lên và chiến thắng các thí sinh
tham dự cuộc thi Jeopardy! Với khả năng chạy hàng trăm thuật toán phân tích ngôn
ngữ cùng một lúc, IBM Watson sở hữu một sự thông minh ngôn ngữ đáng ngạc nhiên.
IBM thiết lập cho Watson có quyền truy cập vào cơ sở dữ liệu khổng lồ về thông tin.
Watson có thể nhanh chóng truy cập 200 triệu trang dữ liệu, làm cho nó trở thành một
máy trả lời câu hỏi lý tưởng (hoặc, trong trường hợp của Jeopardy, Watson trở thành
máy tạo câu hỏi lý tưởng). Rõ ràng, một hệ thống có thể nhanh chóng lấy thông tin
dựa trên đầu vào đàm thoại cũng có thể cung cấp nền tảng cho việc tạo các trợ lý ảo
mạnh mẽ. Hiện nay, IBM Watson phục vụ như là “bộ não” cho nhiều chatbots hoạt
động trên nhiều ngành công nghiệp và lĩnh vực trên khắp thế giới.
2010-2016
Siri, một trợ lý cá nhân thông minh, đã được ra mắt dưới dạng một ứng dụng
iPhone và sau đó được tích hợp là một phần của iOS. Năm 2012, Google ra mắt
chatbot Google Now. Năm 2016, Google đã giới thiệu trợ lý cá nhân thông minh mới
Google Assistant, là một sự tiến hóa của Google Now. Trợ lý này có thể tham gia đối
thoại hai chiều với người dùng. Trước đó vào năm 2014, Amazon phát hành Alexa,
các yêu cầu của người dùng.
2016- nay
nền tảng thân thiện hơn và cho phép bất kỳ ai cũng có thể tạo cho mình một chatbot.
Ngay sau đó, các ứng dụng chat khác như LINE, WhatsApp, Telegram hay Twitter
cũng đưa ra các hꢀ trợ hoặc các API cho phép người dùng tạo các Chatbot trên ứng
dụng nhắn tin. Nhưng WeChat của Trung Quốc mới chính là tiên phong trong lĩnh
6
đua của các nhà phát triển chatbots, Facebook đang nắm giữ thị phần toàn cầu lớn
nhất vì có đến hơn 1 tỷ người sử dụng ứng dụng Messenger hàng tháng. Còn riêng ở
thị trường Trung Quốc, WeChat lại là ứng dụng chat số 1 mà không ứng dụng chat
nào có thể cạnh tranh nổi.
1.3.Phân loại chatbot
Chatbots có thể được phân loại thành nhiều loại khác nhau dựa trên một số
tiêu chí. Các phân loại có thể được thực hiện dựa trên các tiêu chí sau [7, tr.947-954].
Hình 1.1: Phân loại Chatbot [7]
- Theo chế độ tương tác (Interact Mode):
+ Dựa trên văn bản (Text-Based)
+ Dựa trên giọng nói (Voice-Based)
- Theo miền (Domain):
+ Miền đóng/miền cụ thể (Closed Domain): Phạm vi của chatbot chỉ
giải quyết một số vấn đề trong phạm vi nhất định. Ví dụ: Khách hàng mua ô
tô, tư vấn khách hàng mua bảo hiểm nhân thọ, dự báo thời tiết… Loại này phổ
7
biến, dữ liệu huấn luyện trong phạm vi nhỏ nên dễ huấn luyện, độ chính xác
cao.
+ Miền mở (Open Domain): Loại này là mục tiêu của trí tuệ nhân tạo.
Một chatbot biết mọi thứ và có thể trả lời mọi vấn đề. Rất nhiều chatbot thông
minh được tạo ra. Tuy nhiên trả lời mọi vấn đề và vượt qua được Turing test
thì vẫn chưa thể đạt tới.
- Theo mục tiêu (Goals):
+ Các chatbot hướng nhiệm vụ (Task-Oriented): được thiết kế cho một
nhiệm vụ cụ thể và được thiết lập để có thời gian ngắn các cuộc hội thoại,
thường là trong một miền đóng.
+ Các chatbot không hướng nhiệm vụ (Non Task-Oriented): có thể mô
phỏng cuộc trò chuyện với một người và thường thực hiện chat cho mục đích
giải trí trong các miền mở.
- Theo Phương pháp thiết kế (Design Approach):
+ Dựa theo luật (Rule- Based): Loại chatbot này khả năng rất hạn chế.
Chỉ có khả năng phản hồi chính xác những lệnh cụ thể mà ta đã xác định từ
trước hoặc người dùng không được phép tùy ý phản hồi mà phải lựa chọn các
phản hồi do lập trình viên tạo ra. Sự thông minh của chatbot phụ thuộc vào
mức độ mà ta lập trình ra chatbot.
+ Dựa theo trí tuệ nhân tạo (AI): Loại này có khả năng “hiểu” ngôn
ngữ. Nghĩa là chatbot không bị giới hạn bởi tập các luật xác định từ trước, mà
có thể hiểu ở phạm vi rộng hơn. Tất nhiên chatbot vẫn phải được “học” từ dữ
liệu có sẵn, nhưng nó có khả năng “đoán” được ý nghĩa và ngữ cảnh của những
lệnh chưa từng gặp. Một khả năng nữa của chatbot dựa trên AI là khả năng
“học thêm”. Nghĩa là ta đưa vào càng nhiều câu huấn luyện, xác xuất chatbot
phản hồi người dùng chính xác càng cao. Trong phương pháp này có thể chia
ra thành dựa trên cơ sở sáng tạo (Generative-Based) như các mô hình theo
trình tự, tạo ra trả lời phù hợp trong cuộc trò chuyện hoặc dựa trên truy xuất
8
(Retrieval-Based) để học lựa chọn các câu trả lời từ cuộc hội thoại hiện tại từ
một kho lưu trữ.
1.4.Các thành phần cơ bản của hệ thống chatbot
Bước đầu tiên trong việc thiết kế bất kỳ hệ thống nào là chia nó thành các bộ
phận cấu thành theo một tiêu chuẩn để có thể tuân theo cách tiếp cận phát triển mô
đun. Trong hình dưới giới thiệu một kiến trúc chatbot chung của chatbot [8, tr.373-
383].
Hình 1.2: Kiến trúc chung của chatbot [8]
Dưới đây trình bày chi tiết về các thành phần của chatbot.
1.4.1. NLU (Hiểu ngôn ngữ tự nhiên)
NLU (Natural Language Understanding - hiểu ngôn ngữ tự nhiên): bao gồm
việc xử lý ngôn ngữ tự nhiên (NLP) có nhiệm vụ xác định được ý định câu hỏi (intent
classification) và trích chọn thông tin (slots filter).
NLU nhằm mục đích trích xuất ngữ cảnh (context) và ý nghĩa từ đầu vào của
người dùng bằng ngôn ngữ tự nhiên, mà có thể không có cấu trúc và phản hồi một
cách thích hợp theo ý định của người dùng (user intent). Nó xác định mục đích của
người dùng và trích xuất các thực thể (entities) theo miền cụ thể. Cụ thể hơn, một ý
định đại diện cho một ánh xạ giữa những gì người dùng nói và hành động (action)
nên được thực hiện bởi chatbot. Các hành động tương ứng với các bước mà chatbot
sẽ thực hiện khi các ý định cụ thể được kích hoạt bởi các đầu vào của người dùng và
có thể có các tham số để xác định thông tin chi tiết về nó. Phát hiện ý định thường
9
được xây dựng dưới dạng phân loại câu, trong đó các nhãn ý định đơn hoặc nhiều ý
định được dự đoán cho mꢀi câu.
Thực thể là một công cụ để trích xuất các giá trị tham số từ các đầu vào ngôn
ngữ tự nhiên. Ví dụ, hãy xem xét câu “What is the weather in Greece?”. Mục đích
của người dùng là tìm hiểu dự báo thời tiết. Giá trị thực thể là Greece (Hy Lạp). Do
đó, người dùng yêu cầu dự báo thời tiết ở Hy Lạp. Các thực thể có thể do hệ thống
xác định hoặc do nhà phát triển xác định.
Ngữ cảnh là các chuꢀi lưu trữ ngữ cảnh của đối tượng mà người dùng đang đề
cập hoặc nói đến. Ví dụ, một người dùng có thể tham chiếu đến một đối tượng đã
được xác định trước đó trong câu sau của họ. Người dùng có thể nhập “Switch on the
fan”. Ở đây, ngữ cảnh sẽ được lưu là fan (cái quạt) để khi người dùng nói, “Switch it
off” làm đầu vào tiếp theo, ý định “tắt” có thể được gọi trên ngữ cảnh “quạt”.
Đúc kết lại, khi người dùng gõ một câu “What is the meaning of
environment?” trong một chatbot sử dụng ứng dụng nhắn tin như Facebook, Slack,
WhatsApp, WeChat hoặc Skype. Sau khi chatbot nhận được yêu cầu của người dùng,
thành phần hiểu ngôn ngữ tự nhiên sẽ phân tích nó để suy ra ý định của người dùng
và thông tin liên quan (ý định: dịch, thực thể: [từ: environment].
1.4.2. DM (Quản lý hội thoại)
DM (Dialog Management - quản lý hội thoại): Thành phần quản lý đối thoại
giữ và cập nhật ngữ cảnh của cuộc hội thoại là ý định hiện tại, các thực thể được xác
định hoặc các thực thể bị thiếu cần thiết để thực hiện các yêu cầu của người dùng.
Hơn nữa, nó yêu cầu thông tin thiếu, xử lý làm rõ bởi người dùng và đặt câu hỏi tiếp
theo. Ví dụ: chatbot có thể phản hồi câu hỏi trên lại bằng câu: “Would you like to tell
me as well an example sentence with the word environment?”. Quản lý hội thoại cũng
có nhiệm vụ xác định được hành động (action) tiếp theo dựa vào trạng thái hành động
trước đó hay ngữ cảnh hội thoại. Các ngữ cảnh này phải được đối chiếu trong các
kịch bản dựng sẵn (history) đã đào tạo cho bot. Thành phần này cũng đảm nhiệm việc
lấy dữ liệu từ hệ thống khác qua các API/Data sources gọi trong action.
10
1.4.3. NLG (Sinh ngôn ngữ tự nhiên)
NLG (Natural Language Generator - Sinh ngôn ngữ tự nhiên): là thành phần
sinh ngôn ngữ dựa vào chính sách (policy) và hành động được xác định trong DM
thông qua các tập hội thoại.
Khi phản hồi, NLG chuẩn bị phản hồi giống ngôn ngữ tự nhiên cho người
dùng dựa trên ý định và thông tin ngữ cảnh. Các câu trả lời thích hợp được tạo ra bởi
một trong các mô hình thiết kế theo luật hoặc theo AI.
1.5. Một số nền tảng phát triển chatbot
- Dialogflow (https://dialogflow.com/)
Cung cấp bởi Google
Trước đây được gọi là Api.ai và rất phổ biến rộng rãi trong cộng đồng
chatbot.
Cung cấp cho người dùng những cách mới để tương tác với sản phẩm
của họ bằng cách xây dựng giao diện đàm thoại dựa trên giọng nói và
văn bản hấp dẫn bằng AI.
Kết nối với người dùng trên Google Assistant, Amazon Alexa,
Facebook Messenger và các nền tảng và thiết bị phổ biến khác.
Có khả năng phân tích và hiểu ý định của người dùng để giúp bạn phản
hồi theo cách hữu ích nhất.
Rasa Open Source là một nền tảng để tự động hóa các trợ lý dựa trên
văn bản và giọng nói sử dụng học máy.
Có thể thực hiện các hành động mà bot có thể thực hiện bằng mã
Python.
Thay vì một loạt các câu lệnh if…else khác, logic của bot dựa trên một
mô hình học máy được đào tạo trên các ví dụ hội thoại.
Được Facebook mua lại trong vòng 21 tháng kể từ khi ra mắt, nhóm
wit.ai đóng góp cho công cụ NLP của Facebook trong Facebook.
11
Wit.ai giúp các nhà phát triển dễ dàng xây dựng các ứng dụng và các
thiết bị mà người dùng có thể nói chuyện hoặc nhắn tin tới.
Có thể sử dụng wit.ai để xây dựng chatbot, tự động hóa nhà, ...
Được cung cấp bởi Microsoft.
Microsoft Bot Framework có khả năng hiểu ý định của người dùng
Có thể kết hợp LUIS để hiểu ngôn ngữ tự nhiên, Cortana cho giọng nói
và API Bing cho tìm kiếm.
Có thể theo dõi tâm trạng của người dùng
Giúp người dùng cảm thấy tốt hơn
Cung cấp cái nhìn sâu sắc bằng cách xem mô hình tâm trạng
Dạy người dùng làm thế nào để tích cực và năng lượng cao
Chatfuel ra đời với mục tiêu làm cho việc xây dựng bot trở nên dễ dàng
với bất kỳ ai.
Không cần biết lập trình cũng có thể tạo ra chatbot
Đây nền tảng hàng đầu để xây dựng bot trên Facebook Messenger.
1.6.Một số ứng dụng của chatbot
Dưới đây là một số ứng dụng điển hình của chatbot trong các lĩnh vực đời sống
[19].
Thương mại điện tử: Thương mại điện tử bắt đầu dùng chatbot theo nhiều
cách khác nhau. Thương hiệu quần áo H&M đã tạo một chatbot trên Kik, đặt câu hỏi
cho người dùng về phong cách của họ và cung cấp các tùy chọn ảnh cho người dùng
lựa chọn. Với thông tin này, bot tạo ra một hồ sơ thời trang của mꢀi người dùng để
đưa ra gợi ý trang phục và hướng người dùng mua quần áo. Chatbot LEGO giúp
người mua hàng giải quyết một vấn đề khó khăn khi chọn món quà phù hợp. Ralph
the Gift Bot sẽ cung cấp các đề xuất quà tặng được cá nhân hóa cho tất cả người dùng
trực tiếp trong Messenger. Ralph chọn đề xuất quà tặng dựa trên cách người dùng trả
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Luận văn Nghiên cứu, xây dựng Chatbot hỏi đáp thông tin khách sạn sử dụng Rasa Framework", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
luan_van_nghien_cuu_xay_dung_chatbot_hoi_dap_thong_tin_khach.pdf

