góp ý, hướng dẫn của các thầy thì chúng em đã không thê hoàn thành khóa luận tốt nghiệpmột cách trọn vẹn được Đồng thời, chúng em cũng muốn được thể hiện lòng biết ơn của mình đến gia đì
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KHOA HỌC MÁY TÍNH
TRAN TUẦN Vi
PHAM XUAN THIEN
KHOA LUAN TOT NGHIEP
CU NHÂN NGANH KHOA HOC MAY TÍNH
Trang 2ĐẠI HỌC QUÓC GIA TP HÒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KHOA HỌC MÁY TÍNH
TRAN TUẦN Vi - 18520245
PHAM XUAN THIÊN - 18520158
KHOA LUAN TOT NGHIEP
CU NHÂN NGANH KHOA HOC MAY TÍNH
GIANG VIEN HUONG DAN
TS NGUYEN DINH HIEN
Trang 3THONG TIN HỘI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số
ngày của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
1.Chủ tịch.
2.Thu ký.
3.Ủy viên
4.Ủy viên
Trang 4ĐẠI HỌC QUOC GIA TP HO CHÍMINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC
CÔNG NGHỆ THÔNG TIN Độc Lập - Tự Do - Hạnh Phúc
TP HCM, ngày tháng năm
NHẬN XÉT KHÓA LUẬN TÓT NGHIỆP
(CUA CAN BO HUONG DAN)
Tên khóa luận:
Phương pháp tích hợp cơ sở tri thức cho hệ thống chatbot hỗ trợ tra cứu kiến
thức học tap (Integrated Knowledge bases for a learning searching chatbot)
Nhóm SV thực hiện: Cán bộ hướng dẫn:
Trần Tuấn Vĩ 18520245 TS Nguyễn Đình Hiển
Phạm Xuân Thiên 18520158
Đánh giá Khóa luận
1 Vé cuôn báo cao:
Số trang: Số chương:
Số bang số liệu: Số hình vẽ:
Số tài liệu tham khảo: Sản phẩm:
Một sô nhận xét về hình thức cuôn báo cáo:
2 Vê nội dung nghiên cứu:
Trang 53 Về chương trình ứng dụng:
Điểm từng sinh viên:
Trần Tuấn Vĩ: /10
Phạm Xuân Thiên: /10
Trang 6Người nhận xét
(Ký và ghi rõ họ tên)
Trang 7ĐẠI HỌC QUOC GIA TP HO CHÍMINH CONG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC Ộ
CÔNG NGHỆ THÔNG TIN Độc Lập - Tự Do - Hạnh Phúc
TP HCM ngày tháng năm
NHẬN XÉT KHÓA LUẬN TÓT NGHIỆP
(CUA CÁN BO PHAN BIEN)
Tên khóa luận:
Phương pháp tích hợp cơ sở tri thức cho hệ thống chatbot hỗ trợ tra cứukiến thức học tập (Integrated Knowledge bases for a learning searching chatbot)
Nhóm sinh viên thực hiện: Cán bộ phản biện:
Trần Tuấn Vĩ 18520245
Phạm Xuân Thiên 18520158
Đánh giá Khóa luận:
1 Vê cuôn báo cáo:
Số trang: Số chương:
Số bảng số liệu: Số hình vẽ:
Số tài liệu tham khao Sản phẩm:
Trang 9góp ý, hướng dẫn của các thầy thì chúng em đã không thê hoàn thành khóa luận tốt nghiệp
một cách trọn vẹn được
Đồng thời, chúng em cũng muốn được thể hiện lòng biết ơn của mình đến gia đình và bạn
bè đã giúp đỡ chúng em về cả mặt vật chất lẫn tinh than dé chúng em có thê hoàn thànhchặng đường học hành, và luôn ở bên cạnh để động viên khi chúng em gặp khó khăn
Trong thời gian hơn 4 tháng thực hiện đề tài, nhóm thực hiện đã cố gắng vận dụng nhữngkiến thức nền tảng đã học, kết hợp học hỏi và tìm hiểu công nghệ mới dé ứng dụng xâydựng đề tài khóa luận tốt nghiệp “Phương pháp tích hợp cơ sở tri thức cho hệ thống chatbot
hỗ trợ tra cứu kiến thức học tập” Tuy nhiên trong quá trình thực hiện, do kiến thức và kinhnghiệm còn nhiều hạn chế, khó tránh khỏi những thiếu sót Chính vì vậy, nhóm thực hiệnrất mong nhận được sự góp ý từ quý thầy cô dé nhóm hoàn thiện thêm những kiến thức mà
nhóm đã học tập, làm hành trang quý báu cho nhóm trong công việc sau này.
Xin chân thành cảm ơn quý thay cô !
Hồ Chí Minh, tháng năm 2021
Nhóm thực hiện
Trần Tuấn Vĩ Phạm Xuân Thiên
Trang 10ĐẠI HỌC QUỐC GIA TP HO CHÍ MINH CONG HOA XÃ HOI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Độc Lập — Tự Do — Hạnh Phúc
ĐÈ CƯƠNG CHI TIẾT KHÓA LUẬN TÓT NGHIỆP
TÊN DE TÀI: Phương pháp tích hợp cơ sé tri thức cho hệ thống chatbot hỗ trợ tra
cứu kiến thức học tập (Integrated Knowledge bases for a learning searching chatbot)
Cán bộ hướng dẫn: TS Nguyễn Đình Hiên
Thời gian thực hiện: Từ ngày 01/09/2021 đến ngày 31/ 12/2021
Sinh viên thực hiện:
Trần Tuấn Vĩ - 18520245 Lớp: KHMT.2018
Email: 18520245 @ gm.uit.edu.vn Dién thoai: 0976336517
Pham Xuan Thién - 18520158 Lớp: KHMT.2018
Email: 18520158 @ gm.uit.edu.vn Dién thoai: 0852460466
Nội dung đề tài:
- - Mục tiêu:
Xây dựng, thiết kế một mô hình biéu diễn tri thức cho hệ thống hỏi đáp dang chatbot
có thê giúp người dung tra cứu những kiến thức trong môn học Nhập môn lập trình
và Lập trình hướng đối tượng (OOP) Nền tảng cốt lõi của hệ thống là kết hợp môhình tri thức dạng tri thức quan hệ và các kịch bản giao tiếp của chatbot Đồng thời
kết hợp một số thuật toán trích xuất thong tin dé phân tích từ khóa của câu truy vấn
- Pham vi:
Ung dụng trên các dạng tri thức cơ bản trong môn hoc Nhập môn lập trình va Lap
trình hướng đối tượng, chăng hạn như: hàm, vòng lặp, con trỏ, đối tượng, lớp,
quan hệ,
- _ Đối tượng:
Trang 11Trong dé tai này, chúng tôi nghiên cứu mô hình đề tích hợp cơ sở tri thức CSTT
này được ứng dụng trong việc xây dựng các hệ thống chatbot hỗ trợ tra cứu kiến
thức học tập.
Đối tượng nghiên cứu: các mô hình biểu diễn tri thức tích hợp, các mô hình phục
vụ cho việc xây dựng chatbot.
+ Tích hợp tri thức và Kịch bản giao tiếp
+ Tích hợp các miền tri thức
Phương pháp thực hiện:
Thu thập tri thức dé xác định các yêu cho việc xây dựng hệ thống chatbot hỗ trợ tracứu kiến thức môn học Trong đề tài này, chúng tôi sẽ thu thập kiến thức về lậptrình gồm các kiến thức trong các môn học Nhập môn lập trình và Lập trình hướng
đối tượng từ bai giảng của trường Dai học Công nghệ Thông tin
Nghiên cứu mô hình biểu diễn các nội dung môn học Các mô hình được nghiêncứu đáp ứng các yêu cau về biéu diễn tri thức quan hệ như biéu diễn các khái niệm,mỗi quan hệ giữa các khái niệm và các luật suy diễn trong miền tri thức
Xác định các vấn đề cho việc tra cứu kiến thức Chăng hạn các vấn đề sau: mốiquan hệ giữa các khái niệm trong một câu truy vấn, những câu truy vấn cần tri thứckết hop cả hai miền, các kiến thức liên quan đến khái niệm cần truy van,
Nghiên cứu mô hình tích hợp tri thức dé ứng dụng cho việc thiết CSTT chatbotcùng với các vấn đề trên đó
Thiết kế hệ thống chatbot thử nghiệm trên CS tri thức được tích hợp dé hỗ trợ việctra cứu kiến thức trên từng miền và kết hợp cả hai miền,
Tổng hợp kết quả và viết báo cáo khóa luận
Kết quả mong đợi:
Đề tài sẽ giải quyết được các vấn đề sau:
Xây dựng mô hình biểu diễn tri thức tích hợp ontology về kiến thức nhập môn lập
trình và lập trình hướng đôi tượng Trên cơ sở đó, nghiên cứu các vân đê vê tra cứu kiên thức của môn học và các thuật giải cho việc tra cứu đó.
Xây dựng các quy trình tạo kịch bản giao tiêp giữa người dùng và chatbot về hai
môn học bằng tiếng Việt
Phát triển hệ thống dưới dạng chatbot phục vụ tra cứu, học tập các kiến thức vềnhập môn lập trình và lập trình hướng đối tượng Thực hiện so sánh giữa các kháiniệm và gợi ý các kiến thức kiên quan
Thách thức:
Trang 12- Tri thức Nhập môn lập trình và Lập trình hướng đối tượng dang được tô chức ở
mức độ cơ bản, không thé xử lý được những câu hỏi so sánh khó gồm nhiều đối
tượng.
- Dir liệu tiếng Việt chỉ đáp ứng được những câu truy van mức độ vừa, có một về là
chủ yếu Chưa thê phân tích ngữ nghĩa sâu sắc hơn, giải quyết những câu truy vấn
phúc tạp.
Kế hoạch thực hiện:
STT Nội dung công việc Thời gian thực hiện | Phân công
1 Giai đoạn 1: Phân tích đề tài về phân tích kỹ thuật
1.1 | Phân tích yêu cầu, xác định bài toán 1/9 — 5/9 Vi, Thién
12 Lựa chọn mô hình và kỹ thuật phát 6/9 - 9/9 Vĩ, Thiên
triên dự án
1.3 | Thu thập tri thức NMLT và OOP 10/9 — 20/9 Vi, Thién
.4_ | Tìm hiệu các phương pháp xử lý ngôn 21/9 — 15/10 Vĩ, Thiên
Trang 132 Giai đoạn 2: Thiết kế hệ thống
21 Phân tich va xác định các chức năng 26/10 — 31/10 Vĩ, Thiên
chính của hệ thông
22 Thiét kê cơ sở tri thức và tô chức 1/11 — 20/11 Vi, Thién
Ontology
2.3 | Thiết kế giao diện va API 21/11 —30/11 Vi, Thién
3 Giai đoạn 3: Cài đặt hệ thống
31 Hiện thực và cài đặt các chức năng 1/12—- 5/12 Vĩ, Thiên
trích xuât từ khóa,
3.2 | Cài đặt Back-end cho ứng dụng 6/12 — 8/12 Vi, Thién
3.3 | Cai dat Front-end cho ứng dung web 9/12 — 12/12 Vi, Thién
34 Hoan thiện sản res Pu thử các 13/12 — 19/12 Vĩ, Thiên
chức năng chính của hệ thông
4 Giai đoạn 4: Đánh giá kết quả đạt được, viết bài báo cáo
41 Lap bang ean gia ae quả thu được sau 20/12 — 21/12 Vi, Thién
khi hoan thanh hé thong.
4.2 | Viết báo cáo 22/12 — 31/12 Vi, Thién
Xac nhan cia CBHD
Trang 15TOM TAT KHÓA LUẬN - 2-5-5 SE E2112119112112112111111 11111111111 111111111111111111111 11 1x0 1 Chương 1: GIỚI THIỆU -2-2£©2E£©EE+EEEEESEEEEEEEEEEEEEEEEE71211711211711 1121 x 2
In) 8n 2
1.2 Mục tiêu và phạm vi của để tài 0c nn HT n2 T112 1111111111121 Excrree 2
1.2.1 Mục tiêu của đề tải cccc th HH he 2 1.2.2 Phạm vi của để tài -2:ccc th HH HH Ha 3 1.3 Bố cục báo Cáo sec T111 111111111111 11 1111111 1111111111111 11111111711 T111 11117111111 cEE 3 1.4 Tổng quan về hệ thống chafbot - 2-5: ©S2+S+*9EE 2k2 SE12E2111221271127112111211111.2 1.1 4
1.4.1 Giới thiệu hệ thống chatbot
1.4.2 Các nghiên cứu và công trình liên quañ c6 SE **E+t+ESEEEEeEskrekekskeskerkre 5
Chương2: CƠ SỞ LÝ THUYẾT 2-©2< 2k2 E2EEEEE1E211222122127112711 71121111 1.0 8
J9 on ốốỐỀỐ ẽ7ố6ốÝẼố 6/6 ằ"." 8
2.2 Mô hình tri thức quan hỆ + 6 1t 919199191 5191 11 1 1 1v TT TT HH HH nh 9
2.2.1 C — tập khái niỆm - tàn S12121 1T 101011111 TT TH HH Hy 9
2.2.2 R — tập quan hệ - c2 SH HH HH HH TH TT TH HH HT TH TH HH Hàn kh 11 2.2.3 Rules — tập luật - tt T419 21 9 HH HH TT HH HH HT HT Tnhh ng He 12
2.3 Mô hình tri thức quan hệ tích hợp kịch bảnn - 5 5c +2 + 3+ *£+*E++EE£eE+eeEeeseereeeeeerreese 12
2.3.1 Xây dựng kịch bản cho chatbOI - -c- 5c 22+ E2E 3E E*E+vE+EE+EEEEESEEEkEekErkrkkrkkrkrrkerkre 2.3.2 Mô hình tri thức tích hợp kịch bản cho chatbot
PI nghìn 0) 0á
Chương3: THIẾT KE HE THONG CHATBOT TÌM KIEM KIEN THỨC - 18
3.1 Phân tích yêu cầu, chức năng của hệ thống ¿2-22 2© £+EEt2EESEE2SEEEEEEEEEEEEEerkrrrrerg 18
3.1.1 Tra cứu kiến thức, bài tẬp ¿5£ ©Sk+SE+Ex9EEEEEEEE11211211211E111211E11111.111 11.111 cre 18
3.1.2 Thực hiện so sánh g1ữa hai khái nIỆm - G5 S2 E331 E +39 EEEESEEESkseekkerrkrekee 18
3.1.3 Đề cập đến những kiến thức liên quan -¿¿++++2+++2E+t2ExtSEkESEEkrrrkezrkrerkree 18 3.2 Kiến trúc của hệ thốngg -+-2£©2++S+£+EE£EEEEEEEE19711221711171711211211 11.1111.1111 11 xe 19
3.2.1 ,b0nì)i0i10i(0/:ấuì 00.211 19 3.2.2 Phuong phap xay dung 11 -
3.3 Phuong phap xay dung chatbot
3.3.1 Mô hình hoạt động của một chatbot ecececeeccesceseseeseeseeseeseeeeeeeeeaeesecseeseeeeeaeeeeeeeeeeaes 23 3.3.2 Phương pháp xây dựng của một chafDOí - - + 5c 2c 2E E+EE#EESEEEEeErkrkrkkrkerrrre 24
3.4 Giải pháp kỹ thuật cho việc tìm kiến thức trên chatbot - 2: ©+++2z++cz++£zze+rxesrxcee 24
3.4.1 Trích xuất nội dung tri thức dựa trên từ khóa - 5c 55 + S+t St EEEtxerersrrsrrree 24
Trang 163.4.2 Truy van từ cơ sở tri thức (SPARQL) c.cccsssessesssesssesssssessssssesssessessssssesssessesssesseseseeseeens 26 Chương4: CÀI ĐẶT VÀ THU NGHIỆM CHƯƠNG TRÌNH -2¿©25¿+cxc+cscee 29
4.1 Thu thap nh IX+" 29
4.2 Chuyển đôi bài học thành văn ban trích xuất từ khóa -2- 2 55c©c<+cx2£xczxevrxrrrerred 30
“Y9 33
4.4 Thu thập câu hỏi và câu trả lời về hai môn NOC -s se St xeEE+EEEEE2E2EE2E121121121111 X2 37
4.5 Cac cOmg CU CAL nh 37
4.5.1 Python 4.5.2 Flask
4.5.3 Protégé oo DừDbẽ 39 45.4 FireDase I3ẽ£:::ổẼ®®©:©:É® 41
4.6 Kết qua thực nghi@m c.ccceccscccsssesssessesssessesssessucssecsssssecsusssecssessecsuessesssessusssessssssecssesseesseeseeess 41
Chương 5: KET LUẬN ©-2< 2E 2EEC2E1271127112711221122112711 1E 48
Trang 17DANH MỤC HÌNH
Hình 1.1 Chatbot là gì?
Hình 1.2 Xiaolcle do Microsoft phát triển
Hình 1.3 Trang web Wolframalpha
Hình 1.4 Helpjuice — phần mềm cơ sở tri thức
Hình 2.1 Cấu trúc của một kịch bản đơn giản trên một môn học
Hình 2.2 Cấu trúc kịch bản cho kiến thức tích hợp 2 môn học
Hình 3.1 Cấu trúc hệ thống
Hình 3.2 Một ví dụ mô tả input va output cua module Aspect Extractor
Hình 3.3 Cấu trúc the triplestore
Hình 3.4 Kết quả của câu lệnh Describle
Hình 4.1 Quá trình tạo bộ khái niệm
Hình 4.2 Mục lục các khái niệm thuộc chương 4 môn Nhập môn lập trình
Hình 4.3 Ví dụ về một chương
Hình 4.4 Sơ đồ xây dựng Ontology
Hình 4.5 Thuộc tính của lớp
Hình 4.6 Ví dụ về cấu trúc phân cấp trong kiểu danh sách
Hình 4.7 Phân cấp trong miền dữ liệu
Hình 4.8 Logo Python
Hình 4.9 Web framework Flask
Hình 4.10 Một code website cơ bản sử dụng flask
Hình 4.11 Protégé logo
Hình 4.12 Ví dụ về một ontology trong Protégé
Hình 4.13 Công cụ OntoGraf ding đề biểu diễn dit liệu
Hình 4.14 Logo Firebase
Hình 4.15 Logo Firebase
Hình 4.16 Bắt đầu đăng nhập
Hình 4.17 Câu chào hỏi
Hình 4.18 Câu hỏi khái niệm định nghĩa
Hình 4.19 Gợi ý mở rộng thông tin khác với khái niệm
Hình 4.20 Giao tiếp cơ bản có thông tin
Hình 4.21 Hỏi về một thông tin cụ thể của khái niệm
Hình 4.22 Câu hỏi so sánh
Hình 4.23 Độ chính xác của truy vấn từng chương trong môn Nhập môn lập trình
Hình 4.24 Độ chính xác của truy vấn từng chương trong môn Lập trình hướng đối tượng
Trang 18DANH MỤC BANG
Bang 3.1 Phân loại ý định - G6 S131 23189119311 119111911910 111 HH TH HH TH ng
Bang 3.2 Vi dụ phân tích câu truy van dạng khái niệm
Bang 3.3 Ví du phân tích câu truy van dạng so sánh
Bang 3.4 Ví du mẫu bộ 3 2-55¿55cccccc2
Bảng 4.1 Kết quả thử nghiệm câu truy vấn ¿- ¿22s x21 2712271122112112112 2111 11111 ee
Trang 19_ TÓM TAT KHÓA LUẬN
Những năm gân đây, sự phát triên mạnh mẽ của lĩnh vực công nghệ nói
chung và ngành IT nói riêng đã khơi dậy niềm đam mê đối với rất nhiều bạn trẻ.Ngành IT cũng đã và đang trở thành đối tượng ưu tiên lúc chọn ngành học Đại
học — Cao đẳng Hưởng ứng xu thế đó, hàng loạt nguồn tài liệu phong phú và
đa dạng cung cấp kiến thức nền tảng và nâng cao cho ngưởi học Từ đó, dẫnđến hệ quả là sinh viên phải đối mặt với tình trạng không biết chọn tài liệu nào
phù hợp với bản thân bên cạnh việc học tập ở trường.
Trong cuộc Cách mạng công nghiệp 4.0, E-learning nổi lên như mộtphương pháp học tập hiện đại Ở đây, học sinh sinh viên có thể tự học, ôn tậpkiến thức bang cách giao tiếp với hệ thống hỏi đáp như chatbot Chatbot đóngvai trò vừa là công cụ, vừa là người hướng dẫn người tra cứu, ôn tập và hệ thônglại kiến thức Một hệ thống chatbot được xem là thông minh nếu được tô chứctri thức hiệu quả và có khả năng xử lý tin nhắn, truy vấn bằng ngôn ngữ tự nhiên
của người dùng.
Trong báo cáo này, chúng em đề xuất một mô hình ontology tri thức quan
hệ tích hợp cấu trúc kịch bản, gọi là Rela-Scripts model Mô hình này được tổchức tri thức nhắm đến mục đích tìm kiếm kiến thức nhập môn lập trình(NMLT) và lập trình hướng đối tượng (OOP) mà đối tượng người dùng hướng
đến chủ yếu là sinh viên năm nhất bắt đầu học lập trình Tóm lại, khóa luận đã
thực hiện các nội dung sau:
Tìm hiểu cách tổ chức tri thức hai môn học là NMLT và OOP Bên cạnh
đó, phát triển tích hợp cấu trúc kịch bản vào mô hình
Tìm hiểu các thuật toán xử lý ngôn ngữ tự nhiên cho chatbot, cụ thé làintent classification và kỹ thuật trích xuất từ khóa
Xây dựng platform chatbot trên website và deploy hệ thống ở mức độ cơ
bản là Flask.
Tw khoá: Ontology, tích hợp tri thức, xử lý lý ngôn ngữ tự nhiên
Trang 20_—_ Chương!: GIỚI THIEU
1.1 Lý do chọn đê tài
Với sự phát triển của Internet hiện nay, người dùng có xu hướng truy cập các
website hay sử dụng các phần mềm trên thiết bị di động dé tìm kiếm thông tin Trong
giao dục hiện nay, giáo dục STEM là một nhu cầu để đào tạo những công dân đápứng được các yêu cầu của cách mạng công nghiệp 4.0 Vì vậy, số lượng người tiếpcận nhóm ngành công nghệ thông tin ngày càng nhiều, và kiến thức nhập môn lậptrình và lập trình hướng đối tượng có thể coi là kiến thức nền tảng cho việc dạy và
học STEM Việc xây dựng chatbot hỗ trợ người dùng học tập, tìm kiếm các kiến thức
về nhập môn lập trình là như cầu rất cần thiết để người học có thể đễ dàng tiếp cận
các kiên thức của môn học.
Cùng với đó, hệ thống máy học (Machine Learning — ML) và các kỹ thuật Xử
lý ngôn ngữ tự nhiên (Natural Language Processing - NLP) đang ngày càng phát triển
và giúp ích cho người ding trong rất nhiều lĩnh vực, trong đó hệ thống hỏi đáp Đặtbiệt với tình hình hiện nay, học tập vững các kiến thức nền tảng là bước xây dựng
nền móng vững chắc dé tiếp cận với các kiến thức chuyên sâu trong nhóm ngành
Công nghệ Thông tin.
Chính vi lý do đó chúng em quyết định chon đề tai này dé giúp học sinh, sinh
viên tra cứu, ôn tập và hệ thông lại kiên thức đã học ở trường một cách hiệu quả.
1.2 Mục tiêu và phạm vi của dé tài
1.2.1 Mục tiêu của đề tài
Trong đề tài này, chúng tôi đề xuất một mô hình biêu diễn tri thức cho chatbot
hỗ trợ truy vấn kiến thức Mô hình là sự tích hợp của ontology biéu diễn tri thức vềlập trình theo dạng tri thức quan hệ với các kịch bản giao tiếp của chatbot Trên cơ
sở đó, nghiên cứu thuật giải để giải quyết các vấn đề về tìm kiếm, tra cứu kiến thứclập trình và OOP Bên cạnh đó, đề tài cũng đề xuất các quy trình thiết kế các kịch bảngiao tiếp để xây dựng chatbot thông minh hỗ trợ việc tra cứu, truy vấn kiến thức lậptrình Một số kĩ thuật xử lý ngôn ngữ tự nhiên cũng được sử dụng dé giúp hệ thống
Trang 21có thể tương tác với người dùng thông qua tiếng Việt Hệ thống chatbot được xây
dựng hướng đến đối tượng chính là sinh viên ngành Công nghệ thông tin đang họcNhập môn lập trình, bên cạnh đó là các học sinh cấp THPT đang tìm hiểu một số kiếnthức cơ sở về lập trình Hệ thống có thê hỗ trợ người học trong việc tra cứu các kháiniệm cũng như thực hiện việc so sánh giữa các khái niệm theo yêu cầu của ngườidùng Hệ thống cũng có thê gợi ý những kiến thức liên quan với nội dung đang được
tìm kiếm đề người dùng có thể hiểu rõ hơn về kiến thức.
1.2.2 Phạm vi của đề tài
Sau khi tìm hiéu và nghiên cứu tông quan về nhu sử dụng của người dùng,
nhóm đã xác định phạm vi đề tài như sau:
e Phạm vi ứng dụng: phát triển trên nền tảng web
e Phạm vi nội dung: kiến thức co bản môn NMLT va OOP
e© Ứng dụng tổ chức Ontology: Protégé
Bồ cục báo cáo bao gồm 07 chương chính:
Chương 1: Giới thiệu về lý do chọn đề tai, mục tiêu và phạm vi nghiên cứu
Chương 2: Tổng quan về hệ thống và bải toán
Trang 22Chương 3: Trình bày cơ sở lý thuyết.
Chương 4: Trình bày quá trình thu thập và tổ chức tri thức
Chương 5: Thiết kế hệ thống
Chương 6: Cách cài đặt và thử nghiệm chương trình.
Chương 7: Kết luận
1.4 Tổng quan về hệ thống chatbot
1.4.1 Giới thiệu hệ thống chatbot
Chatbot trên bản chất là một ứng dụng nhưng cũng có thé xem như là mộtngười bạn đồng hành trong cuộc sống Con người có thé tương tác với chatbot thông
qua văn bản hoặc lời nói đê yêu câu thực hiện một công việc nao đó.
Hiện tại, số lượng các loại chatbot rất đa dạng, dựa trên nhu cầu của ngườidùng mà có những dạng chatbot khác nhau Ví dụ người dùng có thé tra cứu giá batđộng sản bằng cách hỏi chatbot thay vì tìm kiếm trên các trang web khác nhau trên
Trang 23nay còn rất nhiều công cụ cho phép người dùng tạo ra chatbot dé dang phù hợp với
mục đích sử dụng.
1.4.2 Các nghiên cứu và công trình liên quan
Mục tiêu của một chatbot thông minh là việc tạo một người bạn đồng hành với
người dung dé cung cấp thông tin cần thiết đáp ứng yêu cầu người dung Hiện nay,chatbots đã trở nên phô biến trong xã hội nhờ sự phát triển của các công nghệ AI như
xử lý ngôn ngữ tự nhiên (NLP), truy xuất thông tin, hệ thống đàm thoại đồng cảm.Hiện nay có khá nhiều hệ thong trả lời tự động nhưng vùng kiến thức của các mô hìnhnày thường khá rộng, chưa tập trung vào kiến thực về học tập của môn học cụ thể
Tuy nhiên, những chatbot này không thực sự hiệu quả dé tìm kiếm kiến thức giáo dục
hỗ trợ học tập với những câu hỏi mang tính ngữ nghĩa trong cuộc hội thoại Do đó,
kết quả trả lời của hệ thống thường dẫn đến sai lệch khá lớn
Xiaolcle là trợ ly ảo hoạt động trên mạng xã hội của Microsoft, có khả năng
xác định cảm xúc của con người và hồi đáp linh động Nó là sự kết hợp giữa chỉ sốthông minh (IQ) và chỉ số cảm xúc (EQ), nên rất mạnh trong các kỹ năng giao tiếp
Tuy nhiên, chatbot này được thiết kế cho môi trường xã hội, không có các tính năng
hỗ trợ học sinh, sinh viên học tập, tìm kiếm thông tin.
Hình 1.2 Xiaolcle do Microsoft phát triển
WolfamAlpha là một trang web hỗ trợ tìm kiếm thông tin trong nhiều lĩnh
vực Người dùng có thể nhập các nội dung muốn tìm kiếm, tra cứu và chương trình
sẽ đưa ra các kết quả tương ứng Tuy nhiên, kết quả của hệ thống không hướng đến
Trang 24đối tượng là người học và hệ thống không hỗ trợ xử lý những truy vấn bằng tiếng
Việt.
3š WolframAlpha :::::::
algorit
Mathematics Science & Technology Society & Culture Everyday Life
ig Step-by-Step Solutions BL Units & Measures $ People 4+ Personal Health
€ Elementary Math 3 Physics @ Arts eMedia {E=) Personal Finance
Hinh 1.3 Trang web Wolframalpha
Helpjuice là một nền tang SaaS cho việc xây dựng các hệ thống tìm kiếm có
sử dụng cơ sở tri thức Nền tảng này giúp cho các hệ thống có thê thiết lập các luậtsuy diễn dé quá trình tìm kiếm hướng đến quan điểm của người dùng Tuy nhiên, cácluật của Helpjuice chủ yếu hướng đến việc quảng cáo sản phẩm và cơ sở tri thức củanên tang nay chủ yếu ở dạng luật Vì vậy, hệ thống này không phù hợp cho việc thiết
kê cơ sở tri thức cho chatbot hướng đên việc tra cứu kiên thức của môn học.
@)
POPULAR CATEGORIES
Co k⁄ fa
About Verve Sports Festivals
Hình 1.4 Helpjuice — phần mém cơ sở tri thức
Trang 25Trong giáo dục, chatbot được sử dụng để hỗ trợ việc tuyển sinh, hướng dẫngiải bài tập, tìm kiếm kiến thức cần thiết cho sinh viên Các ứng dụng giáo dục có các
tiêu chí sư phạm dé cung cấp kiến thức hữu ích của các khoá hoc Chúng cần được tổ
chức tri thức như đề cương của môn học Đề phục vụ truy vấn kiến thức, chatbot cầnkhả năng giao tiếp với người học tự nhiên như một gia sư hướng dẫn, giải thích chosinh viên Nó cần truy xuất thông tin đúng với yêu cầu của người dùng qua ngôn ngữ
tự nhiên Dé quá trình giao tiếp diễn ra mượt mà, chatbot cần được tích hợp khả năng
xử lý ngôn ngữ tự nhiên để phân tích ngữ nghĩa của truy vấn đầu vào Hơn nữa, từngữ nghĩa của lời nói, chatbot có thể khuyến nghị một số kiến thức liên quan với kết
quả dau ra, giúp người học hiéu rõ hon nội dung tìm kiêm.
Hiện nay có nhiều phương pháp đề biểu diễn các miền tri thức trong giáo dục.Tuy nhiên, chúng chưa thực sự phù hợp dé áp dung cho việc tổ chức cơ sở tri thức
của một chatbot Các mô hình hiện nay chưa được trang bị một thành phần đề xử lýcuộc trò chuyện giữa người dùng và chatbot Trong nghiên cứu về biểu diễn tri thức,
ontology là một phương pháp hiệu quả dé biéu diễn các dạng tri thức trong thực tế.Bên cạnh đó, việc tích hợp ontology cũng đã được áp dụng trong các miễn tri thức về
y khoa, giáo duc Ontology cho các mang sensor cũng được sử dụng dé rút trích cáckiến thức mới thông qua phân cụm K-means từ dữ liệu IoT thu thập được Tuy nhiên,các phương pháp tích hợp ontology hiện nay không thé áp dụng dé tô chức tri thức
cho một chatbot hỗ trợ việc truy van kiến thức trong giáo dục
Trang 26Chương2: ˆ CƠ SỞ LÝ THUYET
2.1 Ontology
Giới thiệu về Ontology:
Trong khoa học máy tính, một Ontology là một mô hình tri thức dùng dé biểudiễn nội dung của một lĩnh vực xác định và được sử dụng dé suy luan vé cac déitượ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 nay.
Hiện nay trong nhiều số lĩnh vực, ontology được sử dụng ví dụ như khoa học
máy tính, hệ thống kỹ thuật, tin sinh học, khoa học thư viện, kiến trúc thông tin và
đặc biệt là website ngữ nghĩa (semantic web).
Cấu trúc của Ontology:
Ontology được biéu diễn theo cấu trúc sao:
O=[C, R, P, I]
Trong do C là tập các cá thé, R là tập các mối quan hệ giữa các khái niệm, P
là tập các thuộc tính của các khái niệm trong C, I là tập các cá thê
Tập cá thé C (Khái niệm): Là thành phan cơ bản và nền tảng của một Ontology
Là tập hợp các đối tượng trừu tượng có thé là các khái niệm hoặc các thực thé
Tập quan hệ R: Thành phần dùng để miêu tả mối quan hệ giữa các đối tượngtrong Ontology Một đối tượng trong Ontology có thé có một hoặc nhiều quan hệ
Tập các thuộc tính P (Thuộc tính): Là tập các thuộc tính của từng đối tượng
cụ thé Thông qua đó dé miêu tả đặc trưng cho đối tượng đó Mỗi thuộc tính đều có
tên va gia tri thuộc tính đó.
Tập cá thé I(Cá thé): Bao gồm các đối tượng cụ thé trong một lĩnh vực cụ thé
Trang 27Lý do sử dụng Ontology
e_ Một Ontology bao gồm khái niệm và mỗi quan hệ trong một lĩnh vực mà
máy tinh có thé hiểu được từ đó có thé tạo ra sự trao đối thông tin giữa con
người và máy tính.
e Việc xậy dựng cau tric Ontology dành cho hai môn học “Nhập môn lập
trình” và “Cấu trúc đữ liệu và giải thuật” sẽ giúp cho việc những người kháctái sử dụng trên các bộ dữ liệu có những đặc điểm tương tự Hoặc cũng có
thé tích hợp thêm các Ontology mới hoặc có săn để mô tả nhiều khái niệm đã
có ở lĩnh vực khác phục vụ cho một Ontology trong một lĩnh vực lớn hơn.
e Kiến thức về các môn học có các thuật ngữ, khái niệm và có thé đặc tả các
mối quan hệ giữa các từ vựng đó thông qua cấu trúc cây phân cấp trong
Ontology.
e Ontology dé sử dụng, đối với người không phải chuyên sâu về lĩnh vực lập
trình cũng dễ chỉnh sửa và làm cho các khái niệm trở nên rõ ràng, dé hiểu
e_ Có thé sử dụng ngôn ngữ RDF dé mô tả một Ontology
2.2 Mô hình tri thức quan hệ
Kiến thức lập trình trong môn học Nhập môn lập trình có thé được biểu diễn
bởi mô hình tri thức quan hệ, Rela-model.
Định nghĩa 1: Mô hình tri thức quan hệ, gọi là Rela-model, là một bộ gồm 3thành phần như sau:
K=(€, R, Rules)
Trong đó, C là tập khái nệm về tri thức nhập môn lập trình R là tập quan hệ
giữa các khái niệm trong C và Rules là tập luật suy diễn.
2.2.1 C — tập khái niệm
Mỗi khái niệm c € C là một lớp đối tượng, có cấu trúc: (Attr, Inner-relation,
Properties, Key) Trong đó: Attr là tập thuộc tính của khái niệm, /nner-relation là tap
Trang 28quan hệ giữa các thuộc tính trong Attr, Properties là tập tính chất tương ứng khái
niệm va Key là tập từ khoá quan hệ tương ứng với khái niệm.
Ví dụ 1: Trong miền tri thức về nhập môn lập trình có một số khái niệm như
Sau:
e Thuật toán — khái niệm về thuật toán
Attr = {Name, Chapter, Content}
— Name: “Thuật toán”
— Chapter: Chương 2
— Content: Thuật toán là một khái niệm cơ sở của Toán học và Tin học.
Thuật toán là một phương pháp thể hiện lời giải của vấn đề - bài toán
Inner-relation = {belong to}
— Name belong to Chapter Properties = {Operators}
Key = {Thuat toan, giai thuat, algorithm}
e POINTER - khái niệm về con trỏ
Attr = {Name, Chapter, Content, Expression, Usage}
— Name: “Con tro”
— Chapter: Chuong 7
— Content: “La một biến lưu trữ dia chi của một dia chi bộ nhớ Dia chi này
thường là địa chỉ của một biến khac.Kiéu con trỏ dung lưu địa chỉ của một đối
tượng đữ liệu khác Biến thuộc kiểu con trỏ T plà biến mà giá trị của nó là địa chỉ
cuả một vùng nhớ ứng với một biến kiểu T, hoặc là gia tri NULL.”
— Expression: các loại con trỏ có trong bai hoc
— Usage: “<kiểu dữ liệu>*<tên biến con trỏ> = &<tén biến>
int a;
int *ptr = &a;”
10
Trang 29Inner-relation = {belong to}
— Name belong to Chapter
Properties = {Cap phát động, cấp phát tĩnh, toán tử new, toán tử delete}
Key = {Con trỏ, Pointer}
2.2.2 R— tập quan hệ
Tập quan hệ giữa các khái niệm C gồm có hai loại quan hệ như sau
R = Rhirerachy U Rretated_to
Trong do:
* Rhirerachy là tập các quan hệ phân cấp giữa các khái niệm, gọi là quan hệ “‘is_a”
ci is_a cj: nghĩa là cj is khái nệm con của c¡ (ci, cj C) và cị.Attr C c¡.Attr.
Ví dụ 2:
— “Ngôn ngữ lập trình cấp cao” is_a “Ngôn ngữ lập trình”
“Mang đa chiều” is_a “Mang”: “Mang đa chiều” có tất cả các thuộc tính mà
“Mang” có như Name, Usage,
® Rrelated_to là tập các quan hệ giữa các tri thức Các quan hệ này giúp xác định
sự liên quan giữa các kiến thức trong quá trình tìm kiếm
ci related_to c;: nghĩa là ¢; có mối quan hệ liên quan tới ¢; (ci, cj € C)
Vi du 3:
— “Chương trình” related_to “Ngôn ngữ lap trình”
— “Câu lệnh” related_to {“Kiéu dit liệu”, “Từ khoá”, “Typedef”} Có nghĩa:
* “Câu lệnh” related_to “Kiều đữ liệu”
* “Câu lệnh” related_ to “Từ khoá”
* “Câu lệnh” related_ to “Typedef”
11
Trang 302.2.3 Rules — tập luật Mỗi luật r © Rules là một luật suy diễn, có dạng: u(r) > v(r), với u(r), v(r) là
33 66
tập các sự kiện Sự kiện là những phát biểu về “đặc tính của quan hệ”, “quan hệ giữa
các khái niệm”, “quan hệ giữa các thuộc tính và khái niệm”.
Ví dụ 4: V c;,cạ eC:
®7r¡: (c¡ related_ to c2} — (ca related_ to c;}
*r›: (ciÌs_a co} > {c2.Attr C c).Attr}
2.3 Mô hình tri thức quan hệ tích hợp kịch bản
2.3.1 Xây dựng kịch bản cho chatbot
Trong một hệ thống hỏi đáp, sẽ có một sỐ dang hội thoại thông dụng Các hộithoại này có một kịch bản giao tiếp chung với người dùng Các kịch bản sẽ bao gồm
những câu hỏi và các giải thích phù hợp với các câu hỏi đó Thông qua việc khảo sát
nhu cầu của người học đối với giảng viên hướng dẫn, thường có các cn đề sau màngười học sẽ hỏi: Định nghĩa một khái niệm, làm thế nào nao dé ứng dụng kiến thức
đó vào thực hành, và những kiên thức liên quan đên nội dung tìm kiêm.
Định nghĩa 2: Cấu trúc của một kịch bản là một bộ gồm 5 thành phần:
(Name, Meaning, Ques, Ans, InnerRul)
Trong đó:
Name: tên của kịch bản
Meaning: nội dung tương ứng với kịch ban
Ques = [qn ,q„] : danh sách các câu hỏi trong kịch ban
Ans = [ai, a„j : danh sách các câu trả lời trong ứng với các câu hỏi, với mỗi a; trả lời cho câu hỏi gi € Ques (1 <i<m).
Nội dung câu hỏi trong Ques và câu trả lời trong Ans được xây dung thong
qua việc thu thập trong quá trình khảo sát giao tiếp giữa người hướng dẫn và người
12
Trang 31InnerRul: tập những quy tắc suy diễn hỗ trợ việc chọn câu hỏi từ chatbot Mỗiluật r € InnerRul cô dang u(r) > v(r), với u(r) là các sự kiện, v(r) là tập các kết quả
cho việc chọn câu hỏi hay câu trả lời.
Ví dụ 5: Kịch bản cho việc truy vấn một định nghĩa trong chatbot
Name Meaning Ques Ans InnerRul
Tìm kiếm |Hội thoại về ai: Con trỏ ai: Con trỏ là một ni vi,l<i<4
định nghĩa tìm kiếm con | 1a gi? Điền trọng Gọi (quanswer=“Yes")
về một khái | trỏ dùng đê lưu trữ
niệm địa chỉ của một | => {show ai}
địa chỉ bộ nhớ r›:{q›.answer= “No”}
4q: Ban có | az: Viet một ham
bài tập để | dùng biến con trỏ | > {goto qi with that
thực hành | dé lưu và xuất ra choice }
không? màn hình Input
được nhập từ
người dùng va
dùng hàm đó đểhiển thị ra man
hình.
q3: Ban có | as: Viết một hàm
muốn tìm | tính giai thừa củahiểu thêm | một số sử dụng
gì không? | con trỏ.
13
Trang 32ga: Ban có | aa: Hiển thị các
muốn tìm |kiến thức liênkiếm các | quan đến con trỏkiến thức
lên quan
đến con trỏ
không?
Để xây dựng một kịch bản giao tiếp, ta có các phân cảnh sau:
e Phân cảnh 1: Thu thập thông tin va phân loại các câu truy van
e Phân cảnh 2: Kết quả nội dung hoặc thuộc tinh của kiến thức trong câu truy van
e Phân cảnh 3: Trả về các ví dụ cụ thể hay các bài tập kiểm tra
e Phân cảnh 4: Gợi ý các kiến thức liên quan đến nội dung truy van
Hình 2.1 Cầu trúc của một kịch bản don giản trên một môn học
Hình 2.1: Khi người dùng bắt đầu cuộc hội thoại, họ có thé chào hoặc đặt câuhỏi ngay Sau đó, hệ thống cho ra câu trả lời và nhắc nhở về kiến thức liên quan Hệthống cũng giới thiệu thêm cho người dùng một số định nghĩa hữu ích liên quan (nếucó) dé họ hiểu rõ hơn về kiến thức cần tìm Dé kết thúc, hệ thống có thé đưa ra một
14
Trang 33sô câu hỏi về “bai tập kiêm tra” hoặc giới thiệu kiên thức liên quan đên nội dung câu
(Gait Tên quan) Mt x =>
Bang juan tâm dén a _
SS TM~ kiến thức trong > ~“ Là câu hỏi ve `` ¬« 4, so »
a ` lpdrnh CÔ 7S ĐH” “`, nhập môn lập trình —^
— "bướnh đói tuber” ee iz
Sai _ yong đôi b4 °
Hình 2.2 Cau trúc kịch bản cho kiến thức tích hợp 2 môn học
2.3.2 Mô hình tri thức tích hợp kịch bản cho chatbot
Định nghĩa 3: Cơ sở tri thức cho chatbot thông minh gồm ontology biểu diễntri thức kết hợp với kịch bản của các đoạn hội thoai giữa người dùng và chatbot Môhình tri thức tích hợp này, được gọi là mô hình Rela-Script model, gồm có các thành
phân sau:
(C, R, Rules) + Scripts
Rela-Script model có thé được sử dung dé tô chức co sở tri thức trong chatbot
thông minh hỗ trợ việc truy van kiến thức của môn hoc Qua trình tích hợp này cần
đảm bảo được các tiêu chuẩn sau:
e© Thiết lập sự kết nối giữa khái niệm trong ontology lõi và các kịch bản:
Qua ngữ nghĩa của kịch bản, trích xuất một số khái niệm của miền tri thứcliên quan đến kịch bản tương ứng dựa trên một số từ khoá của kịch bản và
khái niệm.
15
Trang 34e Tích hợp các loại sự kiện: Các sự kiện liên quan đên nội dung của kịch
bản cần phải được tích hợp với các loại sự kiện trong Rela-model
e Tich hợp các luật trong kịch bản: Một số loại luật sẽ xuất hiện trong quá
trình xuất hiện trong quá trình tích hợp tri thức Do đó, chúng cần đượckết hợp lại với nhau khi tích hợp mô hình
Định nghĩa 4: Cho miền tri thức K = (C, R, Rules) + Scripts có dạng
Rela-Script model, một khái niệm c €C và một kịch bản s € Rela-Scripts Các dang tri thức
được tích hợp trong mô hình Rela-Script như Bảng 1 sau:
Bảng 1 Cấu trúc tích hợp của kịch bản
Quan hệ giữa kịch bản và Sự kiện tích hợp với Rela- Luật tích hợp với
khái niệm model Rela-script model
Câu trúc của kịch bản S1 Xác định cặp câu hỏi và câu Luật r là một luật suy
s := (Name, Meaning, Ques, trả lời : diễn đủ, và có dạng:
< keywords(s.Meaning) A 2” N ket quả được chọn
S2 Hiên thị câu hỏi hoặc câu trả cho câu hỏi hoặc câu
c.Key # ð = 3 ay.
loi trả lời.
Khi đó, keywords(text) Dac tả: Show(u)
là tập các từ khoá của text Điêu kiện : u €s.Ques U s.Ans,
s € Scripts
2.4 Thuat toan BM25
BM25 la mot thuat toan xép hang được sử dung rộng rãi, ra đời vào nhữngnăm của thập niên 70-80 của thé kỷ trước Trên thực tế, BM25 được cải tiến từ nền
tảng là TF-IDF (Term frequency — Inverse document frequency).
Ý tưởng chính của TF-IDF là gồm hai thành phan:
» TF (Term Frequency): xác định tần suất của một token trong một văn
bản.
16
Trang 35» IDF (Inverse Document Frequency): đánh giá mức độ quan trọng của
một token.
BM25 cải tiến hơn so với TF-IDF là xem độ tương tác như một đại lượng xác
suất BM25 sẽ đánh trọng số của mỗi văn bản dựa trên một truy vấn tương ứng Cụ
thé, với một truy vấn Q, q¡, , q„ là trọng số của văn bản d trong BM25 la:
BM29 (46/8) = ) PFO gan + ky (1 — b + b.|dl/countayg ))
Trong đó,
© (qd): số lượng xuất hiện của token q_ trong văn bản d
e_ ld|: số lượng token trong d
© countayg : trung bình sé lượng token trong một van ban
© bandk;: tham số của BM25
Có thé xem BM25 là phương pháp state-of-the-art của thuật toán TF-IDF Tuynhiên, điều đó không có nghĩa BM25 dựa vào TF-IDE Ngoài ý tưởng dựa vào haithành phần chính của TF-IDF, BM25 có khả năng chuẩn hóa độ dai của văn ban dé
phù hợp với tần suất của token Khác với TF-IDF, khi một token xuất hiện nhiều lần
nhưng không đóng vai trò quan trọng trong câu thì sẽ được giảm điểm số xuống
17