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

Nghiên cứu xây dựng Chatbot hỗ trợ tư vấn du lịch Quảng Bình

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 (1005.81 KB, 28 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƢỜNG ĐẠI HỌC BÁCH KHOA


NÔNG VĂN TÙNG

NGHIÊN CỨU XÂY DỰNG CHATBOT
HỖ TRỢ TƢ VẤN DU LỊCH QUẢNG BÌNH

Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: 8480101

TÓM TẮT LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Đà Nẵng – Năm 2019



Công trình được hoàn thành tại
TRƢỜNG ĐẠI HỌC BÁCH KHOA
Người hướng dẫn khoa học: TS Trần Văn Cƣờng

Phản biện 1: TS. Nguyễn Văn Hiệu
Phản biện 2: TS. Phạm Xuân Hậu

Luận văn sẽ được bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp
thạc sĩ khoa học máy tính họp tại Trường Đại học Bách khoa vào
ngày 25 tháng 08 năm 2019

Có thể tìm hiểu luận văn tại:
 Trung tâm Học liệu, Đại học Đà Nẵng tại Trường Đại học Bách


khoa
 Thư viện Khoa Công nghệ thông tin, Trường Đại học Bách khoa
- ĐHĐN



1
PHẦN I. MỞ ĐẦU
1. Lý do chọn đề tài
Chatbot là một chương trình máy tính hoặc trí thông minh nhân
tạo tương tác với con người bằng ngôn ngữ tự nhiên, thực hiện cuộc trò
chuyện thông qua một giao diện dưới dạng tin nhắn hoặc âm thanh.
Thuật ngữ “ChatterBot” ban đầu được đặt bởi Michael Mauldin đầu tiên
vào năm 1994. Chatbot còn được gọi là Conversational Agents hay
Dialog Systems. Các chatbot được thiết kế một cách thuyết phục con
người cư xử như một đối tác đàm thoại. Theo cách tương tác mà chúng
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.
Hiện nay phần lớn các chatbot đều thực hiện truy cập thông qua
các trợ lý ảo như trợ lý Google 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ẻ. Sự phát triển của trí tuệ nhân tạo
tạo điều kiện để chatbot phát triển nhanh chóng và tạo ra một hệ sinh
thái bot tương tự hệ sinh thái ứng dụng. Chatbot được sử dụng trong rất
nhiều công việc 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 ý…), quản lý hàng tồn, sắp xếp lịch,
tra cứu dữ liệu y tế, chăm sóc sức khỏe. Chatbot giúp tối ưu hóa năng

suất, giảm thiểu chi phí thông qua chăm sóc khách hàng, chăm sóc sức
khỏe, đời sống con người.


2
Hiện nay, khách du lịch có thể tìm hiểu thông tin về các địa
điểm, dịch vụ du lịch ở Quảng Bì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 du lịch. Tuy nhiên
những thông tin hữu ích và thiết thực với du khách còn hạn chế, du
khách phải mất rất nhiều thời gian trong việc tìm hiểu thông tin.
Với mong muốn tạo một chatbot có khả năng hỗ trợ tư vấn
thông tin du lịch ở Quảng Bình để góp phần thu hút khách du lịch,
nâng cao chất lượng du lịch tại Quảng Bình, tôi đề xuất đề tài
“Nghiên cứu xây dựng chatbot hỗ trợ tư vấn du lịch Quảng Bình”
làm đề tài luận văn của mình.
2. Mục tiêu và nhiệm vụ nghiên cứu
a. Mục tiêu
- Ứng dụng mã nguồn mở Rasa để xây dựng thử nghiệm hệ
thống chatbot hỗ trợ tư vấn cho khách du lịch tới Quảng Bình.
b. Nhiệm vụ nghiên cứu
- Tìm hiểu lý thuyết máy học 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 tính toán độ tương tự của văn bản.
- Tìm hiểu công nghệ và kỹ thuật thiết kế chatbot.
3. Đối tƣợng và phạm vi nghiên cứu
a. Đối tƣợng nghiên cứu



3
- Lý thuyết máy học, các thuật toán, phương pháp xử lý ngôn
ngữ tự nhiên với ngôn ngữ Tiếng Việt.
- Mã nguồn mở Rasa và kỹ thuật xây dựng chatbot.
- Dữ liệu về du lịch Quảng Bình.
b. Phạm vi nghiên cứu

