Tải bản đầy đủ (.pdf) (7 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (534.21 KB, 7 trang )

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, Hồ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ơ

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

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 <câu nghe, câu trả lời> 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. Ngồ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



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ừ khố 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 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.


Đỗ Thanh Nghị, Hồ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 <câu hỏi, câu trả lời>, để 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 hỏi, câu trả lời> 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 <câu hỏi, câu trả lờ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ệ 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 tố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 hỏi, trả lời> 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ó 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 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)


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 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ó hồn lại từ
huấn luyện).
Tại nút trong, chọn ngẫu nhiên n’ biến (n’<Cây được xây dựng đến độ sâu tối đa không cắt nhánh.
Kết thúc quá trình xây dựng t mơ hình cơ sở. Một phần tử mới đến x được phân lớp dựa vào bình chọn số đơng
của t mơ hình cơ sở phân lớp phần tử x.

Hình 4. Máy học phân lớp rừng ngẫu nhiên

D. Máy học véctơ hỗ trợ

Hình 5. Phân lớp tuyến tính với máy học SVM

Xét ví dụ phân lớp nhị phân tuyến tính mơ tả như hình 5, với m phần tử x1, x2, …, xm trong không gian n chiều
với nhãn (lớp) của các phần tử tương ứng là y1, y2, …, ym có giá trị 1 (lớp dương) hay giá trị -1 (lớp âm). Máy học véctơ


Đỗ 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 tồ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 tố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 tố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.


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 %. Ngồ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,


Đỗ 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. (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 (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. (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.



×