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

Tìm hiểu chatbot và khuyến nghị để xây dựng tiện ích ứng dụng

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 (2.32 MB, 54 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
----------  ----------

BÁO CÁO ĐỒ ÁN 2
Tìm hiểu chatbot và khuyến nghị
để xây dựng tiện ích ứng dụng

Giảng viên hướng dẫn: Thầy Mai Trọng Khang

Nhóm sinh viên thực hiện:
Trần Duy Trọng

18521542

Lê Bá Lĩnh

18520299

TP. HỒ CHÍ MINH, 12/2021


Đồ án 2 – SE122.M11
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
........................................ .........................................................................................
..................................................................................................................................


..................................................................................................................................
.................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................

1


Đồ án 2 – SE122.M11
LỜI NĨI ĐẦU
Hiện nay, ngành cơng nghệ thông tin ngày càng phát triển, đi kèm với nó là lĩnh vực
Thương mại điện tử đang ngày càng bùng nổ. Song song với đó, vấn đề xây dựng các

tiện ích kéo theo cũng được ra đời nhằm mục đích giao tiếp với khách hàng dễ dàng,
thuận tiện hơn.
Nhận thấy nhu cầu giúp đỡ khách hàng trên các app thương mại điện từ là ngày càng
nhiều, nhóm chúng em đã quyết định thực hiện đề tài “Tìm hiểu chatbot và khuyến
nghị để xây dựng tiện ích ứng dụng”, mục tiêu chính là tạo ra một chatbot thơng minh
để giao tiếp với khách hàng, giúp khách hàng hài lòng trong việc mua bán cũng như gia
tăng trải nghiệm của người dùng trong việc sử dụng.
Trong quá trình thực hiện, vì thời gian có hạn nên nhóm chúng em khơng tránh khỏi
những sai sót. Vì vậy, nhóm rất mong nhận được sự góp ý từ phía Thầy để nhóm chúng
em có thêm kinh nghiệm để thực hiện những đề tài, dự án tiếp theo trong tương lai.
Chúng em xin chân thành cảm ơn!
Nhóm sinh viên thực hiện

2


Đồ án 2 – SE122.M11

LỜI CẢM ƠN
Lời đầu tiên, nhóm chúng em xin gửi lời cảm ơn đến Thầy Mai Trọng Khang (Giảng
viên khoa Công Nghệ Phần Mềm) đã hướng dẫn, giúp đỡ và giải đáp những thắc mắc
của nhóm trong q trình thực hiện để nhóm chúng em hồn thành tốt báo cáo mơn học
của mình.
Trong thời gian một học kỳ thực hiện đề tài, nhóm đã vận dụng những kiến thức được
truyền đạt từ Thầy, đờng thời tìm hiểu, học hỏi thêm từ những ng̀n bên ngồi để hồn
thành báo cáo đờ án một cách tốt nhất.
Tuy vậy, trong q trình thực hiện thì nhóm chúng em khơng tránh khỏi những sai sót.
Vì vậy, nhóm rất mong nhận được sự góp ý từ phía Thầy để nhóm chúng em có thêm
kinh nghiệm để thực hiện những đề tài, dự án tiếp theo trong tương lai.
Nhóm chúng em xin chân thành cảm ơn.

Tp. Hồ Chí Minh, ngày …… tháng 12 năm 2021

3


Đồ án 2 – SE122.M11

MỤC LỤC
CHƯƠNG 1………. ............................................................................................ 5
DẪN NHẬP………… ...................................................................................... …5
CHƯƠNG 2……… ............................................................................................. 6
HAI KHỐI KIẾN THỨC TRỌNG TÂM ............................................................. 6
PHẦN 1: CHATBOT ...................................................................................... 6
1. TỔNG QUAN VỀ CHATBOT .................................................................. 6
2. THÔNG TIN CHUNG ............................................................................... 8
3. CÔNG NGHỆ VÀ ỨNG DỤNG ............................................................. 10
4. CÀI ĐẶT CHATBOT .............................................................................. 16
PHẦN 2: KHUYẾN NGHỊ ........................................................................... 31
1. TỔNG QUAN .......................................................................................... 31
2. CƠ SỞ LÝ THUYẾT ............................................................................... 33
3. CÀI ĐẶT MODEL .................................................................................. 43
KẾT LUẬN………… ........................................................................................ 52
TÀI LIỆU THAM KHẢO ................................................................................ 53

4


Đồ án 2 – SE122.M11

CHƯƠNG 1

DẪN NHẬP
Hiện nay thương mại điện tử bùng nổ rất nhanh, điển hình là sự ra đời của hàng
loạt ứng dụng như : shopee, lazada, tiki,…kéo theo đó là sự phát triển vượt bậc
của các cơng nghệ nhằm tăng trải nghiệm người dùng, từ đó có thể đem lại lợi
nhuận cho các doanh nghiệp.
Vậy làm thế nào để có thể xây dựng nên những tiện ích cho các ứng dụng bây
giờ? Câu trả lời mà tụi em hướng đến liên quan đến 2 công nghệ tuy không quá
mới nhưng khi kết hợp lại sẽ vô cùng hữu ích, đó là chatbot và khuyến nghị.
Mục tiêu mà tụi em muốn hướng đến khi thực hiện đề tài này là xây dựng nên
một chatbot có khả năng hiểu được nhu cầu của khách hàng và đưa ra những lời
khuyên để giúp người dùng dễ dàng “chốt deal” với các mặt hàng mình thích.
Về hướng thực hiện, tụi em sẽ chia thành 2 phần.
• Phần 1 sẽ tập trung mô tả cách cài đặt chatbot với một số kĩ thuật xử lý ngơn
ngữ tự nhiên.
• Phần 2 sẽ tập trung nghiên cứu về khuyến nghị với mơ hình khuyến nghị lọc
cộng tác.
Từ đó kết hợp nội dung nghiên cứu của 2 phần này để hoàn thành mục tiêu
muốn hướng đến như đã nói ở trên.

5


Đồ án 2 – SE122.M11

CHƯƠNG 2
HAI KHỐI KIẾN THỨC TRỌNG TÂM
PHẦN 1: CHATBOT
1. TỔNG QUAN VỀ CHATBOT
1.1. KHÁI NIỆM
Chatbot là một phần mềm giúp tương tác với người dùng bằng ngôn ngữ tự nhiên thông

qua âm thanh hoặc tin nhắn. Chatbot có thể kết hợp với cả cơng nghệ AI để giúp quátrình
hỗ trợ khách hàng tốt hơn.

Hình 0.1: Minh họa về chatbot

6


Đồ án 2 – SE122.M11

1.2. ƯU ĐIỂM
Lợi ích đầu tiên phải kể đến đó là thời gian. Việc áp dụng chatbot trong các doanh
nghiệp, cụ thể hơn trong lĩnh vực Thương mại điện tử giúp cho việc tiếp cận, xử lý
những yêu cầu từ phía khách hàng một cách nhanh chóng. Điều này sẽ kéo theo hàng
loạt những lợi ích khác như: Gia tăng doanh thu bán hàng, nâng cao tỷ lệ chốt đơn,...
Hơn thế nữa, chatbot có khả năng ghi nhớ thơng tin dùng nên hồn tồn có thể đưa ra
những tư vấn phù hợp từ những dữ liệu đã thu thập được. Điều này sẽ làm tăng tính trải
nghiệm cho khách hàng.

1.3. HẠN CHẾ
Đi kèm với lợi ích, những hạn chế trong quá trình sử dụng chatbot gây thiệt hại cũng
rất lớn. Ở đây chúng ta phải kể đến những hạn chế như sau:
+ Cần dữ liệu đào tạo lớn
+ Gặp khó khăn trong các câu hỏi nằm ngồi phạm vi được đào tạo
+ Các lỗi ngơn ngữ trong q trình xử lí chatbot

1.4. TÍNH ỨNG DỤNG
Ứng dụng của chatbot hiện nay rất phổ biến và xuất hiện hầu hết trong nhiều lĩnh vực
như: Đầu tư, giáo dục, báo chí, tài chính, thương mại,...
Hiện nay, hầu hết các ứng dụng tin nhắn phổ biến như: Facebook Messenger, Discord,

Telegram,... đều cho phép tích hợp chatbot. Như vậy, việc ứng dụng chatbot cũng góp
một phần khơng nhỏ trong việc cạnh tranh ở bối cảnh thị trường hiện nay.

7


Đồ án 2 – SE122.M11
2. THÔNG TIN CHUNG
2.1. LÝ DO CHỌN ĐỀ TÀI
Hiện nay, tình trạng Covid trên thế giới đang diễn biến phức tạp và chưa có dấu hiệu
dừng lại. Cùng với những yêu cầu về giãn cách, hạn chế tiếp xúc nên người dùng ngày
càng quan tâm đến hình thức mua sắm trực tuyến. Do đó, nhiều doanh nghiệp, các cửa
hàng nhỏ lẻ đang từng bước tiếp cận việc bán hàng online để tối ưu hóa lợi nhuận. Điều
này dẫn đến việc cạnh tranh trong việc bán hàng online ngày càng khốc liệt vì xu hướng
các cửa hàng trực tuyến đang ngày một gia tăng.
Với những lí do trên, việc áp dụng chatbot trong lĩnh vực mua sắm trực tuyến là một sự
cần thiết để thu hút, cải thiện trải nghiệm mua sắm cho khách hàng.

2.2. TÍNH NĂNG NỔI BẬT
Trong quá trình tìm kiếm, chúng em nhận thấy những vấn đề của một số chatbot hiện
tại:
+ Một số chatbot trả lời bằng cách spam tin nhắn gây ảnh hưởng tiêu cực lên khách
hàng
+ Trả lời quá nhiều thông tin khiến khách hàng bị rối thông tin
+ Chưa trả lời được nhiều thơng tin
Từ q trình tìm hiểu và nhận thấy được những vấn đề của một số chatbot hiện nay,
chúng em quyết định thực hiện một chatbot với đầy đủ những chức năng cơ bản để phục
vụ cho nhu cầu mua sắm hiện nay.

2.3. ĐỐI TƯỢNG NGHIÊN CỨU

Đồ án hướng đến việc nghiên cứu các đối tượng sau:
- Về công nghệ
+ Front-end: Reactjs + React Native
+ Back-end: Nodejs
+ Chatbot Facebook Messenger
+ IDE: Visual Studio Code
+ Phân tích ngơn ngữ tự nhiên

8


Đồ án 2 – SE122.M11

- Về đối tượng hướng đến
+ Khách hàng có nhu cầu tra cứu thơng tin, đặt hàng, hỗ trợ trong quá trình mua sắm
+ Các doanh nghiệp, cửa hàng nhỏ lẻ có nhu cầu áp dụng chatbot trong kinh doanh.

2.4. PHẠM VI NGHIÊN CỨU
Phạm vi môi trường: Web
Phạm vi chức năng:
+ Có thể trả lời được các thơng tin cơ bản từ phía khách hàng.
+ Xử lí đặt hàng và lưu dữ liệu.
+ Giải quyết được một số ít ngơn ngữ tự nhiên.

2.5. PHƯƠNG PHÁP THỰC HIỆN
Phương pháp làm việc:
+ Nhóm gờm 2 thành viên cùng nhau thực hiện thơng qua hình thức online dưới sự
hướng dẫn của giảng viên.
Phương pháp nghiên cứu:
Nhóm đã sử dụng nhiều phương pháp nghiên cứu khác nhau, bao gồm:

+ Phương pháp đọc tài liệu
+ Phương pháp phân tích nhu cầu sử dụng của đối tượng người dùng
+ Phương pháp thực nghiệm
Phương pháp cơng nghệ:
+ Tìm hiểu cách thức và q trình xây dựng của Messenger Chatbot
+ Tìm hiểu về bài tốn xử lí ngơn ngữ tự nhiên

9


Đồ án 2 – SE122.M11
3. CÔNG NGHỆ VÀ ỨNG DỤNG
3.1. TỔNG QUAN
Trong q trình tìm hiểu về nghiên cứu, nhóm chúng em đã quyết định đi sử dụng
Facebook Messenger để xây dựng chatbot.
Về Facebook Messenger, đây là một ứng dụng nhắn tin nhanh của Facebook đang phổ
biến hiện nay. Số lượng sử dụng nền tảng này liên tục tăng qua các năm.

Hình 0.2: Lượng người dùng tăng đều qua các năm trên Facebook

Như vậy, việc tiếp cận Facebook Messenger và xây dựng chatbot trên nền tảng này giúp
tiếp cận được rất nhiều người và đây chắc chắn là một trong những yếu tố quan trọng
trong lĩnh vực truyền thông.

10


Đồ án 2 – SE122.M11
3.2. ĐÁNH GIÁ
Sau khi phân tích và đánh giá một cách kỹ lưỡng, nhóm chúng em đã quyết định chọn

nền tảng
Messenger Facebook để phát triển chatbot, bởi vì:
+ Số lượng người dùng của Facebook rất lớn và đa dạng
+ Cung cấp đa dạng các lựa chọn tin nhắn cho người dùng, giao diện thông minh và
thân thiện
+ Hỗ trợ nhiều tính năng xử lí trong chatbot

11


Đồ án 2 – SE122.M11
3.3. GIỚI THIỆU CHATBOT MESSENGER
3.3.1. Khái niệm
Chatbot Messenger là một phần mềm được kết nối với Facebook Messenger giúp cho
các hoạt động bán hàng và chăm sóc khách hàng có thể diễn ra một cách tự động. Hiểu
một cách đơn giản, chatbot lập trình một cách tự động để tương tác với khách hàng bằng
những đoạn tin nhắn ngôn ngữ tự nhiên của thế giới thực.
Trên nền tảng Facebook, chatbot phải được liên kết trên một trang có sẵn và được xử lí
thơng qua webhook. Thay vì việc nhân viên trả lời với khách hàng thì chúng ta có thể
đào tạo những con bot để có thể trị chuyện và gửi phản hời cho họ.

Hình 0.3: Minh họa về Chatbot trên nền tảng Messenger

12


Đồ án 2 – SE122.M11
3.3.2. Cách thức hoạt động
Qui trình hoạt động của chatbot diễn ra trình tự các bước như sau:
Bước 1: Người dùng gửi tin nhắn đến trang có sử dụng chatbot

Bước 2: Tin nhắn được Facebook thu thập và gửi đến máy chủ thông qua webhook
Bước 3: Máy chủ xử lí thơng tin với đoạn tin nhắn nhận được và trả về lại cho Facebook
Bước 4: Facebook gửi phản hời lại cho người dùng

Hình 0.4: Cách thức hoạt động của Chatbot Messenger

13


Đồ án 2 – SE122.M11
3.4. MỘT VÀI KHÁI NIỆM LIÊN QUAN
3.4.1. Webhook
Webhook được hiểu như một khái niệm API, nó là một công nghệ rất tiện dụng trong
việc triển khai các sự kiện. Mục đích chính là của nó là giúp chương trình cung cấp dữ
liệu cho các chương trình khác bằng thời gian thực. Với việc sử dụng webhook, các ứng
dụng bên phía client-side khơng cần phải liên tục gửi thơng tin về phía server. Vì vậy
nó là một cơng cụ hữu ích và rất được ưa chuộng hiện nay.

Hình 0.5: Q trình xử lí của webhook

14


Đồ án 2 – SE122.M11

3.4.2. Facebook Application
Là chương trình được tạo ra nhằm tương tác với người dùng. Trong quá trình thực hiện
chatbot, bên cạnh sở hữu Trang (Fanpage) trên Facebook ta phải sử dụng Facebook
Application để kết nối.


3.4.3. Heroku
Là nền tảng đám mây cho phép các lập trình viên xây dựng, triển khai, quản lý và mở
rộng ứng dụng. Trên đây có rất nhiều addons hữu ích và điều tuyệt vời là chúng ta có
thể sử dụng Heroku một cách miễn phí.

15


Đồ án 2 – SE122.M11

4. CÀI ĐẶT CHATBOT
4.1. CHUẨN BỊ
4.1.1. Phân tích
Trong q trình nghiên cứu, nhóm chúng em đã xác định được các nội dung cần
thực hiện trong quá trình thực hiện chatbot như sau:
+ Lời chào: Gửi lời chào khi có người dùng gửi tin nhắn đến.
+ Thơng tin chi tiết: Các thông tin chi tiết bao gồm Sách mới nhất, thể loại sách,
tác giả.
+ Đặt sách: Người dùng có thể thực hiện đặt sách ngay trong form.
+ Xử lí ngơn ngữ tự nhiên.

16


Đồ án 2 – SE122.M11
4.1.2. Xây dựng
Trước khi đi đến phần nội dung chính là Cài đặt, chúng ta cần phải thực hiện các
bước sau:
Bước 1: Tạo một Trang trên Facebook hoặc sử dụng trang sẵn có. Ở đây nhóm
chúng em sử dụng Fanpage Nhà Sách Tri Thức mà nhóm đã tạo


Hình 0.6: Trang được sử dụng để cài đặt Chatbot
Bước 2: Chuẩn bị tài khoản Heroku để triển khai code bằng cách vào trang đăng
kí sau đây: />Bước 3: Tạo ứng dụng và quản lí ứng dụng thơng qua Facebook Developers tại
đường dẫn: />Tiến hành chọn Tạo app và kết nối với với Trang đã tạo được ở bước 1.

Hình 0.7: Thơng tin ứng dụng được tạo trên Facebook Developers

17


Đồ án 2 – SE122.M11
4.2. CÀI ĐẶT
4.2.1. Xử lí code
Bước 1: Cài Nodejs và Git trên máy tính
Bước 2: Xây dựng sườn code, ở đây nhóm xây dựng theo mơ hình MVC

Hình 0.8: Cây thư mục của source code chatbot

Chi tiết nội dung của các thư mục như sau:
+ node_moudles: Các module được cài đặt bằng lệnh: npm install
+ config: Cấu hình cài đặt dự án
+ controller: Nhận các phản hời từ view và gom nhóm để đưa đến service xử lí
+ services: Xử lí các thơng tin của controller chuyển đến
+ public: Các tệp hiển thị bên phía client và được cơng khai như thư mục, hình
ảnh, css,...
+ routers: Định danh các url được thực hiện
+ views: Hiển thị và lưu trữ các file html
+ index.js: Xử lí và thực hiện các chức năng (được xem là hàm chính của dự án)
+ .env: Lưu trữ các biến môi trường


18


Đồ án 2 – SE122.M11
Bước 3: Bắt đầu thực hiện code dựa theo tài liệu hướng dẫn trên facebook:
/>Có những đoạn code cần phải lưu ý như sau:
Trong file .env

Hình 0.9: Nội dung code trong file mơi trường

Ở đây, có 2 biến được cài đặt ở file môi trường cần phải lưu ý, đó là
VERIFY_TOKEN: Token dùng để xác thực khi thực hiện kết nối và nhận dữ
liệu. Giá trị của biến này là tùy ý miễn là trong quá trình xác thực truyền đúng giá
trị của biến.
PAGE_ACCESS_TOKEN: Token dùng cho truy cập trang. Chúng ta truy cập
vào mục Settings -> Generate Token trên trang Facebook Developers trên chính
trang vừa tạo để lấy thơng tin.

Hình 0.10: Thơng tin token được khởi tạo

19


Đồ án 2 – SE122.M11
Trong file controller.js
Viết các hàm handlePostback, callSendAPI và handleMessage để xử lí chính về
nội dung từ phía khách hàng dựa trên tài liệu hướng dẫn. Đây là các hàm chính
để triển khai và thực hiện quá trình xử lí chatbot.


Hình 0.11: Nội dung code của hàm callSendAPI.

Hàm callSendAPI dùng để xử lí q trình gửi tin nhắn về phía người dùng. Trong
hàm này có 2 thuộc tính chính cần lưu ý:
+ recipient: Xác định đối tượng gửi tin, ở đây xác định bằng mã PSID của người
dùng

20


Đồ án 2 – SE122.M11
+ message: Nội dung chi tiết tin nhắn đã được người dùng gửi. Đoạn tin nhắn này
sẽ được truyền vào trong hàm handleMessage để xử lí.

Hình 0.12: Nội dung code của hàm handleMessage.

Hàm handleMessage dùng để xử lí khi nhận được tin nhắn từ phía người dùng. Ở
đây, 2 tham số được truyền vào:
• sender_psid: Dùng để nhận biết người đã gửi tin.
• received_message: Đối tượng tin nhắn được gửi.
Sau đó hàm này sẽ xử lí đoạn tin nhắn và gọi đến callSendAPI để trả lại phản hời
cho người dùng

Hình 0.13: Nội dung code của hàm handlePostback

21


Đồ án 2 – SE122.M11
Đối với hàm handPostback sẽ xử lí các sự kiện của các nút postback do người

dùng gửi đến. Nhìn chung tham số nhận vào tương tự hàm handleMessage. Ở đây
đoạn nội dung xử lí sẽ nằm trong khối lệnh switch ... case

Ở đây có các trường hợp tương ứng với: Khởi động lại bot, bắt đầu đoạn trị
chuyện, thơng tin sách, sách mới nhất. Đối với từng trường hợp sẽ gọi đến
chatbotService để xử lí.

22


Đồ án 2 – SE122.M11
Trong file chatbotService.js
Sau đây là ví dụ một một trường hợp RESTART_BOT được xử lí trong
chatbotService

Hình 0.14: Nội dung code trong chatbotService

Ở đây, hàm sẽ nhận sender_psid để biết ai là người gửi đến. Sau đó thực hiện gọi
callSendAPI với mục đích trả lại nội dung phản hời cho phía người dùng.

23


Đồ án 2 – SE122.M11
4.2.2. Triển khai
Trong quá trình code, ta có thể tiến hành deploy lên heroku để thực hiện kiểm tra
xem bot có
hoạt động chính xác hay khơng. Ta sẽ tiến hành theo các bước sau:
Bước 1: Vào dashboard của heroku và tiến hành tạo app bằng cách chọn New ->
Create new app. Sau đó điền các trường thơng tin cần thiết.


Hình 0.15: Giao diện tạo app trên Heroku.

Bước 2: Vào Settings -> Config Vars và tiến hành thêm các biến mơi trường
trước khi thực hiện deploy

Hình 0.16: Thêm các biến môi trường trên Heroku.

24


×