Tải bản đầy đủ (.docx) (73 trang)

KHÓA LUẬN tốt NGHIỆP 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 (370.92 KB, 73 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

KHÓA LUẬN TỐT NGHIỆP
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
THƠNG TIN HỘI ĐỒNG CHẤM KHĨA LUẬN TỐT 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.
1. …………………………………………. – Thư ký.
1. …………………………………………. – Ủy viên.
1. …………………………………………. – Ủy viên.
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
Độc Lập - Tự Do - Hạnh Phúc
TRƯỜNG ĐẠI HỌC
CÔNG NGHỆ THÔNG TIN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM


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

NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP
(CỦA CÁN BỘ HƯỚNG DẪN)
Tên khóa luận:
Xây dựng ứng dụng Chatbot hỗ trợ học mơn OOP
Nhóm sinh viên thực hiện: Cán bộ hướng dẫn: NGUYỄN DU
LỊCH 17520096 ThS. Trần Anh Dũng NGUYỄN DUY MINH
17520754
Đá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 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:


3. Về chương trình ứng dụng:




4. Về thái độ làm việc của sinh viên:
Đánh giá chung:
Điểm từng sinh viên:
NGUYỄN DU LỊCH: ………../10
NGUYỄN DUY MINH: ………../10

Người nhận xét

(Ký và ghi rõ họ tên)

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

Trần Anh Dũng
Độc Lập – Tự Do – Hạnh Phúc

TRƯỜNG ĐẠI HỌC
CƠNG NGHỆ THƠNG TIN
CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TP. HCM, ngày tháng năm 2021

NHẬN XÉT KHĨA LUẬN TỐT NGHIỆP
(CỦA CÁN BỘ PHẢN BIỆN)
Tên khóa luận:
Xây dựng ứng dụng Chatbot hỗ trợ học mơn OOP
Nhóm sinh viên thực hiện: Cán bộ phản biện: NGUYỄN DU
LỊCH 17520096 ThS. Trần Anh Dũng NGUYỄN DUY MINH
17520754
Đá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 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:



3. Về chương trình ứng dụng:


4. Về thái độ làm việc của sinh viên:
Đánh giá chung:
Điểm từng sinh viên:
NGUYỄN DU LỊCH: ………../10
NGUYỄN DUY MINH: ………../10

Người nhận xét
(Ký và ghi rõ họ tên)

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



hoà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

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

TRƯỜNG ĐẠI HỌC
CƠNG NGHỆ THƠNG TIN
CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc
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

Công việc
- Lựa chọn đề tài.

– 14/3/2021

- Tìm hiểu cơng nghệ.
- Khảo sát các ứng dụng liên quan.

Sprint 2

15/3/2021 –

- Phân tích yêu cầu và chức năng

2 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


Sprint 4

Sprint 4

- Hồn thiện các chức năng đã có ở giai đoạn
1. - Tìm và fix lỗi.

Sprint 5

26/4/2021 –
30/5/2021

Chatbot:
- 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

- Triển khai sản phẩm


– 21/6/2021

- Viết báo cáo

9. Phân công công việc
Công việc


Cơng việc

- Phân tích u cầu, chức năng.

Cơng việc

- Xây dựng Messenger

chung

- Xây dựng CSDL, RESTful

cá nhân

Chatbot.

API- Wireframe giao diện
- Tìm hiểu Xử lí Ngơn Ngữ Tự Nhiên
Nguyễn Du Lịch

Nguyễn Duy Minh - Backend: RESTful API


6
- 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

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

(Ký tên và ghi rõ họ tên)

7

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
tượng nghiên cứu.......................................................................................3
nghiên cứu..........................................................................................3

Đối

Phạm vi

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
niệm..................................................................................................5
hình MVC.............................................................................5

Khái

Cấu trúc mơ

Mơ hình MVC trong

ứng dụng Web.........................................................6

Tổng quan về

Nodejs .......................................................................................7
thiệu...................................................................................................7
Nodejs để phát triển server .................................................8
tài ....................................................................................9

Giới

Tạo sao chọn
Áp dụng vào đề


Hệ quản trị cơ sở dữ liệu

MongoDB..............................................................10
thiệu.................................................................................................10

Giới

Ưu điểm của

MongoDB..........................................................................10
VueJS .............................................................................................................11
Giới thiệu.................................................................................................11
đời của VueJS (Vuejs Lifecycle) ..................................................12

Vòng
Ư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 CHATBOT18
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
động........................................................................................23
cơ bản.........................................................................23

Cách hoạt

Một số khái niệm
Áp dụng công nghệ vào

chatbot.....................................................................24
Api ..........................................................................................24

Facebook

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


XÂY DỰNG

HỆ THỐNG......................................................................28

9
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..........................................................................101
Kết quả đạt được ...................................................................................101
KẾT LUẬN, HƯỚNG PHÁT TRIỂN..................................................103


Ưu điểm........................................................................................................103
Nhược điểm..................................................................................................103
Hướng phát triển ..........................................................................................105 TÀI
LIỆU THAM KHẢO.......................................................................................106

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..................................................................96
Hình 4.3.4-3 Giao diện chào mừng...........................................................................97
Hình 4.3.4-4 Ví dụ về màn hình QnA.......................................................................98
Hình 4.3.4-5 Giao diện tìm kiếm bài viết .................................................................99
Hình 4.3.4-6 Tìm kiếm bài thi.................................................................................100
Hình 4.3.5-1 Kịch bản cơ bản của Chatbot.............................................................101

Hình 4.3.5-2 Tìm kiếm bài thi.................................................................................101


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..........................................99
Bảng 4.3.4-3 Mơ tả giao diện Chatbot tìm kiếm bài thi..........................................100

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

Từ đầy đủ

Giải thích

API


Application

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

Programming Interface
CSDL

Cơ sở dữ liệu

Framework

Cơ sở dữ liệu cho ứng dụng
Các đoạn code đã được viết sẵn, cấu
thành 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 Object


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

Notation

15
Deploy

Tất cả các hoạt động khiến một hệ thống
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

Từ loại

RBSBD

Rule based Sentence

Xác định vị trí ngắt câu dựa theo quy tắc

Boundary Detection

xác định trước


Create, Read, Update

4 tính năng quan trọng nhất để làm việc

And Delete

với Database

CRUD

16

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
Khoá 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 hồ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


×