Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 26 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
26
Dung lượng
1,02 MB
Nội dung
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - CHU LÊ LONG NGHIÊN CỨU, XÂY DỰNG CHATBOT HỎI ĐÁP THÔNG TIN KHÁCH SẠN SỬ DỤNG RASA FRAMEWORK CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH MÃ SỐ: 8.48.01.01 TĨM TẮT LUẬN VĂN THẠC SĨ HÀ NỘI - 2020 Luận văn hoàn thành tại: HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG Người hướng dẫn khoa học: PGS.TS NGUYỄN MẠNH HÙNG Phản biện 1: ……………………… Phản biện 2: ………………………………………… Luận văn bảo vệ trước Hội đồng chấm luận văn thạc sĩ Học viện Cơng nghệ Bưu Viễn thơng Vào lúc: ngày tháng năm 2020 Có thể tìm hiểu luận văn tại: - Thư viện Học viện Cơng nghệ Bưu Viễn thông MỞ ĐẦU Ngày nay, với phát triển khoa học kỹ thuật, Chatbot ứng dụng phổ biến mạnh mẽ nhiều lĩnh vực, tạo nên sốt cơng nghệ có nhiều hãng công nghệ tiếng giới tham gia Google, Facebook, Microsoft, IBM Theo Grand View Research, thị trường Chatbot dự kiến đạt khoảng 1,25 tỷ đô la toàn cầu vào năm 2025 Hơn nữa, chuyên gia dự đoán thị trường tăng trưởng với tốc độ tăng trưởng gộp hàng năm 24% Đặc biệt xu hướng chuyển dịch phát triển AI chatbot có khả hội thoại, xử lý tương tác phức tạp với khách hàng Ở Việt Nam, chatbot bắt đầu áp dụng số lĩnh vực chăm sóc khách hàng, mua sắm trực tuyến, trả lời thông tin ngân hàng, y tế… Đối với lĩnh vực du lịch, khách sạn chatbot chưa sử dụng nhiều lĩnh vực phù hợp cho ứng dụng chatbot Chatbot thay người việc trả lời câu hỏi có tính lặp lặp lại, hỗ trợ khách hàng 24/7, tiếp thị quảng cáo cho doanh nghiệp… Với mong muốn hiểu sâu chatbot kỹ thuật giúp chatbot trả lời câu hỏi xử lý theo ngôn ngữ tự nhiên (NLP), em định chọn đề tài “Nghiên cứu, xây dựng Chatbot hỏi đáp thông tin khách sạn sử dụng Rasa Framework” làm đề tài luận văn thạc sĩ Qua đề tài em muốn nâng cao hiểu biết AI Chatbot, NLP (xử lý ngôn ngữ tự nhiên) nghiên cứu khả áp dụng thực tiễn Việt Nam Nội dung luận văn chia làm phần sau: Chương 1: Giới thiệu tổng quan hệ thống chatbot, kiến trúc high-level thành phần AI chatbot, số tảng ứng dụng chatbot Chương 2: Nghiên cứu số kĩ thuật sử dụng chatbot, tìm hiểu Rasa Framework Chương 3: Trình bày trình xây dựng chatbot trả lời thông tin khách sạn, thực nghiệm đánh giá kết CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ CHATBOT 1.1 Khái niệm Theo từ điển Cambridge, chatbot một chương trình máy tính thiết kế để trò chuyện với người, đặc biệt qua internet Chatbot thường trao đổi với người dùng qua hình thức tin nhắn âm Do thiết kế để mơ cách trị chuyện với người, hệ thống chatbot thường phải điều chỉnh thử nghiệm liên tục Chatbot thường sử dụng hệ thống hội thoại cho mục đích khác bao gồm dịch vụ khách hàng, định tuyến yêu cầu để thu thập thông tin Mặc dù số ứng dụng chatbot sử dụng phương pháp phân loại từ (word-classification), xử lý ngơn ngữ tự nhiên (NLP) trí tuệ nhân tạo (AI), số ứng dụng khác cần quét từ khóa chung tạo phản hồi cụm từ phổ biến thu từ thư viện sở liệu liên quan 1.2 Lịch sử đời 1.3 Phân loại chatbot Chatbots phân loại thành nhiều loại khác dựa số tiêu chí Các phân loại thực dựa tiêu chí sau Hình 1.1: Phân loại Chatbot - Theo chế độ tương tác (Interact Mode): + Dựa văn (Text-Based) + Dựa giọng nói (Voice-Based) - Theo miền (Domain): + Miền đóng/miền cụ thể (Closed Domain): Phạm vi chatbot giải số vấn đề phạm vi định + Miền mở (Open Domain): Loại mục tiêu trí tuệ nhân tạo Một chatbot biết thứ trả lời vấn đề - Theo mục tiêu (Goals): + Các chatbot hướng nhiệm vụ (Task-Oriented): thiết kế cho nhiệm vụ cụ thể thiết lập để có thời gian ngắn hội thoại, thường miền đóng + Các chatbot khơng hướng nhiệm vụ (Non Task-Oriented): mơ trị chuyện với người thường thực chat cho mục đích giải trí miền mở - Theo Phương pháp thiết kế (Design Approach): + Dựa theo luật (Rule- Based): Loại chatbot khả hạn chế Chỉ có khả phản hồi xác lệnh cụ thể mà ta xác định từ trước người dùng không phép tùy ý phản hồi mà phải lựa chọn phản hồi lập trình viên tạo + Dựa theo trí tuệ nhân tạo (AI): Loại có khả “hiểu” ngôn ngữ Nghĩa chatbot không bị giới hạn tập luật xác định từ trước, mà hiểu phạm vi rộng Tất nhiên chatbot phải “học” từ liệu có sẵn, có khả “đốn” ý nghĩa ngữ cảnh lệnh chưa gặp Một khả chatbot dựa AI khả “học thêm” 1.4 Các thành phần hệ thống chatbot Bước việc thiết kế hệ thống chia thành phận cấu thành theo tiêu chuẩn để tuân theo cách tiếp cận phát triển mơ đun Trong hình giới thiệu kiến trúc chatbot chung chatbot Hình 1.2: Kiến trúc chung chatbot Dưới trình bày chi tiết thành phần chatbot 1.4.1 NLU (Hiểu ngôn ngữ tự nhiên) NLU (Natural Language Understanding - hiểu ngôn ngữ tự nhiên): bao gồm việc xử lý ngơn ngữ tự nhiên (NLP) có nhiệm vụ xác định ý định câu hỏi (intent classification) trích chọn thơng tin (slots filter) NLU nhằm mục đích trích xuất ngữ cảnh (context) ý nghĩa từ đầu vào người dùng ngôn ngữ tự nhiên, mà khơng có cấu trúc phản hồi cách thích hợp theo ý định người dùng (user intent) Nó xác định mục đích người dùng trích xuất thực thể (entities) theo miền cụ thể Cụ thể hơn, ý định đại diện cho ánh xạ người dùng nói hành động (action) nên thực chatbot Đúc kết lại, người dùng gõ câu “What is the meaning of environment?” chatbot sử dụng ứng dụng nhắn tin Facebook, Slack, WhatsApp, WeChat Skype Sau chatbot nhận yêu cầu người dùng, thành phần hiểu ngơn ngữ tự nhiên phân tích để suy ý định người dùng thông tin liên quan (ý định: dịch, thực thể: [từ: environment] 1.4.2 DM (Quản lý hội thoại) DM (Dialog Management - quản lý hội thoại): Thành phần quản lý đối thoại giữ cập nhật ngữ cảnh hội thoại ý định tại, thực thể xác định thực thể bị thiếu cần thiết để thực yêu cầu người dùng Hơn nữa, u cầu thơng tin thiếu, xử lý làm rõ người dùng đặt câu hỏi Ví dụ: chatbot phản hồi câu hỏi lại câu: “Would you like to tell me as well an example sentence with the word environment?” Quản lý hội thoại có nhiệm vụ xác định hành động (action) dựa vào trạng thái hành động trước hay ngữ cảnh hội thoại 1.4.3 NLG (Sinh ngôn ngữ tự nhiên) NLG (Natural Language Generator - Sinh ngôn ngữ tự nhiên): thành phần sinh ngôn ngữ dựa vào sách (policy) hành động xác định DM thông qua 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 ý định thơng tin ngữ cảnh Các câu trả lời thích hợp tạo mơ hình thiết kế theo luật theo AI 1.5 Một số tảng phát triển chatbot - Dialogflow (https://dialogflow.com/) - Rasa (https://rasa.com/) - Wit.ai (https://wit.ai) - Microsoft Bot Framework (https://dev.botframework.com/) - Woebot (https://woebot.io/ ) - Chatfuel (https://chatfuel.com/ ) 1.6 Một số ứng dụng chatbot - Thương mại điện tử - Nhà hàng dịch vụ ăn uống - Tài ngân hàng - Phương tiện truyền thông tin tức - Y tế - Hàng không 1.7 Giới thiệu chatbot trả lời thông tin du lịch, khách sạn - The Cosmopolitan of Las Vegas - Marriott Hotels - Hyatt Hotels 1.8 Kết luận chương Qua ví dụ trên, ta nhận thấy tốn chatbot trả lời thơng tin du lịch, khách sạn cần tập trung vào trả lời câu hỏi đối thoại liên quan đến miền cụ thể xoay xung quanh thông tin khách sạn, nhằm cố gắng để đạt mục tiêu thông tin cụ thể Đây tốn miền đóng (Closed domain) Ngồi ra, dù có nhiều tảng hỗ trợ xây dựng chatbot luận văn này, tác giả lựa chọn Rasa framework để xây dựng thực nghiệm công cụ chatbot minh họa với lý sau: - Hiện hầu hết tảng lớn Dialogflow (Google), wit.ai, Microsoft Bot Framework… hãng lớn cung cấp, có nhiều cơng cụ xây dựng tích hợp thơng qua API thuật toán liệu người dùng lưu tảng này, khó làm chủ hệ thống việc sử dụng mã nguồn mở Rasa để xây dựng hệ thống Chatbot giúp nắm rõ cơng nghệ phía sau chatbot, làm chủ liệu thông tin người dùng - Rasa thực dễ tiếp cận cho người bắt đầu, người chatbot hay NLP làm quen sử dụng Hầu hết công việc người sử dụng tập trung xây dựng nội dung kịch bản, khả chatbot không cần thiết phải quan tâm đến công nghệ xây dựng - Rasa hoạt động tốt mạnh mẽ, đặc biệt vấn đề xác định ý định người dùng (intent) xác định thực thể (entity) - Mã nguồn Rasa mã nguồn mở, Rasa giúp ta biết xác làm với chatbot mình, chí tùy biến chatbot theo mong muốn thân, ví dụ như: tùy biến hành động (action), định tảng tin nhắn (messenger) chatbot… CHƯƠNG 2: GIỚI THIỆU MỘT SỐ KỸ THUẬT SỬ DỤNG TRONG CHATBOT VÀ RASA FRAMEWORK 2.1 Một số kỹ thuật sử dụng chatbot 2.1.1 Xác định ý định người dùng Intent: điều người dùng mong muốn chatbot thực (hỗ trợ) đưa câu hội thoại Ví dụ: Khi người dùng muốn hỏi thơng tin loại phịng khách sạn: Khách sạn có loại phịng ad? Khách sạn có phịng đơn khơng? Khách sạn có phịng twin khơng? Hoặc người dùng hỏi “What’s the weather like tomorrow?” chatbot cần hiểu ý định họ hỏi thời tiết (request weather) Hình 2.1 Xác định ý định người dùng Intent xác định định cấu trúc (frame) kịch (script) đoạn hội thoại Việc xác định ý định quan trọng chatbot Nếu chatbot xác định sai intent 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 rời bỏ hệ thống Các bước xác định ý định dựa học máy minh họa hình Hình 2.2: Xác định ý định dựa học máy Hệ thống phân lớp ý định người dùng có số bước bản: - Tiền xử lý liệu: Bước tiền xử lý liệu thao tác “làm sạch” liệu như: loại bỏ thông tin dư thừa, chuẩn hoá liệu chuyển từ viết sai tả thành tả, chuẩn hố từ viết tắt… Bước tiền xử lý liệu có vai trị quan trọng hệ thống chatbot Nếu liệu đầu vào có xử lý bước làm tăng khả năng độ xác thông minh cho bot Một số kỹ thuật tiền xử lý: + Tách từ (word segmentation): tách câu thành token + Xử lý từ đồng nghĩa + Xử lý từ gõ sai tả (ví dụ mạng chaamj) + Xử lý từ viết tắt (ví dụ: gõ ip thay iphone) - Trích xuất đặc trưng: Tiếp đến bước trích xuất đặc trưng (feature extraction hay feature engineering) từ liệu làm Trong mơ hình học máy truyền thống (trước mơ hình học sâu áp dụng rộng rãi), bước trích xuất đặc trưng ảnh hưởng lớn đến độ xác mơ hình phân lớp Để trích xuất đặc trưng tốt, cần phân tích liệu tỉ mỉ cần tri thức chuyên gia miền ứng dụng cụ thể Đây bước biểu diễn ngơn ngữ lồi người dạng số cho có nghĩa machine hiểu Một số kỹ thuật trích xuất đặc trưng: + Word2Vec + One-hot Encoding 10 Hình 2.3: Trích xuất thông tin thực thể Các loại thực thể mà chatbot thường hỗ trợ: - Vị trí (Location) - Thời gian (Datetime) - Số (Number) - Địa liên lạc (Contact) - Khoảng cách (Distance) - Khoảng thời gian (Duration) - … Các kỹ thuật thường sử dụng: - Hidden Markov Model - Maximum Entropy - Conditional Random Fields – CRFs… 2.1.3 Quản lý hội thoại Trong phiên trao đổi dài (long conversation) người chatbot, chatbot cần ghi nhớ thông tin ngữ cảnh (context) hay quản lý trạng thái hội thoại (dialog state) Vấn đề quản lý hội thoại (dialoge management) quan trọng để đảm bảo việc trao đổi người máy thơng suốt Vẫn ví dụ hỏi thời tiết trên, chatbot cần có thơng tin trạng thái hội thoại, để phản hồi thông tin cần hỏi “It will be sunny and o 20 C ” 11 Hình 2.4: Quản lý hội thoại Chức thành phần quản lý hội thoại nhận đầu vào từ thành phần NLU, quản lý trạng thái hội thoại (dialogue state), ngữ cảnh hội thoại (dialogue context), truyền đầu cho thành phần sinh ngôn ngữ (Natural Language Generation - NLG) Trạng thái hội thoại (dialog state) lưu lại dựa vào tập luật hội thoại (dialog policy) để định hành động cho câu trả lời bot kịch hội thoại, hay hành động (action) phụ thuộc vào trạng thái (dialog state) trước Hiện nay, 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) kết hợp hai mơ hình 2.1.4 Mơ hình sinh hội thoại cho chatbot Các chatbot mơ hình dựa quy tắc (rule-based): Đây là kiểu kiến trúc mà hầu hết chatbot xây dựng Chúng chọn câu trả lời hệ thống dựa tập hợp quy tắc xác định trước cố định, dựa việc nhận dạng từ vựng văn đầu vào mà không tạo câu trả lời văn Kiến thức sử dụng chatbot người viết mã tay (hard-coded) xếp trình bày mẫu hội thoại Cơ sở liệu quy tắc toàn diện cho phép chatbot trả lời nhiều loại đầu vào người dùng Tuy nhiên, loại mơ hình khơng mạnh lỗi tả ngữ pháp đầu vào người dùng 12 Mơ hình dựa truy xuất (retrieval-based): Một chút khác biệt so với mơ hình dựa quy tắc mơ hình dựa truy xuất (retrieval-based), cung cấp tính linh hoạt truy vấn phân tích tài nguyên có sẵn cách sử dụng API Một chatbot dựa truy xuất lấy số lựa chọn phản hồi từ mục trước áp dụng phương pháp matching cho lựa chọn phản hồi Mô hình sáng tạo (generative-based): tạo câu trả lời theo cách tốt so mơ hình cịn lại, dựa tin nhắn hội thoại người dùng trước Các chatbot giống người sử dụng thuật toán máy học (machine learning) kỹ thuật học sâu (deep learning) nên linh hoạt NLG nâng cao cho phép dự đoán khả xuất từ đến từ khác sửa lỗi ngơn ngữ, chẳng hạn lỗi tả Các thuật toán sử dụng NLG nâng cao tốt việc xử lý từ biểu thức khơng có mẫu đào tạo ban đầu Phương pháp dựa AI dựa công cụ NLP nâng cao để hỗ trợ ngôn ngữ tự nhiên đáp ứng yêu cầu dựa thuật tốn ML tích hợp hệ thống để truy xuất thơng tin động Độ xác chatbot thấp bắt đầu tăng lên theo thời gian 2.2 Rasa framework 2.2.1 Giới thiệu Rasa Open source tảng học máy để tạo trợ lý ảo dựa văn giọng nói Tính đến 8/2020, Rasa download triệu lần, có cộng đồng diễn đàn 10.000 thành viên 450 người đóng góp vào mã nguồn Các chức Rasa: Rasa Open Source tảng có khả hiểu ngơn ngữ tự nhiên, quản lý đối thoại tích hợp Rasa X cơng cụ miễn phí sử dụng để cải thiện trợ lý theo ngữ cảnh xây dựng Rasa Open Source Cùng với nhau, chúng bao gồm tất tính để tạo trợ lý chatbot dựa văn giọng nói - Hiểu thông điệp (Understand messages): biến văn dạng tự ngôn ngữ thành liệu có cấu trúc Hỗ trợ đơn đa ý định (multiple intents) thực thể đào tạo trước tùy chỉnh (pre-trained and custom entities) - Duy trì trị chuyện (Hold conversations): ghi nhớ ngữ cảnh cách sử dụng quản lý hội thoại dựa máy học 13 - Học tập tương tác (Interactive learning): tạo liệu đào tạo cách nói chuyện với chatbot bạn cung cấp phản hồi mắc lỗi - Kết nối với tảng nhắn tin thường dùng (Connect): tích hợp chatbot bạn Slack, Facebook, Google Home, … - Tích hợp lệnh gọi API (Integrate): sử dụng hành động tùy chỉnh Rasa để tương tác với API hệ thống khác - Xem thích hội thoại (View and annotate conversations): lọc, gắn cờ sửa trò chuyện để liên tục cải thiện chatbot bạn Rasa có đầy đủ thành phần hệ thống chatbot bao gồm: NLU (hiểu ngôn ngữ tự nhiên), Dialogue Management (Quản lý hội thoại) NLG (sinh ngôn ngữ tự nhiên) 2.2.2 Cấu trúc chương trình Rasa Cấu trúc chương trình Rasa hình dưới: Các thành phần chương trình diễn giải sau: init .py file trống giúp python tìm thấy hành động chatbot actions.py mã cho hành động tùy chỉnh chatbot config.yml ‘*’ cấu hình NLU mơ hình Core chatbot credentials.yml chi tiết để kết nối với dịch vụ khác data/nlu.md ‘*’ liệu đào tạo NLU chatbot data/stories.md ‘*’ stories domain.yml ‘*’ miền chatbot endpoints.yml chi tiết để kết nối với kênh fb messenger models/.tar.gz mơ hình(model) ban đầu bạn 2.2.3 Intent Trong Rasa, thực khai báo Intent (ý định người dùng) domain.yml Chẳng hạn số ý định người dùng tương tác với chatbot chào hỏi, tạm biệt, từ chối, đặt phòng, … 14 2.2.4 Entity Trong Rasa, thực khai báo Entity (thực thể) domain.yml Chẳng hạn số thực thể số, vị trí, kiểu phịng 2.2.5 Stories Rasa stories dạng liệu đào tạo sử dụng để đào tạo mơ hình quản lý hội thoại Rasa Một story trình bày trò chuyện người dùng trợ lý AI, chuyển đổi thành định dạng cụ thể thơng tin đầu vào người dùng thể dạng ý định (intents) tương ứng (và thực thể cần) phản hồi chatbot thể dạng tên hành động (action) tương ứng Một ví dụ đào tạo cho hệ thống đối thoại Rasa Core gọi câu chuyện Đây ví dụ đoạn hội thoại định dạng câu chuyện Rasa: 2.2.6 Actions Trong viết story, ta gặp hai loại hành động: hành động phát biểu (utterance actions) hành động tùy chỉnh (custom actions) Hành động phát biểu thông điệp cố định (hardcoded) mà bot phản hồi Trong đó, hành động tùy chỉnh liên quan đến mã tùy chỉnh (custom code) thực thi 2.2.7 Policies Trong file config.yml có khóa policies mà ta sử dụng để tùy chỉnh sách mà chatbot sử dụng 2.2.8 Slots Slots nhớ chatbot Chúng hoạt động kho lưu trữ khóa-giá trị (keyvalue) sử dụng để lưu trữ thơng tin mà người dùng cung cấp (ví dụ: thành phố họ) thông tin thu thập giới bên ngồi (ví dụ: kết truy vấn sở liệu) 2.3 Kết luận chương Trong chương luận văn giới thiệu kỹ thuật quan trọng sử dụng chatbot, đề cập đến thành phần Rasa framework Đây sở để áp dụng xây dựng toán chatbot trả lời thông tin khách sạn 15 CHƯƠNG 3: XÂY DỰNG CÔNG CỤ HỎI ĐÁP THÔNG TIN KHÁCH SẠN 3.1 Giới thiệu toán Trong chương tác giả lựa chọn tốn trả lời thơng tin khách sạn nhằm cung cấp thông tin, tư vấn hỗ trợ bán hàng cho khách sạn, với khả hoạt động liên tục 24/7, hỗ trợ người việc trả lời câu hỏi liên quan đến khách sạn Trên sở nghiên cứu câu hỏi thường gặp, toán tập trung vào số chức chatbot sau: - Chào hỏi - Tạm biệt - Thông tin loại phịng khách sạn - Thơng tin câu hỏi (FAQ) khách sạn - Thông tin chung khách sạn - Đặt phịng 3.1.1 Mơ hình huấn luyện cho chatbot Trong Rasa, messages xử lý chuỗi thành phần (components) Các thành phần thực thi “pipeline” xác định file config.yml Việc lựa chọn NLU pipeline cho phép ta tùy chỉnh mơ hình kết hợp tập liệu Một pipeline thường bao gồm ba phần chính: - Tokenization: Tách câu thành danh sách từ tố (token), câu tách thành danh sách từ có nghĩa - Featurization: Ta cần định xem có nên sử dụng thành phần cung cấp tính nhúng từ đào tạo trước (pre-trained word embeddings) hay nhúng giám sát (Supervising Embeddings) + Pre-trained Embeddings: phân loại ý định người dùng dựa tập liệu lọc trước, sau sử dụng để thể từ thông điệp người dùng dạng từ nhúng hay biểu diễn ngôn ngữ dạng vector 16 + Supervised Embeddings: Với phương pháp nhúng giám sát ta tự tạo tập liệu training riêng từ đầu Với việc khó tìm mơ hình đào tạo trước cho ngôn ngữ tiếng Việt, với tốn miền lĩnh vực đóng trả lời thơng tin tin khách sạn đảm bảo tính xác nhiều tránh dư thừa liệu Do đó, tác giả lựa chọn phương pháp - Entity Recognition / Intent Classification / Response Selectors: Tùy thuộc vào liệu, ta muốn thực phân loại ý định, nhận dạng thực thể lựa chọn phản hồi Hoặc ta muốn kết hợp nhiều nhiệm vụ Rasa hỗ trợ số thành phần cho nhiệm vụ Ở tác giả lựa chọn thành phần sau: DIETClassifier: DIET (Dual Intent Entity Transformer) kiến trúc đa tác vụ để phân loại ý định nhận dạng thực thể Kiến trúc dựa chuyển đổi chia sẻ cho hai nhiệm vụ Một chuỗi nhãn thực thể dự đốn thơng qua lớp gắn thẻ trường ngẫu nhiên có điều kiện (Conditional Random Field - CRF) tương ứng với chuỗi đầu vào tokens ResponseSelector: Thành phần sử dụng để xây dựng mơ hình truy xuất phản hồi nhằm dự đoán trực tiếp phản hồi bot từ tập hợp phản hồi 3.1.2 Đánh giá hiệu chatbot Dưới số phương pháp đánh giá mơ hình phân loại Rasa + Accuracy + Confusion matrix + True/False Positive/Negative + Precision / Recall + F1- Score 3.2 Xây dựng Chương trình 3.2.1 Nguồn liệu xây dựng Nguồn liệu thực nghiệm, tác giả thu thập từ câu hỏi, câu trả lời, câu hỏi thường gặp số khách sạn, ngồi có tham khảo thêm số chatbot facebook fanpage Để làm giàu cho tập liệu huấn luyện, tác giả bổ sung thêm câu hỏi Intent, đảm bảo Intent quan trọng mang tính hỏi đáp nhiều có 10 câu hỏi, intent khác có tối thiểu câu hỏi 17 3.2.2 Xây dựng ý định Nhiệm vụ xây dựng tập ý định theo nguyên tắc mẫu câu hỏi mà người dùng có ý định hay sử dụng Cần định nghĩa ý định khớp với ngôn ngữ tự nhiên nhất, hệ thống tác giả định nghĩa 50 ý định với nguồn liệu thực nghiệm 3.2.3 Xây dựng thực thể Entities thực thể thơng tin đặc trưng quan trọng trích xuất theo ý định người dùng Slots thơng tin trích chọn câu nói người dùng hệ thống lưu lại nhớ hệ thông để dùng hành động để đưa câu trở lời phù hợp theo ngữ cảnh, tránh việc phải hỏi lại thông tin mà người dùng cung cấp từ trước Tác giả xây dựng thực thể vị trí tên loại phịng khách sạn 3.2.4 Xây dựng câu trả lời Khi người dùng đưa câu hỏi, yêu cầu Chatbot phải có nhiệm vụ đưa câu trả lời đáp ứng câu hỏi yêu cầu Để tạo tính tự nhiên phù hợp với độ tuổi hội thoại ta xây dựng nhiều tập mẫu câu trả lời để Chatbot lựa phù hợp với lứa tuổi, giới tính có thơng tin khách hàng khơng chọn ngẫu nhiên mẫu câu trả lời để tạo cảm giác không bị nhàm chán Đối với ý định tác giả xây dựng 1-2 câu trả lời dựa vào liệu mẫu 3.2.5 Xây dựng khung kịch Với ý định người dùng tương ứng với tập mẫu câu trả lời xây dựng sẵn, ta xây dựng khung kịch cho Chatbot dựa việc xếp thành đoạn đối thoại 3.2.6 Đào tạo cho chatbot Tiến hành train cho model sử dụng NLU data kịch (stories), mơ hình đào tạo lưu dạng thư mục /models 3.2.7 Kiểm tra chatbot Rasa Open Source cho phép ta kiểm tra hội thoại từ đầu đến cuối cách chạy hội thoại kiểm tra để đảm bảo NLU Core đưa dự đốn xác Để làm điều này, ta cần số stories định dạng end-to-end, bao gồm đầu NLU văn gốc Theo mặc định, Rasa lưu hội thoại kiểm tra vào 18 tests/conversation_tests.md Ta kiểm tra chatbot cách chạy lệnh: $ rasa test 3.3 Kết thực nghiệm 3.3.1 Môi trường thực nghiệm Chương trình thử nghiệm thiết kế, xây dựng thực môi trường hệ điều hành Windows với tảng framework Rasa 1.10.12, dựa ngơn ngữ lập trình python 3.7 Giao điện người dùng sử dụng tảng web/ứng dụng chat Telegram 3.3.2 Thiết kế Hình minh hoạ kiến trúc chung tốn Xin chào NLU DM Xin chào, em giúp cho anh/chị ạ? API API NLG Front-End Hình 3.1: Kiến trúc chung hệ thống Front-end: sử dụng giao diện web trình nhắn tin phổ biến (Facebook Messenger/Telegram…) Với mục tiêu minh họa, sử dụng giao diện web chat Telegram - Mỗi có người dùng gửi tin nhắn cho chatbot nội dung tin gửi POST request đến webhook sử dụng để lắng nghe kiện - RASA nhận diện ý định Sau thu message người dùng sử dụng RASA để hiểu ý định người dùng thông tin thực thể - Thông tin tiếp tục chuyển đến DM Rasa, tùy theo ý định thông tin thực thể với thơng tin theo dõi trị chuyện xảy nay, để dự đoán phản ứng thích hợp - NLG sinh câu trả lời dựa vào liệu từ thành phần DM theo mẫu câu template xây dựng trước kết API - Gửi tin nhắn qua phản hồi trả cho người dùng 19 3.3.3 Kết thực nghiệm a) Kết thử nghiệm Kết đánh giá NLU model Rasa Core cho kết Hình 3.2: Intent Confusion matrix Bảng 3.1: đánh giá trích chọn thơng tin thực thể (entity) precision recall f1-score support room_type 0.85 0.75 0.79 location 1.00 0.58 0.74 17 20 Bảng 3.2: đánh giá mơ hình Rasa Core precision recall f1-score support utter_faq_restaurant_time 1.00 0.64 0.78 11 utter_faq_safety_box 1.00 0.75 0.86 utter_faq_bank 1.00 1.00 1.00 utter_rooms 0.80 0.80 0.80 utter_faq_contact_number 1.00 1.00 1.00 10 utter_faq_deposit 1.00 0.67 0.80 utter_ask_type_rooms 0.86 1.00 0.92 utter_faq_hospital 1.00 1.00 1.00 utter_faq_baby_food 1.00 1.00 1.00 14 utter_faq_check_out_late 1.00 0.78 0.88 utter_faq_transport 1.00 0.83 0.91 utter_faq_restaurant 1.00 0.75 0.86 utter_faq_reception_time 0.70 1.00 0.82 14 utter_faq_pet_policy 1.00 1.00 1.00 utter_deluxe_details 1.00 1.00 1.00 utter_faq_check_in_time 0.71 0.94 0.81 16 utter_faq_massage 1.00 1.00 1.00 13 utter_faq_healthcare 1.00 1.00 1.00 utter_hotel_info 0.92 1.00 0.96 11 utter_faq_luggage 1.00 0.90 0.95 10 utter_faq_smoking_room 1.00 1.00 1.00 book_room_form2 1.00 0.95 0.97 37 utter_greet 1.00 1.00 1.00 utter_faq_baby_age 1.00 0.91 0.95 11 utter_faq_nearest_airport 1.00 1.00 1.00 utter_faq_meeting_room 1.00 0.88 0.93 utter_faq_baby_chair 1.00 1.00 1.00 utter_faq_people_rooms 1.00 1.00 1.00 utter_faq_baby_play_area 0.89 1.00 0.94 action_listen 0.98 1.00 0.99 401 utter_faq_delegation_policy 1.00 1.00 1.00 utter_faq_breakfast_time 0.78 0.64 0.70 11 21 utter_faq_check_in_soon 1.00 0.57 0.73 14 utter_faq_swimming_pool 1.00 1.00 1.00 utter_faq_cancellation_policy 1.00 1.00 1.00 utter_suite_details 1.00 1.00 1.00 utter_faq_baby_cot 1.00 1.00 1.00 utter_family_details 1.00 0.50 0.67 utter_faq_parking 1.00 0.80 0.89 10 utter_faq_check_out_time 0.62 0.59 0.61 17 utter_faq_parking_cost 0.73 1.00 0.85 11 utter_faq_breakfast 0.89 1.00 0.94 utter_faq_restaurant_vegetarian 1.00 1.00 1.00 Tính chung, kết test tập liệu test end-to-end cho độ xác khoảng 89% Correct: 731 / 814 F1-Score: 0.906 Precision: 0.926 Accuracy: 0.899 b) Test giao diện người dùng cuối Thực thử nghiệm tương tác với Chatbot với số câu câu hỏi gần với kịch đào tạo cho Chatbot 3.4 Đánh giá Từ kết thực nghiệm rút số đánh sau: - Xác định ý định (intent) có ý nghĩa quan trọng chatbot Đối với tốn miền đóng cần xác định rõ ràng intent, xây dựng tập liệu đủ lớn, gán nhãn tiến hành training - Xây dựng liệu đào tạo, training cho chatbot với kịch cần thiết độ xác cao chatbot - Chatbot ứng dụng AI có khả đáp ứng tốt với kịch dựng sẵn, đào tạo Đối với kịch nằm ngồi kịch dựng sẵn, tăng cường khả cho chatbot cách điều hướng người dùng câu mặc định dạng giao diện menu lựa chọn - Việc xác định phản hồi đa ý định thực việc kết hợp ý định 22 - Qua tốn thực nghiệm thấy áp dụng tốn Chatbot cho việc hỗ trợ trả lời thơng tin khách sạn khả thi, có tính thực tiễn cao, hoàn toàn áp dụng thực tiễn 3.5 Kết luận chương Trong chương luận văn mơ tả bước xây dựng chương trình thực nghiệm từ việc lựa chọn nguồn liệu, xây dựng ý định, thực thể kịch trả lời Kết việc huấn luyện test liệu cho kết cao tập liệu huấn luyện test Huấn luyện nhiều liệu độ xác cao 23 KẾT LUẬN Đề tài thực nghiên cứu số kiến thức bao gồm kiến trúc nhiệm vụ thành phần chatbot, số thuật toán áp dụng vào việc xây dựng chatbot để giải tốn theo hướng tiếp cận miền đóng, cụ thể lĩnh vực khách sạn du lịch Dựa vào ta áp dụng xây dựng chatbot giải toán hỗ trợ người dùng nhiều lĩnh vực thực tế Các vấn đề mà luận văn đạt được: - Nghiên cứu tìm hiểu, trình bày cách khái quát hệ thống chatbot, thành phần, kỹ thuật áp dụng chatbot - Tìm hiểu lựa chọn mơ hình chatbot phù hợp, từ định xây dựng bot theo mơ hình nào, phương pháp phù hợp cho yêu cầu toán Cụ thể với toán trả lời thông tin khách sạn sử dụng phương pháp tiếp cận dạng chat văn (text-based), miền đóng (closed-domain), hướng mục tiêu (task- oriented), thiết kế dựa AI - Khảo sát, nghiên cứu, xây dựng chatbot thực nghiệm xử lý ngôn ngữ tự nhiên (NLP) tiếng Việt sử dụng Rasa framework Thử nghiệm đánh giá mô hình RASA liệu xây dựng cho kết độ xác cao (khoảng 89%) Chatbot hỗ trợ tương đối nhiều ý định (50 intents) có kịch minh họa hỗ trợ đa ý định (multi-intent) - Cài đặt triển khai ứng dụng môi trường hệ điều hành Windows với tảng Rasa framework 1.10.12, ngơn ngữ lập trình python 3.7, sử dụng chat client dạng web telegram Sản phẩm demo có làm tiền đề cho việc phát triển, hoàn thiện sản phẩm thời gian tới Sản phẩm cho thấy khả xây dựng chatbot ứng dụng AI lĩnh vực khác hoàn toàn khả thi Một số hạn chế: - Chưa xây dựng đa dạng hóa câu trả lời - Chatbot hỗ trợ dạng hội thoại text, chưa hỗ trợ voice - Chưa có khả trả lời câu hỏi phức tạp - Chưa xây dựng giao diện quản trị để tự tổ chức xây dựng intent, entity, kịch bản… nhằm mục đích cung cấp cho nhiều khách sạn khác Định hướng nghiên cứu tiếp theo: - Xây dựng thêm đa dạng hóa câu trả lời ngẫu nhiên theo ý định - Tích hợp speech to text text to speech cho chatbot để hỗ trợ voice 24 - Xây dựng bot có khả trả lời câu hỏi phức tạp - Xây dựng giao diện quản trị tự tổ chức quản lý intent, entity, kịch bản… để hỗ trợ cho khách sạn tự xây dựng chatbot riêng mà khơng cần hiểu nhiều lập trình ... hiểu sâu chatbot kỹ thuật giúp chatbot trả lời câu hỏi xử lý theo ngôn ngữ tự nhiên (NLP), em định chọn đề tài ? ?Nghiên cứu, xây dựng Chatbot hỏi đáp thông tin khách sạn sử dụng Rasa Framework? ??... áp dụng xây dựng toán chatbot trả lời thơng tin khách sạn 15 CHƯƠNG 3: XÂY DỰNG CƠNG CỤ HỎI ĐÁP THÔNG TIN KHÁCH SẠN 3.1 Giới thiệu toán Trong chương tác giả lựa chọn tốn trả lời thơng tin khách. .. chức chatbot sau: - Chào hỏi - Tạm biệt - Thông tin loại phịng khách sạn - Thơng tin câu hỏi (FAQ) khách sạn - Thông tin chung khách sạn - Đặt phịng 3.1.1 Mơ hình huấn luyện cho chatbot Trong Rasa,