- Nghiên cứu dữ liệu Tiếng Việt dùng trong du lịch và ngôn
ngữ hội thoại sử dụng cho xây dựng chatbot.
- Xây dựng và thực nghiệm hệ thống mô phỏng trợ lý ảo có trí
tuệ nhân tạo, hiểu và có thể trả lời những câu hỏi về thông tin
du lịch Quảng Bình.
4. Phƣơng pháp nghiên cứu
a. Nghiên cứu lý thuyết
b. Nghiên cứu thực nghiệm
5. Ý nghĩa khoa học và thực tiễn của đề tài
a. Về mặt lý thuyết
- 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 toá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.
b. Về mặt thực tiễn


4
- Khách du lịch 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 du khách đến với Quảng Bình, nâng cao chất
lượng chăm sóc khách du lịch.
6. Bố cục luận văn:
Phần I. Mở đầu
Phần II. Nội dung luận văn
Chƣơng 1. Tổng quan về học máy và xử lý ngôn ngữ tự nhiên
Chƣơng 2 . Phân tích và thiết kế chatbot hệ thống chatbot
Chƣơng 3. Cài đặt thực nghiệm hệ thống chatbot hỗ trợ tƣ
vấn du lịch Quảng bình
Phần III. Kết luận và hƣớng phát triển


5
PHẦN II. NỘI DUNG
CHƢƠNG 1. TỔNG QUAN VỀ HỌC MÁY
VÀ XỬ LÝ NGÔN NGỮ TỰ NHIÊN
1.1. PHƢƠNG PHÁP HỌC MÁY
1.1.1. Trí tuệ nhân tạo
1.1.1.1. Định nghĩa
Trí tuệ nhân tạo (Artificial Intelligence - AI) là lĩnh vực chuyên
nghiên cứu và phát triển các hệ thống (phần mềm và phần cứng) nhằm
giải quyết các bài toán giống như cách thức giải quyết của con người
trong một ngữ cảnh nào đó. Trí tuệ nhân tạo là một ngành khoa học máy
tính, được xây dựng trên một nền tảng lý thuyết chắc chắn và có thể ứng
dụng việc tự động hóa các hành vi thông minh của máy tính; giúp máy
tính có được những trí tuệ của con người như: biết suy nghĩ và lập luận
để giải quyết vấn đề, biết giao tiếp do hiểu ngôn ngữ, biết nói, biết học
và tự thích nghi [13].
1.1.1.2. Quá trình hình thành và phát triển

1.1.1.3. Một số ứng dụng
1.1.2. Học máy
1.1.2.1. Các phƣơng pháp học máy
Học máy (Machine learning) là một lĩnh vực của trí tuệ nhân tạo
liên quan đến việc nghiên cứu và xây dựng các kĩ thuật cho phép các hệ
thống "học" tự động từ dữ liệu để giải quyết những vấn đề cụ thể. Ví dụ
như các máy có thể "học" cách phân loại thư điện tử xem có phải thư
rác (spam) hay không và tự động xếp thư vào thư mục tương ứng. Học


