ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC SƯ PHẠM
NGUYỄN THẢO NHIÊN
XÂY DỰNG ỨNG DỤNG HỎI ĐÁP HỔ TRỢ
TƯ VẤN ĐĂNG KÝ KHÁM BỆNH TRỰC TUYẾN
TẠI BÌNH DƯƠNG
Chun ngành: Hệ thống thơng tin
Mã số: 848.01.04
TÓM TĂT LUẬN VĂN THẠC SĨ
NGÀNH HỆ THỐNG THÔNG TIN
Đà Nẵng - Năm 2022
Cơng trình được hồn chỉnh tại
TRƯỜNG ĐẠI HỌC SƯ PHẠM
Người hướng dẫn khoa học: TS. NGUYỄN HOÀNG SỸ
Phản biện 1: TS. Nguyễn Đình Lầu
Phản biện 2: PGS.TS. Lê Hồng Sơn
Luận văn đã được bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp thạc sĩ
ngành Hệ thống thông tin, họp tại Trường Đại học Sư phạm
vào ngày 9 tháng 7 năm 2022.
Có thể tìm hiểu luận văn tại:
Thư viện Trường Đại học Sư phạm – ĐHĐN
Khoa Tin học, Trường Đại học Sư phạm – ĐHĐN
1
MỞ ĐẦU
1.
Lý do chọn đề tài
Trong bối cảnh tình hình dịch bệnh ngày càng diễn biến phức tạp, luôn là vấn đề quan tâm hàng đầu của
ngành y tế, trong khi việc thực hiện triển khai các nghiên cứu, các giải pháp phòng chống dịch thường bị hạn
chế về cả thời gian lẫn nguồn lực. Việc xây dựng giải pháp hổ trợ thông minh trong tư vấn và đăng ký khám
bệnh online hiện là dịch vụ được nhiều người quan tâm và sử dụng.
Để nhanh chóng khống chế, dập dịch, sớm đưa cuộc sống trở lại bình thường, nhiều tỉnh, thành phố phải
thực hiện giãn cách xã hội theo Chỉ thị số 16/CT-TTg của Thủ tướng Chính phủ, việc kết nối trực tuyến giữa
những người gặp khó khăn khi tiếp cận dịch vụ y tế, những người thuộc diện cách ly hoặc đang trong khu vực
phong tỏa với bác sĩ và cơ sở y tế một cách nhanh chóng, hạn chế các thủ tục đăng ký và tiết kiệm thời gian
chờ đợi thông qua mạng lưới tư vấn, khám chữa bệnh online là rất cần thiết trong điều kiện chống dịch COVID19.
Nhằm chia sẻ với hệ thống y tế và người dân, đặc biệt với những địa phương phải thực hiện giãn cách,
nhiều y bác sĩ, cán bộ y tế đã thiết lập mạng lưới, nền tảng kết nối "khám bệnh online" với mục đích tư vấn,
giải đáp thắc mắc về COVID-19 và các bệnh lý thường gặp, đặt lịch khám bệnh... Trên cơ sở nghiên cứu về
ứng dụng trí tuệ nhân tạo trong chatbot trả lời câu hỏi xử lý theo ngôn ngữ tự nhiên (Natural language
processing-NLP) dựa trên Framework mã nguồn mở hiện nay giúp máy tính tương tác/nói chuyện với từng
bệnh nhân, từng chuyên gia, bác sĩ chuyên khoa.
Luận văn đề tài nghiên cứu, thiết kế, xây dựng ứng dụng “Xây dựng ứng dụng hỏi/đáp trực tuyến hổ
trợ đăng ký và tư vấn khám bệnh tại Tỉnh Bình Dương” đáp ứng kịp thời, nhanh chóng, góp sức chống
dịch, hỗ trợ người dân, nền tảng đặt lịch khám bệnh và chăm sóc sức khỏe tồn diện miễn phí. Chương trình
hỗ trợ kết nối trực tuyến giữa những người gặp khó khăn khi tiếp cận dịch vụ y tế, những người thuộc diện
cách ly hoặc đang trong khu vực phong tỏa với bác sĩ và cơ sở y tế một cách nhanh chóng, hạn chế các thủ tục
đăng ký và tiết kiệm thời gian chờ đợi.
2.
Mục đích nghiên cứu
2.1. Mục tiêu tổng quát
Nghiên cứu hệ thống hoá cơ sở khoa học trong xử lý ngôn ngữ tự nhiên, ứng dụng kỹ thuật trích xuất
thơng tin thực thể dựa trên học máy; Người dùng có thể đặt lịch các bác sĩ đến khám sức khỏe định kỳ, lấy
mẫu xét nghiệm tại nhà, khám dinh dưỡng... hoặc được tư vấn sức khỏe online từ các bác sĩ có chun mơn
hay quản lý các bệnh án điện tử. Bất kỳ ở đâu, đang làm gì, đều có thể đặt lịch khám chủ động về thời gian,
địa điểm.
2.2. Mục tiêu cụ thể:
Như vậy để thực hiện theo đúng mục tiêu của đề tài cần xác định một số công việc phải giải quyết như
sau:
-
Nghiên cứu tổng quan, lựa chọn phương pháp thích hợp trong xử lý ngơn ngữ tự nhiên.
-
Tìm hiểu kỹ thuật phân tích, thu thập thơng tin đã và đang thực hiện trong lĩnh vực xử lý ngôn ngữ tự
nhiên, khai phá dữ liệu để áp dụng vào chăm sóc sức khỏe bệnh nhân một cách an tốn và nhanh chóng.
-
Mơ hình hố các quy trình hổ trợ thơng minh cho bệnh nhân và bác sĩ một cách khoa học, đảm bảo thơng
tin chính xác, an tồn: Đăng ký khám bệnh online - đặt lịch khám bệnh nhanh chóng, tiện lợi; Chọn dịch
vụ khám linh hoạt; Xem thông tin bác sĩ; Hỏi/đáp thơng tin bệnh phổ biến; Liên hệ.
-
Ngồi ra, đề tài đề xuất mơ hình hóa chức năng cung cấp các thơng tin, văn bản hành chính trên cổng thơng
tin quốc gia liên quan đến lĩnh vực y tế, giúp các y bác sĩ cập nhật thông tin nhanh nhất.
2
-
Triển khai ứng dụng “Xây dựng ứng dụng hỏi/đáp trực tuyến hổ trợ đăng ký và tư vấn khám bệnh tại Tỉnh
Bình Dương” trên nền tảng framework mã nguồn mở Rasa trong thực tế trên giao diện chatbot.
3.
Phạm vi nghiên cứu của đề tài
Đặt lịch khám bệnh trực tuyến; Chọn dịch vụ khám; Xem thông tin bác sĩ; Hỏi-đáp thông tin bệnh phổ
biến; Liên hệ.
4.
Phương pháp nghiên cứu
-
Sử dụng phương pháp phân loại, hệ thống hóa lý thuyết về lĩnh vực xử lý ngôn ngữ tự nhiên.
-
Sử dụng phương pháp phân tích và tổng hợp lý thuyết, nghiên cứu các giải thuật trong ý định người dùng,
xây dựng thực thể.
-
Sử dụng phương pháp thu thập, phân tích, tiền xử lý, trích lọc các thơng tin.
-
Sử dụng phương pháp huấn luyện mơ hình và mơ hình phân lớp, mơ hình sinh hội thoại.
-
Đề xuất phương pháp phân tích, thu thập thơng tin và thực nghiệm ứng dụng, đánh giá.
5.
Cấu trúc của luận văn:
Ngoài phần mở đầu, kết luận và định hướng kế hoạch tiếp tục phát triển trong luận văn, danh mục tài
liệu tham khảo và các phụ lục, luận văn gồm có 03 chương:
Chương 1: Cơ sở lý thuyết Trình bày cơ sở lý thuyết, nghiên cứu một số kĩ thuật được sử dụng trợ lý
ảo (chatbot), mơ hình kiến trúc và các thành phần cơ bản của chatbot NLP, tìm hiểu về Framework mã nguồn
mở phát triển xây dựng ứng dụng của đề tài
Chương 2: Xây dựng công cụ hỏi đáp thông tin Giới thiệu công cụ hỏi đáp thông tin trên nền tảng
framework Rasa. Trong chương này sẽ đề xuất phương pháp thực hiện phân tích, q trình xây dựng hỏi/đáp
trực tuyến thông tin tư vấn và đăng ký khám chữa bệnh dựa trên phát triển Framework mã nguồn mở NLP.
Chương 3: Phương pháp thực nghiệm và đánh giá. Chương này trình bày thực nghiệm và đánh giá sẽ
cho ta biết khả năng phục vụ của Chatbot nhằm phục vụ nghiệp vụ trả lời lĩnh vực y tế và đăng ký khám bệnh
tự động đến người dùng.
3
Chương 1
CƠ SỞ LÝ THUYẾT
Tổng quan Chatbot
1.1.
Giới thiệu Chatbot
1.1.1.
Hệ thống trả lời tự động hay còn gọi là 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. 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.
Các thành phần cơ bản
1.1.2.
Để xây dựng được mơ hình trên thì Chatbot phải có cấu trúc và các thành phần hệ thống Chatbot có ba
thành phần chính là: thành phần hiểu ngơn ngữ tự nhiên (NLU), thành phần quản lý hội thoại (DM), thành
phần sinh ngôn ngữ (NLG) [3]. Mỗi thành phần trong Chatbot đều có vai trị riêng.
1.1.2.1.
Quản lý hội thoại
Quản lý hội thoại (Dialog Management - DM): 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ó 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.
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.
1.1.2.2.
Sinh ngôn ngữ tự nhiên
Sinh ngôn ngữ tự nhiên (Natural Language Generator - NLG) 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.1.2.3.
Hiểu ngôn ngữ tự nhiên:
Ngôn ngữ tự nhiên (Natural Language Understanding - NLU) bao gồm việc xử lý ngơn ngữ tự nhiên 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 đượ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ự đốn cho mỗi câu.
1.1.3.
STT
1
Tiêu chí phân loại
Phân loại
Mơ tả
Chế độ tương tác
Text-Based: Dựa trên văn bản
(Interact Mode)
Voice-Based: Dựa trên giọng nói
4
2
Miền (Domain)
Miền đóng/miền cụ thể (Closed Domain): Giải quyết một số vấn đề
trong phạm vi nhất định; Dữ liệu huấn luyện trong phạm vi nhỏ,
phổ biế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.
3
Mục tiêu (Goals)
Hướng nhiệm vụ (Task-Oriented):
Được thiết kế cho một nhiệm vụ cụ thể;
Được thiết lập để có thời gian ngắn;
Các cuộc hội thoại trong miền đóng.
Khơng hướng nhiệm vụ (Non Task-Oriented):
Mơ phỏng cuộc trị chuyện với một người;
Thực hiện chat cho mục đích giải trí;
Các cuộc hội thoại trong miền mở.
4
Phương pháp thiết kế Dựa theo luật (Rule- Based):
(Design Approach)
Loại chatbot này khả năng rất hạn chế;
Phản hồi chính xác những lệnh cụ thể đã xác định từ trước, không
được phép tùy ý phản hồi mà phải lựa chọn các phản hồi tạo ra;
Sự thông minh của chatbot phụ thuộc vào mức độ lập trình
Dựa theo trí tuệ nhân tạo (AI):
Loại này có khả năng “hiểu” ngôn ngữ.
Không bị giới hạn bởi tập các luật xác định từ trước; “học” từ dữ
liệu có sẵn, có khả năng “đoán” được ý nghĩa, ngữ cảnh khả năng
“học thêm” chính xác, đưa vào nhiều câu huấn luyện. Theo trình tự,
tạo ra trả lời phù hợp;
Lựa chọn các câu trả lời cuộc hội thoại từ một kho lưu trữ
1.1.3.1.
Mơ hình dựa trên quy tắc (rule-based)
Đây là là kiểu kiến trúc mà hầu hết các chatbot đầu tiên đã được xây dựng. Câu trả lời của hệ thống dựa
trên một tập hợp các quy tắc được xác định trước cố định, dựa trên việc nhận ra dạng từ vựng của văn bản đầu
vào mà không tạo bất kỳ câu trả lời văn bản mới nào. Kiến thức được sử dụng trong chatbot được con người
viết mã bằng tay (hard coded) và được sắp xếp và trình bày bằng các mẫu hội thoại. Cơ sở dữ liệu quy tắc toàn
diện cho phép chatbot trả lời nhiều loại đầu vào của người dùng hơn.
1.1.3.2.
Mơ hình dựa trên quy tắc (rule-based):
Một chút khác biệt so với mơ hình dựa trên quy tắc là mơ hình dựa trên truy xuất (retrieval-based), cung
cấp tính linh hoạt hơn vì nó truy vấn và phân tích các tài nguyên có sẵn bằng cách sử dụng các Application
Programming Interface (API). Một chatbot dựa trên truy xuất lấy một số lựa chọn phản hồi từ một chỉ mục
trước khi nó áp dụng phương pháp matching cho lựa chọn phản hồi.
1.1.3.3.
Mô hình sáng tạo (generative-based):
Tạo ra câu trả lời theo cách tốt hơn so các mơ hình cịn lại, dựa trên các tin nhắn hội thoại của người dùng
hiện tại và trước đó. Các chatbot này giống con người hơn và sử dụng các thuật toán máy học (machine
learning) hoặc kỹ thuật học sâu (deep learning) nên linh hoạt hơn. NLG nâng cao cho phép dự đoán khả năng
5
xuất hiện từ này đến từ khác và sửa các lỗi ngơn ngữ, chẳng hạn như lỗi chính tả. Các thuật toán được sử dụng
trong NLG nâng cao cũng tốt hơn trong việc xử lý các từ và biểu thức mới khơng có trong các mẫu đào tạo
ban đầu.
Chatbot theo kịch bản (menu/button):
1.1.3.4.
Các hệ thống phân cấp cây quyết định được trình bày cho người dùng dưới dạng các nút (button). Chatbot
xây dựng sẵn một tập các menu với các lựa chọn như một chiếc điều khiển, người dùng phải giao tiếp với
Chatbot thông qua các thao tác click vào nút đúng theo yêu cầu mình mong muốn, để nhận được câu trả lời
của Chatbot.
Ưu điểm của Chatbot này là xây dựng rất dễ dàng, độ chính xác cao vì người dùng đưa ra yêu cầu dựa
trên những nút đã được xây dựng trước, tuy nhiên người dùng sẽ bị động trước những mong muốn của mình,
mà phải phụ thuộc vào sự cung cấp các menu lựa chọn của Chatbot.
1.1.3.5.
Chatbot nhận dạng từ khoá (keyword):
Khác với các Chatbot dạng menu/button, các Chatbot dựa trên nhận dạng từ khóa có thể lắng nghe
những câu nói của người dùng và trả lời một cách thích hợp. Những Chatbot sử dụng các từ khóa tùy biến và
AI để xác định làm thế nào để đưa ra câu trả lời phù hợp nhất cho người dùng. Ưu điểm của mơ hình. Chatbot
này là giúp người dùng chủ động hơn trong việc đưa ra yêu cầu, như có thể đưa ra u cầu của mình thơng qua
câu nói mà khơng cần lựa chọn các nút nội dung yêu cầu làm cho cuộc trò truyện tự nhiên hơn.
1.1.4.
Ứng dụng Chatbot hiện nay
1.1.4.1.
Một số nền tản Chatbot
Một số nền tảng chatbot phổ biến hiện nay được trình bày chi tiết trong Bảng 1.3 điển hình như Rasa
Open Source; Dialogflow; Wit.ai; Microsoft Bot Framework; Webot và Chatfuel. Như vậy, với các mô tả cụ
thể, nhận thấy quyết định chọn nền tảng Rasa để phân tích bài tốn đề xuất là phù hợp với nội dung đề tài.
Tên nền tảng
STT
1
Rasa Open Source
Mơ tả
Nền tảng tự động hóa trợ lý văn bản, giọng nói thực
hiện các hành động bằng mã Python. logic của bot dựa
trên mơ hình học máy.
2
Dialogflow
Cung cấp bởi Google Trước đây được gọi là Api.ai, phổ
biến rộng rãi. 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 trên Google
Assistant, Amazon Alexa, Facebook Messenger phân
tích và hiểu ý định của người dùng theo cách hữu ích
nhất.
3
Wit.ai
Cơng cụ NLP của Facebook. dễ dàng xây dựng các ứng
dụng tự động hóa, ...
4
Microsoft Bot Framework
Được cung cấp bởi Microsoft. khả năng hiểu ý định của
người dùng kết hợp Cortana cho giọng nói và API Bing
cho tìm kiếm.
5
Webot
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
6
6
Chatfue
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
chatbot. Đây nền tảng xây dựng bot trênFacebook
Messenger.
1.1.4.2.
-
Lợi ích của Chatbot
Chatbot có thể có lợi thế hơn các tác nhân con người, chúng có thể vượt trội con người về tốc độ và
độ chính xác.
-
Bất cứ ngơn ngữ lập trình nào cũng có thể sử dụng để phát triển ChatBot.
-
Người dùng khơng có xu hướng tải ứng dụng vì nó sẽ làm nặng máy nên ChatBot sẽ dễ dàng tiếp cận
được người dùng.
-
ChatBot thay thế số lượng lớn về chi phí thuê nhân lực, tiết kiệm thời gian, ln có sẵn 24/7, tương
tác với ChatBot bất cứ lúc nào
-
Tự tích lũy kiến thức nhận được và trở nên thơng minh, linh hoạt hơn sau mỗi cuộc trị chuyện.
-
Tự động gợi ý và tìm kiếm những thơng tin liên quan đến sản phẩm khi khách hàng cần.
1.1.4.3.
Ví dụ Chatbot điển hình
Lĩnh vực giải trí; Lĩnh vực thời tiết;Lĩnh vực hoạt động xã hội; Lĩnh vực nhà hàng và các ngành bán
lẻ; Lĩnh vực du lịch và khách sạn; Lĩnh vực hàng không; Lĩnh vực Ngân hàng
Lĩnh vực y tế: Chatbot lĩnh vực y tế sẽ hỏi về các triệu chứng, các thơng số cơ thể và q trình khám bệnh,
sau đó biên soạn một danh sách các nguyên nhân gây ra hầu hết các triệu chứng và xếp hạng chúng theo thứ
tự nghiêm trọng. Chatbot có thể hướng dẫn bệnh nhân tự điều trị một số bệnh mà không cần đến sự trợ giúp
của bác sĩ.
Thật vậy, mỗi cách tiếp cận bài tốn đều có hướng giải quyết khác nhau dẫn tới các kỹ thuật sử dụng
khác nhau. Trong luận văn này, tôi sẽ tập trung vào xây dựng Chatbot thuộc loại thứ hai, cụ thể là bài toán lĩnh
vực y tế, hướng mục tiêu tư vấn hỗ trợ hỏi-đáp hổ trợ đăng ký và tư vấn khám bệnh tại Tỉnh Bình Dương.
Phương pháp phân tích Chatbot
1.2.
Phần này trình bày và giới thiệu những kiến thức tổng quan nhất về một hệ thống Chatbot, phân tích các
ưu nhược điểm của mơ hình Chatbot hiện nay từ đó định hướng mơ hình Chatbot mà luận văn nghiên cứu và
xây dựng, đưa ra giới thiệu về chi tiết các thành phần cấu trúc và những vấn đề khi gặp phải khi xây dựng hệ
thống Chatbot.
1.2.1.
Phương pháp nhúng từ (Word embedding)
Phương pháp nhúng từ (word embedding) được hiểu là tên chung cho một tập hợp các mơ hình và phương
pháp ngơn ngữ dành riêng cho xử lý ngôn ngữ tự nhiên (NLP), trong đó các từ hoặc cụm từ vựng được ánh xạ
tới các vectơ số thực. Về mặt khái niệm, nó liên quan đến việc nhúng tốn học từ một khơng gian có một chiều
cho mỗi từ vào khơng gian vectơ liên tục với các kích thước thấp hơn nhiều. Word embbding có 2 model nổi
tiếng là word2vec và Glove.
1.2.1.1.
Word2vec
Word2vec được tạo ra vào năm 2013 bởi một kỹ sư tại google có tên là Tomas Mikolov. Về mặt tốn học,
Word2Vec về cơ bản là ánh xạ từ từ một tập hợp các từ vựng vào không gian vectơ, mỗi từ được biểu thị bằng
n số thực. Mỗi từ tương ứng với một vector cố định. Sau khi đào tạo mơ hình bằng thuật tốn backprobagation,
trọng lượng của mỗi vectơ từ được cập nhật liên tục. Từ đó, chúng ta có thể thực hiện một phép tính khoảng
cách giữa các từ và các từ "gần" nhau thường là các từ xuất hiện cùng nhau trong ngữ cảnh, từ đồng nghĩa.
7
1.2.1.2.
Glove
GloVe là một trong những phương pháp mới để xây dựng vectơ từ (giới thiệu vào năm 2014), nó được
xây dựng dựa trên ma trận đồng xảy ra (Co-occurrence Matrix). GloVe dựa trên ý tưởng tính tỉ lệ xác xuất từ
k trên ngữ cảnh của từ i và j.
1.2.2.
Phương pháp quản lý hội thoại
1.2.2.1.
Vai trò ủa quản lý hội thoại
Trong các phiên trao đổi dài (long conversation) giữa người và chatbot, chatbot sẽ cần ghi nhớ những
thông tin về ngữ cảnh (context) hay quản lý các trạng thái hội thoại (dialog state). Vấn đề quản lý hội thoại
(dialoge management) khi đó là quan trọng để đảm bảo việc trao đổi giữa người và máy là thơng suốt.
1.2.2.2.
Các mơ hình quản lý hội thoại phổ biến
Hiện nay, các chatbot thường dùng mơ hình máy trạng thái hữu hạn (Finite State Machines - FSM), mơ
hình Frame-based (Slot Filling) hoặc kết hợp hai mơ hình. Một số hướng nghiên cứu mới có áp dụng mơ hình
nơron ANN vào việc quản lý hội thoại giúp Chatbot thơng minh hơn.
- Mơ hình máy trạng thái hữu hạn (Finite-State Machines):
- Mơ hình Frame-based (hoặc tên khác là Form-based)
1.2.2.3.
Mơ hình sinh hội thoại cho chatbot
NLG là mơ hình sinh câu trả lời của Chatbot. Nó dựa vào việc ánh xạ các hành động của quản lý hội
thoại vào ngôn ngữ tự nhiên để trả lời người dùng. Có 4 phương pháp ánh xạ hay dùng là: Template-Base,
Plan-based, Class- base, RNN-base
Phương pháp sinh ngôn ngữ Plan-based
Phương pháp sinh ngôn ngữ Class-based
1.2.3.
Phương pháp dựa trên máy học
Dựa trên một công cụ NLP nâng cao để hỗ trợ ngôn ngữ tự nhiên và đáp ứng yêu cầu dựa trên các thuật
tốn ML và tích hợp hệ thống để truy xuất thơng tin động. Độ chính xác của chatbot thấp hơn khi bắt đầu và
tăng lên theo thời gian. Sự khác biệt quan trọng giữa cách tiếp cận dựa trên menu và dựa trên AI là NLP engine.
Engine này chịu trách nhiệm trích xuất thơng tin có trong đầu vào của người dùng. Hơn nữa, dựa trên thơng
tin trích xuất, chatbot cần quyết định các bước tiếp
1.2.4.
1.2.3.1.
Kiến trúc mạng nơ-ron nhân tạo
1.2.3.2.
Kiến trúc mạng LSTM
1.2.3.3.
Phân tích mơ hình LSTM
1.2.3.4.
Vấn đề phụ thuộc quá dài
Ứng dụng RNN vào quản lý hội thoại
Phần này sẽ giới thiệu thuật toán RNN áp dụng cho chức năng theo dõi trạng thái hay ngữ cảnh hội thoại
Dialogue State Tracking (DTS) trong thành phần quản lý hội thoại đã được mô tả.
1.2.5.
Phương pháp phân tách các từ (Tokenization hay word segmention):
Tách từ là một quá trình xử lý nhằm mục đích xác định ranh giới của các từ trong câu văn, cũng có thể
hiểu đơn giản rằng tách từ là quá trình xác định các từ đơn, từ ghép... có trong câu. Đối với xử lý ngơn ngữ, để
có thể xác định cấu trúc ngữ pháp của câu, xác định từ loại của một từ trong câu, yêu cầu nhất thiết đặt ra là
phải xác định được đâu là từ trong câu.
1.3.
Các kỹ thuật cơ bản xây dựng Chatbot
Kỹ thuật để xây dựng được mơ hình trên thì Chatbot phải có cấu trúc và các thành phần hệ thống có thể
hiểu được các ý định và có thể trích chọn được các thơng tin từ u cầu của người dùng, lưu được ngữ cảnh
8
và sinh ra được câu trả lời phù hợp nhất, giúp cho trải nghiệm của người dùng được tự nhiên hơn.
1.3.1.
Xác định ý định người dùng (intent)
Điều người dùng mong muốn chatbot thực hiện (hỗ trợ) khi đưa ra câu hội thoại [25, 8]. Intent được xác
định sẽ quyết định cấu trúc (frame) và kịch bản (script) của đoạn hội thoại tiếp theo. Việc xác định ý định là
rất quan trọng đối với chatbot. Nếu chatbot xác định sai intent sẽ dẫn đến phản hồi khơng thích hợp dẫn đến
người dùng khơng hài lịng và có thể rời bỏ hệ thống.
1.3.2.
Các vấn đề lưu ý khi xác định ý định
Thiếu nguồn dữ liệu
Sự bất quy tắc trong diễn đạt của người dùng
Phát hiện ý định ngầm
Phát hiện đa ý định (Multiple intents detection
Phát hiện lỗi chính tả, bỏ dấu...
1.3.3.
Xác định ý định dựa trên học máy (machine learning)
1.3.4.
Trích xuất thơng tin thực thể (NER)
Trích xuất thơng tin thực thể (Named Entity Recognition - NER) là tác vụ cơ bản trong lĩnh vực xử lý
ngơn ngữ tự nhiên. Vai trị chính của tác vụ này là nhận dạng các cụm từ trong văn bản và phân loại chúng vào
trong các nhóm đã được định trước như tên người, tổ chức, địa điểm, thời gian, loại sản phẩm, nhãn hiệu, ...
1.3.4.1.
Trích xuất thơng tin thực thể dựa trên học máy ML
Mơ hình CRF
Huấn luyện CRF
Phương pháp L-BFGS:
Suy diễn CRF
Giải thuật phân loại văn bản Starspace
Tiểu kết chương 1
Trong phần này luận văn đã giới thiệu một số kiến thức nền tảng về mạng nơ-ron nhân tạo, cách thức
hoạt động của mạng nơ-ron và một số các kỹ thuật được ứng dụng trong việc xử lý ngôn ngữ tự nhiên đặc biệt
là 2 kỹ thuật word2vec và Glove, ứng dụng RNN trong quản lý cuộc hội thoại. Tiếp theo, đề tài sẽ trình bày về
một bộ công cụ mã nguồn mở được xây dựng các trợ lý theo ngữ cảnh có khả năng hiểu ngơn ngữ tự nhiên,
quản lý đối thoại và tích hợp, "Rasa Framework", đây cũng là bộ framework mà đề tài khai thác và phát triển
hiện thực sản phẩm chatbot xây dựng công cụ hỏi đáp thông tin trực tuyến đăng ký khám chữa bệnh tại Tỉnh
Bình Dương.
9
Chương 2
XÂY DỰNG CÔNG CỤ HỎI ĐÁP THÔNG TIN
2.1.
Giới thiệu bài tốn
Như đã trình bày ở trên, hiện tại có rất nhiều phương pháp làm Chatbot do bên thứ ba cung cấp như
Ahachat, Chatfuel, Messnow... dễ dàng xây dựng và tích hợp thơng qua API nhưng lại khơng đảm bảo tính
bảo mật về mặt dữ liệu người dùng nên trong đề tài này, tôi quyết định sử dụng mã nguồn mở Rasa để xây
dựng hệ thống Chatbot riêng biệt nhằm mục đích quản lý tốt dữ liệu và bảo mật hệ thống lẫn thơng tin người
dùng.
Bên cạnh đó với Rasa hỗ trợ một số cơ chế học máy cho tương thích với Tiếng Việt hay có thể tùy ý kết
nối tới nhiều hệ thống khác để trả lại dữ liệu cho Chatbot. Hiện tại Rasa đang có cộng đồng phát triển mạnh
với hơn 3.500 thành viên, số lượng download là hơn 500.000. Các tính năng và bug mới liên tục được cập nhật
và sửa đổi. Trên thực tế thì Rasa cũng đã áp dụng thành cơng nhiều bài tốn cho các lĩnh vực như: y tế, bảo
hiểm, xã hội, du lịch, ngân hàng và viễn thơng. Đó cũng chính là những động lực giúp tôi lựa chọn Rasa là
framework để xây dựng Chatbot giải quyết bài toán này.
Chương này sẽ mơ tả từng bước xây dựng bài tốn trên nền tảng mã nguồn mở Rasa. Về phần xây dựng
giao diện hiển thị và tương tác người dùng với bot tôi sử dụng chatwork. Ngoài ra Rasa cũng hỗ trợ kết nối và
tích hợp với nhiều nền tảng khác nhau như Facebook messenger,... Vấn đề xây dựng tập dữ liệu huấn luyện
cho mơ hình cũng đóng một vai trị quan trọng trong việc xây dựng hệ thống Chatbot và vấn đề này mang tính
quyết định hệ thống có đáp ứng được các u cầu từ phía người dùng hay khơng sẽ mô tả trong phần thực
nghiệm sản phẩm.
2.2.
Rasa Framework
2.2.1. Giới thiệu
Rasa là một công cụ Machine Learning mã nguồn mở dành cho các nhà phát triển và nhóm sản phẩm để
mở rộng các bot ngoài việc trả lời câu hỏi đơn giản [22, 16]. Mã nguồn mở Rasa là một khung AI trò chuyện để
xây dựng các trợ lý theo ngữ cảnh. Rasa hoạt động khá tốt và mạnh mẽ, đặc biệt trong vấn đề xác định ý định
người dùng (intent) và đối tượng được nhắc đến trong câu (entity) dù dữ liệu thu thập chưa đầy đủ, chính xác.
Minh họa mơ hình hoạt động Rasa
2.2.2.
Một số thuật ngữ của Rasa
2.2.2.1. Rasa NLU
Là một thư viện để hiểu ngôn ngữ tự nhiên (NLU) thực hiện phân loại ý định và trích xuất thực thể từ
đầu vào của người dùng và giúp bot hiểu những gì người dùng đang nói.
2.2.2.2 Rasa Core
Một khung chatbot với quản lý hội thoại, lấy đầu vào có cấu trúc từ NLU. Rasa NLU và Rasa Core là
hai phần độc lập và khơng liên quan gì tới nhau, có thể sử dụng NLU mà khơng dùng Core và ngược lại.
10
2.2.2.3 Rasa X
Nhiệm vụ xây dựng, cải thiện và triển khai model chatbot. Với các mơ hình theo dõi trạng thái bất
thường của việc xác định mục đích của người dùng trực tiếp trong danh sách các cuộc hội thoại đã được đào
tạo cho bot, sẽ có những vấn đề mơ hồ xác định ý định trong các cuộc hội thoại sử dụng tương tự một ý định.
Các thành phần của Rasa
2.2.3. Phương pháp xây dựng Chatbot Rasa
Rasa cung cấp hai phương pháp chính xây dựng dữ liệu trainning cho bot, cụ thể:
Pretrained Embeddings (Intent classifier sklearn) : Việc phân loại ý định người dùng sẽ dựa trên các
tập dữ liệu được lọc trước, sau đó được sử dụng để thể hiện từng từ trong thông điệp người dùng dưới dạng từ
nhúng (word embedding) hay biểu diễn ngôn ngữ dưới dạng vector (word2vec). Các tập dữ liệu này có thể
được cung cấp từ Spacy hoặc MITIE ...
Supervised Embeddings (Embedding Intent Classifier): Nhúng được giám sát. Với phương pháp này
thì người dùng sẽ phải tự xây dựng dữ liệu từ đầu do ko có dữ liệu đào tạo sẵn có. Nhưng với các bài tốn
trong một miền lĩnh vực đóng thì nó sẽ đảm bảo tính chính xác hơn nhiều và tránh dư thừa dữ liệu so với
phương pháp ở trên.
2.2.4. Mộ hình huấn luyện cho Chatbot
Trong Rasa, các messages được xử lý bởi một chuỗi các thành phần (components). Các thành phần này
được thực thi lần lượt trong “pipeline” được xác định trong file config.yml. Việc lựa chọn một NLU pipeline
cho phép tùy chỉnh mơ hình và kết hợp nó trên tập dữ liệu. Có các Components để trích xuất thực thể, để phân
loại ý định, lựa chọn phản hồi, tiền xử lý và các thành phần khác. Nếu muốn thêm thành phần của riêng mình,
chẳng hạn như để chạy kiểm tra chính tả (spell-check) hoặc để phân tích quan điểm (sentiment analysis), có
thể thực hiện custom component
2.3.
Thiết kế sơ đồ và chức năng các khối hệ thống
Thiết kế sơ đồ khối hệ thống. Với mục tiêu xây dựng mô hình tương tác giữa người với máy thơng qua
hệ thống chatbots tự động để điều khiển hệ thống được chia thành 3 phần chính như: Truyền dữ liệu, thơng
tin; Xử lý dữ liệu, thông tin thông qua Ngrok; Thực hiện truy vấn trên RASA.
11
Bảng 2.1: Các khối chức năng trong hệ thống Rasa
Khối chức năng
Mô tả
Khối truyền dữ liệu,
Khối truyền dữ liệu, thông tin nhằm gửi thông tin từ người dùng đến
thông tin
hệ thống và nhận phản hồi từ hệ thống đến người dùng, gồm các khối:
Người dùng; Dữ liệu đầu vào; Tín hiệu đầu ra.
Khối người dùng
Liệt kê và đưa ra các yêu cầu của người dùng đồng thời lựa chọn các
(User)
từ khóa phù hợp, cụ thể để hệ thống xử lý các thơng tin chính xác hơn.
u cầu càng cụ thể, rõ ràng thì độ phản hồi chính xác càng cao.
Khối dữ liệu đầu vào
Sau khi có thơng tin từ người dùng, khối đầu vào sẽ gửi đi các yêu cầu
(Input)
từ người dùng đến hệ thống thông qua ngõ vào là các câu mẫu có sẳn
trong templates và nhập dữ liệu từ bàn phím, sau đó u cầu được gửi
đến khối truy vấn dữ liệu trong Facebook Developer bằng công cụ
Ngrok.
Khối tín hiệu đầu ra
Dữ liệu sau khi được xử lý từ hệ thống sẽ được gửi đến khối tín hiệu
(Output)
để phản hồi. Tại đây, tín hiệu sẽ được hiển thị theo ý định của người
dùng
Khối xử lý dữ liệu
Khối xử lý dữ liệu, thông tin sẽ xử lý các câu hỏi được đưa vào từ khối
thông qua Ngrok
truyền dữ liệu, sau đó phân loại các ý định cụ thể của người dùng, bao
gồm các khối: truy vấn (Query), phản hồi (response), ý định (Intent)
Khối truy vấn
Các yêu cầu truy vấn sau đó được trả về dữ liệu có cấu trúc ở định dạng
(Query)
JSON với một hành động xác định và các tham số cho hành động đó.
Khối phản hồi
Trả về người dùng các nội dung trong kịch bản và dữ liệu có cấu trúc
(Response)
ở định JSON, Crawl dữ liệu Realtime từ trang web theo ý định người
dùng nhập vào
Khối ý định
Chứa các tham số, các ý định được xác định cụ thể thông qua việc đào
(Intent)
tạo và huấn luyện cụm từ cho hệ thống. Kết quả sau khi huấn luyện sẽ
được lưu lại để đánh giá và sử dụng.
Khối thực hiện truy vấn
Trong khối RASA sẽ bao gồm rasa NLU và rasa Core. Rasa NLU xử
lý các ý định và thực thể trong khi rasa Core xử lý các đối thoại và thu
thập dữ liệu từ trang web bằng cách Crawl dữ liệu Realtime, lấy API
Database, Google Search và Graph API Facebook.
2.4.
Xây dựng và huấn luyện dữ liệu Chatbot bài toán
2.4.1. Xây dựng ý định (intent) bài toán
Việc xây dựng ý định sẽ theo nguyên tắc là những mẫu câu hỏi của người dùng phổ biến nhất, thơng
dụng nhất có thể.
12
Xây dựng ý định (intent) trên RASA
2.4.2. Xây dựng mẫu (templates)
Ứng với mỗi câu hỏi của người dùng thì ta cũng phải xây dựng các mẫu câu (template) trả lời của bot
tương ứng.
2.4.3. Xây dựng hành động (actions)
Hành động là những thứ bot chạy để đáp ứng với đầu vào của người dùng. Đây là thành phần có thể
cung cấp thông tin trả lời người dùng dựa vào các intent, slot và dữ liệu API.
2.4.4. Xây dựng thực thể (entity)
Entity là các thơng tin trích xuất từ ý định người dùng. Slot là các thơng tin được trích lọc trong các
câu nói người dùng được bot lưu lại trong bộ nhớ để sử dụng trong các action hay câu trả lời của bot và tránh
việc hỏi lại thông tin từ phía người dùng.
Thực thể (entities) trích xuất từ ý định người dùng
13
2.4.5. Xây dựng câu chuyện (stories)
Khi đã xác định câu chuyện mà người dùng đề cập đến, việc tiếp theo bây giờ là tạo ra một tương tác
người dùng và bot . Mô tả một số câu chuyện tương tác giữa người dùng và bot
Một số câu chuyện tương tác giữa người dùng và bot
2.4.6. Chức năng tra cứu văn bản – chính sách (Realtime)
Sử dụng q trình tự động web crawler- trích xuất các thơng tin từ các trang web và lưu trữ “Văn bản –
chính sách” của cổng thơng tin tỉnh Bình Dương dưới một định dạng phù hợp. Thông thường, khi muốn lấy
một số thông tin từ các trang web, sử dụng các API mà các trang đó cung cấp. Đây là cách đơn giản, tuy nhiên
khơng phải trang web nào cũng cung cấp sẵn API cho chúng ta sử dụng. Do đó, tơi sử dụng kĩ thuật để lấy các
thơng tin từ các trang web đó mà không thông qua API. Cụ thể, dùng thư viện của Python: BeautifulSoup 4 để
thực hiện web crawling từ HTML đơn giản và hiệu quả.
2.4.7. Xây dựng chức năng hỏi đáp
Xử lý thơng minh các câu hỏi ngồi chưa được hệ thống train, bằng cách xây dựng chức năng từ bộ xử
lý bộ thông minh search engine của google search, minh họa hàm code xử lý chức năng “hỏi đáp” của hệ thống
như sau:
2.4.8. Xây dựng chức năng đặc lịch khám
Xây dựng hàm chức năng “Đặt lịch khám”:
2.4.9. Chức năng xem tin tức
Một trong những tính sáng tạo về khả năng ứng dụng thực tế của đề tài là xử lý chức năng tin tức realtime
cho hệ thống, nhằm cung cấp kịp thời các thông tin đền người dùng, đặc biệt là lĩnh vực y .
2.4.10. Template Chatbot
Như vậy, sau khi hồn thành các bước như trên thành cơng, giao diện chính chabot Messenger thể hiện
đầy đủ gồm có 5 mẫu (Templates), mỗi mẫu có 3 button kịch bản trả lời hỏi đáp thông tin liên quan mà chabot
sẽ xử lý.
14
Templates 1: Nhóm mẫu 1 này như mơ tả trong hình 2.21 trình bày các thơng tin "Giới thiệu thơng tin
phòng khám"; "Giới thiệu đội ngũ bác sĩ"; và "Liên hệ đến phòng khám qua Hotline".
Giao diện Templates 1
Templates 2: Nhóm mẫu 2 trong hình 2.22 trình bày các thơng tin về dịch vụ liên quan khám chữa bệnh
"Các dịch vụ khám của phịng khám"; "Các gói chăm sóc của phòng khám"; và "Hỗ trợ đặt lịch khám trực
tuyến".
Giao diện Templates 2
Templates 3: Nhóm 3 trong hình 2.23 trình bày các thông tin về dịch vụ hổ trợ khám chữa bệnh, biểu
mẫu đánh giá góp ý dịch vụ như "Hỗ trợ người dùng hỏi đáp các vấn đề y tế"; "Form để người dùng gửi phán
ánh góp ý"; và "Cung cấp địa chỉ nhà thuốc online”
Giao diện Templates 3
15
Templates 4: Nhóm 4 trong hình 2.24 trình bày các thông tin về tin tức liên quan đến dịch bệnh covid
(thông tin này được cập nhật tự động. Đây là vấn đề chatbot được bổ sung kịp thời trong tình hình diễn biến
phức tạp dịch bệnh hiện nay) như "Tin tức liên quan đến y tế mới nhất trong ngày"; "Số ca nhiễm Covid 19
trên thế giới và trong nước"; và "Video hướng dẫn phòng chống Covid 19"
Giao diện Templates 4
Templates 5: Ngồi ra, trong Nhóm 5, hình 2.25 trình bày các dịch vụ truy vấn các thông tin về văn
bản liên quan đến dịch vụ y tế từ các trang Văn bản từ cổng thông tin quốc gia và cổng thơng tin tỉnh Bình
Dương, nhằm hỗ trợ người dùng truy xuất các văn bản nhanh và thuận tiện nhất, như: "Xem các văn bản y tế
từ cổng thông tin quốc gia" và "Tra cứu văn bản từ cổng thông tin tỉnh Bình Dương
Giao diện Templates 5
2.5.
Cấu hình cài đặt triển khai Chatbot Rasa Messenger
Kiến trúc cài đặt, cấu hình của chương trình thử nghiệm chương trình được thiết kế
Kiến trúc cài đặt của chương trình
Bước 1: Chatwork gửi event qua webhook Mỗi khi có một sự kiện diễn ra trên chatwork cụ thể ở đây
là sự kiện khi có một người dùng gửi tin nhắn cho Chatbot thì tài khoản chatwork này sẽ gửi một POST request
16
đến webhook được sử dụng để lắng nghe sự kiện. Webhoook này sẽ phân tích tin nhắn và chuyển tiếp đến
NLU của RASA.
Bước 2: RASA nhận diện intent và entity: Sau khi đã thu được message của người dùng thì sử dụng
RASA để hiểu được intent và entity của câu nói người dùng. Từ các thơng tin đó sẽ quyết định xử lý sao cho
phù hợp
Bước 3: Sinh câu trả lời: Bước này sau khi phân tích được ý định và các entity thì hệ thống sẽ sinh ra
các câu trả lời phù hợp.
Bước 4: Gửi tin nhắn qua Chatwork bước này sử dụng Chatwork SDK để chuyển tiếp tin nhắn sang
tài khoản chatwork (Messenger Facebook) và hoàn thành nhiệm vụ của ứng dụng.
Lưu ý: Phần Phụ lục trình bày chi tiết cấu hình và cài đặt.
Tiểu kết chương 2
Trong chương này luận văn đã giới thiệu các kỹ thuật quan trọng nhất được sử dụng trong Rasa
framework. Đây là các cơ sở để áp dụng xây dựng bài toán chatbot trả lời thông tin hỏi đáp trực tuyến đăng ký
khám chữa bệnh Tỉnh Bình Dương, qua mơ tả các bước chính trong xây dựng chương trình thực nghiệm từ
việc lựa chọn nguồn dữ liệu, xây dựng ý định, thực thể và các kịch bản trả lời. Kết quả của việc huấn luyện và
test dữ liệu cho kết quả khá cao trên tập dữ liệu huấn luyện và test. Huấn luyện càng nhiều dữ liệu thì độ chính
xác cao và được trình bày chi tiết các chức năng trong chương tiếp theo.
17
Chương 3
THỰC NGHIỆM VÀ ĐÁNH GIÁ MƠ HÌNH
Sau thời gian nghiên cứu tìm hiểu tài liệu học thuật tham khảo cùng với sự giúp đỡ tận tình của giáo
viên hướng dẫn, và các đồng sự thực hiện đề tài: “Xây dựng ứng dụng hỏi/đáp trực tuyến hổ trợ đăng ký và tư
vấn khám bệnh Tỉnh Bình Dương”, tơi đã hồn thành xong theo yêu cầu và đúng thời gian quy định với những
nội dung sau:
-
Nghiên cứu tổng quan, lựa chọn phương pháp thích hợp trong xử lý ngơn ngữ tự nhiên.
-
Tìm hiểu kỹ thuật phân tích, thu thập thơng tin đã và đang thực hiện trong lĩnh vực xử lý ngôn ngữ tự
nhiên, khai phá dữ liệu để áp dụng vào chăm sóc sức khỏe bệnh nhân một cách an tốn và nhanh chóng.
-
Mơ hình hố các quy trình hổ trợ thông minh cho bệnh nhân và bác sĩ một cách khoa học, đảm bảo thơng
tin chính xác, an tồn: Đăng ký khám bệnh online - đặt lịch khám bệnh nhanh chóng, tiện lợi; Chọn dịch
vụ khám linh hoạt; Xem thông tin bác sĩ; Hỏi – đáp thông tin bệnh phổ biến; Liên hệ.
-
Ngồi ra, đề tài đề xuất mơ hình hóa chức năng cung cấp các thơng tin, văn bản hành chính trên cổng thơng
tin quốc gia liên quan đến lĩnh vực y tế, giúp các y bác sĩ cập nhật thông tin nhanh nhất.
-
Triển khai ứng dụng “Xây dựng ứng dụng hỏi/đáp trực tuyến hổ trợ đăng ký và tư vấn khám bệnh” trên
nền tảng framework mã nguồn mở RASA trong thực tế trên giao diện chatbot.
3.1. Thực nghiệm
Đề tài “Xây dựng ứng dụng hỏi/đáp trực tuyến hổ trợ đăng ký và tư vấn khám bệnh” thực hiện xây dựng
ứng dụng chatbot, đáp ứng kịp thời, nhanh chóng, góp sức chống dịch, hỗ trợ người dân, nền tảng đặt lịch
khám bệnh và chăm sóc sức khỏe tồn diện miễn phí. Chương trình hỗ trợ kết nối trực tuyến giữa những người
gặp khó khăn khi tiếp cận dịch vụ y tế, những người thuộc diện cách ly hoặc đang trong khu vực phong tỏa
với bác sĩ và cơ sở y tế một cách nhanh chóng, hạn chế các thủ tục đăng ký và tiết kiệm thời gian chờ đợi.
Được minh hoạ chi tiết theo luồng kịch bản ngẫu nhiên giữa người dùng và chatbot như sau:
3.1.1. Menu chính khi người dùng nhấn nút bắt đầu
Khi người dùng vào Messenger và Bắt đầu chat thì hệ thống chatbot của đề tài sẽ hiển thị Menu chính
Menu chính chatbot
3.1.2. Giới thiệu phòng khám và đội ngũ bác sĩ
Trong nhánh "Khám bệnh trực tuyến", với giao diện chính cung cấp các vấn đề liên quan trong đề tài,
ví dụ như: người dùng có thể tìm hiểu các thơng tin giới thiệu về dịch vụ; đội ngũ bác sĩ chuyên môn và thông
tin liên hệ. Sau mỗi chức năng, chatbot cung cấp 1 button cho người dùng có thể quay lại giao diện chính.
18
3.1.3. Form điền thông tin liên hệ
Chức năng form thông tin liên hệ thông qua google form tự động gửi thông tin đến quản trị viên. Hệ
thống sẽ tư vấn sức khỏe online từ các bác sĩ có chun mơn hay lưu trữ quản lý các bệnh án điện tử
3.1.4. Các dịch vụ khám
Tại phân hệ "Các dịch vụ khám bệnh" trình bày các dịch vụ như "Dịch vụ khám"; "Gói chăm sóc" và
"Đặt lịch khám" cho người dùng tương tác. Ví dụ như hình 3.4 trình bày bổ sung cho người dùng thông tin
về dịch vụ khám chữa bệnh như kịch bản đã được phân tích cơ bản như: khám "Nhi Khoa"’ "Khám Định
Kỳ"; "Khám Tổng Quát"; hoặc dịch vụ "Điều dưỡng tại nhà".
3.1.5. Các gói chăm sóc của phịng khám
Hình 3.5 trình bày chức năng trả lời tự động khi người dùng cần thơng tin các gói chăm sóc tồn diện,
chun biệt và trọn năm
3.1.6. Các tin tức từ cổng thơng tin tỉnh Bình Dương
Để nhanh chóng cung cấp các thông tin mới nhất về hoạt động, điều hành của Tỉnh Bình Dương về
lĩnh vực y tế. Chức năng cung cấp thông tin tin tức mới từ cổng thơng tin tỉnh Bình Dương chi tiết dịch vụ truy
vấn tin tức mới nhất, tự động trực tuyến
3.1.7. Đặt lịch khám
Để giải quyết vấn đề đăng ký khám bệnh, giảm thiểu thời gian xếp hàng, thực hiện "đăng ký khám bệnh
trực tuyến" mô tả chức năng giải quyết vấn đề khó khăn trên. Đặc biệt, là giải quyết vấn đề khi người dùng
gặp khó khăn khi tiếp cận dịch vụ y tế, những người thuộc diện cách ly hoặc đang trong khu vực phong tỏa
với bác sĩ và cơ sở y tế một cách nhanh chóng, hạn chế các thủ tục đăng ký và tiết kiệm thời gian chờ đợi thông
qua mạng lưới tư vấn, khám chữa bệnh online là rất cần thiết trong điều kiện chống dịch COVID-19.
3.1.8. Nhà thuốc online
Ngoài ra, chức năng nhà thuốc online minh hoạ trong hình 3.8 trình bày thơng tin kiến thức cơ bản đến
người dùng về thành phần, công dụng của một số loại thuốc gia đình.
3.1.9. Chức năng hỏi đáp
Chức năng không kém phần quan trọng, thông minh của hệ thống là việc trả lời các thông tin, vấn đề
liên quan đến lĩnh vực y tế, người dùng đặt câu hỏi "Cho hỏi..." những vấn đề trong phạm vi nghiên cứu (lĩnh
vực y tế) hệ thống sẽ xử lý và trả lời kết quả tìm kiếm truy vấn
3.1.10. Tra cứu văn bản hành chánh
Đặc biệt, chức năng tra cứu văn bản hành chánh, trả lời trực tuyến tự động các vấn đề liên quan trong
lĩnh vực y tế, các văn bản quy phạm pháp luật cần tra cứu, được kết nối trực tuyến với trang dịch vụ công trực
tuyến của bộ y tế và trang quản lý văn bản điều hành của Tỉnh Bình Dương đến người dùng
3.2. Đánh giá kết quả, mơ hình
Mơ hình thực nghiệm ứng dụng "Xây dựng ứng dụng hỏi/đáp trực tuyến hổ trợ đăng ký và tư vấn khám
bệnh Tỉnh Bình Dương", tơi đã hồn thành:
-
Hiểu được căn bản và cách hoạt động hệ thống chatbot. Cụ thể là framework mã nguồn mở chabot
thông minh Rasa.
-
Hiểu được kiến trúc nâng cao trong xử lý ngôn ngữ tự nhiên chabot Rasa cũng như các vấn đề và cách
giải quyết.
-
Dữ liệu đào tạo bot và các kịch bản xây dựng cho bot là yếu tố quan trọng nhất khi xây dựng chatbot.
Đây là 2 yếu tố ảnh hưởng lớn tới việc bot thơng minh và có thể trả lời người dùng theo một chủ đề
nào đó hay khơng.
19
-
Việc xây dựng các ý định (intent) cũng rất quan trọng. Đối với các intent nhập nhằng hay gần nhau về
nghĩa sẽ khiến cho độ chính xác của bot giảm. Nên việc thiết kế các intent và slot là vô cùng quan
trọng.
-
Việc xây dựng bộ công cụ hổ trợ tra cứu văn bản hành chánh liên quan đến y tế tại 02 trang chính
thống là dichvucong và văn bản điều hành của Tỉnh Bình Dương đã giúp cho người dùng tiếp cận các
văn bản hành chánh nhanh nhất.
-
Với các đoạn hội thoại nằm trong kịch bản dựng sẵn thì bot đáp ứng rất tốt khi trả lời đúng cho người
dùng. Tuy nhiên việc xây dựng kịch bản cho bot rất khó khăn trong các đoạn hội thoại vì nó có rất
nhiều trường hợp. Vì thế với các kịch bản dài thì rất khó khăn trong việc xây dựng kịch bản không
phải hỏi lại các thông tin đã được lưu và trích chọn trước đó nên bot thường phải hỏi lại.
-
Bot có khả năng trả lời ngẫu nhiên các mẫu câu trong template vì thế giúp cho đoạn hội thoại trở nên
tự nhiên hơn. Bên cạnh đó bot có khả năng điều hướng người dùng đến các mẫu câu trả lời sẵn có của
bot khi người dùng hỏi những câu ngồi phạm vi đào tạo cho bot, với việc điều hướng thông minh dựa
trên khả năng trả lời ngẫu nhiên của bot dựa trên bộ công cụ search engine phát huy các câu trả lời
ngoài kịch bản trong lĩnh vực y tế giúp chatbot mạnh mẽ hơn.
Tiểu kết chương 3
Trong luận văn "Xây dựng ứng dụng hỏi/đáp trực tuyến hổ trợ đăng ký và tư vấn khám bệnh Tỉnh
Bình Dương", tơi đã tìm hiểu một số kiến thức tổng quan về hệ thống Chatbot, các thành phần cấu trúc và
nhiệm vụ các thành phần trong Chatbot, tìm hiểu một số thuật toán cơ bản áp dụng vào việc xây dựng Chatbot
để giải quyết bài toán Chatbot lĩnh vực hỏi đáp đăng ký khám bệnh trực tuyến với công cụ mã nguồn mở NLP
Rasa
20
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
1. Kết luận
Từ kết quả nghiên cứu của đề tài đã được trình bày trong luận văn, tác giả xin được rút ra một số kết
luận như sau:
Các vấn đề mà luân văn đã làm được:
-
Trình bày kiến thức tổng quan về một hệ thống Chatbot, các mơ hình Chatbot bán hàng hiện nay, tìm hiểu
chi tiết cấu trúc các thành phần và những vấn đề gặp phải khi xây dựng hệ thống Chatbot.
-
Nắm được các luồng hoạt động hay các bước xử lý của các thành phần trong mơ hình Chatbot. Bên cạnh
đó tơi cũng nắm được một số thuật toán và phương pháp để xử lý dữ liệu trong Chatbot
-
Trong quá trình xây dựng tập dữ liệu đào tạo, huấn luyện cho Chatbot đã giúp tơi có được những kinh
nghiệm q báu trong việc xử lý và gán nhãn dữ liệu với ngữ nghĩa nhập nhằng. Từ đó có thể xây dựng
bộ dữ liệu huấn luyện tốt hơn đem lại độ chính xác cao hơn mơ hình.
-
Xây dựng thành cơng chương trình thử nghiệm hệ thống Chatbot phục vụ nghiệp vụ hỏi đáp đăng ký khám
bệnh trực tuyến theo đúng các mơ hình và thuật tốn đã trình bày với thử nghiệm tham khảo qua các kênh
Fanpage Facebook và được đánh giá kết quả thử nghiệm.
-
Ngoài ra, với ứng dụng trợ lý ảo trực tuyến hổ trợ hỏi đáp đăng ký khám bệnh trực tuyến tại Tỉnh Bình
Dương của đề tài đạt tính ứng dụng cao, khả quan khi áp dụng thực tế giài quyết vấn đề hiện nay tại Tỉnh
Bình Dương qua kết quả xuất sắc đạt giải thưởng hạng 3 "Hội thi sáng tạo khoa học kỹ thuật lần thứ IX
Tỉnh Bình Dương" năm 2021.
2. Định hướng nghiên cứu tiếp theo
-
Xây dựng giao diện quản trị tự tổ chức và quản lý intent, entity, kịch bản. để hỗ trợ cho các khách sạn tự
xây dựng chatbot của riêng mình mà khơng cần hiểu nhiều về lập trình.
-
Xây dựng bot mang tính cảm xúc hơn hay nhân cách hóa Chatbot giúp Chatbot trở nên giống người hơn.
-
Tích hợp speech to text và text to speech cho bot. Khi đó có thể tích hợp vào Chatbot để hỗ trợ người dùng
qua giọng nói song song cùng với giao diện hiện tại.
-
Xây dựng bot hỗ trợ multi intent, người dùng có thể hỏi nhiều câu hỏi kép.