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

Đồ án xây DỰNG ỨNG DỤNG CHATBOT hỗ TRỢ môn học OOP

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 (3.76 MB, 120 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

Nguyễn Du Lịch - 17520096
Nguyễn Duy Minh - 17520754

ĐỒ ÁN 2
XÂY DỰNG ỨNG DỤNG CHATBOT
HỖ TRỢ MÔN HỌC OOP
BUIDING CHATBOT APPLICATION
TO SUPPORT LEARNING OOP

GIẢNG VIÊN HƯỚNG DẪN
Thạc sĩ: Trần Anh Dũng

TP. HỒ CHÍ MINH, 2021


LỜI CẢM ƠN
Sau quá trình học tập và rèn luyện tại khoa Công nghệ phần mềm trường Đại học
Công nghệ Thông tin – ĐHQG TP.HCM chúng em đã được trang bị các kiến thức cơ
bản, các kỹ năng thực tế để có thể hồn thành Khóa luận tốt nghiệp của mình.
Để hồn thành khóa luận này, chúng em xin gửi lời cảm ơn chân thành đến:
Ban Giám hiệu trường Đại học Cơng nghệ Thơng tin – ĐHQG TP.HCM vì đã tạo
điều kiện về cơ sở vật chất với hệ thống thư viện hiện đại, đa dạng các loại sách, tài
liệu thuận lợi cho việc tìm kiếm, nghiên cứu thơng tin.
Chúng em xin gửi lời cảm ơn chân thành đến thầy Trần Anh Dũng đã tận tình giúp
đỡ, định hướng cách tư duy và cách làm việc khoa học. Đó là những góp ý hết sức
q báu khơng chỉ trong q trình thực hiện luận văn này mà cịn là hành trang tiếp
bước cho chúng em trong quá trình học tập và lập nghiệp sau này.


Và cuối cùng, chúng em xin gửi lời cảm ơn đến gia đình, tất cả thầy cô trong khoa,
bạn bè, tập thể lớp KTPM2017 là những người luôn sẵn sàng sẻ chia và giúp đỡ trong
học tập và cuộc sống. Mong rằng, chúng ta sẽ mãi mãi gắn bó với nhau.
Trong q trình làm khóa luận này chúng em khơng tránh khỏi được những sai sót,
chúng em kính mong nhận được sự chỉ dẫn và góp ý của q thầy cơ để khóa luận
được hồn thiện hơn.
Chúng em xin chân thành cảm ơn. Xin chúc những điều tốt đẹp nhất sẽ luôn đồng
hành cùng mọi người.
Thành phố Hồ Chí Minh, … tháng … năm 2021
Sinh viên

NGUYỄN DU LỊCH
NGUYỄN DUY MINH


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM

TRƯỜNG ĐẠI HỌC

Độc Lập - Tự Do - Hạnh Phúc

CÔNG NGHỆ THÔNG TIN

TP. HCM, ngày….. tháng ….. năm 2021

ĐỀ CƯƠNG CHI TIẾT
TÊN ĐỀ TÀI: Xây dựng ứng dụng Chatbot hỗ trợ học môn OOP
TÊN ĐỀ TÀI (TIẾNG ANH): Building Chatbot application to support learning

OOP
Cán bộ hướng dẫn: ThS. Trần Anh Dũng
Thời gian thực hiện: Từ ngày 10/03/2021 đến ngày 30/06/2021
Sinh viên thực hiện:
Nguyễn Du Lịch – 17520096
Nguyễn Duy Minh – 17520754
Nội dung đề tài
1. Lý do chọn đề tài:
OOP là tên viết tắt của Object-oriented programming – Lập tình hướng đối tượng.
Đây là một mẫu hình lập trình hết sức quan trọng đối với mọi cá nhân có như cầu
học lập trình.
Tuy nhiên với những ai chưa từng hoặc ít tiếp xúc với lập trình trước đây, OOP và
một mơn khó học với nhiều kiến thức mới cùng khái niệm khó khiến việc học mơn
OOP trở nên dễ nản.
Cùng với đó việc internet hiện nay đã và đang mang lại một sự thay đổi to lớn cho
cả nền kinh tế, khoa học, kỹ thuật trên thế giới. Đặc biệt là tình hình hiện nay nhu

1


cầu chia sẻ thơng tin với tốc độ nhanh chóng, tiện lợi là nhu cầu gần như tất yếu
của mỗi người. Đáp ứng nhu cầu đó, các ứng dụng giao tiếp, mạng xã hội xuất hiện
ngày càng nhiều, kéo theo thời lượng sử dụng các ứng dụng này đốt thời gian ngày
càng cao vì nhiều mục đích khác nhau như học tập, giải trí, giao tiếp, …
Chính vì đó chúng em quyết định chọn đề tài này để giúp người dùng mạng xã hội
có một cơng cụ để học tập, tìm hiểu, giải quyết nhanh các vấn đề trong trong việc
học.
Tình trạng hiện nay:









Chatbot hỗ trợ học OOP hiện nay chủ yếu chỉ trả lời được câu hỏi đơn giản,
chưa trả lời được các câu hỏi phức tạp, câu hỏi nhiều vế, thành phần.
Một số chatbot trả lời bằng cách spam tin nhắn gây lost focus người dùng.
Một số chatbot khác lại lựa chọn trả lời toàn bộ nội dung về một chủ đề,
trong khi thực tế người dùng không cần nhiều thơng tin đến thế.
Các khóa học OOP mang tính chất tuyến tính q nhiều, khơng phù hợp với
những bạn khơng có nhu cầu học sâu hay tìm hiểu, tra cứu thơng tin.
Chưa có hoặc rất ít cơng cụ hỗ trợ mơ tả trực quan sinh động
Khó khăn hoặc mất thời gian trong việc tìm kiếm thơng cần thiết
Mất tập trung vì các lý do khác

⇒ Vì những lý dó đó nhóm quyết định xây dụng một chatbot giúp hỗ trợ việc học
một cách dễ dàng cũng như tra cứu thông tin, giải đề mẫu cũng như cung cấp ví dụ
minh họa. Qua đó đáp ứng nhu cầu học phi tuyến tính cũng như tuyến tính, luyện
tập cũng như tra cứu, tăng trình độ học vấn cho mơn học OOP.
2. Mục tiêu: bao gồm 2 mục tiêu chính:
1. Xây dựng chatbot:
+ FAQ giải đáp nhanh các thắc mắc chung, giảm tối đa thời gian tiêu tốn cần
thiết cho việc tìm kiếm khơng cần thiết.
+ Cung cấp bài tập luyện tập.
+ Giải câu hỏi / chấm điểm tự động ngay trên chatbot
+ Áp dụng xử lý ngôn ngữ tự nhiên để giao tiếp

2



2. Xây dựng trang web hỗ trợ chatbot: dành cho những tương tác bị giới hạn bởi
API chatbot. Ví dụ như:
+

Cho phép đăng và tham gia giải các bài tập, đề mẫu.

+

Xem lộ trình học

+

Đọc bài viết theo chủ đề và lộ trình được vạch sẵn

+

Quản lí thơng tin cá nhân

3. Phạm vi:
Phạm vi môi trường: Web.
Phạm vi chức năng:
− Đối với chatbot:
+ Có khả năng trả lời các câu hỏi về OOP (khái niệm, định nghĩa, ký hiệu…)
+ Tìm kiếm và cung cấp các thông tin bài học chi tiết và ví dụ tại trang web
chính.
+ Chatbot hiểu được tương đối ngôn ngữ tự nhiên
− Đối với ứng dụng Web:
+ Cung cấp lộ trình học OOP.

+ Cung cấp các bài học OOP theo chủ đề
+ Cung cấp các chức năng quản lí bài viết, câu hỏi, bài thi, …
4. Đối tượng sử dụng:


Học sinh, sinh viên bắt đầu học OOP hoặc đã học nhưng chưa nắm rõ.



Creator muốn đóng góp kiến thức, kinh nghiệm, học vấn, … của bản thân để
giúp đỡ người mới

5. Phương pháp thực hiện:
Phương pháp làm việc:
− Làm việc nhóm 2 thành viên thơng qua cả 2 phương thức online và offline dưới
sự hướng dẫn của giảng viên hướng dẫn.

3


Phương pháp nghiên cứu:
− Phân tích nhu cầu sử dụng của đối tượng người dùng.
− Nghiên cứu tài liệu các cơng nghệ liên quan.
Phương pháp cơng nghệ:
− Tìm hiểu cách thức xây dựng Messenger Chatbot.
− Xây dựng RESTful API để thao tác với dữ liệu.
− Xây dựng giao diện Web để tương tác với người dùng và chương trình cho phép
tạo dựng các sơ đồ lớp và bài học dưới dạng tương tác trực tiếp.
− Tìm hiểu bài tốn xử lí ngơn ngữ tự nhiên
6. Nền tảng cơng nghệ:

− Frontend: VueJS
− Backend: NestJS / NodeJS.
− Database: MongoDB.
− Facebook Messenger Chatbot.
− NLP: VnCoreNLP
7. Kết quả mong đợi:


Chatbot có khả năng phản hồi nhanh và chính xác ở mức cao.



Trang web có khả năng scale và hoạt động tốt khi số lượng người dùng tăng.

8. Kế hoạch làm việc:
Thời gian thực hiện từ ngày 10/3/2021 đến ngày 30/6/2021.
Nhóm chia thành 2 giai đoạn cụ thể:
Giai đoạn 1: Hoàn thiện các chức năng cơ bản. Giai đoạn này gồm 2 sprint:
Thời gian: 10/3/2021 – 15/4/2021
Sprint 1: Tìm hiểu cơng nghệ.

4


Sprint 2: Phân tích yêu cầu và chức năng, xây dựng CSDL, RESTful API,
wireframe giao diện.
Sprint 3: Xây dựng và phát triển ứng dụng để thực hiện các chức năng ở
Sprint

Thời gian


Sprint 1 10/3/2021
– 14/3/2021

Công việc
- Lựa chọn đề tài.
- Tìm hiểu cơng nghệ.
- Khảo sát các ứng dụng liên quan.

Sprint 2 15/3/2021 – 2 - Phân tích yêu cầu và chức năng
5/3/2021

- Xây dựng CSDL và RESTful API
- Wireframe giao diện.
- Tìm hiểu xử lý ngơn ngữ tự nhiên

Sprint 3 25/3/2021 – 1 - Xây dựng NodeJS Server.
5/4/2021

- Xây dựng giao diện Web.
- Xây dựng Messenger
Chatbot với các chức năng cơ bản.
- Áp dụng cơ bản xử lý ngôn ngữ tự nhiên ở mức nhận bi
ết
- Triển khai lần 1

Giai đoạn 2: Hoàn thiện các chức năng trong giai đoạn 1, đồng thời xây dựng các
chức nâng cao như xây dựng lộ trình học, cho phép người dùng xây dựng và đóng
góp các ví dụ, …
Giai đoạn này gồm 3 sprint:

Sprint 4: Hoàn thiện các chức năng ở giai đoạn 1.
Sprint 5: Xây dựng các chức mở rộng.

5


Sprint 6: Triển khai và viết báo cáo.
Sprint

Thời gian

Công việc
- Hồn thiện các chức năng đã có ở giai đoạn 1.

Sprint 4 Sprint 4

- Tìm và fix lỗi.
Sprint 5 26/4/2021

– Chatbot:

30/5/2021

- Thêm các chức năng như cung cấp lộ trình học, cung cấp
các ví dụ cho bài học, …
- Hồn thiện xử lý ngôn ngữ tự nhiên
Web: thêm các chức năng như:
- Cho phép người dùng đóng góp và chỉnh sửa ví dụ.
- Quản trị viên: kiểm duyệt nội dung đóng góp.
- Tự động đánh giá bài làm người dùng.


Sprint 6 1/6/2021
– 21/6/2021

- Triển khai sản phẩm
- Viết báo cáo

9. Phân cơng cơng việc
Cơng việc
Cơng
chung

việc - Phân tích u cầu, chức năng.
- Xây dựng CSDL, RESTful API
- Wireframe giao diện
- Tìm hiểu Xử lí Ngơn Ngữ Tự Nhiên
Nguyễn Du Lịch

Cơng
cá nhân

6

việc - Xây dựng Messenger
Chatbot.

Nguyễn Duy Minh
- Backend: RESTful API



- Xử lý ngôn ngữ tự nhiên.

- Frontend: giao diện người dùng,
quản trị viên.

Xác nhận của CBHD
(Ký tên và ghi rõ họ tên)

7

TP. HCM, ngày 6 tháng 3 năm 2021


MỤC LỤC
TÓM TẮT KHÓA LUẬN ................................................................................. 1
GIỚI THIỆU CHUNG ...................................................................... 2
Lý do chọn đề tài .................................................................................... 2
Tính năng mới/ khác biệt ......................................................................... 2
Đối tượng nghiên cứu ............................................................................. 3
Phạm vi nghiên cứu ................................................................................ 3
Phương pháp thực hiện ........................................................................... 4
KIẾN THỨC NỀN TẢNG ................................................................ 5
Tổng quan về mơ hình MVC ................................................................... 5
Khái niệm........................................................................................ 5
Cấu trúc mơ hình MVC .................................................................... 5
Mơ hình MVC trong ứng dụng Web .................................................. 6
Tổng quan về Nodejs .............................................................................. 7
Giới thiệu ........................................................................................ 7
Tạo sao chọn Nodejs để phát triển server............................................ 8
Áp dụng vào đề tài ........................................................................... 9

Hệ quản trị cơ sở dữ liệu MongoDB ....................................................... 10
Giới thiệu ...................................................................................... 10
Ưu điểm của MongoDB .................................................................. 10
VueJS.................................................................................................. 11
Giới thiệu ...................................................................................... 11
Vòng đời của VueJS (Vuejs Lifecycle)............................................. 12
Ưu nhược điểm của VueJS .............................................................. 15

8


NestJS ................................................................................................. 15
Giới thiệu ............................................................................................... 16
Ưu điểm ................................................................................................. 16
VNTK ................................................................................................. 17
Giới thiệu ...................................................................................... 17
Ưu điểm ........................................................................................ 17
TÌM HIỂU VÀ LỰA CHỌN CƠNG NGHỆ ỨNG DỤNG CHATBOT
..................................................................................................................... 18
Tìm hiểu về chatbot .............................................................................. 18
Chatbot là gì? ................................................................................ 18
Tính ứng dụng ............................................................................... 18
Xu hướng phát triển ....................................................................... 19
Tìm hiểu về Facebook Messenger .......................................................... 21
Tổng quan ..................................................................................... 21
Đánh giá........................................................................................ 22
Giới thiệu về Chatbot Facebook ...................................................... 22
Cách hoạt động .............................................................................. 23
Một số khái niệm cơ bản ................................................................. 23
Áp dụng công nghệ vào chatbot ............................................................. 24

Facebook Api ................................................................................ 24
Facebook Graph Api ...................................................................... 24
Đánh dấu từ loại............................................................................. 26
Tách câu đa nghĩa .......................................................................... 26
Phân loại từ nhanh.......................................................................... 27

9


XÂY DỰNG HỆ THỐNG .............................................................. 28
Xây dựng kiến trúc hệ thống .................................................................. 28
Kiến trúc hệ thống Website ............................................................. 28
Kiến trúc hệ thống ChatBot ............................................................. 29
Phân tích thiết kế hệ thống .................................................................... 30
Sơ đồ use case ............................................................................... 30
Sơ đồ module................................................................................. 51
Sơ đồ dữ liệu ................................................................................. 51
Thiết kế giao diện trang web .................................................................. 63
Sơ đồ thiết kế giao diện trang web ................................................... 64
Danh sách giao diện trang web ........................................................ 65
Mô tả chi tiết giao diện trang web .................................................... 67
Thiết kế giao diện chat bot .............................................................. 94
Sơ đồ kịch bản chatbot ................................................................... 97
Kết quả đạt được ............................................................................ 98
KẾT LUẬN, HƯỚNG PHÁT TRIỂN .............................................. 99
Ưu điểm .............................................................................................. 99
Nhược điểm ......................................................................................... 99
Kết quả đạt được .................................................................................. 99
Về mặt nghiên cứu: ........................................................................ 99
Về mặt sản phẩm:........................................................................... 99

Hướng phát triển ................................................................................ 101
TÀI LIỆU THAM KHẢO ............................................................................. 102

10


DANH MỤC HÌNH ẢNH

Hình 2.1.1-1 Mơ hình MVC .............................................................................. 5
Hình 2.1.3-1 Mơ hình MVC trong lập trình Web ............................................ 6
Hình 2.2.1-1 Kiến trúc của NodeJS .................................................................... 7
Hình 2.2.3-1. NestJS ......................................................................................... 9
Hình 2.3.1-1 So sánh mức độ phổ biến của MongoDB ....................................... 10
Hình 2.4.1-1. VueJS ....................................................................................... 11
Hình 2.4.1-2. Cấu trúc 1 file.vue ...................................................................... 12
Hình 2.4.2-1. Vịng đời của 1 component trong VueJS ....................................... 14
Hình 0-1. Kiến trúc module hóa của NestJS ...................................................... 16
Hình 3.1.1-1. Cách thức hoạt động của chatbot ................................................. 18
Hình 3.1.3-1 - Thống kê lượng người dùng của các ứng dụng nhắn tin ................ 20
Hình 3.2.1-1. Lượng người sử dụng Facebook Messenger theo thời gian ............. 21
Hình 3.2.3-1. Chatbot Facebook Messenger ...................................................... 22
Hình 3.2.4-1. Cách hoạt động của Chatbot liên kết với Messenger ...................... 23
Hình 3.3.2-1 - Graph API ................................................................................ 25
Hình 4.1.1-1. Kiến trúc hệ thống của website .................................................... 28
Hình 4.1.2-1. Kiến trúc hệ thống Chatbot ......................................................... 29
Hình 4.2.1-1. Sơ đồ Usecase dành cho người dùng ............................................ 31
Hình 4.2.1-2. Sơ đồ Usecase dành cho người viết bài......................................... 32
Hình 4.2.1-3. Sơ đồ Usecase dành cho quản lí ................................................... 33
Hình 4.2.1-4 Sơ đồ Usecase dành cho admin..................................................... 34
Hình 4.3.3-1................................................................................................... 67

Hình 4.3.3-2 Giao diện Đăng nhập ................................................................... 68
Hình 4.3.3-3 Giao diện Xem bài viết ................................................................ 69
Hình 4.3.3-4 Giao diện Làm bài test ................................................................. 70
Hình 4.3.3-5 Giao diện Kiểm tra kết quả ..................................................... 72
Hình 4.3.3-6 Giao diện Trang cá nhân .............................................................. 74

11


Hình 4.3.3-7 Giao diện Thơng tin bài test ......................................................... 75
Hình 4.3.3-8 Giao diện Kết quả bài test ............................................................ 76
Hình 4.3.3-9 Giao diện Quản lí bài viết ............................................................ 78
Hình 4.3.3-10 Giao diện Tạo bài viết................................................................ 79
Hình 4.3.3-11 Giao diện Chi tiết bài viết .......................................................... 81
Hình 4.3.3-12 Giao diện Bài viết chờ duyệt ...................................................... 82
Hình 4.3.3-13 Giao diện Q&A ......................................................................... 84
Hình 4.3.3-14 Giao diện Tạo câu hỏi ................................................................ 85
Hình 4.3.3-15 Giao diện Quản lí bài test ........................................................... 86
Hình 4.3.3-16 Giao diện Tạo bài test ................................................................ 87
Hình 4.3.3-17 Giao diện Cập nhật thơng tin quyền ............................................ 89
Hình 4.3.3-18 Giao diện Duyệt bài viết ............................................................ 90
Hình 4.3.3-19 Giao diện Quản lí người viết bài ................................................. 91
Hình 4.3.3-20 Giao diện Tạo người viết............................................................ 92
Hình 4.3.3-21 Giao diện Danh sách quản lí ....................................................... 93
Hình 4.3.3-22 Giao diện Tạo quản lí ................................................................ 94
Hình 4.3.4-1 Giao diện bắt đầu ........................................................................ 95
Hình 4.3.4-2 Giao diện thơng tin chatbot .......................................................... 95
Hình 4.3.4-3 Giao diện chào mừng .................................................................. 96
Hình 4.3.4-4 Tìm kiếm bài thi.......................................................................... 96
Hình 4.3.4-5 Ví dụ về màn hình QnA ............................................................... 96

Hình 4.3.5-1 Kịch bản cơ bản của Chatbot ........................................................ 97
Hình 4.3.5-2 Tìm kiếm bài thi.......................................................................... 98

12


DANH MỤC BẢNG
Bảng 4.2.1-1. Danh sách actors .................................................................................35
Bảng 4.2.1-2. Usecase Đăng nhập ............................................................................36
Bảng 4.2.1-3. Usecase Tìm kiếm chung ...................................................................37
Bảng 4.2.1-4. Usecase Xem bài viết .........................................................................37
Bảng 4.2.1-5. Usecase Làm bài test ..........................................................................38
Bảng 4.2.1-6. Usecase Lưu kết quả bài thi ...............................................................39
Bảng 4.2.1-7. Usecase Cập nhật thông tin cá nhân ...................................................40
Bảng 4.2.1-8. Usecase Tạo bài viết ...........................................................................40
Bảng 4.2.1-9. Usecase Cập nhật bài viết...................................................................41
Bảng 4.2.1-10. Usecase Xóa bài viết ........................................................................42
Bảng 4.2.1-11. Usecase Hủy duyệt bài viết ..............................................................43
Bảng 4.2.1-12. Usecase Tạo câu hỏi mới..................................................................44
Bảng 4.2.1-13. Usecase Cập nhật câu hỏi .................................................................44
Bảng 4.2.1-14. Usecase Tạo bài test .........................................................................45
Bảng 4.2.1-15 Usecase Cập nhật bài test ..................................................................45
Bảng 4.2.1-16 Usecase Xóa bài test ..........................................................................46
Bảng 4.2.1-17 Usecase Khơi phục bài test ................................................................47
Bảng 4.2.1-18 Usecase Quản lí thơng tin cá nhân người viết ...................................47
Bảng 4.2.1-19 Duyệt bài viết ....................................................................................48
Bảng 4.2.1-20 Xóa bài viết .......................................................................................49
Bảng 4.2.1-21 Xem thông tin bài duyệt ....................................................................49
Bảng 4.2.1-22 Quản lí người viết bài ........................................................................50
Bảng 8.2.3-1 Sơ đồ CSDL của module Test .............................................................52

Bảng 4.2.3-2. Bảng TestQuiz ....................................................................................53
Bảng 4.2.3-3 Bảng TestSentence ..............................................................................53
Bảng 4.2.3-4 Bảng TestTopic ...................................................................................54
Bảng 4.2.3-5 Bảng TestResult ..................................................................................54
Bảng 4.2.3-6. Sơ đồ CSDL của module Post ............................................................55

13


Bảng 4.2.3-7 Bảng Post .............................................................................................56
Bảng 4.2.3-8 Bảng PostMetadata ..............................................................................56
Bảng 4.2.3-9. Bảng Topic .........................................................................................57
Bảng 4.2.3-10 Bảng PostVerification .......................................................................58
Bảng 4.2.3-11. Sơ đồ CSDL của module Q&A ........................................................58
Bảng 4.2.3-12 Bảng Question ...................................................................................59
Bảng 8.2.3-13 Sơ đồ CSDL của module Menu ........................................................59
Bảng 4.2.3-14 Bảng Menu ........................................................................................60
Bảng 4.2.3-15 Sơ đồ CSDL của module RoleManagement .....................................61
Bảng 4.2.3-16 Bảng User ..........................................................................................62
Bảng 4.2.3-17 Bảng Creator......................................................................................63
Bảng 4.2.3-18 Bảng Manager ...................................................................................63
Bảng 4.3.1-1 Sơ đồ màn hình giao diện của ứng dụng .............................................64
Bảng 4.3.2-1 Danh sách màn hình của ứng dụng .....................................................67
Bảng 4.3.3-1 Mô tả giao diện Trang chủ ..................................................................68
Bảng 4.3.3-2 Mô tả giao diện Đăng nhập .................................................................69
Bảng 4.3.3-3 Mô tả giao diện Xem bài viết ..............................................................70
Bảng 4.3.3-4 Mô tả giao diện Làm bài test ...............................................................72
Bảng 4.3.3-5 Mô tả giao diện Kiểm tra kết quả ........................................................73
Bảng 4.3.3-6 Mô tả giao diện Trang cá nhân ............................................................75
Bảng 4.3.3-7 Mô tả giao diện Thông tin bài test.......................................................76

Bảng 4.3.3-8 Mô tả giao diện Kết quả bài test ..........................................................77
Bảng 4.3.3-9 Mơ tả giao diện Quản lí bài viết ..........................................................79
Bảng 4.3.3-10 Mô tả giao diện Tạo bài viết..............................................................80
Bảng 4.3.3-11 Mô tả giao diện Chi tiết bài viết ........................................................82
Bảng 4.3.3-12 Mô tả giao diện Bài viết chờ duỵet ...................................................83
Bảng 4.3.3-13 Mô tả giao diện Q&A ........................................................................85
Bảng 4.3.3-14 Mô tả giao diện Tạo câu hỏi ..............................................................86
Bảng 4.3.3-15 Mô tả giao diện Quản lí bài test ........................................................87

14


Bảng 4.3.3-16 Mô tả giao diện Tạo bài test ..............................................................88
Bảng 4.3.3-17 Mô tả giao diện Cập nhật thông tin quyền ........................................89
Bảng 4.3.3-18 Mô tả giao diện Duyệt bài viết ..........................................................90
Bảng 4.3.3-19 Mơ tả giao diện Quản lí người viết bài .............................................91
Bảng 4.3.3-20 Mô tả giao diện Tạo người viết .........................................................92
Bảng 4.3.3-21 Mơ tả giao diện Danh sách quản lí ....................................................93
Bảng 4.3.3-22 Mơ tả giao diện Tạo quản lí ..............................................................94
Bảng 4.3.4-1 Danh sách giao diện Chatbot ...............................................................95
Bảng 4.3.4-2 Mô tả giao diện Chatbot tìm kiếm bài viết ..........................................97
Bảng 4.3.4-3 Mơ tả giao diện Chatbot tìm kiếm bài thi............................................97

DANH MỤC TỪ VIẾT TẮT
Từ viết tắt

Từ đầy đủ

API


Application Programming Giao diện lập trình ứng dụng

Giải thích

Interface
CSDL

Cơ sở dữ liệu

Cơ sở dữ liệu cho ứng dụng
Các đoạn code đã được viết sẵn, cấu thành

Framework

nên một bộ khung và các thư viện lập trình
được đóng gói. Cung cấp các tính năng có
sẵn như mơ hình, API và các yếu tố khác
để tối giản cho việc phát triển các ứng
dụng web
HTTP

HyperText

Transfer Giao thức truyền siêu văn bản

Protocol
JSON

JavaScript
Notation


15

Object Định dạng trao đổi dữ liệu


Tất cả các hoạt động khiến một hệ thống

Deploy

phần mềm sẵn sàng cho sử dụng
AI

Artifical Intelligence

Trí tuệ nhân tạo

MVC

Model-View-Controller

Mơ hình lập trình

NoSQL

Non Relational

Cơ sở dư liệu phi quan hệ

NLP


Natural

Language Xử lý ngôn ngữ tự nhiên

Processing
VNTK

Vietnamese NLP Toolkit

Bộ công cụ xử lý NLP cho ngôn ngữ Việt
Nam

POS

Part of Speech

RBSBD

Rule

based

Từ loại
Sentence Xác định vị trí ngắt câu dựa theo quy tắc

Boundary Detection
CRUD

Create, Read, Update And 4 tính năng quan trọng nhất để làm việc

Delete

16

xác định trước

với Database


TĨM TẮT KHĨA LUẬN
Khóa luận “Xây dựng ứng dụng Chatbot hỗ trợ học môn OOP” gồm 06 chương:
Chương 1: Giới thiệu về đề tài, đưa ra các điểm nổi bật so với các ứng dụng trước.
Tiếp đến là đề xuất các giải pháp để giải quyết các vấn đề đã đặt ra. Ngoài ra, chương
1 cũng đề cập đến đối tượng nghiên cứu, phạm vi đề tài, phương pháp nghiên cứu.
Chương 2: Trình bày các kiến thức nền tảng liên quan đến ứng dụng.
Chương 3: Trình bày chi tiết kiến thức, áp dụng thuật tốn và cơng nghệ liên quan
đến Chatbot Facebook.
Chương 4: Trình bày chi tiết quy trình xây dựng hệ thống, từ xác định và phân tích
yêu cầu bài toán cho đến xây dựng CSDL, cuối cùng là xây dựng giao diện cho ứng
dụng.
Chương 5: Kết luận, rút ra được các ưu nhược điểm của ứng dụng và hướng phát
triển trong tương lai.

1


GIỚI THIỆU CHUNG
Lý do chọn đề tài
OOP là tên viết tắt của Object-oriented programming – lập trình hướng đối tượng.
Đây là một mẫu hình lập trình hết sức quan trọng đối với mọi cá nhân có nhu cầu học

programming.
Tuy nhiên với những ai chưa từng hoặc ít tiếp xúc với lập trình trước đây, OOP và
một mơn khó học với nhiều kiến thức mới cùng khái niệm khó khiến việc học mơn
OOP trở nên dễ nản.
Cùng với đó việc internet hiện nay đã và đang mang lại một sự thay đổi to lớn cho cả
nền kinh tế, khoa học, kỹ thuật trên thế giới. Đặc biệt là tình hình hiện nay nhu cầu
chia sẻ thông tin với tốc độ nhanh chóng, tiện lợi là nhu cầu gần như tất yếu của mỗi
người. Đáp ứng nhu cầu đó, các ứng dụng giao tiếp, mạng xã hội xuất hiện ngày càng
nhiều, kéo theo thời lượng sử dụng các ứng dụng này đốt thời gian ngày càng cao vì
nhiều mục đích khác nhau như học tập, giải trí, giao tiếp, …
Chính vì đó chúng em quyết định chọn đề tài này để giúp người dùng mạng xã hội có
một cơng cụ để học tập, tìm hiểu, giải quyết nhanh các vấn đề trong trong việc học.
Tính năng mới/ khác biệt
Sau khi tham khảo một số chatbot hỗ trợ học OOP hiện nay nhóm nhận thấy các vấn
đề sau:
− Chatbot hỗ trợ học OOP hiện nay chủ yếu chỉ trả lời được câu hỏi đơn giản, chưa
trả lời được các câu hỏi phức tạp, câu hỏi nhiều vế, thành phần.
− Một số chatbot trả lời bằng cách spam tin nhắn gây lost focus người dùng.
− Một số chatbot khác lại lựa chọn trả lời toàn bộ nội dung về một chủ đề, trong khi
thực tế người dùng không cần nhiều thông tin đến thế.
Từ đó nhóm quyết định thực hiện chatbot với đầy đủ chức năng cơ bản như tra cứu
thơng tin, ví dụ cũng như thêm vào một số chức năng mới phục vụ việc học và ôn tập

2


Về phần giao diện: Nhóm quyết định sử dụng tương tác chat từ người dùng là chủ
yếu, lấy hiểu ý nghĩa câu nói làm gốc thay vi làm hệ thống button menu chọn phức
tạp. Chỉ hiển thị button ở một số trường hợp đặc biệt với điều kiện lúc này dùng
button nhanh hơn chat

Về phần chức năng:
− Kế thừa toàn bộ các chức năng chatbot cũ đã có
− Thêm xử lý câu hỏi nhiều vấn đề
− Thêm chức năng duyệt bài viết, làm bài tập ơn luyện
Đối tượng nghiên cứu
Khố luận này hướng đến nghiên cứu các đối tượng sau:
− Các công nghệ:
+ Front-end: VueJS
+ Back-end: Nodejs
+ Database: MongoDB
+ Chatbot Facebook Messenger
+ Phân tích ngơn ngữ tự nhiên
+ VNTK
+ IDE: Visual Studio Code


Đối tượng trong phạm vị đề tài hướng đến:
+ Học sinh, sinh viên bắt đầu học OOP hoặc đã học nhưng chưa nắm rõ.
+ Creator muốn đóng góp kiến thức, kinh nghiệm, học vấn, … của bản thân để
giúp đỡ người mới
Phạm vi nghiên cứu

Phạm vi môi trường: Web.
Phạm vi chức năng:
− Đối với chatbot:

3


+ Có khả năng trả lời các câu hỏi cơ bản về kiến thức OOP (khái niệm, định

nghĩa, ký hiệu, …)
+ Cung cấp thông tin bài học chi tiết + ví dụ mẫu tại trang web chính.
+ Hiểu được tương đối ngôn ngữ tự nhiên
− Đối với ứng dụng Web:
+ Cung cấp lộ trình học OOP.
+ Cung cấp các bài học OOP ở nhiều mức độ khác nhau.
− Cho phép người dùng làm các bài test để kiểm tra khả năng hiểu của người dùng.
Phương pháp thực hiện
Phương pháp làm việc:
− Làm việc nhóm 2 thành viên thơng qua cả 2 phương thức online và offline dưới
sự hướng dẫn của giảng viên hướng dẫn.
Phương pháp nghiên cứu:
− Phân tích nhu cầu sử dụng của đối tượng người dùng.
− Nghiên cứu tài liệu các công nghệ liên quan.
− Phương pháp thực nghiệm
Phương pháp cơng nghệ:
− Tìm hiểu cách thức xây dựng Messenger Chatbot.
− Tìm hiểu bài tốn xử lí ngơn ngữ tự nhiên (Natural Language Processing).
− Xây dựng RESTful API để thao tác với dữ liệu.
− Xây dựng website hỗ trợ tương tác giữa người dùng và hệ thống.

4


KIẾN THỨC NỀN TẢNG
Tổng quan về mơ hình MVC
Khái niệm
Mơ hình MVC (Model – View – Controller) là một trong những mơ hình kiến trúc
ứng dụng phổ biến nhất. Ban đầu mơ hình này được áp dụng chủ yếu ở các ứng dụng
desktop, nhưng sau này ý tưởng về mô hình MVC được ứng dụng cho các nền tảng

khác như Web.

Hình 2.1.1-1 Mơ hình MVC

Cấu trúc mơ hình MVC
Tầng xử lý – Controller
Xử lí logic của ứng dụng, là cầu nối giữa tầng View và Model. Hay nói một cách cụ
thể, Controller sẽ nhận yêu cầu được gửi từ View và thực hiện xử lí yêu cầu, truy vấn
hoặc thao tác dữ liệu lên tầng Model. Sau khi xử lý xong, kết quả sẽ được trả về lại
cho tầng View.

5


Tầng logic dữ liệu – Model
Tầng Model là trung gian giữa ứng dụng và hệ quản trị cơ sở dữ liệu để cung cấp và
quản lí mơ hình và các thao tác lên dữ liệu. Thông thường, tầng Model sẽ kết nối với
một hoặc nhiều cơ sở dữ liệu để thực hiện các thao tác lên dữ liệu.
Tầng giao diện – View
Thể hiện giao diện người dùng, là thành phần giao tiếp giữa người dùng (user) và ứng
dụng (application).
Mơ hình MVC trong ứng dụng Web
Với sự phát triển của các công nghệ xây dựng web ở cả Frontend và Backend, các
nhà phát triển có thể xây dựng và phát triển ứng dụng web một cách độc lập nhưng
vẫn đảm bảo được tính kiến trúc của ứng dụng.

Hình 2.1.3-1 Mơ hình MVC trong lập trình Web

6



− Tầng giao diện người dùng (View) sẽ được phát triển độc lập ở phía client sử
dụng các cơng nghệ Frontend như VueJS, ReactJS, … Nói cách khác, client sẽ
được chạy trên 1 server độc lập và có thể tương tác với phía server của backend.
− Tầng xử lí (Controller) và logic dữ liệu (Model) sẽ được phát triển độc lập ở
phía server sử dụng các cơng nghệ Backend như ExpressJS, DotNetCore, Flank,

− Sau khi hoàn thành việc phát triển, client sẽ cung cấp 1 bản build hoàn chỉnh để
thêm vào phía Server. Người dùng sẽ yêu cầu thành phần giao diện thông qua
request gửi đến Server.

Tổng quan về Nodejs
Giới thiệu

Hình 2.2.1-1 Kiến trúc của NodeJS

NodeJS là một mơi trường thực thi mã nguồn mở của Javascript. Hiện nay - NodeJS
rất phổ biến và được sử dụng trong rất nhiều project có quy mơ lớn và nhỏ khác nhau.

7


×