6
máy rất gần với suy diễn thống kê (statistical inference) tuy có khác
nhau về thuật ngữ [25].
Các thuật toán học máy theo phương thức học được chia làm 4
nhóm: Học có giám sát, học không giám sát, học bán giám sát, học củng
cố.
- Học có giám sát (Supervised Learning)
- Học không giám sát ( Unsupervised Learning)
- Học bán giám sát (Semi-Supervised Learning)
- Học củng cố (Reinforcement Learning
1.1.2.2. Ứng dụng của học máy
1.2. XỬ LÝ NGÔN NGỮ TỰ NHIÊN
1.2.1. Tổng quan 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 được 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 hiểu ngôn
ngữ công cụ hoàn hảo nhất của tư duy và giao tiếp [26].
1.2.2. Các bài toán cơ bản trong xử lý ngôn ngữ tự nhiên
1.2.3. Ứng dụng của xử lý ngôn ngữ tự nhiên

1.3. CÁC PHƢƠNG PHÁP BIỂU DIỄN VĂN BẢN
1.3.1. Mô hình biểu diễn văn bản truyền thống
1.3.1.1. Mô hình logic


7
1.3.1.2. Mô hình vector
1.3.2. Mô hình đồ thị biểu diễn văn bản
1.3.2.1. Mô hình đồ thị khái niệm (Conceptual Graphs -CGs)
1.3.2.2. Mô hình đồ thị hình sao
1.3.2.3. Mô hình đồ thị vô hướng sử dụng tần số xuất hiện
1.3.2.4. Mô hình đồ thị có hướng, cạnh không gán nhãn
1.3.2.5. Mô hình đồ thị có hướng, cạnh không gán nhãn, cạnh là
khoảng cách n giữa hai từ trong văn bản.
1.3.3. Mô hình Word2vec văn bản (vector hóa từ)
Trong word2vec, một

biểu diễn

phân tán (distributed

representation) của một từ được sử dụng. Sử dụng một vector với vài
trăm chiều. Mỗi từ được biểu diễn bởi tập các trọng số của từng phần tử
trong nó. Như thế thay vì kết nối one-to-one giữa các phần từ trong
vector và 1 từ, biểu diễn từ sẽ là dàn trải tất cả các thành phần của
vector, và mỗi phần tử trong vector sẽ góp phần định nghĩa nhiều từ
khác.


8

Hình 1.7. Mô hình Cbow và Skip-gram [35]
1.3.4. Mô hình Doc2vec (vector hóa văn bản)
a. Mô hình túi từ phân tán(DBOW)
b. Mô hình bộ nhớ phân tán(DM)
1.4. TÍNH ĐỘ TƢƠNG ĐỒNG VĂN
Các phép đo độ tương tự giữa văn bản và văn bản đã được nghiên
cứu trong các ứng dụng của xử lý ngôn ngữ tự nhiên và các lĩnh vực
liên quan. Ứng dụng sớm nhất của độ tương tự văn bản là tìm kiếm
thông tin, ở đó các tài liệu có liên quan tới câu truy vấn được xếp hạng
theo thứ tự của độ tương tự. Ngoài ra, độ tương tự văn bản còn được
dùng cho phân lớp văn bản, trích chọn hay tóm tắt văn bản, phương
pháp cho đánh giá dịch máy tự động hay đánh giá tính chặt chẽ của văn
bản.
1.4.1. Khái niệm độ tƣơng đồng
1.4.2. Độ tƣơng đồng văn bản dựa trên tập từ chung
1.4.2.1. Khoảng cách Jaro
1.4.2.2. Mô hình tương phản (Contrast model)
1.4.2.3. Hệ số Jaccard
1.4.3. Độ tƣơng đồng văn bản dựa trên vector biểu diễn
1.4.3.1. Độ tương đồng cosine
1.4.3.2. Độ tương đồng dựa vào khoảng cách Euclide
1.4.3.3. Độ tương đồng dựa vào khoảng cách Manhattan


9
1.4.4. Độ tƣơng đồng văn bản trong tiếng Việt
1.4.4.1. Độ tương tự ngữ nghĩa từ - từ
a) Độ tương tự ngữ nghĩa từ - từ dựa trên WordNet
b) Độ tương tự ngữ nghĩa từ - từ dựa trên ngữ liệu
1.4.4.2. Độ tương tự ngữ nghĩa của văn bản

1.4.4.3. Độ tương tự về thứ tự của từ trong văn bản
1.4.4.4. Kết hợp giữa các độ đo để đánh giá độ tương tự giữa hai
văn bản
1.5. CÁC PHƢƠNG PHÁP PHÂN LOẠI VĂN BẢN
1.5.1. Phƣơng pháp Naive Bayes
1.5.2. Phƣơng pháp k–Nearest Neighbor(KNN)
1.5.3. Phƣơng pháp cây quyết định
1.5.4. Phƣơng pháp mạng Nơron nhân tạo
1.5.5. Phƣơng pháp Support Vector Machines (SVM)
1.6. CHATBOT
1.6.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.6.2. Hoạt động của chatbot


10
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 [27]:
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 yê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.

Hình 1.16. Hoạt động của chatbot
1.6.3. Sự phát triển của chatbot
1.6.4. Các lĩnh vực ứng dụng của chatbot


