intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Chatbot cho sinh viên công nghệ thông tin

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:7

20
lượt xem
3
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài viết đề xuất xây dựng Chatbot trên máy tính Raspberry Pi có thể trả lời tự động cho sinh viên ngành Công nghệ thông tin (CNTT) các câu hỏi liên quan đến môi trường học tập và phương pháp học tập bậc đại học, kỹ năng nghề nghiệp, xu hướng công nghệ.

Chủ đề:
Lưu

Nội dung Text: Chatbot cho sinh viên công nghệ thông tin

  1. Kỷ yếu Hội nghị KHCN Quốc gia lần thứ XII về Nghiên cứu cơ bản và ứ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, Hoàng Tùng2 1 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 2 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 bài viết này, chúng tôi đề xuất xây dựng Chatbot trên máy tính Raspberry Pi có thể trả lời tự động cho sinh viên ngành Công nghệ thông tin (CNTT) các câu hỏi liên quan đến môi trường học tập và phương pháp học tập bậc đại học, kỹ năng nghề nghiệp, xu hướng công nghệ. Sinh viên thực hiện đặt câu hỏi cho Chatbot bằng cách nói trực tiếp bằng tiếng nói, Chatbot tiếp nhận câu hỏi từ microphone và 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 bản bằng mô hình phân lớp văn bản đã được huấn luyện, Chatbot trả về câu trả lời dạng văn bản và phát ra câu trả lời bằng tiếng nói cho sinh viên nghe. Chúng tôi đã thu thập và biên soạn tập dữ liệu văn bản gồm 986 câu hỏi của 213 câu trả lời từ nguồn tài liệu học tập và Blog Science Technology của giáo sư John Vũ. Sau khi tách từ, tiền xử lý, các câu hỏi được biểu diễn về dạng mô hình túi từ. Chúng tôi huấn luyện cách bộ phân lớp như máy học véctơ hỗ trợ, mạng nơron, rừng ngẫu nhiên, k láng giềng cho độ chính xác lần lượt là 76,77 %; 72,73 %; 71,72 % và 65,66 %. Kết quả thực nghiệm cho phép chúng tôi chọn bộ phân lớp văn bả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 là một chương trình máy tính có khả năng tương tác với người dùng bằng ngôn ngữ tự nhiên dưới một giao diện đơn giản, âm thanh hoặc dưới dạng tin nhắn [Jurafsky & Martin, 2018], [Raj, 2018]. Lĩnh vực nghiên cứu Chatbot tập trung vào các mô hình tương tác giữa máy tính với người dùng bằng các đoạn đối thoại thông minh tự động sử dụng ngôn ngữ tự nhiên. Hỏi đáp và chatbot ngày càng trở nên phổ biến và và được xây dựng như một trợ lý ảo trong rất nhiều lĩnh vực và nhiều khía cạnh trong cuộc sống như là trợ lý sức khỏe, trợ lý giáo dục, trợ lý bảo tàng. Hầu hết các mô hình Chatbot được tạo ra dựa trên các phương pháp chính như sau. Tiếp cận dựa trên tập và các luật đã tạo sẵn: Phương pháp phổ biến trong việc xây dựng Chatbot là tạo các bộ tập câu nghe ở đầu vào được dự đoán trước và câu trả lời tương ứng với câu nghe. Các câu giao tiếp đối thoại của người dùng sẽ được so sánh với các tập dữ liệu câu nghe để tìm ra mẫu câu trả lời phù hợp nhất. Một trong những cách tạo ra các tập câu nghe và câu trả lời là dựa trên AIML - một ngôn ngữ giống như XML. AIML cho phép hỏi đáp, chatbot tạo ra các chủ đề và các tập dữ liệu theo chủ đề đó. ALICE, ChatScript là những ứng dụng hỏi đáp Chatbot phổ biến sử dụng tập AIML. Dữ liệu của của những Chatbot này là những mẫu câu đối thoại được lưu trong những tập tin AIML và được phát triển bởi Wallace từ năm 1995. Mặc dù việc sử dụng tập dữ liệu AIML có ưu điểm là đơn giản và dễ sử dụng, nhưng việc xây dựng dữ liệu tốn rất nhiều thời gian và việc phụ thuộc vào dữ liệu được tạo sẵn từ người dùng sẽ gây ra sự nhàm chán và thiếu dữ liệu. Tiếp cận dựa trên Ontology: Một ontology là một mô hình cấu trúc dữ liệu phân cấp bao gồm các lớp đối tượng dữ liệu, mối quan hệ giữa chúng và các luật được định nghĩa trong cùng một lĩnh vực và được sử dụng để suy luận về các đối tượng trong lĩnh vực đó và mối quan hệ giữa chúng. Ontology cung cấp một bộ từ vựng chung bao gồm các khái niệm, các thuộc tính quan trọng và các định nghĩa về các khái niệm và các thuộc tính này. Ngoài bộ từ vựng, ontology còn cung cấp các ràng buộc, đôi khi các ràng buộc này được coi như các giả định cơ sở về ý nghĩa mong muốn của bộ từ vựng. Nó được sử dụng không những trong một miền mà còn có thể được giao tiếp giữa người và các hệ thống ứng dụng phân tán khác. Ontology cũng được dùng để kết hợp với cơ sở dữ liệu quan hệ để tạo ra các cơ sở tri thức cho hỏi đáp, Chatbot trích xuất các câu trả lời có sẵn trong tập tài liệu sau đó sử dụng các suy luận để tìm mối liên kết giữa câu trả lời và câu hỏi. Việc sử dụng ontology giúp giải quyết được những khuyết điểm của việc xây dựng tri thức sử dụng AIML, tuy nhiên việc xây dựng quan hệ và quy luật giữa các khái niệm vẫn cần nhiều đến công sức con người và tốn thời gian. Tiếp cận dựa trên corpus: Các nghiên cứu gần đây tận dụng các corpus dữ liệu (tập hợp nhiều tài liệu) để tìm kiếm một câu trả lời phù hợp nhất với dữ liệu nghe được từ người dùng. Phương pháp truy hồi thông tin sử dụng các phương pháp tìm kiếm những câu trả lời từ danh sách các tài liệu trong Google corpus. Phương pháp này cũng có thể kết hợp sử dụng corpus và các bộ trích lọc ngữ nghĩa của dữ liệu FrameNet và Verbnet để tìm các câu trả lời chính xác. Phương pháp truy hồi thông tin có thể dựa trên corpus các tài liệu và sử dụng các luật để tìm ra câu trả lời phù hợp. Đặc biệt, CleverBot là một trong những Chatbot thành công gần đây có ứng dụng phương pháp truy hồi này. Phương pháp này dùng để tìm ra danh sách các tài liệu phù hợp nhất và từ các tài liệu này họ sẽ xây dựng các bộ luật để tìm ra
  2. 86 CHATBOT CHO SINH VIÊN CÔNG NGHỆ THÔNG TIN các câu trả lời thích hợp nhất với các từ khoá của các dữ liệu đầu vào của người dùng. Kỹ thuật truy tìm đơn giản nhất có thể là sự so khớp các biểu thức dựa vào luật rule-based, hoặc dựa trên các công thức tính độ tương tự của các tài liệu, hoặc phức tạp như việc kết hợp các phương pháp máy học. Ưu điểm của phương pháp này là có độ chính xác về ngữ pháp cao. Tuy nhiên, chúng không thể xử lý được các trường hợp các mẫu chưa được quan sát, không có trong bộ luật và tốn rất nhiều thời gian. Phương pháp tự sinh không dựa trên tập trả lời định nghĩa trước. Chúng có khả năng tự sản sinh câu trả lời. Một trong những phương pháp đạt được thành công nhất gần đây là sử dụng mạng nơron để huấn luyện và sinh các câu trả lời một 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 ra các câu trả lời từ các Blogs. Các nghiên cứu sử dụng mô hình chuỗi tuần tự liên tiếp bao gồm 2 mạng nơron tái phát, một mạng nơron mã hoá để xử lý dữ liệu đầu vào và một mạng nơron giải mã để sinh ra câu trả lời. Những mô hình chuỗi tuần tự liên tiếp được sử dụng nhiều trong máy dịch và phân tích câu cú pháp. Những mô hình này cho phép cải thiện được khuyết điểm về sự giới hạn tri thức và xây dựng các luật bằng tay. Các phương pháp sử dụng mạng nơron có thể nhớ lại được các thực thể được nhắc đến trong mẫu hỏi và tạo ra cảm giác bạn đang nói chuyện với con người. Tuy nhiên, những mô hình này thì rất khó để huấn luyện, rất có thể bị mắc lỗi về ngữ pháp (đặc biệt trên các câu dài) và mô hình yêu cầu một lượng rất lớn dữ liệu để huấn luyện. Trong bài viết này, chúng tôi đề xuất xây dựng Chatbot trên máy tính Raspberry Pi có thể trả lời tự động cho sinh viên ngành Công nghệ thông tin (CNTT) các câu hỏi liên quan đến môi trường học tập và phương pháp học tập bậc đại học, kỹ năng nghề nghiệp, xu hướng công nghệ. Chúng tôi theo hướng tiếp cận dựa trên corpus và máy học tự động để tạo Chatbot cho sinh viên ngành CNTT. Bước đầu tiên là thu thập và biên soạn tập dữ liệu văn bản gồm 986 câu hỏi của 213 câu trả lời từ nguồn tài liệu học tập và Blog Science Technology của Giáo sư John Vũ [Vũ, 2019]. Sau bước tách từ và tiền xử lý, các câu hỏi được biểu diễn về dạng mô hình túi từ (bag-of-words - BoW [Salton et al., 1975]). Chúng tôi huấn luyện cách bộ phân lớp như 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 độ chính xác lần lượt là 76,77 %; 72,73 %; 71,72 % và 65,66 %. Từ kết quả thực nghiệm, chúng tôi chọn bộ phân lớp văn bản máy học véctơ hỗ trợ cho mô hình trả lời Chatbot. Sinh viên thực hiện đặt câu hỏi cho Chatbot bằng cách nói trực tiếp bằng tiếng nói, Chatbot tiếp nhận câu hỏi từ microphone và chuyển đổi câu hỏi từ dạng tiếng nói sang dạng văn bản và chuyển sang bộ nhận dạng câu hỏi văn bản bằng mô hình máy học véctơ hỗ trợ, xác định được câu trả lời dạng văn bản và phát ra câu trả lời bằng tiếng nói cho sinh viên nghe. Phần còn lại của bài viết được tổ chức như sau. Chúng tôi sẽ trình bày hệ thống Chatbot trả lời tự động cho sinh viên ngành CNTT trong phần 2. Kết quả thực nghiệm sẽ được trình bày trong phần 3 trước khi kết luận và hướng phát triển được trình bày trong phần 4. II. CHATBOT CHO SINH VIÊN CÔNG NGHỆ THÔNG TIN Mô hình hoạt động của Chatbot trên máy tính Raspberry Pi trả lời tự động cho sinh viên ngành CNTT các câu hỏi liên quan đến môi trường học tập và phương pháp học tập bậc đại học, kỹ năng nghề nghiệp, xu hướng công nghệ, được trình bày trong hình 1. Hình 1. Sơ đồ hệ thống Chatbot cho sinh viên CNTT Sinh viên có thể đặt câu hỏi cho Chatbot bằng cách nói trực tiếp vào microphone, Chatbot sử dụng tiếp nhận và 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 bản và chuyển sang bộ nhận dạng câu hỏi văn bản bằng mô hình máy học để xác định được câu trả lời dạng văn bản và sử dụng Google API voice (text-to-speech) để phát ra câu trả lời bằng tiếng nói cho sinh viên nghe.
  3. Đỗ Thanh Nghị, Hoàng Tùng 87 Mô hình hoạt động có thể thấy rằng chúng tôi cần phải huấn luyện mô hình phân lớp tự động văn bản từ corpus là các , để nhận dạng được câu hỏi thuộc lớp câu hỏi nào, từ đó xác định được câu trả lời tương ứng với câu hỏi. Vấn đề này được biết là bài toán phân lớp tự động các câu hỏi. Công việc bao gồm: thu thập các dạng văn bản, tiền xử lý và biểu diễn văn bản, huấn luyện mô hình phân lớp văn bản. A. Thu thập tập dữ liệu và biểu diễn dữ liệu Hướng tiếp cận dựa vào corpus dữ liệu cần thực hiện tập hợp nhiều dữ liệu dạng liên quan đến môi trường học tập và phương pháp học tập bậc đại học, kỹ năng nghề nghiệp, xu hướng công nghệ dành cho sinh viên CNTT. Chúng tôi đã tham khảo nguồn Blog Science Technology [Vũ, 2019] của Giáo sư John Vũ, đại học CMU (Carnegie Mellon University). Blog này chia sẻ các vấn đề mới nhất về phương pháp học tập, kỹ năng chuyên môn, kỹ năng mềm và các tiến bộ 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, do chúng tôi muốn chuyển vấn đề Chatbot về bài toán phân lớp các câu hỏi nên chúng tôi đã biên soạn thêm các câu hỏi cho một câu trả lời hoặc một chia sẻ tương ứng. Ngoài ra, để làm giàu thêm ngữ liệu, chúng tôi cũng biên soạn các cặp từ nguồn tài liệu học tập chuyên ngành. Cuối cùng, chúng tôi đã thu được tập dữ liệu bao gồm 986 câu hỏi của 213 câu trả lời (lớp, nhãn). Hình 2 trình bày vài mẫu dữ liệu của các câu hỏi (q), lớp (c) và câu trả lời (a). Hình 2. Dữ liệu mẫu trong corpus Từ tập dữ liệu thu thập, chúng ta cần thực hiện bước tách từ đơn giản [Phạm et al., 2016] và biểu diễn dữ liệu về cấu trúc bảng để từ đó các giải thuật máy học có thể học để phân lớp tự động văn bản. Mô hình túi từ (bag-of-words - BoW [Salton et al., 1975]) là mô hình biểu diễn văn bả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 bản được 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 là tần số xuất hiện từ thứ j trong câu hỏi văn bản. Tập dữ liệu gồm 986 câu hỏi và từ điển có 492 từ vựng, thì tập dữ liệu được biểu diễn thành bảng D kích thước 986 x 492, dòng thứ i của bảng là véctơ biểu diễn câu hỏi thứ i tương ứng. Bước quan trọng tiếp theo là cần huấn luyện mô hình máy học để có thể phân lớp chính xác tập dữ liệu câu hỏi D có số chiều 492 vào một trong 213 lớp. Trong các 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ợ và mạng nơron là các giải thuật phổ biến và hiệu quả cho phân lớp tự động văn bả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ó quá 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 trong tập huấn luyện k láng giềng của phần tử x. Hình 3 minh họa với k = 5. kNN phân lớp phần tử x dựa vào luật bình chọn số đông từ lớp của k láng giềng. Hình 3. Phân lớp dữ liệu với k láng giềng (k = 5)
  4. 88 CHATBOT CHO SINH VIÊN CÔNG NGHỆ THÔNG TIN 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 hiện huấn luyện mô hình phân lớp (hình 4) qua các bước chính như sau: Từ tập dữ liệu huấn luyện có m phần tử và n biến (thuộc tính), xây dựng t cây quyết định một cách độc lập nhau. Mô hình cây quyết định thứ t được xây dựng trên tập mẫu Bootstrap thứ t (lấy mẫu m phần tử có hoàn lại từ huấn luyện). Tại nút trong, chọn ngẫu nhiên n’ biến (n’
  5. Đỗ Thanh Nghị, Hoàng Tùng 89 hỗ trợ (support vector machines - SVM [Vapnik, 1995]) tìm siêu phẳng tối ưu tách 2 lớp ra xa nhất có thể (siêu phẳng tối ưu) dựa trên 2 siêu phẳng hỗ trợ song song của 2 lớp. Siêu phẳng hỗ trợ của lớp +1 (w.x - b = +1) là siêu phẳng mà các phần tử xp thuộc lớp yp = +1 nằm về phía bên phải của nó, tức là: w.xp - b ≥ +1. Tương tự, siêu phẳng hỗ trợ của lớp -1 (w.x - b = -1) là siêu phẳng mà các phần tử xn thuộc lớp yn = -1 nằm về phía bên trái siêu phẳng hỗ trợ lớp -1, tức là: w.xn - b ≤ -1. Những phần tử nằm ngược phía với siêu phẳng hỗ trợ được coi như lỗi. Khoảng cách lỗi được biểu diễn bởi zi 0 (với xi nằm đúng phía của siêu phẳng hỗ trợ của nó thì khoảng cách lỗi tương ứng zi = 0, còn ngược lại thì zi > 0 là khoảng cách từ điểm xi đến siêu phẳng hỗ trợ tương ứng của nó). Khoảng cách giữa 2 siêu phẳng hỗ trợ được gọi là lề. Siêu phẳng tối ưu (nằm giữa 2 siêu phẳng hỗ trợ) cần tìm phải cực đại hóa lề (lề càng lớn, mô hình phân lớp càng an toàn) và cực tiểu hóa lỗi. E. Mạng nơron Mạng nơron (neural networks - NN [LeCun, 1985]) là một mô hình tính toán được xây dựng phỏng theo mạng nơron sinh học. Mạng nơron gồm một nhóm các nơron nhân tạo (nút) nối với nhau và xử lý thông tin bằng cách truyền theo các kết nối và tính giá trị mới tại các nút (cách tiếp cận connectionism đối với tính toán). Giải thuật lan truyền ngược (back propagation) là giải thuật được sử dụng nhiều nhất để huấn luyện mạng nơron, thực hiện cập nhật trọng số các cung trong mạng bằng cách lan truyền gradient của hàm lỗi từ tầng đầu ra ngược trở lại các tầng ẩn, rồi đến tầng đầu vào. Hình 6. Mạng nơron đa tầng cho phân lớp III. KẾT QUẢ THỰC NGHIỆM A. Chương trình Để đánh giá hiệu quả của hệ thống Chatbot đề xuất, chúng tôi cài đặt chương trình bằng ngôn ngữ lập trình Python. Chương trình có sử dụng thư viện NLTK [Steven et al., 2009] để thực hiện bước tách từ và biểu diễn các câu hỏi theo mô hình túi từ [Salton et al., 1975]. Thư viện máy học LIBLINEAR [Fan et al., 2008] được sử dụng để huấn luyện mô hình máy học SVM tuyến tính. Thư viện Scikit-learn [Pedregosa et al., 2011] được sử dụng để tạo bộ phân lớp kNN (k láng giềng [Fix & Hodges, 1952]), rừng ngẫu nhiên RF [Breiman, 2001]. Chương trình huấn luyện mạng nơron nhiều tầng sử dụng thư viện Tensorflow [Abadi et al., 2015]. Thư viện Speech Recognition của [Zhang, 2019] và thư viện Google Text-to-Speech của [Durette, 2019] được cài trên Chatbot để thực hiện việc nhận dạng chuyển đổi câu hỏi dạng âm thanh ra câu hỏi dạng văn bản và tổng hợp tiếng nói của câu trả lời dạng văn bản. Tất cả các thí nghiệm được chạy trên máy tính Raspberry Pi 3 với CPU ARM Cortex-A53 Quadcore 1.2GHz 64-bit, RAM 1GB và đặc biệt hỗ trợ chuẩn Wifi 802.11n cùng Bluetooth 4.1, cài hệ điều hành Linux Raspbian Stretch. B. Điều chỉnh tham số Tập dữ liệu được biểu diễn về dạng bảng gồm 986 dòng (câu hỏi) trong 492 cột (từ vựng) và 213 lớp (câu trả lời). Tập dữ liệu được xáo trộn ngẫu nhiên và chia hai tập dữ liệu huấn luyện và tập dữ liệu kiểm tra. Tập dữ liệu huấn luyện chứa 887 câu hỏi (chiếm tỷ lệ 90 % tập dữ liệu gốc). Tập dữ liệu kiểm tra chứa 99 câu hỏi (chiếm tỷ lệ 10 % tập dữ liệu gốc). Chúng tôi sử dụng tập dữ liệu huấn luyện để điều chỉnh tham số cho các mô hình phân lớp, dùng nghi thức kiểm tra chéo để tìm được bộ tham số cho độ chính xác cao nhất. Sau đó huấn luyện lại mô hình trên tập dữ liệu huấn luyện sử dụng bộ tham số tối ưu tìm được. Sử dụng mô hình đã huấn luyện để phân lớp tập dữ liệu kiểm tra. Đối với kNN chúng tôi thu được tham số k = 1 cho kết quả cao nhất. Rừng ngẫu nhiên RF đã huấn luyện 200 mô hình cây quyết định với số thuộc tính ngẫu nhiên được sử dụng là n’ = 50 thuộc tính. Máy học SVM tuyến tính chỉ sử dụng hằng số C = 100000 (tham số dung hòa lỗi và độ rộng của lề SVM) cho kết quả cao nhất. Riêng đối với mạng nơron, kiến trúc mạng tối ưu là: INPUT => 128 nơron (relu) => sampling 0.3 => 64 nơron (relu) => 64 nơron (relu) => OUTPUT. Mạng được huấn luyện trong 100 chu kỳ với tốc độ học là 0.1.
  6. 90 CHATBOT CHO SINH VIÊN CÔNG NGHỆ THÔNG TIN C. Kết quả thực nghiệm Kết quả thu được từ thực nghiệm trên tập kiểm thử của k = 1 láng giềng (kNN), rừng ngẫu nhiên (RF), máy học (SVM) tuyến tính và mạng nơron (NN) lần lượt là: 65,66 %; 71,72 %; 76,77 % và 72,73 %. So sánh kết quả cho thấy máy học SVM tuyến tính cho kết quả phân lớp cao nhất. Biểu đồ cột trong hình 7 cho thấy sự khác biệt trực quan hơn từ 4 mô hình phân lớp. Từ kết quả thực nghiệm này, chúng tôi đề xuất sử dụng mô hình máy học SVM để phân lớp câu hỏi trong Chatbot của chúng tôi. Hình 7. So sánh độ chính xác của các mô hình phân lớp Tuy nhiên, chúng tôi muốn thảo luận về chất lượng của các mô hình phân lớp tự động các câu hỏi trong tập dữ liệu chúng tôi thu thập được. Trước tiên là tập dữ liệu chỉ có 986 câu hỏi của 213 câu trả lời (lớp). Nghĩa là trung bình mỗi lớp chỉ chứa khoảng 4-5 câu hỏi tương ứng. Độ chính xác ngẫu nhiên của nó là 100/213 = 0.469 %. Chính vì vậy, các bộ phân lớp đạt độ chính xác trên 65 % là kết quả quan trọng. Chúng tôi cũng đã thử nghiệm với bộ phân lớp Multinomial Naïve Bayes [Good, 1965], kết quả thu được độ chính xác là 44.44 %. Ngoài ra, chúng tôi cũng sử dụng giải thuật Gradient Boosting [Freund & Schapire, 1995]. Tuy nhiên điều kiện để bộ phân lớp yếu có độ chính xác lớn hơn 50 % là điều khó khăn khi dữ liệu có đến 213 lớp như tập dữ liệu câu hỏi đang có. Điều này dẫn đến huấn luyện mô hình Gradient Boosting cho phân lớp chỉ đạt độ chính 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 trên máy tính Raspberry Pi trả lời tự động cho sinh viên ngành CNTT các câu hỏi liên quan đến môi trường học tập bậc đại học và phương pháp học tập, kỹ năng chuyên môn, kỹ năng mềm, xu hướng công nghệ. Chatbot được tạo dựa trên tiếp cận sử dụng corpus và máy học tự động. Chúng tôi đã thu thập và biên soạn tập dữ liệu gồm 986 câu hỏi của 213 câu trả lời từ nguồn tài liệu học tập và Blog Science Technology của giáo sư John Vũ. Sau bước tách từ và biểu diễn câu hỏi theo mô hình túi từ, các bộ phân lớp như máy học véctơ hỗ trợ, mạng nơron, rừng ngẫu nhiên, k láng giềng được huấn luyện để phân lớp tự động các câu hỏi cho độ chính xác lần lượt là 76,77 %; 72,73 %; 71,72 % và 65,66 %. Chatbot sử dụng bộ phân lớp máy học véctơ hỗ trợ có độ chính xác cao nhất để xác định câu trả lời. Sinh viên thực hiện đặt câu hỏi cho Chatbot bằng cách nói trực tiếp bằng tiếng nói và Chatbot phát ra câu trả lời bằng tiếng nói cho sinh viên nghe. Trong tương lai gần, chúng tôi dự định bổ sung thêm vào tập dữ liệu để cải thiện khả năng đáp ứng của Chatbot, cung cấp thêm kết quả thực nghiệm trên những tập dữ liệu lớn hơn và so sánh với các phương pháp khác. Có thể mở rộng Chatbot cho các vấn đề tương tự như tư vấn tuyển sinh, trả lời tự động thủ tục hành chí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,
  7. Đỗ 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-to- speech 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, Springer- Verlag 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_rec- ognition (accessed 01/04/2019) [22] N. K. Phạm M. T. Trần Nguyễn, T. P. Phạm, T. N. Đỗ.: So sánh các phương pháp tách từ trong phân lớp văn bả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.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2