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
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM
NGUYỄN THẢO NHIÊN
Trang 2Công trình được hoà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ê Hoà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
Trang 3MỞ ĐẦ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 COVID-
19
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 toà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ó chuyên 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 toán và nhanh chóng
- Mô hình hoá 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 toà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ệ
- Ngoà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
Trang 4- 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, quá 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
Trang 5Chương 1
CƠ SỞ LÝ THUYẾT
1.1 Tổng quan Chatbot
1.1.1 Giới thiệu Chatbot
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
1.1.2 Các thành phần cơ bản
Để 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ó 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
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ự đoán cho mỗi câu
1.1.3 Tiêu chí phân loại
1 Chế độ tương tác
(Interact Mode)
Text-Based: Dựa trên văn bản Voice-Based: Dựa trên giọng nói
Trang 62 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ế
(Design Approach)
Dựa theo luật (Rule- Based):
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
Trang 7xuấ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
1.1.3.4 Chatbot theo kịch bản (menu/button):
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 yê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 toán đề xuất là phù hợp với nội dung đề tài
1 Rasa Open Source 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
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
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
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
Trang 86 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, luôn 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.2 Phương pháp phân tích Chatbot
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 toá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
Trang 91.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 toá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.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
1.2.4 Ứ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ừ yêu cầu của người dùng, lưu được ngữ cảnh
Trang 10và 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
Trang 11Chương 2 XÂY DỰNG CÔNG CỤ HỎI ĐÁP THÔNG TIN
2.1 Giới thiệu bài toá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 toá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 toá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 yê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