11
CHƢƠNG 2. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
CHATBOT
2.1. CÁC MÔ HÌNH CHATBOT
Mô hình truy xuất thông tin và mô hình sinh thông tin (RetrievalBased 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 [6]
2.2. PHÂN LOẠI CHATBOT
Có nhiều loại chatbot khác nhau và mỗi loại chatbot có những
phản ứng theo những cách khác nhau. Không phải tất cả các chatbot đều
thông minh giống nhau và chúng xác định một nhiệm vụ cụ thể.
Chatbot có thể phân thành bốn loại như sau [6]:
2.2.1. Flow-oriented chatbot
2.2.2. Chatbot thông minh nhân tạo (Artificially intelligent
chatbot)
2.2.3. Chatbot lai (Hybrid chatbot)

2.2.4. Chatbot đƣợc hỗ trợ bởi con ngƣời
2.3. CÁC PHƢƠNG PHÁP XÂY DỰNG CHATBOT
2.3.1. So sánh trùng khớp mẫu câu (Pattern matchers)


12
Các chatbot hoạt động bằng cách sử dụng phương pháp này để
tìm kiếm các mẫu câu có trong câu hỏi của người dùng và xem có khớp
với các câu hỏi đã được lưu trữ trong cơ sở dữ liệu của hệ thống để đưa
ra câu trả lời phù hợp nhất.
2.3.2. Sử dụng thuật toán phân lớp
Một giải pháp được sử dụng là áp dụng các thuật toán phân lớp
vào chatbot để giảm việc phân loại quá nhiều các câu hỏi. Các câu hỏi
sẽ được phân lớp theo các điều kiện khác nhau và tạo ra một cấu trúc dễ
quản lý hơn, tăng độ chính xác cho các phản hồi được chatbot tới cho
người dùng.
2.3.3. Mạng nơron nhân tạo (Artificial Neural Network - ANN)
Phương pháp Mạng nơron nhân tạo là tính toán tỷ lệ chính xác dữ
liệu đầu ra từ dữ liệu đầu vào bằng cách tính toán các trọng số cho mỗi
kết nối từ các lần lặp lại khi huấn luyện dữ liệu cho chatbot. Mỗi bước
trong quá trình huấn luyện dữ liệu cho chatbot sẽ sửa đổi các trọng số
để dữ liệu đầu ra có độ chính xác cao nhất có thể.
2.3.4. Xử lý ngôn ngữ tự nhiên (Natural Language Processing NLP)
Phương pháp NLP sử dụng các thuật toán và truy xuất cơ sở dữ
liệu để làm cơ sở nhận dạng, chuyển đổi dữ liệu đầu vào của người
dùng thành dữ liệu có cấu trúc và tiến hành phân loại và đưa ra các
câu trả lời tương ứng. Để giao tiếp tự nhiên với con người, thì NLP
phải là một phần quan trọng của bất kỳ công nghệ AI nào được sáng
tạo ra và đưa vào sử dụng.



13
2.3.5. Hiểu ngôn ngữ tự nhiên (Natural Language Understanding NLU)
NLU là phương pháp giúp cho các chatbot hiểu được các câu
lệnh của người dùng mà không phải dựa trên bất kỳ ngôn ngữ, câu
thoại, cấu trúc nào được định dạng sẵn ở trong hệ thống, giúp chatbot có
thể phản hồi nhanh chóng đến người dùng. NLU là một kỹ thuật nâng
cao của NLP. NLU thường được sử dụng cho các chatbot nhận diện
giọng nói.
2.4. CÁC VẤN ĐỀ CƠ BẢN KHI PHÁT TRIỂN HỆ THỐNG
CHATBOT
2.4.1. Xác định ý định ngƣời dùng
Kiến trúc của hệ thống phân lớp ý định được minh hoạ trong hình
sau.

Hình 2.5. Kiến trúc của hệ thống phân lớp ý định [23]
Mô hình dựa trên đối sánh nội dung


14
Mô hình phân lớp ý định dựa trên học máy thống kê yêu cầu dữ
liệu huấn luyện bao gồm các cách diễn đạt khác nhau cho mỗi ý định.
Mô hình lai
Mô hình lai (hybrid model) là mô hình có thể kết hợp nhiều mô
hình khác nhau như mô hình học máy, mô hình đối sánh nội dung và
đặc biệt là các kỹ thuật tiến bộ trong AI.
2.4.2. Trích xuất thông tin
Bên cạnh việc xác định ý định trong câu hội thoại của người
dùng, chúng ta cần trích xuất các thông tin cần thiết trong đó. Các thông
tin cần trích xuất trong câu hội thoại thường là các thực thể, ví dụ như

thời gian, địa chỉ,… Thành phần NLU của các hệ thống chatbot thường
được tích hợp thành phần nhận dạng thực thể giúp phát hiện ra các thực
thể có trong mỗi hội thoại.
2.4.3. Quản lý hội thoại
Trong quá trình trao đổi giữa người sử dụng và chatbot, chatbot
sẽ cần phải ghi nhớ những thông tin về ngữ cảnh hay quản lý các trạng
thái hội thoại. Vấn đề quản lý hội thoại là rất quan trọng để đảm bảo
việc trao đổi giữa người và máy là thông suốt, nội dung cuộc hội thoại
logic về mặt ngữ nghĩa. Chức năng của thành phần quản lý hội thoại là
nhận đầu vào từ thành phần NLU, quản lý các trạng thái hội thoại
(dialogue state), ngữ cảnh hội thoại (dialogue context) và truyền đầu ra
cho thành phần sinh ngôn ngữ (Natural Language Generation - NLG).
2.5. CÔNG CỤ TẠO CHATBOT
2.5.1. Nền tảng tạo chatbot


15
Rasa là mã nguồn mở để xây dựng chatbot, nó gồm cặp công cụ
NLU và Core là các công cụ dễ sử dụng để xây dựng các hệ thống
đàm thoại, vì cho đến nay không có hệ thống đối thoại thống kê được
sử dụng rộng rãi dành cho người không chuyên. Rasa đã được sử dụng
bởi hàng nghìn nhà phát triển trên toàn thế giới. Cũng như nhiều hệ
thống đàm thoại khác, các công cụ của được chia thành hiểu ngôn ngữ
tự nhiên (Rasa NLU) và quản lý hội thoại (Rasa Core). Rasa NLU là
một công cụ xử lý ngôn ngữ tự nhiên nguồn mở để phân loại ý định và
trích xuất thực thể trong các chatbot thông minh đàm thoại. Còn Rasa
Core là một framework có mã nguồn mở để xử lý hội thoại theo ngữ
cảnh (contextual conversations). Quản lý hội thoại nâng cao của RasaCore dựa trên học máy và cho phép các cuộc hội thoại thông minh hơn
và giúp nhân rộng dễ dàng hơn. Là framework duy nhất cho phép
chatbot đối thoại tinh vi hơn, có tương tác, được huấn luyện dựa trên

học có giám sát.
2.5.2. Xây dựng chatbot dựa trên nền tảng mã nguồn mở RaSa
Các bước thực hiện
Bước 1: Thu thập dữ liệu
Bước 2: Ngôn ngữ sử dụng
Bước 3: Xây dựng tập dữ liệu huấn luyện
Bước 4: Kịch bản hội thoại
Bước 5: Xây dựng Action


16
CHƢƠNG 3. CÀI ĐẶT THỰC NGHIỆM HỆ THỐNG
CHATBOT HỖ TRỢ TƢ VẤN DU LỊCH QUẢNG BÌNH
3.1. BÀI TOÁN TƢ VẤN DU LỊCH
“Hệ thống chatbot hỗ trợ tư vấn du lịch Quảng Bình” 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 du lịch
và được giới hạn phạm vi điểm đến Quảng Bình – Việt Nam. 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, Skype, Microsoft Team,…
Hệ thống tư vấn du lịch dựa vào chatbot được xây dựng một nền
tảng chatbot hoàn chỉnh cho các công ty để giới thiệu giao diện trò
chuyện trong lĩnh vực du lịch. Chức năng chính của chatbot này là tư
vấn thông tin du lịch nên chatbot cần có dữ liệu đủ lớn về du lịch Quảng
Bình nhằm hỗ trợ việc trả lời nhanh các yêu cầu từ phí du khách như giá

tour, đặt trước dịch vụ, thời gian chờ ở sân bay, khách sạn gần nhất, nơi
để gọi taxi…
3.2. PHÂN TÍCH NHU CẦU TƢ VẤN DU LỊCH
Thực tế du khách có quá nhiều lựa chọn, nhưng không có đủ thời
gian hoặc/và “tri thức” để tự đánh giá giữa các lựa chọn này để đưa ra
các quyết định tốt nhất. Một số công cụ tìm kiếm dựa trên từ khóa, như
Google, Bing… đã giúp du khách rất nhiều trong việc tìm kiếm những


17
thông tin cần thiết. Tuy nhiên, khi lượng thông tin tăng lên, các công cụ
tìm kiếm bộc lộ những giới hạn (như làm cho du khách “ngập lụt” trong
thông tin) và không hoàn toàn đáp ứng được nhu cầu tìm kiếm thông tin
của du khách. Hơn nữa, đôi khi chính bản thân du khách cũng chưa
nhận thức rõ nhu cầu của mình, không biết chính xác từ khóa mà mình
muốn tìm kiếm, nên rất khó để tìm được thông tin chính xác.
Rõ ràng có một nhu cầu cần có một hệ thống tư vấn thông tin du
lịch. 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 du khách. Đồng thời, hệ
thống còn phải có khả năng đưa ra các trả lời tương ứng với các yêu
cầu, đề nghị của du khách. Hệ thống tư vấn du lịch có thể xem tương tự
như các nhà chuyên gia du lịch, hiểu rõ các vấn đề về chuyên môn để tư
vấn cho du khách chọn lựa dịch vụ phù hợp. Đối với một điểm đến du
lịch, một hệ thống tư vấn tốt sẽ lôi kéo được nhiều khách hàng đến, ở lại
và do đó tăng số lượng dịch vụ bán ra.
Cùng với thực trạng bỏ ngỏ về vấn đề tư vấn hay tư vấn chưa rõ
ràng của các website du lịch ở Việt Nam nói chung và ở Quảng Bình
nói riêng như hiện nay thì hệ thống tư vấn du lịch trở thành một chủ đề
cần được nghiên cứu, có tính ứng dụng thực tế cao và góp phần hỗ trợ
phát triển du lịch dịch vụ của địa phương.

3.3. DỮ LIỆU THỰC NGHIỆM
Trong nghiên cứu này, chúng tôi chỉ tiến hành thực nghiệm hệ
thống với 2 chủ đề là khách sạn và dịch vụ ăn uống để đánh giá sự hoạt
động của hệ thống chatbot đã xây dựng. Các dữ liệu cho hai chủ đề này
đã được phân tích, trích lọc và xây dựng tập huấn luyện, kịch bản hội
thoại.... Kết quả dữ liệu sau thu thập bao gồm 65.566 từ với 1002 câu


18
chuyện hội thoại dài về chủ yếu là nhà hàng và một phần của khách sạn
tại Quảng Bình
Dựa trên dữ liệu về du lịch Quảng Bình, tác giả tiến hành phân
tích, trích lọc và xây dựng tập huấn luyện, kịch bản hội thoại. Đây là
phần khá tốn thời gian để xác định các nhóm câu hỏi giống nhau để
phân loại và câu trả lời cần được thống kê lại theo nhóm nhằm xây dựng
cơ sở dữ liệu hỗ trợ chatbot truy vấn tìm thông tin.
Dựa vào dữ liệu đã thu thập, tác giả tiến hành xây dựng các
intent, entity và sắp xếp các từ (cụm từ, câu) vào các intent.
Entities được xác định là location và date, là 2 thực thể cần xác
định và xây dựng tập huấn luyện để chatbot tự động lấy được dữ liệu 2
thực thể: Ví trí và ngày khi người dùng nhập văn bản. Đối với kịch bản
đặt phòng, các thực thể cần lấy thông tin còn nhiều hơn 2 thực thể trên
như: giá, số người, loại phòng.
3.4. MÔ HÌNH HỆ THỐNG
Mô hình tư vấn thông tin du lịch có thể được mô tả như hình sau:

Hình 3.3. Mô hình hệ thống chatbot


19

Trong mô hình trên:
NLU - Natural Language Understanding: Phần hiểu ngôn ngữ
tự nhiên, NLU sử dụng các thuật toán để chuyển văn bản của người
dùng thành một bản thể học có cấu trúc. Sau đó, thuật toán sẽ phát hiện
những thứ như thời gian, vị trí,... Với NLU trong mô hình, có thể xem
NLU này là một công cụ xử lý ngôn ngữ tự nhiên dùng để phân loại ý
định và trích xuất thực thể.
DM - Dialogue Management: Một hệ thống phức tạp thường có
thể được phân tách thành các lớp trừu tượng khác nhau. Mỗi lớp sử
dụng kết quả của lớp trước và kết quả của nó được sử dụng cho lớp tiếp
theo. Sau khi hiểu ý của người dùng, chatbot cần chọn câu trả lời đúng.
Câu trả lời này dựa trên những gì đã nói và kiến thức mà chatbot có.
Tùy thuộc vào sự phức tạp của cuộc trò chuyện. Việc quản lý này được
thực hiện bởi cái gọi là quản lý hộp thoại (DM).
NLG - Natural Language Generation: Là bộ phận sinh ngôn
ngữ tự nhiên nhằm mục đích giảm khoảng cách giao tiếp giữa máy móc
và con người.
DB – Database: Là cơ sở dữ liệu dùng để lưu trữ thông tin hỗ trợ
chatbot trả lời người dùng. Trong bài toán tư vấn du lịch, DB lưu trữ
các thông tin du lịch tại điểm đến như khách sạn, nhà hàng,..
3.5. CÀI ĐẶT THỰC NGHIỆM
3.5.1. Một số yêu cầu về hệ thống
Chạy máy chủ web hỗ trợ giao diện quản trị.
Máy chủ ảo ở Vultr.com. Các yêu cầu về hệ thống bao gồm:

Cơ sở dữ liệu PostgreSQL, ngôn ngữ phát triển NodeJS đối với


20
backend, một máy chủ hoạt động theo mô hình Client – Server.

Sử dụng các thư viện: Socket.IO, Lodash, Axios, JWT, Knex và
Bluebird.
3.5.2. Ngôn ngữ sử dụng
Đây là bước yêu cầu bắt buộc phải có để chatbot hiểu được ngôn
ngữ tự nhiên. Ngôn ngữ được xác định sử dụng cho hệ thống chatbot.
Các từ tiếng Việt không giống như từ tiếng Anh, các từ tiếng Việt có thể
là từ ghép (về mặt hình thức, các từ ghép gồm nhiều từ đơn phân cách
với khoảng trống).
3.5.3. Xây dựng tập dữ liệu huấn luyện và kịch bản hội thoại
Xây dựng tập dữ liệu huấn luyện là bước quan trọng quyết định
đến chatbot “thông minh” hay không. Trong Rasa, cấu trúc lưu trữ tập
huấn luyện được chia thành các file: /data/nlu.md; /data/ stories.md (file
md là loại file được soạn nội dung theo chuẩn Markdown) và
domain.yml.
3.5.4. Xây dựng các Action
Trong phần này, tùy theo tính chất của các mẫu hội thoại để xác
định người dùng cần lấy thông tin gì từ cơ sở dữ liệu hay phải kết nối
đến hệ thống khác. Vì vậy, xây dựng Action rất quan trọng giúp chatbot
trả lời linh hoạt, hiểu đúng yêu cầu người dùng và có khả năng tự động
tìm kiếm thông tin để cung cấp cho người dùng. Trong bước này, ngay
cả chuyển kết nối hệ thống đặt trước hoặc cung cấp đường link cho
người dùng vào xác minh bước đặt trước dịch vụ.
3.6. KẾT QUẢ THỰC NGHIỆM


21
Hệ thống chatbot với dữ liệu huấn luyện kịch bản hội thoại, xây
dựng các slot và thực thể giúp chatbot lấy được thông tin từ phía người
dùng. Chatbot xác định ý định người dùng để thông qua các action đã
lập trình để thực hiện các hành động như đặt phòng, đặt bàn nhà hàng

hoặc tìm kiếm thông tin trong cơ sở dữ liệu và cả trên các website cung
cấp thông tin khác. Như hình bên dưới, tác giả chạy thử nghiệm kịch
bản đặt phòng khách sạn, về cơ bản chatbot đã lấy được thông tin như
ngày checkin, checkout và khách sạn. Tác giả cũng đã thử nghiệm cài
đặt action để kiểm tra cách thực hiện của chatbot. Tuy nhiên, do thời
gian hạn chế, tác giả chỉ lập trình action trả về thông tin dùng để kiểm
thử, chưa kết nối để các website đặt phòng của khách sạn tương ứng
hoặc trả về đường dẫn phù hợp cho du khách tự đặt phòng.

Hình 3.6. Đặt phòng thông qua chatbot
3.7. PHÂN TÍCH VÀ ĐÁNH GIÁ KẾT QUẢ


×