Kỷ yếu Hội nghị KHCN Quốc gia lần thứ XII Nghiên cứu ứng dụng Công nghệ thông tin (FAIR); Huế, ngày 07-08/6/2019 DOI: 10.15625/vap.2019.00012 CHATBOT CHO SINH VIÊN CƠNG NGHỆ THƠNG TIN Đỗ Thanh Nghị1, Hồng Tùng2 Khoa CNTT-TT, Trường Đại học Cần Thơ Khu 2, Đường 3/2, Xuân Khánh, Ninh Kiều, TP Cần Thơ dtnghi@cit.ctu.edu.vn Trung tâm Tin học, Trường Đại học Nguyễn Tất Thành 300A - Nguyễn Tất Thành, Phường 13, Quận 4, TP Hồ Chí Minh htung@ntt.edu.vn TĨM TẮT: Trong viết này, đề xuất xây dựng Chatbot máy tính Raspberry Pi trả lời tự động cho sinh viên ngành Công nghệ thông tin (CNTT) câu hỏi liên quan đến môi trường học tập phương pháp học tập bậc đại học, kỹ nghề nghiệp, xu hướng công nghệ Sinh viên thực đặt câu hỏi cho Chatbot cách nói trực tiếp tiếng nói, Chatbot tiếp nhận câu hỏi từ microphone chuyển đổi câu hỏi từ dạng tiếng nói sang dạng văn bản, nhận dạng câu hỏi văn mô hình phân lớp văn huấn luyện, Chatbot trả câu trả lời dạng văn phát câu trả lời tiếng nói cho sinh viên nghe Chúng thu thập biên soạn tập liệu văn gồm 986 câu hỏi 213 câu trả lời từ nguồn tài liệu học tập Blog Science Technology giáo sư John Vũ Sau tách từ, tiền xử lý, câu hỏi biểu diễn dạng mơ hình túi từ Chúng tơi huấn luyện cách phân lớp máy học véctơ hỗ trợ, mạng nơron, rừng ngẫu nhiên, k láng giềng cho độ xác 76,77 %; 72,73 %; 71,72 % 65,66 % Kết thực nghiệm cho phép chọn phân lớp văn máy học véctơ hỗ trợ cho mơ hình trả lời Chatbot Từ khóa: Chatbot, phân lớp tự động văn bản, máy học véctơ hỗ trợ, mạng nơron, rừng ngẫu nhiên, k láng giềng I GIỚI THIỆU Chatbot chương trình máy tính có khả tương tác với người dùng ngôn ngữ tự nhiên giao diện đơn giản, âm dạng tin nhắn [Jurafsky & Martin, 2018], [Raj, 2018] Lĩnh vực nghiên cứu Chatbot tập trung vào mơ hình tương tác máy tính với người dùng đoạn đối thoại thông minh tự động sử dụng ngôn ngữ tự nhiên Hỏi đáp chatbot ngày trở nên phổ biến và xây dựng trợ lý ảo nhiều lĩnh vực nhiều khía cạnh sống trợ lý sức khỏe, trợ lý giáo dục, trợ lý bảo tàng Hầu hết mơ hình Chatbot tạo dựa phương pháp sau Tiếp cận dựa tập luật tạo sẵn: Phương pháp phổ biến việc xây dựng Chatbot tạo tập câu nghe đầu vào dự đoán trước câu trả lời tương ứng với câu nghe Các câu giao tiếp đối thoại người dùng so sánh với tập liệu câu nghe để tìm mẫu câu trả lời phù hợp Một cách tạo tập câu nghe câu trả lời dựa AIML - ngôn ngữ giống XML AIML cho phép hỏi đáp, chatbot tạo chủ đề tập liệu theo chủ đề ALICE, ChatScript ứng dụng hỏi đáp Chatbot phổ biến sử dụng tập AIML Dữ liệu của Chatbot mẫu câu đối thoại lưu tập tin AIML phát triển Wallace từ năm 1995 Mặc dù việc sử dụng tập liệu AIML có ưu điểm đơn giản dễ sử dụng, việc xây dựng liệu tốn nhiều thời gian việc phụ thuộc vào liệu tạo sẵn từ người dùng gây nhàm chán thiếu liệu Tiếp cận dựa Ontology: Một ontology mơ hình cấu trúc liệu phân cấp bao gồm lớp đối tượng liệu, mối quan hệ chúng luật định nghĩa lĩnh vực sử dụng để suy luận đối tượng lĩnh vực mối quan hệ chúng Ontology cung cấp từ vựng chung bao gồm khái niệm, thuộc tính quan trọng định nghĩa khái niệm thuộc tính Ngồi từ vựng, ontology cịn cung cấp ràng buộc, ràng buộc coi giả định sở ý nghĩa mong muốn từ vựng Nó sử dụng khơng miền mà cịn giao tiếp người hệ thống ứng dụng phân tán khác Ontology dùng để kết hợp với sở liệu quan hệ để tạo sở tri thức cho hỏi đáp, Chatbot trích xuất câu trả lời có sẵn tập tài liệu sau sử dụng suy luận để tìm mối liên kết câu trả lời câu hỏi Việc sử dụng ontology giúp giải khuyết điểm việc xây dựng tri thức sử dụng AIML, nhiên việc xây dựng quan hệ quy luật khái niệm cần nhiều đến công sức người tốn thời gian Tiếp cận dựa corpus: Các nghiên cứu gần tận dụng corpus liệu (tập hợp nhiều tài liệu) để tìm kiếm câu trả lời phù hợp với liệu nghe từ người dùng Phương pháp truy hồi thơng tin sử dụng phương pháp tìm kiếm câu trả lời từ danh sách tài liệu Google corpus Phương pháp kết hợp sử dụng corpus trích lọc ngữ nghĩa liệu FrameNet Verbnet để tìm câu trả lời xác Phương pháp truy hồi thơng tin dựa corpus tài liệu sử dụng luật để tìm câu trả lời phù hợp Đặc biệt, CleverBot Chatbot thành cơng gần có ứng dụng phương pháp truy hồi Phương pháp dùng để tìm danh sách tài liệu phù hợp từ tài liệu họ xây dựng luật để tìm 86 CHATBOT CHO SINH VIÊN CƠNG NGHỆ THƠNG TIN câu trả lời thích hợp với từ khoá liệu đầu vào người dùng Kỹ thuật truy tìm đơn giản so khớp biểu thức dựa vào luật rule-based, dựa cơng thức tính độ tương tự tài liệu, phức tạp việc kết hợp phương pháp máy học Ưu điểm phương pháp có độ xác ngữ pháp cao Tuy nhiên, chúng xử lý trường hợp mẫu chưa quan sát, khơng có luật tốn nhiều thời gian Phương pháp tự sinh không dựa tập trả lời định nghĩa trước Chúng có khả tự sản sinh câu trả lời Một phương pháp đạt thành công gần sử dụng mạng nơron để huấn luyện sinh câu trả lời cách tự động Các nhà nghiên cứu đề xuất huấn luyện mơ hình mạng nơron tái phát (Recurrent Neural Network) để tạo câu trả lời từ Blogs Các nghiên cứu sử dụng mơ hình chuỗi liên tiếp bao gồm mạng nơron tái phát, mạng nơron mã hoá để xử lý liệu đầu vào mạng nơron giải mã để sinh câu trả lời Những mơ hình chuỗi liên tiếp sử dụng nhiều máy dịch phân tích câu cú pháp Những mơ hình cho phép cải thiện khuyết điểm giới hạn tri thức xây dựng luật tay Các phương pháp sử dụng mạng nơron nhớ lại thực thể nhắc đến mẫu hỏi tạo cảm giác bạn nói chuyện với người Tuy nhiên, mơ hình khó để huấn luyện, bị mắc lỗi ngữ pháp (đặc biệt câu dài) mơ hình u cầu lượng lớn liệu để huấn luyện Trong viết này, đề xuất xây dựng Chatbot máy tính Raspberry Pi trả lời tự động cho sinh viên ngành Công nghệ thông tin (CNTT) câu hỏi liên quan đến môi trường học tập phương pháp học tập bậc đại học, kỹ nghề nghiệp, xu hướng công nghệ Chúng theo hướng tiếp cận dựa corpus máy học tự động để tạo Chatbot cho sinh viên ngành CNTT Bước thu thập biên soạn tập liệu văn gồm 986 câu hỏi 213 câu trả lời từ nguồn tài liệu học tập Blog Science Technology Giáo sư John Vũ [Vũ, 2019] Sau bước tách từ tiền xử lý, câu hỏi biểu diễn dạng mô hình túi từ (bag-of-words - BoW [Salton et al., 1975]) Chúng huấn luyện cách phân lớp máy học véctơ hỗ trợ (support vector machines - SVM [Vapnik, 1995]), mạng nơron (neural networks - NN [LeCun, 1985]), rừng ngẫu nhiên (random forests - RF [Breiman, 2001], k láng giềng (k nearest neighbors - kNN [Fix & Hodges, 1952]) cho độ xác 76,77 %; 72,73 %; 71,72 % 65,66 % Từ kết thực nghiệm, chọn phân lớp văn máy học véctơ hỗ trợ cho mơ hình trả lời Chatbot Sinh viên thực đặt câu hỏi cho Chatbot cách nói trực tiếp tiếng nói, Chatbot tiếp nhận câu hỏi từ microphone chuyển đổi câu hỏi từ dạng tiếng nói sang dạng văn chuyển sang nhận dạng câu hỏi văn mơ hình máy học véctơ hỗ trợ, xác định câu trả lời dạng văn phát câu trả lời tiếng nói cho sinh viên nghe Phần cịn lại viết tổ chức sau Chúng trình bày hệ thống Chatbot trả lời tự động cho sinh viên ngành CNTT phần Kết thực nghiệm trình bày phần trước kết luận hướng phát triển trình bày phần II CHATBOT CHO SINH VIÊN CÔNG NGHỆ THƠNG TIN Mơ hình hoạt động Chatbot máy tính Raspberry Pi trả lời tự động cho sinh viên ngành CNTT câu hỏi liên quan đến môi trường học tập phương pháp học tập bậc đại học, kỹ nghề nghiệp, xu hướng cơng nghệ, trình bày hình Hình Sơ đồ hệ thống Chatbot cho sinh viên CNTT Sinh viên đặt câu hỏi cho Chatbot cách nói trực tiếp vào microphone, Chatbot sử dụng tiếp nhận sử dụng Google API voice (voice-to-text) để chuyển đổi câu hỏi từ dạng tiếng nói sang dạng văn chuyển sang nhận dạng câu hỏi văn mơ hình máy học để xác định câu trả lời dạng văn sử dụng Google API voice (text-to-speech) để phát câu trả lời tiếng nói cho sinh viên nghe Đỗ Thanh Nghị, Hồng Tùng 87 Mơ hình hoạt động thấy chúng tơi cần phải huấn luyện mơ hình phân lớp tự động văn từ corpus , để nhận dạng câu hỏi thuộc lớp câu hỏi nào, từ xác định câu trả lời tương ứng với câu hỏi Vấn đề biết toán phân lớp tự động câu hỏi Công việc bao gồm: thu thập dạng văn bản, tiền xử lý biểu diễn văn bản, huấn luyện mơ hình phân lớp văn A Thu thập tập liệu biểu diễn liệu Hướng tiếp cận dựa vào corpus liệu cần thực tập hợp nhiều liệu dạng liên quan đến môi trường học tập phương pháp học tập bậc đại học, kỹ nghề nghiệp, xu hướng công nghệ dành cho sinh viên CNTT Chúng tham khảo nguồn Blog Science Technology [Vũ, 2019] Giáo sư John Vũ, đại học CMU (Carnegie Mellon University) Blog chia sẻ vấn đề phương pháp học tập, kỹ chuyên môn, kỹ mềm tiến khoa học công nghệ, CNTT Một vài chia sẻ có dạng câu hỏi, câu trả lời Tuy nhiên, muốn chuyển vấn đề Chatbot toán phân lớp câu hỏi nên biên soạn thêm câu hỏi cho câu trả lời chia sẻ tương ứng Ngoài ra, để làm giàu thêm ngữ liệu, biên soạn cặp từ nguồn tài liệu học tập chuyên ngành Cuối cùng, thu tập liệu bao gồm 986 câu hỏi 213 câu trả lời (lớp, nhãn) Hình trình bày vài mẫu liệu câu hỏi (q), lớp (c) câu trả lời (a) Hình Dữ liệu mẫu corpus Từ tập liệu thu thập, cần thực bước tách từ đơn giản [Phạm et al., 2016] biểu diễn liệu cấu trúc bảng để từ giải thuật máy học học để phân lớp tự động văn Mơ hình túi từ (bag-of-words BoW [Salton et al., 1975]) mơ hình biểu diễn văn phổ biến [Lewis & Gale, 1994), [Dumais et al., 1998], [Fabrizio, 2002], [Manning et al., 2008] Một câu hỏi văn biểu diễn dạng véctơ (có n thành phần, chiều, từ) mà giá trị thành phần thứ j tần số xuất từ thứ j câu hỏi văn Tập liệu gồm 986 câu hỏi từ điển có 492 từ vựng, tập liệu biểu diễn thành bảng D kích thước 986 x 492, dòng thứ i bảng véctơ biểu diễn câu hỏi thứ i tương ứng Bước quan trọng cần huấn luyện mơ hình máy học để phân lớp xác tập liệu câu hỏi D có số chiều 492 vào 213 lớp Trong giải thuật phân lớp [Wu & Kumar, 2009], [Hastie et al., 2009], k láng giềng, rừng ngẫu nhiên, máy học véctơ hỗ trợ mạng nơron giải thuật phổ biến hiệu cho phân lớp tự động văn B k láng giềng Giải thuật phân lớp k láng giềng (k nearest neighbors - kNN [Fix & Hodges, 1952]) khơng có q trình huấn luyện mơ hình Khi phân lớp phần tử x, giải thuật kNN tìm tập huấn luyện k láng giềng phần tử x Hình minh họa với k = kNN phân lớp phần tử x dựa vào luật bình chọn số đơng từ lớp k láng giềng Hình Phân lớp liệu với k láng giềng (k = 5) CHATBOT CHO SINH VIÊN CÔNG NGHỆ THÔNG TIN 88 C Rừng ngẫu nhiên Giải thuật máy học rừng ngẫu nhiên (random forests - RF [Breiman, 2001]) thực huấn luyện mơ hình phân lớp (hình 4) qua bước sau: Từ tập liệu huấn luyện có m phần tử n biến (thuộc tính), xây dựng t định cách độc lập Mơ hình định thứ t xây dựng tập mẫu Bootstrap thứ t (lấy mẫu m phần tử có hồn lại từ huấn luyện) Tại nút trong, chọn ngẫu nhiên n’ biến (n’ 128 nơron (relu) => sampling 0.3 => 64 nơron (relu) => 64 nơron (relu) => OUTPUT Mạng huấn luyện 100 chu kỳ với tốc độ học 0.1 90 CHATBOT CHO SINH VIÊN CÔNG NGHỆ THÔNG TIN C Kết thực nghiệm Kết thu từ thực nghiệm tập kiểm thử k = láng giềng (kNN), rừng ngẫu nhiên (RF), máy học (SVM) tuyến tính mạng nơron (NN) là: 65,66 %; 71,72 %; 76,77 % 72,73 % So sánh kết cho thấy máy học SVM tuyến tính cho kết phân lớp cao Biểu đồ cột hình cho thấy khác biệt trực quan từ mơ hình phân lớp Từ kết thực nghiệm này, đề xuất sử dụng mô hình máy học SVM để phân lớp câu hỏi Chatbot chúng tơi Hình So sánh độ xác mơ hình phân lớp Tuy nhiên, muốn thảo luận chất lượng mô hình phân lớp tự động câu hỏi tập liệu thu thập Trước tiên tập liệu có 986 câu hỏi 213 câu trả lời (lớp) Nghĩa trung bình lớp chứa khoảng 4-5 câu hỏi tương ứng Độ xác ngẫu nhiên 100/213 = 0.469 % Chính vậy, phân lớp đạt độ xác 65 % kết quan trọng Chúng thử nghiệm với phân lớp Multinomial Nạve Bayes [Good, 1965], kết thu độ xác 44.44 % Ngồi ra, chúng tơi sử dụng giải thuật Gradient Boosting [Freund & Schapire, 1995] Tuy nhiên điều kiện để phân lớp yếu có độ xác lớn 50 % điều khó khăn liệu có đến 213 lớp tập liệu câu hỏi có Điều dẫn đến huấn luyện mơ hình Gradient Boosting cho phân lớp đạt độ xác khoảng 20 % IV KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Chúng tơi vừa trình bày phương pháp xây dựng Chatbot máy tính Raspberry Pi trả lời tự động cho sinh viên ngành CNTT câu hỏi liên quan đến môi trường học tập bậc đại học phương pháp học tập, kỹ chuyên môn, kỹ mềm, xu hướng công nghệ Chatbot tạo dựa tiếp cận sử dụng corpus máy học tự động Chúng thu thập biên soạn tập liệu gồm 986 câu hỏi 213 câu trả lời từ nguồn tài liệu học tập Blog Science Technology giáo sư John Vũ Sau bước tách từ biểu diễn câu hỏi theo mơ hình túi từ, phân lớp máy học véctơ hỗ trợ, mạng nơron, rừng ngẫu nhiên, k láng giềng huấn luyện để phân lớp tự động câu hỏi cho độ xác 76,77 %; 72,73 %; 71,72 % 65,66 % Chatbot sử dụng phân lớp máy học véctơ hỗ trợ có độ xác cao để xác định câu trả lời Sinh viên thực đặt câu hỏi cho Chatbot cách nói trực tiếp tiếng nói Chatbot phát câu trả lời tiếng nói cho sinh viên nghe Trong tương lai gần, dự định bổ sung thêm vào tập liệu để cải thiện khả đáp ứng Chatbot, cung cấp thêm kết thực nghiệm tập liệu lớn so sánh với phương pháp khác Có thể mở rộng Chatbot cho vấn đề tương tự tư vấn tuyển sinh, trả lời tự động thủ tục hành V TÀI LIỆU THAM KHẢO [1] M Abadi, A Agarwal, P Barham, E Brevdo, Z Chen, C Citro, G.S Corrado, A Davis, J Dean, M Devin, S Ghemawat, I Goodfellow, A Harp, G Irving, M Isard, R Jozefowicz, Y Jia, L Kaiser, M Kudlur, J Levenberg, Đỗ Thanh Nghị, Hoàng Tùng 91 D Mané, M Schuster, R Monga, S Moore, D Murray, C Olah, J Shlens, B Steiner, I Sutskever, K Talwar, P Tucker, V Vanhoucke, V Vasudevan, F Viégas, O Vinyals, P Warden, M Wattenberg, M Wicke, Y Yu and X Zheng.: TensorFlow: Large-scale machine learning on heterogeneous systems, 2015 Software available from tensorflow.org [2] L Breiman.: Random forests Machine Learning 45(1):5-32, 2001 [3] S Dumais, J Platt, D Heckerman and M Sahami.: Inductive learning algorithms and representations for text categorization In: Proceedings of the Seventh International Conference on Information and Knowledge Management, ACM, 1998, 148-155 [4] P N Durette.: Google Text-to-Speech: A Python library and CLI tool to interface with Google Translate’s text-tospeech API https://github.com/pndurette/gTTS (accessed, 01/04/2019) [5] S Fabrizio.: Machine learning in automated text categorization ACM Computing Surveys 34: 1-47, 2002 [6] R Fan, K Chang, C Hsieh, X Wang and C Lin.: LIBLINEAR: a library for large linear classification Journal of Machine Learning Research Vol.9(4):1871-1874, 2008 [7] E Fix, J Hodges.: Discriminatoiry Analysis: Small Sample Performance Technical Report 21-49-004, USAF School of Aviation Medicine, Randolph Field, USA, (1952) [8] Y Freund and R Schapire.: A decision-theoretic generalization of on-line learning and an application to boosting Proceedings of the Second European Conference on Computational Learning Theory 1995, pp 23-37 [9] I Good.: The Estimation of Probabilities: An Essay on Modern Bayesian Methods MIT Press, 1965 [10] T Hastie, R Tibshirani and J Friedman.: The Elements of Statistical Learning: Data Mining, Inference, and Prediction Springer-Verlag, 2nd Edition, 2009 [11] D Jurafsky and J H Martin.: Speech and Language Processing Computer Science, Stanford University, 2017 [12] Y LeCun.: Une Procédure d’Apprentissage pour Réseau Seuil Asymétrique in:Cognitiva 85: A la Frontiere de l’Intelligence Artificielle des Sciences de la Conaissance des Neurosciences, 1985, pp 599-604 [13] D D Lewis and W A Gale.: A sequential algorithm for training text classifiers In: Proceedings of the 17th Annual International ACM SIGIR Conference on Research and Development in Information Retrieval, SpringerVerlag New York, 1994, 3-12 [14] C.D Manning, P Raghavan and H Schütze.: Introduction to Information Retrieval Cambridge University Press 2008 [15] F Pedregosa, G Varoquaux, A Gramfort, V Michel, B Thirion, O Grisel, M Blondel, P Prettenhofer, R Weiss, V Dubourg, J Vanderplas, A Passos, D Cournapeau, M Brucher, M Perrot, E Duchesnay.: Scikit-learn: Machine Learning in Python Journal of Machine Learning Research 12: 2825-2830, 2011 [16] S Raj.: Building Chatbots with Python: Using Natural Language Processing and Machine Learning Apress, 2018 [17] G Salton, A Wong and C.S Yang.: A vector space model for automatic indexing Communications of the ACM, Vol.18(11):613-620, 1975 [18] B Steven, E Loper and E Klein.: Natural Language Processing with Python O'Reilly Media Inc., 2009 [19] V Vapnik.: The Nature of Statistical Learning Theory Springer-Verlag, 1995 [20] X Wu and V Kumar.: Top 10 Algorithms in Data Mining Chapman & Hall/CRC, 2009 [21] A Zhang.: Speech Recognition (Version 3.8) [Software] Available from https://github.com/Uberi/speech_recognition (accessed 01/04/2019) [22] N K Phạm M T Trần Nguyễn, T P Phạm, T N Đỗ.: So sánh phương pháp tách từ phân lớp văn tiếng Việt Kỷ yếu hội thảo FAIR 2016, pp 668-677 [23] J Vũ.: Sciences and Technologies in the World http://science-technology.vn/ (accessed 01/04/2019) CHATBOT FOR INFORMATION TECHNOLOGY STUDENTS Do Thanh Nghi, Hoang Tung ABSTRACT: In this paper, we propose to build the Chatbot for automatically answer information technology students questions related to the student life, learning environment and learning methods, career skills, technology trends Students make questions to Chatbot by speaking directly in the microphone, Chatbot receives the audio question and converts it to the textual question, and classifying the textual question with the classification model, followed which Chatbot returns the textual response and finally gives the audio answer to students We have collected a textual dataset of 986 questions of 213 corresponding answers from learning resources and Professor John Vu's Science Technology Blog After performing the pre-processing step of textual data, questions are represented by the bag-of-words (BoW) model The algorithms of support vector machines (SVM), neural network (NN), random forests (RF), k nearest neighbors (kNN) are trained to classify the questions into 213 classes with 75.76 %, 72.73 %, 71.72 % and 65.66 % accuracy, respectively Experimental results allow us to select the SVM classifier for the Chatbot response model ... học, kỹ ngh? ?? nghiệp, xu hướng cơng ngh? ??, trình bày hình Hình Sơ đồ hệ thống Chatbot cho sinh viên CNTT Sinh viên đặt câu hỏi cho Chatbot cách nói trực ti? ??p vào microphone, Chatbot sử dụng ti? ??p nhận... cho độ xác 76,77 %; 72,73 %; 71,72 % 65,66 % Từ kết thực nghiệm, chọn phân lớp văn máy học véctơ hỗ trợ cho mơ hình trả lời Chatbot Sinh viên thực đặt câu hỏi cho Chatbot cách nói trực ti? ??p ti? ??ng... luận hướng phát triển trình bày phần II CHATBOT CHO SINH VIÊN CƠNG NGH? ?? THƠNG TIN Mơ hình hoạt động Chatbot máy tính Raspberry Pi trả lời tự động cho sinh viên ngành CNTT câu hỏi liên quan đến