Chương 1: 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, tim 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 tang framework Rasa. Trong chuong nay 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.
4 Chương Í CO SO LY THUYET 1. Téng quan Chatbot 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 [6]. 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 như: ChatBot viết kịch bản: Đây là những ChatBot có hành vi được xác định bởi các quy tắc. tại mỗi bước trong cuộc trò chuyện, người dùng sẽ cần chọn các tùy chọn rõ ràng để xác định bước tiếp theo của cuộc trò chuyện.
Các cách tùy chọn được trình bày cho người dùng ở mỗi bước trong cuộc hội thoại, tức là liệu họ cần phản hồi bằng một văn bản, giọng nói hoặc cảm ứng thì sẽ phụ thuộc vào các tính năng của nền tảng trò chuyện mà người dùng đang sử dụng và thiết kế của ChatBot. Hoặc ChatBot thông minh (Intelligent ChatBot): ChatBot thong minh la ChatBot được xây dựng với kỹ thuật nhân tạo thông minh. Trí tuệ nhân tạo (AI) cho phép chúng cải thiện linh hoạt về đầu vào người dung mà chúng có thể thu nhận. Chúng có thể thu nhận đầu vào dạng tự do đưới hình thức trình bày văn bản hoặc giọng nói và cũng không giới hạn các dạng đầu vào khác nếu có ý nghĩa.
Ví dụ: Khi bạn muốn mua quan do, Bot sẽ tự động hỏi bạn một danh sách câu hỏi về phong cách quan do ưa thích của bạn và sẽ đưa ra mẫu gợi ý và giá của mặt hàng. 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 WeChait. Các thành phần cơ bản Khi thiết kế một hệ thống, cần tuân theo cách tiếp cận phát triển mô đun một, cụ thể tiêu chuẩn sử dụng chia nó thành các bộ phận cấu thành để 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 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. Để 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 như hình 1.1 cho thấy 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) [21].
Mỗi thành phần trong Chatbot đều có vai trò riêng. Cụ thể như sau: Natural Language Understanding Dialogue Policy Management User firg) LÍ ¡ ¥ - [action ol | o.01| | Natural Language Generation Hình 1.1 Cấu trúc các thành phần cơ bản hệ thống Chatbot [21] 1. Quản lý hội thoại Quản ly hdi thoai (Dialog Management - DM): Thanh 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 cdu: “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. Sinh ngôn ngữ tự nhiên Sinh ng6n ngfr tu nhién (Natural Language Generator - NLG) 1a thanh phan 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 [4].
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 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. Để hiểu rỡ chỉ tiết hơn về luồng xử lý tin nhắn từ 6 các thành phần của Chatbot trình bày trong hình 1.
Chat bot architecture NLU component Helio —--——-—y (extract intent and — nent and entit | entties) Hi <name>, how can! ý ieee 1 help you? n/, / = | fy C > TÊN <* Slots | what is the weather looking ike A / | t lomorrow’ 2 X/ | | oe Mgmt (mode! predicts “Sis _» Database request / | its going to ba mostly / /\ | next_action based on previous XÀ i ‘API call URL request | cloudy with little rain N/ ‘ tions action results, slots) } TA how about day after?“ \ wees ied \ \ || its going to be sunny *. \ Message 4 “Sy Generator (use = pre-defined 4———nextazton— C ì templates with J2 placehoiders) Hình 1.2 Thành phần sinh ngôn ngữ tự nhiên (NLG) 1. 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à trich chon thong tin (slots filter) [25]. 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 chỉ 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.
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.
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 7 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". NLU xử lý tin nhắn người dùng bằng một đường ống (pipeline) nơi mà cấu hình các bước xử lý liên tiếp theo tuần tự hình 1.3 minh họa đường ống có thể tùy chỉnh các thành phần từ bước tiền xử lý dữ liệu, mô hình hóa ngôn ngữ, các thuật toán dùng để tách từ và trích xuất thông tin thực thể.6 thể hiện chỉ tiết các bước xử lý trong phân loại ý định của một câu nói của người dùng, chúng ta cần mô hình hóa ngôn ngữ, nghĩa là biểu diễn ngôn ngữ dưới dạng một vectơ số học để máy tính thực thi [25]. Phân loại ý định (intent Trích chọn thông tin Classification) (Entity Extraction) Hình 1.3 Cac bước xử lý chính trong pipeline của NUU 1. Tiêu chí phân loại 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 tóm tắt trong Bảng 1.1 trình bày các loại chatbot có thể được thực hiện dựa trên các tiêu chí sau [1Š].
STT Phân loại Mô tả 1 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 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 van dé; 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 |Phuong phap thiét | Dua theo luat (Rule- Based): ké Loai chatbot nay kha nang rat han ché; (Design Approach) | 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 tao 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): Ay? Loại này có khả năng “hiêu” ngôn ngữ.