Theo xu thế phát triển thị trường, vấn đề trao đổi thông tin thông qua các kênh truyền thông ngày càng phổ biến. Đặc biệt, trong thời điểm dịch bệnh virút Corona (COVID19) bùng phát, nhu cầu về trao đổi, tư vấn, giải đáp thắc mắc trực tuyến (thông qua kênh chat, fanpage, message, website…) lại càng được nâng cao. Trong lĩnh vực Giáo dục cũng vậy, việc giảng dạy, trao đổi thông tin với sinh viên trực tuyến đã trở nên thông dụng. Vậy làm thế nào để các Thầy Cô có thể trả lời, giải đáp mọi lúc mọi nơi các câu hỏi, mà đôi khi lại trùng lắp ý định lẫn nhau (do cách diễn dạt câu từ khác nhau) một cách nhanh chóng, chính xác, đỡ tốn nhiều công sức ? Câu hỏi trên thôi thúc tôi quyết định thực hiện luận văn thạc sĩ này nhằm nghiên cứu, xây dựng một Hệ thống Cố vấn Học tập ảo với vai trò hỗ trợ các Thầy Cô trong việc giải đáp các câu hỏi, thắc mắc cho các Sinh viên. Hệ thống sẽ được xây dựng trên miền dữ liệu đóng – là phạm vi mà Hệ thống sẽ chỉ trả lời các câu hỏi liên quan đến một lĩnh vực nào đó (như giáo dục, bán hàng, y tế, …), cụ thể sẽ trả lời chỉ các câu hỏi liên quan đến Quy chế Học vụ của Trường Đại học Cần Thơ. Luận văn tập trung nghiên cứu, tìm hiểu các kỹ thuật xử lý ngôn ngữ tự nhiên, cách tìm câu trả lời theo mô hình truy xuất thông tin dựa trên các thuật toán máy học, các thành phần cấu tạo nên một chatbot dựa trên framework Rasa – là hệ thống trả lời tự động với mã nguồn mở Rasa. Áp dụng các kiến thức đã tìm hiểu để xây dựng thành một Hệ thống Cố vấn Học tập ảo có thể ứng dụng được vào thực tế
CHẤP THUẬN CỦA HỘI ĐỒNG Luận văn này, với đề tựa “Xây dựng Hệ thống Cố vấn Học tập Ảo”, học viên Dương Nguyễn Phú Cường thực theo hướng dẫn PGs.Ts Nguyễn Thái Nghe Luận văn báo cáo Hội đồng chấm luận văn thông qua ngày …………… Ủy viên (ký tên) Thư ký (ký tên) TS PHAN ANH CANG TS NGUYỄN THANH HẢI Phản biện (ký tên) Phản biện (ký tên) TS LƯU TIẾN ĐẠO TS DƯƠNG VĂN HIẾU Cán hướng dẫn (ký tên) Chủ tịch Hội đồng (ký tên) PGs Ts NGUYỄN THÁI NGHE TS TRƯƠNG QUỐC ĐỊNH i LỜI CẢM ƠN Đầu tiên em xin gởi lời cám ơn đến Thầy PGs Ts Nguyễn Thái Nghe tận tình thu nhận, hướng dẫn cung cấp dẫn quý báu cho em suốt trình thực luận văn tốt nghiệp Em xin bày tỏ lời cám ơn chân thành đến Thầy Cô khoa Công Nghệ Thông Tin Truyền Thông Trường Đại học Cần Thơ tận tình giảng dạy kiến thức bổ ích suốt khóa học cao học vừa qua Xin gởi lời cám ơn đến Trung tâm Công nghệ Phần mềm Đại học Cần thơ tạo điều kiện cho em tham gia khóa học cao học vừa qua, giúp em nâng cao nhiều kiến thức Cuối cùng, em xin gởi lời cám ơn đến gia đình, người thân, đồng nghiệp bạn bè thường xuyên quan tâm, truyền động lực, động viên, chia sẻ kinh nghiệm cung cấp tài liệu hữu ích thời gian học tập, suốt trình thực luận văn tốt nghiệp Cần Thơ, ngày tháng năm 2020 Ký tên Dương Nguyễn Phú Cường ii TÓM TẮT Theo xu phát triển thị trường, vấn đề trao đổi thông tin thông qua kênh truyền thông ngày phổ biến Đặc biệt, thời điểm dịch bệnh virút Corona (COVID-19) bùng phát, nhu cầu trao đổi, tư vấn, giải đáp thắc mắc trực tuyến (thông qua kênh chat, fanpage, message, website…) lại nâng cao Trong lĩnh vực Giáo dục vậy, việc giảng dạy, trao đổi thông tin với sinh viên trực tuyến trở nên thông dụng Vậy làm để Thầy Cơ trả lời, giải đáp lúc nơi câu hỏi, mà lại trùng lắp ý định lẫn (do cách diễn dạt câu từ khác nhau) cách nhanh chóng, xác, đỡ tốn nhiều cơng sức ? Câu hỏi thúc định thực luận văn thạc sĩ nhằm nghiên cứu, xây dựng Hệ thống Cố vấn Học tập ảo với vai trị hỗ trợ Thầy Cơ việc giải đáp câu hỏi, thắc mắc cho Sinh viên Hệ thống xây dựng miền liệu đóng – phạm vi mà Hệ thống trả lời câu hỏi liên quan đến lĩnh vực (như giáo dục, bán hàng, y tế, …), cụ thể trả lời câu hỏi liên quan đến Quy chế Học vụ Trường Đại học Cần Thơ Luận văn tập trung nghiên cứu, tìm hiểu kỹ thuật xử lý ngôn ngữ tự nhiên, cách tìm câu trả lời theo mơ hình truy xuất thơng tin dựa thuật toán máy học, thành phần cấu tạo nên chatbot dựa framework Rasa – hệ thống trả lời tự động với mã nguồn mở Rasa Áp dụng kiến thức tìm hiểu để xây dựng thành Hệ thống Cố vấn Học tập ảo ứng dụng vào thực tế iii ABSTRACTS According to the market development trend, the need to exchange information through communication channels is increasingly popular Especially, during the outbreak of Corona epidemic, the demand for online exchange, consultation, and inquiry answers (via chat, fanpages, messages, websites ) has been enhanced In Education, teaching and online exchanging information with students have become more and more popular So how can the teachers answer and answer questions anytime, anywhere quickly accurately as well as take a little effort ? The above question inspired me to this master's thesis in order to research and build a Virtual Learning Advisory System with the role of supporting teachers in answering questions for students The system will be built on closed data domain – it means the System will only answer questions related to a certain field (such as education, sales, health, ) In particular, my system will only answer questions related to the Academic Policy of Can Tho University The thesis researches into the understanding of natural language processing techniques, how to find answers according to the information retrieval model based on machine learning algorithms and the components of a chatbot based on framework Rasa - an open source autoresponder system From the above knowledge, we build a Virtual Learning Advisory System which can make it practical iv LỜI CAM ĐOAN Tôi xin cam đoan luận văn “Xây dựng Hệ thống Cố vấn Học tập ảo“ hoàn thành tơi nghiên cứu, tìm hiểu phát triển hướng dẫn PGs Ts Nguyễn Thái Nghe Luận văn chép từ tài liệu, cơng trình nghiên cứu người khác mà không ghi rõ nguồn gốc tài liệu tham khảo Các kết nghiên cứu chưa dùng cho luận văn cấp khác Tôi xin chịu trách nhiệm lời cam đoan Ngày /……/2020 Ký tên Dương Nguyễn Phú Cường v MỤC LỤC LỜI CẢM ƠN ii TÓM TẮT iii ABSTRACTS iv LỜI CAM ĐOAN v MỤC LỤC vi DANH MỤC BẢNG viii DANH MỤC HÌNH ix DANH MỤC TỪ VIẾT TẮT xii Chương MỞ ĐẦU 1.1 1.2 Đặt vấn đề Mục tiêu nghiên cứu 1.2.1 1.2.2 Mục tiêu tổng quát Mục tiêu cụ thể 1.3 Đối tượng phạm vi nghiên cứu 1.3.1 1.3.2 1.3.3 Đối tượng nghiên cứu Phương pháp nghiên cứu Phạm vi nghiên cứu 1.4 Bố cục luận văn Chương CƠ SỞ LÝ THUYẾT 2.1 Tổng quan hệ thống chatbot 2.1.1 2.1.2 Giới thiệu Các thành phần hệ thống chatbot 2.2 Luồng hoạt động xử lý hệ thống chatbot 2.2.1 2.2.2 2.2.3 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) 12 Thành phần sinh ngôn ngữ (NLG) 15 2.3 Tổng quan Framework Rasa 17 2.3.1 Giới thiệu 17 2.3.2 Các thành phần Rasa Framework 18 Chương PHƯƠNG PHÁP NGHIÊN CỨU 24 3.1 Xử lí ngơn ngữ tự nhiên 24 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 Làm liệu 24 Tách từ 25 Chuẩn hóa từ 26 Loại bỏ Stopwords 26 Vectơ hóa văn 28 3.2 Xác định ý định thực thể câu hỏi 31 3.2.1 Xác định ý định câu hỏi 31 vi 3.2.2 Xác định thực thể từ nội dung (Trích xuất đặc trưng) 32 3.3 Phân loại câu hỏi kỹ thuật học sâu (Deep Learning) 36 3.3.1 Mạng nơron nhân tạo (Artificial Neural Network – ANN) 36 3.3.2 Mạng Multi Player Perceptron (MLP) 39 3.3.3 Mạng nơ ron hồi quy RNN 40 3.3.4 Vấn đề lưu trữ thông tin ngữ cảnh phụ thuộc lâu dài 43 3.3.5 Mạng Long Short-Term Memory (LSTM) 44 3.3.6 Phân tích mơ hình LSTM 46 3.3.7 Quy trình hoạt động mơ hình mạng LSTM thông qua bước cụ thể sau: 47 Chương KẾT QUẢ THỰC NGHIỆM 50 4.1 Xây dựng Hệ thống Cố vấn Học tập ảo 50 4.1.1 4.1.2 4.1.3 4.1.4 Thiết kế Tổng thể 50 Cấu trúc Hệ thống chatbot 51 Ứng dụng Rasa Framework xây dựng chatbot 52 Xây dựng liệu cho chatbot 53 4.2 4.3 Huấn luyện mô hinh 57 Thực nghiệm 58 4.3.1 4.3.2 Môi trường thực nghiệm 58 Test thực nghiệm 58 4.4 Demo hệ thống 61 4.4.1 Miền giao diện Backend 61 4.4.2 Phần Giao diện Người dùng 66 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 71 5.1 5.2 Kết luận 71 Hướng phát triển đề tài 71 TÀI LIỆU THAM KHẢO 73 vii DANH MỤC BẢNG Bảng 2.1: Frame cho chatbot hỏi thông tin khách hàng 15 Bảng 2.2: Ví dụ sinh ngôn ngữ dựa liệu [5] 15 Bảng 2.3: Phương pháp sinh ngôn ngữ dựa tập mẫu câu trả lời 16 Bảng 3.1: Danh sách stopwords tiếng Việt, xem chi tiết đường link [11] 28 Bảng 3.2: Danh sách cách thực thể trích xuất thư viện Facebook Duckling [19] 34 Bảng 3.3: Mơ tả liệu tốn POS Tag [21] 35 Bảng 3.4: Mơ tả liệu tốn Chunking 36 Bảng 4.1: Khung kịch hội thoại ý định Cảnh báo học vụ 53 Bảng 4.2: Khung kịch hội thoại khác ý định Cảnh báo học vụ 54 Bảng 4.3: đoạn javascript cho phép nhúng chatbot widget 66 viii DANH MỤC HÌNH Hình 1.1: Quyết định ban hành Quy định Công tác Học vụ dành cho Sinh viên trình độ Đại học Chính Quy) - số 2093/QĐ-ĐHCT - ngày 17/08/2020 Hình 2.1: Các thành phần hệ thống chatbot Hình 2.2: Luồng hoạt động xử lý hệ thống chatbot Hình 2.3: Các bước xử lý pipeline NLU [3] Hình 2.4: Các bước xử lý NLU Hình 2.5: Sơ đồ xử lý Ngôn ngữ tự nhiên áp dụng hệ thống Tiếng việt 10 Hình 2.6: Các bước Tiền xử lý câu chữ Tiếng Việt 11 Hình 2.7: Ví dụ trích xuất thơng tin từ người dùng 11 Hình 2.8: Mơ hình quản lý trạng thái định action hội thoại 13 Hình 2.9: Quản lý hội thoại theo mơ hình máy trạng thái hữu hạn FSA [4] 14 Hình 2.10: Phương pháp sinh ngơn ngữ Plan-based 16 Hình 2.11: Phương pháp sinh ngôn ngữ Class-based 16 Hình 2.12: Sơ đồ hoạt động thành phần Rasa Framework 17 Hình 2.13: Luồng hoạt động thành phần Rasa Framework 18 Hình 2.14: File config.yml - quản lý cấu hình Rasa Framework 19 Hình 2.15: File nlu.md - ví dụ cấu hình ý định người dùng 19 Hình 2.16: File config.yml - cấu hình cho Rasa Core 20 Hình 2.17: Ví dụ thiết lập file domain.yml cho Rasa Core 21 Hình 2.18: Ví dụ kịch Xét công nhận tốt nghiệp 22 Hình 2.19: Ví dụ Custom Action gọi API lấy danh sách học phần 23 Hình 2.20: Ví dụ thiết lập cổng chạy Custom Action 5055 23 Hình 3.1: Các bước Tiền xử lý liệu 24 Hình 3.2: Loại bỏ ký tự gây nhiễu (noise filter) 24 Hình 3.3: Ví dụ phân tách từ theo từ loại 26 Hình 3.4: Loại bỏ stopword cách dùng từ điển 27 Hình 3.5: Danh sách 50 từ xuất nhiều lần Tiếng Anh [10] 27 Hình 3.6: Vector hóa từ 28 Hình 3.7: Kết thực nghiệm từ ngữ cảnh [13] 29 Hình 3.8: Mơ hình CBOW Skip-Ngram [15] 29 Hình 3.9: Hình biểu diễn câu khơng gian vector [18] 30 Hình 3.10: Ví dụ biến thể cách đặt câu ý định 32 Hình 3.11: Kết sau tách từ 34 Hình 3.12: Kết sau gán nhãn POS Tag 35 Hình 3.13: Kết sau tiến hành chunking 36 Hình 3.14: Kết sau xác định Thực thể có tên NER 36 Hình 3.15: Một nơ rơn sinh học [16] 37 Hình 3.16: Một nơ ron nhân tạo [16] 37 Hình 3.17: Hàm sigmoid [16] 38 Hình 3.18: Hàm [16] 39 Hình 3.19: Hàm ReLU 39 Hình 3.20: Mạng MLP tầng 40 Hình 3.21: Mạng RNN 41 Hình 3.22: Mạng RNN chiều 42 ix Hình 3.23: Mạng RNN nhiều tầng 43 Hình 3.24: RNN phụ thuộc short-term [17] 43 Hình 3.25: RNN phụ thuộc long-term [17] 44 Hình 3.26: Mơ hình tính Ht RNN [17] 45 Hình 3.27: Các mơ-đun lặp mạng RNN chứa layer [17] 45 Hình 3.28: Các ký hiệu sử dụng mạng LSTM [17] 46 Hình 3.29: Cell state LSTM giống băng chuyền [17] 46 Hình 3.30: Cổng trạng thái LSTM [17] 47 Hình 3.31: LSTM focus f (forget gate) [17] 47 Hình 3.32: LSTM focus I hàm [17] 48 Hình 3.33: LSTM focus C [17] 48 Hình 3.34: LSTM focus O [17] 49 Hình 4.1: Mơ hình hoạt động Hệ thống Cố vấn Học tập ảo 50 Hình 4.2: Cấu trúc Hệ thống chatbot Cố vấn học tập 51 Hình 4.3: Cấu hình Rasa Pipeline sử dụng Hệ thống 53 Hình 4.4: Các bước xây dựng chatbot 54 Hình 4.5: Ví dụ tạo ý định người dùng 55 Hình 4.6: Danh sách slot thông tin người dùng 55 Hình 4.7: Mẫu câu trả lời tương ứng cho ý định hỏi Cảnh báo học vụ 55 Hình 4.8: Ví dụ Default action 56 Hình 4.9: Ví dụ Utter Action 56 Hình 4.10: Custom action truy vấn Danh sách Học phần 57 Hình 4.11: Kịch hỏi điều kiện xét tốt nghiệp 57 Hình 4.12: Chạy câu lệnh train mơ hình sử dụng Rasa Framework 58 Hình 4.13: Kết thực nghiệm 58 Hình 4.14: Bộ liệu test ngẫu nhiên 59 Hình 4.15: Bộ liệu test ngẫu nhiên 59 Hình 4.16: Hình ma trận ước lượng nhầm lẫn xây dựng liệu intent 60 Hình 4.17: Hình ước lượng độ xác tập liệu training intent 61 Hình 4.18: Chức Cấu hình kịch (stories) Người Máy dành cho Quản trị Hệ thống 62 Hình 4.19: Cấu hình phản hồi với Ảnh (images) Nút (buttons) tương tác với người dùng 62 Hình 4.20: Cấu hình gán nhãn, gắn slots trích xuất thơng tin thực thể 63 Hình 4.21: Cấu hình từ viết tắt, đồng nghĩa 63 Hình 4.22: Kiểm tra kết xác định ý định người dùng 64 Hình 4.23: Quản lý đoạn hội thoại người máy lịch sử 64 Hình 4.24: Chức giúp quản trị viên tự cấu hình lại ý định huấn luyện lại mơ hình 65 Hình 4.25: Chức cấu hình nhiều biến thể cho câu trả lời 65 Hình 4.26: Giao diện chatbot widget trang web trạng thái đóng 66 Hình 4.27: Giao diện chatbot widget trang web trang thái mở 67 Hình 4.28: Ví dụ đoạn hội thoại hỏi cảnh báo học vụ - phần chào hỏi 68 Hình 4.29: Ví dụ đoạn hội thoại cảnh báo học vụ 68 Hình 4.30: Ví dụ đoạn hội thoại cảnh báo học vụ 69 Hình 4.31: Ví dụ đoạn hội thoại chatbot phản hồi hình ảnh 69 x ... hoạt động Hệ thống Cố vấn Học tập ảo 50 Hình 4.2: Cấu trúc Hệ thống chatbot Cố vấn học tập 51 Hình 4.3: Cấu hình Rasa Pipeline sử dụng Hệ thống 53 Hình 4.4: Các bước xây dựng chatbot... 4.1 Xây dựng Hệ thống Cố vấn Học tập ảo 50 4.1.1 4.1.2 4.1.3 4.1.4 Thiết kế Tổng thể 50 Cấu trúc Hệ thống chatbot 51 Ứng dụng Rasa Framework xây dựng chatbot 52 Xây dựng. .. nhằm nghiên cứu, xây dựng Hệ thống Cố vấn Học tập ảo với vai trò hỗ trợ Thầy Cô việc giải đáp câu hỏi, thắc mắc cho Sinh viên Hệ thống xây dựng miền liệu đóng – phạm vi mà Hệ thống trả lời câu