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

Ứng dụng phân hệ gợi ý vào hệ thống thương mại điện tử

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 (22.34 MB, 159 trang )

ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

ỨNG DỤNG PHÂN HỆ GỢI Ý VÀO HỆ
THỐNG THƯƠNG MẠI ĐIỆN TỬ
Ngành: KHOA HỌC MÁY TÍNH
!
!
!
!

HỘI ĐỒNG: KHOA HỌC MÁY TÍNH
GVHD: TS. PHAN TRỌNG NHÂN
GVPB: ThS. NGUYỄN ĐÌNH THÀNH
---o0o--SVTH: NGUYỄN BỬU THỊNH – 1720065
!
!
!
!
!
!
!

TP. HỒ CHÍ MINH, 8/2021


!



----------

-

-

KHOA:KH & KT Máy tính ____

HTTT ____________

NGÀNH:

_____________________ MSSV: 1720065 ______
_____________________________________ MSSV: _____________
_____________________________________ MSSV: _____________
___________________
______________________

_____________________________
___________________________________________________________________________

01/03/2021
01/08/2021
1)

________________________________________________________

2) __________________________________________________________________________
3) __________________________________________________________________________


Ngày 01 tháng 03

2021

________________________
_______________________________________
__________________________________
_________________________________
_____________________________


KHOA KH & KT MÁY TÍNH

MSSV: 1720065

---------------------------Ngày 05 tháng 08
2021

Ngành (chuyên ngành):

.
.
-

-

a.
b.
c.

-

9.5/10


TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KH & KT MÁY TÍNH

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
---------------------------Ngày 10 tháng 8 năm 2021

PHIẾU CHẤM BẢO VỆ LVTN
(Dành cho người hướng dẫn/phản biện)
1. Họ và tên SV: Nguyễn Bửu Thịnh MSSV: 1720065
Ngành (chuyên ngành): Hệ thống thông tin
2. Đề tài: Ứng dụng phân hệ gợi ý vào hệ thống thương mại điện tử
3. Họ tên người phản biện: Ths. Nguyễn Đình Thành
4. Tổng quát về bản thuyết minh:
Số trang:
Số chương:
Số bảng số liệu
Số hình vẽ:
Số tài liệu tham khảo:
Phần mềm tính tốn:
Hiện vật (sản phẩm)
5. Tổng quát về các bản vẽ:
- Số bản vẽ:
Bản A1:
Bản A2:

Khổ khác:
- Số bản vẽ vẽ tay
Số bản vẽ trên máy tính:
6. Những ưu điểm chính của LVTN:





Đã tìm hiểu và áp dụng tốt được các công nghệ liên quan.
Hiểu và ứng dụng được các giải thuật hệ thống gợi ý: giải thuật lọc cộng tác, và lọc dựa trên
nội dung.
Báo cáo trình bày tốt, rõ ràng.
Khối lượng cơng việc lớn nhưng đã hồn thành tốt.

7. Những thiếu sót chính của LVTN:




Phần báo cáo nên tập trung vào phân hệ gợi ý, chatbox thơng minh thay vì hệ thống bán
hàng điện tử.
Phân hệ gợi ý nên thiết kế theo hướng module, plugin hay lib để dễ dàng tích hợp vào các
trang thương mại điện tử.
Phần đánh giá performance hệ thống cịn sơ sài: ví dụ tập mẫu cịn q ít, do đó kết quả
đánh giá hệ thống lỗi cịn rất cao: trên 40%.

8. Đề nghị: Được bảo vệ ■
Bổ sung thêm để bảo vệ □
9. 3 câu hỏi SV phải trả lời trước Hội đồng:

10. Đánh giá chung (bằng chữ: giỏi, khá, TB): giỏi

Không được bảo vệ □
Điểm : 9.5/10

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


LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

GVHD: TS. PHAN TRỌNG NHÂN

LỜI CAM ĐOAN
Tôi xin cam đoan Luận văn tốt nghiệp đề tài “Ứng dụng phân hệ gợi ý vào hệ
thống thương mại điện tử” là hệ thống do chính tơi thực hiện. Các số liệu, nội dung và
kết quả trình bày trong Luận văn tốt nghiệp của tơi là hồn tồn trung thực, nếu sai tơi
xin chịu hồn tồn trách nhiệm và chịu mọi kỷ luật của khoa, bộ môn và nhà trường đề
ra.
Tp. Hồ Chí Minh, tháng 7/2021
Sinh viên thực hiện

Nguyễn Bửu Thịnh

!
!
!
!
!
!
!

!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
SVTH: NGUYỄN BỬU THỊNH – MSSV: 1720065

Trang 1


LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

GVHD: TS. PHAN TRỌNG NHÂN

LỜI CẢM ƠN

Quá trình thực hiện Luận Văn Tốt Nghiệp là giai đoạn quan trọng nhất trong quãng
đời mỗi sinh viên. Luận Văn Tốt Nghiệp là tiền đề nhằm trang bị cho em những kỹ năng
nghiên cứu, những kiến thức quý báu, cần thiết trong quá trình làm việc sau này.
Trước hết, em xin chân thành cảm ơn quý Thầy, Cô trong khoa Khoa Học và Kỹ
Thuật Máy Tính đã tận tình chỉ dạy và trang bị cho em những kiến thức cần thiết trong
suốt quá trình học tập trên giảng đường.
Em xin chân thành cảm ơn Tiến sĩ Phan Trọng Nhân, thầy đã trực tiếp hướng dẫn
em trong suốt quá trình thực hiện đề tài Luận Văn Tốt Nghiệp, thầy đã trực tiếp theo dõi
cũng như góp ý, sửa chữa những sai sót cho em trong suốt q trình thực hiện Luận Văn
Tốt Nghiệp. Bên cạnh sự nỗ lực của bản thân, sự hỗ trợ nhiệt tình của thầy đã giúp em
hoàn thành Luận Văn Tốt Nghiệp một cách thuận lợi.
Con xin chân thành gửi lời cảm ơn sâu sắc đến Ba Mẹ đã sinh thành, dưỡng dục,
tạo mọi điều kiện thuận lợi cả về vật chất lẫn tinh thần, giúp con có được ngày hơm nay.
Xin chân thành cám ơn sự ủng hộ, động viên của những người bạn trong quá trình
làm Luận Văn Tốt Nghiệp.
Mặc dù đã cố gắng hết sức để hoàn thành Luận Văn Tốt Nghiệp, nhưng chắc chắn
sẽ khơng tránh khỏi sai sót, rất mong nhận được sự góp ý và chỉ bảo từ quý thầy cô và
các bạn.
Xin chân thành cảm ơn thầy cô và các bạn. Xin chúc những điều tốt đẹp nhất sẽ
ln đồng hành cùng với mọi người.
Tp. Hồ Chí Minh, tháng 7/2021
Sinh viên thực hiện

Nguyễn Bửu Thịnh

!
!
!
!
!

!
!
!
!
!
!

SVTH: NGUYỄN BỬU THỊNH – MSSV: 1720065

Trang 2


LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

GVHD: TS. PHAN TRỌNG NHÂN

TÓM TẮT LUẬN VĂN
Đề tài: Ứng dụng phân hệ gợi ý vào hệ thống thương mại điện tử
Trong đề tài Ứng dụng phân hệ gợi ý vào hệ thống thương mại điện tử này, ta sẽ
thực hiện thiết kế một website thương mại điện tử mua bán sản phẩm công nghệ như
điện thoại, laptop, máy tính bảng, đồng hồ thơng minh có tích hợp phân hệ gợi ý vào
website. Phân hệ gợi ý có chức năng gợi ý các sản phẩm thương mại điện tử cho người
dùng dựa trên thông tin trải nghiệm của người dùng trong quá khứ khi người dùng xem
các sản phẩm có trên website cũng như gợi ý thêm các sản phẩm liên quan khác cho
người dùng dựa trên mức độ tương tự, liên quan giữa các sản phẩm. Bên cạnh đó,
website đã tích hợp chatbot để tự động trả lời tin nhắn cho người dùng khi người dùng
đặt câu hỏi. Chatbot này cũng được tích hợp machine learning để có thể phân biệt ngữ
cảnh tin nhắn của người dùng cũng như gợi ý sản phẩm cho người dùng khi người dùng
đặt câu hỏi tìm kiếm sản phẩm trên chatbot. Chatbot cịn có khả năng hỗ trợ người dùng
thêm sản phẩm vào giỏ hàng và đặt hàng trên chatbot.

Để làm đề tài này, mình đã tìm hiểu nghiệp vụ của các website kinh doanh các sản
phẩm thương mại điện tử khác và từ đó phân tích, triển khai một mơ hình website kinh
doanh các sản phẩm cơng nghệ có tích hợp phân hệ gợi ý và các mơ hình machine
learning khác vào website và chatbot.
Bên cạnh việc tìm hiểu nghiệp vụ của các website thương mại điện tử, mình cũng
đã tìm hiểu các cơng nghệ, các framework liên quan để thực hiện đề tài này. Sản phẩm
của đề tài là một website thương mại điện tử có khả năng gợi ý sản phẩm cho người
dùng dựa trên thông tin trải nghiệm người dùng xác thực cũng như những người dùng
trải nghiệm với tư cách là khách, đồng thời người dùng có thể nhắn tin trên chatbot,
chatbot có khả năng gợi ý sản phẩm cho người dùng, người dùng cũng có thể đặt mua
hàng trên chatbot một cách tự động mà không cần phải tương tác với người kinh doanh
sản phẩm.

SVTH: NGUYỄN BỬU THỊNH – MSSV: 1720065

Trang 3


LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

GVHD: TS. PHAN TRỌNG NHÂN

MỤC LỤC
LỜI CAM ĐOAN ..........................................................................................................1
LỜI CẢM ƠN ................................................................................................................2
TÓM TẮT LUẬN VĂN ................................................................................................3
MỤC LỤC ......................................................................................................................4
DANH MỤC BẢNG BIỂU ...........................................................................................7
DANH MỤC HÌNH ẢNH .............................................................................................9
CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI .........................................................................12

1.1.

Tổng quan đề tài ..........................................................................................12

1.2.

Mục tiêu và phạm vi đề tài .........................................................................12

1.3.

Nội dung của luận văn ................................................................................13

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ ..........................................14
2.1.
Cơ sở lý thuyết .............................................................................................14
2.1.1. Thương mại điện tử ...................................................................................14
2.1.2. Phân hệ gợi ý .............................................................................................15
2.1.3. Ứng dụng phân hệ gợi ý vào hệ thống thương mại điện tử .......................15
2.1.4. Một số website có tích hợp phân hệ gợi ý và cơ chế.................................16
2.2.
Công nghệ sử dụng ......................................................................................17
2.2.1. Facebook Chatbot ......................................................................................17
2.2.2. Python, sklearn ..........................................................................................19
2.2.2.1. Ngôn ngữ Python...............................................................................19
2.2.2.2. Ứng dụng của Python ........................................................................19
2.2.3. MySQL ......................................................................................................20
2.2.4. HTML, Pug, CSS, Javascript, Bootstrap ...................................................21
2.2.5. NodeJS ......................................................................................................23
2.2.6. ExpressJS ..................................................................................................23
2.2.7. Paypal ........................................................................................................24

2.2.7.1. Mơ hình thanh tốn Paypal................................................................24
2.2.7.2. Paypal IPN.........................................................................................25
CHƯƠNG 3: PHÂN TÍCH U CẦU......................................................................26
3.1.
Cơng nghệ sử dụng ......................................................................................26
3.1.1. Yêu cầu phi chức năng ..............................................................................26
3.1.2. Yêu cầu chức năng ....................................................................................26
3.1.2.1. Tổng quát...........................................................................................26
3.1.2.2. Yêu cầu chức năng của quản trị viên ................................................26
3.1.2.3. Yêu cầu chức năng của nhân viên .....................................................27
SVTH: NGUYỄN BỬU THỊNH – MSSV: 1720065

Trang 4


LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
3.1.2.4.
3.1.2.5.

GVHD: TS. PHAN TRỌNG NHÂN

Yêu cầu chức năng của người dùng ..................................................27
Yêu cầu chức năng của người dùng với tư cách khách .....................28

3.2.

Lược đồ Use-Case ........................................................................................28

3.3.


Đặc tả Use-Case cho các chức năng chính ................................................33

3.4.

Phân tích các yêu cầu chính .......................................................................39

3.5.

Phân tích các yêu cầu khác .........................................................................40

CHƯƠNG 4: THIẾT KẾ HỆ THỐNG VÀ THUẬT TOÁN...................................41
4.1.

Kiến trúc hệ thống .......................................................................................41

4.2.
Thiết kế cơ sở dữ liệu ..................................................................................42
4.2.1. Mô hình thực thể liên kết – EERD ............................................................42
4.2.2. Ánh xạ sang mơ hình dữ liệu quan hệ .......................................................47
4.3.
Các thuật tốn học máy (machine learning) và phân hệ gợi ý
(recommendation system) .......................................................................................50
4.3.1. Giải thuật lọc cộng tác (Neighborhood-based Collaborative Filtering) ....50
4.3.1.1. Ý tưởng ..............................................................................................50
4.3.1.2. Các bước thực hiện ............................................................................51
4.3.2. Giải thuật lọc dựa trên nội dung (Content-based Recommendation
System) ..................................................................................................................54
4.3.2.1. Ý tưởng ..............................................................................................54
4.3.2.2. Các bước thực hiện ............................................................................55
4.3.2.3. Đặc điểm mơ hình .............................................................................55

4.3.3. Giải thuật K-nearest Neighbors(KNN) .....................................................56
4.4.

Thiết kế lớp đối tượng .................................................................................56

4.5.

Chức năng gợi ý sản phẩm(viết bằng Python) ..........................................58

CHƯƠNG 5: HIỆN THỰC HỆ THỐNG..................................................................59
5.1.

Công nghệ sử dụng ......................................................................................59

5.2.
Xây dựng website ........................................................................................59
5.2.1. Trang chủ khi người dùng chưa đăng nhập ...............................................59
5.2.2. Trang chủ khi người dùng đã đăng nhập ...................................................60
5.2.3. Chatbot và thanh toán trên chatbot ............................................................62
5.2.4. Xem chi tiết sản phẩm ...............................................................................64
5.2.5. Đặt hàng trên hệ thống, thanh toán tiền mặt, paypal .................................65
5.2.6. Một số phần chính của trang quản trị viên ................................................70
5.2.7. Quản trị viên xem danh sách đơn hàng .....................................................75
5.2.8. Nhân viên xác nhận đơn hàng ...................................................................76
5.2.9. Hiển thị danh sách các sản phẩm gợi ý được người dùng xem, thêm vào
giỏ hàng, mua nhiều nhất ......................................................................................78
SVTH: NGUYỄN BỬU THỊNH – MSSV: 1720065

Trang 5



LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

GVHD: TS. PHAN TRỌNG NHÂN

CHƯƠNG 6: KIỂM THỬ PHẦN MỀM ...................................................................82
6.1.

Chức năng gợi ý sản phẩm của phân hệ gợi ý hoặc sản phẩm phổ biến 82

6.2.
Chức năng thêm sản phẩm vào giỏ hàng, đặt hàng và thanh tốn trên
website ......................................................................................................................87
6.3.

Chức năng tìm kiếm và đặt hàng trên chatbot .........................................92

6.4.

Kiểm thử kịch bản của chatbot ..................................................................94

6.5.

Kiểm thử tính năng đặt hàng trên chatbot ...............................................95

CHƯƠNG 7: ĐÁNH GIÁ HỆ THỐNG VÀ PERFORMANCE .............................98
7.1.

Đánh giá hiệu quả của phân hệ gợi ý .........................................................98


7.2.
Đánh giá performance ................................................................................99
7.2.1. Đánh giá trang chủ của website khi người dùng chưa đăng nhập ...........100
7.2.2. Đánh giá trang danh sách từng loại sản phẩm .........................................103
7.2.3. Đánh giá performnace cho trang chủ khi người dùng đăng nhập vào tài
khoản cá nhân ......................................................................................................105
7.2.4. Đánh giá performance khi nhiều người dùng cùng tìm kiếm sản phẩm theo
từ khoá .................................................................................................................108
7.2.5. Đánh giá performance khi nhiều người dùng truy cập vào trang xem chi
tiết sản phẩm........................................................................................................110
CHƯƠNG 8: TỔNG KẾT ........................................................................................113
8.1.
Những điều đã thực hiện được .................................................................113
8.1.1. Về nghiệp vụ ...........................................................................................113
8.1.2. Về công nghệ ...........................................................................................113
8.2.
Đánh giá hệ thống ......................................................................................113
8.2.1. Ưu điểm ...................................................................................................113
8.2.2. Những hạn chế chưa thực hiện được .......................................................113
8.3.

Hướng phát triển tương lai.......................................................................114

DANH MỤC TÀI LIỆU THAM KHẢO .................................................................115
PHỤ LỤC ...................................................................................................................116

SVTH: NGUYỄN BỬU THỊNH – MSSV: 1720065

Trang 6



LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

GVHD: TS. PHAN TRỌNG NHÂN

DANH MỤC BẢNG BIỂU
Bảng đặc tả 3.1: gợi ý sản phẩm theo từng người dùng
Bảng đặc tả 3.2: gợi ý kèm theo với từng sản phẩm cụ thể
Bảng đặc tả 3.3: chức năng tìm kiếm sản phẩm trên thanh tìm kiếm
Bảng đặc tả 3.4: chức năng đặt hàng trên hệ thống
Bảng đặc tả 3.5: chức năng thanh toán paypal
Bảng đặc tả 3.6: chức năng trò chuyện với chatbot
Bảng đặc tả 3.7: chức năng đặt hàng trên chatbot
Bảng đặc tả 3.8: chức năng xem danh sách gợi ý trên trang người dùng
Bảng đặc tả 3.9: chức năng xem thông tin thống kê trên trang quản trị viên
Bảng đặc tả 3.10: chức năng thêm mới sản phẩm của quản trị viên
Bảng đặc tả 3.11: chức năng xem chi tiết đơn hàng phía quản trị viên
Bảng 4.1: bảng tai_khoan_nguoi_dung
Bảng 4.2: bảng san_pham
Bảng 4.3: bảng quan_tri_vien
Bảng 4.4: bảng don_hang
Bảng 4.5: bảng reset_password
Bảng 4.6: bảng luot_xem
Bảng 4.7: bảng luot_xem_cua_khach
Bảng 4.8: bảng nhat_ky
Bảng 4.9: bảng nhat_ky_loc_cong_tac
Bảng 4.10: bảng thong_so
Bảng 4.11: ví dụ về utility matrix dựa trên số lượng tương tác của người dùng
Bảng 4.12: tính trung bình cộng số lượt xem của từng người dùng
Bảng 4.13: bảng utility matrix đã được chuẩn hoá

Bảng 4.14: kết quả tính tốn cosine similarity giữa các người dùng
Bảng 4.15: kết quả dự đoán khả năng quan tâm của người dùng với sản phẩm
Bảng 5.1: các công nghệ sử dụng trong hệ thống
Bảng 6.1: kiểm thử chức năng gợi ý và hiển thị sản phẩm phổ biến
Bảng 6.2: kiểm thử chức năng thêm vào giỏ hàng, đặt hàng, thanh toán
Bảng 6.3: kiểm thử kịch bản cho chatbot
Bảng 6.4: kiểm thử tính năng đặt hàng trên chatbot
Bảng đặc tả PL1: đăng nhập vào trang chủ
Bảng đặc tả PL2: đăng nhập vào trang nhân viên
Bảng đặc tả PL3: đăng nhập vào trang quản trị viên
Bảng đặc tả PL4: chức năng thay đổi mật khẩu người dùng
Bảng đặc tả PL5: chức năng đăng ký tài khoản
Bảng đặc tả PL6: chức năng thêm sản phẩm vào giỏ hàng
Bảng đặc tả PL7: chức năng huỷ, xác nhận đơn hàng dành cho nhân viên
Bảng đặc tả PL8: chức năng chỉnh sửa thông tin sản phẩm
Bảng đặc tả PL9: chức năng xoá sản phẩm của quản trị viên
Bảng đặc tả PL10: chức năng xố thơng tin người dùng ở trang quản trị viên
Bảng đặc tả PL11: chức năng xố thơng tin nhân viên ở trang quản trị viên
Bảng đặc tả PL12: chức năng tạo tài khoản nhân viên ở trang quản trị viên
Bảng PL13: kiểm thử tính năng đăng ký tài khoản
Bảng PL14: kiểm thử tính năng đăng nhập và đổi mật khẩu
SVTH: NGUYỄN BỬU THỊNH – MSSV: 1720065

33
33
34
34
35
35
36

37
37
38
38
47
47
47
48
48
48
49
49
49
49
51
52
52
53
54
59
83
88
95
95
116
116
117
117
118
118

119
119
120
120
121
121
136
139

Trang 7


LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

GVHD: TS. PHAN TRỌNG NHÂN

Bảng PL15: chức năng xem danh sách sản phẩm, chi tiết sản phẩm
Bảng PL16: chức năng quản lý đơn hàng cho trang nhân viên, quản trị viên
Bảng PL17: chức năng xem, thêm, xoá, sửa sản phẩm ở trang quản trị viên

SVTH: NGUYỄN BỬU THỊNH – MSSV: 1720065

140
141
143

Trang 8


LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC


GVHD: TS. PHAN TRỌNG NHÂN

DANH MỤC HÌNH ẢNH
Hình 2.1: sơ đồ tương tác giữa người dùng vào chatbot
Hình 2.2: sơ đồ mơ hình thanh tốn paypal
Hình 3.1: lược đồ Use-Case tổng quát cho tất cả người dùng
Hình 3.2: lược đồ Use-Case chi tiết cho người xem với tư cách khách
Hình 3.3: lược đồ Use-Case chi tiết cho người dùng
Hình 3.4: lược đồ Use-Case chi tiết cho nhân viên
Hình 3.5: lược đồ Use-Case chi tiết cho quản trị viên
Hình 4.1: kiến trúc mơ hình của hệ thống
Hình 4.2: mơ hình EERD
Hình 5.1: giao diện trang chủ của website
Hình 5.2: nội dung hiển thị trang chủ khi người dùng đã đăng nhập
Hình 5.3: giao diện hiển thị khi click vào icon messenger chatbot
Hình 5.4: giao diện khung chat để trị chuyện với chatbot
Hình 5.5: giao diện thanh tốn trên chatbot khi người dùng chưa đăng nhập
Hình 5.6: các trường thơng tin trong giao diện thanh tốn khi đã đăng nhập
Hình 5.7: hình 1 sản phẩm cụ thể hiển thị trong danh sách sản phẩm
Hình 5.8: chi tiết sản phẩm
Hình 5.9: popup hiển thị danh sách sản phẩm đã đặt mua trong giỏ hàng
Hình 5.10: form đặt hàng hệ thống
Hình 5.11: thơng báo đặt hàng thành cơng khi thanh tốn tiền mặt
Hình 5.12: trang để thanh tốn paypal
Hình 5.13: thông báo đặt hàng trên hệ thống và thanh tốn paypal thành cơng
Hình 5.14: thống kê thơng tin số lượng người dùng, số đơn hàng, số sản phẩm
Hình 5.15: top 5 sản phẩm được xem nhiều nhất
Hình 5.16: thơng tin đánh giá mơ hình phân hệ gợi ý và thơng tin website
Hình 5.17: thanh tuỳ chọn cho phép hiển thị số lượng top sản phẩm gợi ý

Hình 5.18: top sản phẩm gợi ý theo sản phẩm được tương tác nhiều nhất
Hình 5.19: top sản phẩm gợi ý theo sản phẩm được tương tác nhiều nhất
Hình 5.20: top sản phẩm gợi ý theo sản phẩm được xem nhiều nhất
Hình 5.21: top gợi ý theo sản phẩm được thêm vào giỏ hàng nhiều nhất
Hình 5.22: top gợi ý theo sản phẩm được người dùng đặt mua nhiều nhất
Hình 5.23: top gợi ý cho từng người dùng được người dùng xem nhiều nhất
Hình 5.24: top gợi ý cho từng người dùng được thêm vào giỏ hàng nhiều nhất
Hình 5.25: top gợi ý cho từng người dùng được đặt mua nhiều nhất
Hình 5.26: xem danh sách đơn hàng ở trang quản trị viên
Hình 5.27: quản trị viên xem chi tiết đơn hàng
Hình 5.28: xem danh sách đơn hàng ở trang nhân viên
Hình 5.29: nhân viên xem chi tiết đơn hàng
Hình 5.30: danh sách gợi ý theo các sản phẩm được tương tác nhiều nhất
Hình 5.31: danh sách gợi ý cho người dùng được tương tác nhiều nhất
Hình 5.32: danh sách gợi ý theo sản phẩm được người dùng xem nhiều nhất
Hình 5.33: danh sách gợi ý theo sản phẩm được thêm vào giỏ hàng
Hình 5.34: danh sách gợi ý theo sản phẩm được người dùng mua nhiều nhất
Hình 5.35: danh sách gợi ý cho người dùng được xem nhiều nhất
Hình 5.36: danh sách gợi ý cho người dùng được thêm vào giỏ hàng
SVTH: NGUYỄN BỬU THỊNH – MSSV: 1720065

17
24
29
29
30
31
32
41
45

60
61
62
62
63
63
64
65
66
67
68
69
70
71
71
71
71
72
72
73
73
74
74
75
75
76
76
77
77
78

78
79
79
80
80
81

Trang 9


LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

GVHD: TS. PHAN TRỌNG NHÂN

Hình 5.37: danh sách gợi ý cho người dùng được mua nhiều nhất
Hình 6.1: gợi ý sản phẩm phổ biến khi người dùng chưa đăng nhập
Hình 6.2: gợi ý sản phẩm cho người dùng mới
Hình 6.3: gợi ý sản phẩm dựa trên lịch sử tương tác của người dùng
Hình 6.4: danh sách sản phẩm liên quan, gần gũi với sản phẩm cụ thể
Hình 6.5: trường tìm kiếm sản phẩm, gõ tên sản phẩm đang cần tìm
Hình 6.6: danh sách kết quả trả về khi tìm kiếm sản phẩm
Hình 6.7: hiển thị nút thêm sản phẩm và xem chi tiết sản phẩm khi rê chuột
Hình 6.8: Số lượng sản phẩm đang có trong giỏ hàng.
Hình 6.9: popup danh sách sản phẩm đã được thêm vào giỏ hàng.
Hình 6.10: Form khi người dùng đăng nhập để mua sản phẩm.
Hình 6.11: Trang thơng tin thanh tốn.
Hình 6.12: trang thơng báo đặt hàng thành cơng bằng tiền mặt.
Hình 6.13: email xác nhận đặt hàng thành cơng
Hình 6.14: trang đăng nhập vào paypal để thanh tốn đơn hàng
Hình 6.15: trang thanh tốn bằng paypal để tiến hành thanh tốn

Hình 6.16: thơng báo đặt hàng thành cơng bằng paypal
Hình 6.17: icon giao diện chatbot
Hình 6.18: giao diện chatbot
Hình 6.19: tin nhắn trả về trên chatbot khi tin nhắn gửi tới là lời chào
Hình 6.20: tin nhắn trả về trên chatbot khi hỏi mua hàng
Hình 6.21: trang đặt hàng trên chatbot khi người dùng chưa đăng nhập
Hình 6.22: trang đặt hàng trên chatbot khi người dùng đã đăng nhập
Hình 7.1: kết quả đánh giá tổng quát mức độ hiệu quả của phân hệ gợi ý
Hình 7.2: thiết lập thông số về số người dùng truy cập và thời gian kiểm tra
Hình 7.3: thiết lập thơng tin website mà ta thực hiện kiểm tra
Hình 7.4: giao diện trang chủ trong trường hợp người dùng chưa đăng nhập
Hình 7.5: thiết lập HTTP Request để kiểm tra trang chủ khi chưa đăng nhập
Hình 7.6: trang danh sách từng loại sản phẩm
Hình 7.7: thiết lập HTTP Request để kiểm tra trang danh sách sản phẩm
Hình 7.8: giao diện trang chủ khi người dùng đã đăng nhập
Hình 7.9: thiết lập HTTP Request để kiểm tra trang chủ khi đã đăng nhập
Hình 7.10: giao diện trang thơng tin sản phẩm tìm kiếm
Hình 7.11: giao diện trả về khi tìm kiếm sản phẩm bằng từ khố
Hình 7.12: thiết lập HTTP Request để kiểm tra trang tìm kiếm sản phẩm
Hình 7.13: giao diện trả về của trang chi tiết sản phẩm
Hình PL1: form đăng nhập
Hình PL2: form đăng nhập có hiển thị cảnh báo
Hình PL3: form đăng ký tài khoản người dùng
Hình PL4: form đăng ký có hiển thị cảnh báo
Hình PL5: form đăng nhập để mua sản phẩm
Hình PL6: form đăng nhập để mua sản phẩm có hiển thị cảnh báo
Hình PL7: form đăng nhập cho nhân viên
Hình PL8: form đăng nhập khi nhập sai mật khẩu
Hình PL9: từ chối truy cập vào trang nhân viên
Hình PL10: form đăng nhập với vai trị quản trị viên

Hình PL11: form đăng nhập vai trị quản trị viên có hiển thị cảnh báo
SVTH: NGUYỄN BỬU THỊNH – MSSV: 1720065

81
83
84
85
86
86
86
89
89
89
90
90
91
91
91
92
92
93
93
94
94
96
97
99
99
100
101

102
103
104
106
107
108
109
109
111
122
122
123
123
124
124
125
125
126
126
127
Trang 10


LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

GVHD: TS. PHAN TRỌNG NHÂN

Hình PL12: giao diện danh sách sản phẩm laptop
Hình PL13: giao diện thêm sản phẩm mới
Hình PL14: quản trị viên xem danh sách sản phẩm

Hình PL15: giao diện chỉnh sửa sản phẩm ở trang quản trị viên
Hình PL16: popup xố sản phẩm
Hình PL17: thơng báo xố sản phẩm thành cơng
Hình PL18: quản trị viên xem danh sách người dùng
Hình PL19: quản trị viên xem danh sách nhân viên
Hình PL20: form tạo tài khoản nhân viên
Hình PL21: thơng báo tạo tài khoản nhân viên thành cơng
Hình PL22: tạo tài khoản nhân viên khơng thành cơng và hiển thị cảnh báo
Hình PL23: Hiển thị nút Đăng ký để đăng ký tài khoản
Hình PL24: Form đăng ký tài khoản
Hình PL25: Kết quả đăng ký tài khoản khơng thành cơng
Hình PL26: Kết quả đăng ký tài khoản thành cơng(trường hợp 4)
Hình PL27: email thơng báo tạo tài khoản người dùng thành cơng
Hình PL28: Hiển thị cảnh báo khi người dùng nhập thiếu thông tin đăng nhập
Hình PL29: Hiển thị cảnh báo khi nhập mật khẩu khơng hợp lệ(dưới 8 ký tự)
Hình PL30: Hiển thị nút Đăng nhập
Hình PL31: Form đăng nhập
Hình PL32: Link danh sách từng loại sản phẩm
Hình PL33: chỗ lấy access token và id của trang
Hình PL34: popup nơi lấy access token
Hình PL35: kết quả sau khi gõ ngrok http 8000
Hình PL36: cấu hình webhook
Hình PL37: popup thay đổi cấu hình webhook
Hình PL38: thơng tin kết nối MySQL trên Clever Cloud – Console
Hình PL39: kết quả sau khi import cơ sở dữ liệu
Hình PL40: Azure services
Hình PL41: khởi tạo thơng tin trong Container Registry
Hình PL42: kết quả sau khi khởi tạo Container Registry
Hình PL43: thông tin Access keys để triển khai hệ thống lên Azure
Hình PL44: kết quả sau khi build thành cơng

Hình PL45: kết quả trên terminal sau khi push
Hình PL46: thơng tin điền vào trong tab Basic
Hình PL47: thơng tin điền vào trong tab Docker
Hình PL48: thơng báo triển khai project thành cơng
Hình PL49: thơng tin URL của hệ thống ta triển khai lên
Hình PL50: thay đổi để có thể triển khai nhiều phiên bản hệ thống
Hình PL51: giao diện trang cấu hình messenger chatbot
Hình PL52: giao diện để thiết lập plugin chatbot trên website
Hình PL53: giao diện website sau khi được nhúng plugin messenger chatbot
Hình PL54: giao diện cấu hình webhook
Hình PL55: popup cấu hình webhook

SVTH: NGUYỄN BỬU THỊNH – MSSV: 1720065

128
129
130
131
132
132
133
133
134
134
135
135
135
137
137
138

138
138
138
138
139
144
144
145
145
146
147
147
147
148
148
148
149
150
151
151
151
152
152
153
153
153
154
154

Trang 11



LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

GVHD: TS. PHAN TRỌNG NHÂN

CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI
1.1.! Tổng quan đề tài
Hiện nay, với sự phát triển lớn mạnh của công nghệ thông tin, hàng loạt các sản
phẩm công nghệ, xu hướng mới ra đời nhằm đáp ứng và phục vụ tốt hơn cho nhu cầu
của người dùng. Công nghệ thông tin ngày càng phát triển đã hỗ trợ rất nhiều cho người
dùng trong mọi lĩnh vực.
Việc ứng dụng công nghệ thông tin vào các lĩnh vực giúp tạo ra những sản phẩm
công nghệ hiện đại, phục vụ tốt cho đời sống con người hiện nay.
Một trong những ứng dụng lớn của công nghệ thông tin là xây dựng ra các website
thương mại điện tử để hỗ trợ người dùng mua hàng cũng như tìm ra các sản phẩm phù
hợp với nhu cầu của người dùng thay vì phải ra trực tiếp cửa hàng trải nghiệm và mua
trực tiếp sản phẩm như trước đây.
Để phục vụ tốt hơn nữa trong việc đưa ra các sản phẩm phù hợp nhất đến tay người
tiêu dùng, các website thương mại điện tử cần có những thuật tốn phù hợp có khả năng
tính tốn và chọn ra các sản phẩm phù hợp nhất với người dùng dựa trên các tiêu chí cụ
thể nào đó và gợi ý ra những sản phẩm đó cho người dùng. Những thuật toán này được
gọi là phân hệ gợi ý hay hệ gợi ý (recommendation system).
Việc ứng dụng phân hệ gợi ý vào hệ thống thương mại điện tử là xây dựng lên một
website có tích hợp phân hệ gợi ý để gợi ý ra các sản phẩm phù hợp nhất tới tay người
tiêu dùng cũng như giúp người kinh doanh có thể gợi ý ra các sản phẩm phù hợp nhất
cho người dùng.
1.2.! Mục tiêu và phạm vi đề tài
Mục tiêu của đề tài là xây dựng một website thương mại điện tử có tích hợp phân
hệ gợi ý để đề xuất ra các sản phẩm phù hợp với nhu cầu mua sắm của người dùng. Để

phục vụ cho việc xây dựng một website thương mại điện tử có tích hợp phân hệ gợi ý,
ta sẽ tập trung nghiên cứu và phân tích nghiệp vụ rồi đề ra một mơ hình website kinh
doanh các sản phẩm cơng nghệ có tích hợp phân hệ gợi ý vào website.
Phạm vi của đề tài là ứng dụng phân hệ gợi ý vào hệ thống thương mại điện tử,
hướng tới mục tiêu tạo ra một website có khả năng gợi ý sản phẩm phù hợp nhất tới tay
người tiêu dùng cũng như giúp người dùng trải nghiệm quá trình mua hàng online, giúp
gợi ý sản phẩm tốt nhất tới tay người tiêu dùng. Đồng thời xây dựng một con chatbot có
khả năng trả lời tin nhắn tự động cho người dùng khi người dùng đặt câu hỏi, chatbot có
khả năng gợi ý các sản phẩm liên quan dựa trên tin nhắn tìm kiếm sản phẩm của người
dùng, đồng thời chatbot cũng được xây dựng cho phép người dùng có thể đặt mua sản
phẩm thơng qua con chatbot thay vì thêm sản phẩm vào giỏ hàng trên website.
SVTH: NGUYỄN BỬU THỊNH – MSSV: 1720065

Trang 12


LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

GVHD: TS. PHAN TRỌNG NHÂN

1.3.! Nội dung của luận văn
¥!
¥!
¥!
¥!
¥!
¥!
¥!
¥!
¥!

¥!

Chương 1: Giới thiệu đề tài.
Chương 2: Cơ sở lý thuyết và công nghệ.
Chương 3: Phân tích yêu cầu.
Chương 4: Thiết kế hệ thống và các thuật toán.
Chương 5: Hiện thực hệ thống.
Chương 6: Kiểm thử phần mềm.
Chương 7: Đánh giá hệ thống và performance.
Chương 8: Tổng kết.
Danh mục tài liệu tham khảo.
Phụ lục.

SVTH: NGUYỄN BỬU THỊNH – MSSV: 1720065

Trang 13


LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

GVHD: TS. PHAN TRỌNG NHÂN

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ
2.1.! Cơ sở lý thuyết
2.1.1.! Thương mại điện tử
Thương mại điện tử là hoạt động mua bán sản phẩm (hoặc dịch vụ) thông qua
các hệ thống điện tử như Internet và các mạng máy tính. Thương mại điện tử cịn được
gọi là E-commerce, nghĩa là Electronic Commerce.
Hoạt động thương mại điện tử tại Việt Nam xuất hiện vào những năm đầu của
thập niên 2010. Các hoạt động thương mại điện tử đã chính thức được pháp luật công

nhận và năm 2013.
Thương mại điện tử dựa trên một số công nghệ như chuyển tiền điện tử, quản lý
chuỗi dây chuyền cung ứng, tiếp thị internet, quá trình giao dịch trực tuyến, trao đổi dữ
liệu điện tử (EDI), các hệ thống quản lý hàng tồn kho và các hệ thống tự thu thập dữ
liệu.
Thương mại điện tử hiện đại thường sử dụng mạng World Wide Web là một điểm
ít nhất phải có trong chu trình giao dịch, mặc dù nó có thể bao gồm một phạm vi lớn
hơn về mặt công nghệ như email, các thiết bị di động như là điện thoại.

¥!
¥!
¥!
¥!
¥!
¥!
¥!
¥!
¥!

Có tất cả 9 hình thức giao dịch thương mại điện tử:
Chính phủ với Chính phủ (G2G).
Chính phủ với Doanh nghiệp (G2B).
Chính phủ với Cơng dân (G2C).
Doanh nghiệp với Chính phủ (B2G).
Doanh nghiệp với Doanh nghiệp (B2B).
Doanh nghiệp với Khách hàng (B2C).
Khách hàng với Chính phủ (C2G).
Khách hàng với Khách hàng (C2C).
Khách hàng với Doanh nghiệp (C2B).
Trong đó có 4 hình thức chúng ta thường nghe nhất là: B2C, B2B, C2C, C2B.


Thương mại điện tử đã làm cho hoạt động thương mại của các doanh nghiệp vượt
ra khỏi phạm vi quốc gia và trở thành hoạt động mang tính chất tồn cầu.
Trước đây, lúc chưa có sự phát triển của thương mại điện tử, khi người dùng
muốn mua một món hàng nào đó thì phải đến trực tiếp cửa hàng để xem, trải nghiệm và
đặt hàng. Điều này sẽ càng bất tiện khi người dùng muốn tìm mua các sản phẩm bên
ngồi khu vực mà người dùng đang sinh sống thậm chí sản phẩm không được kinh doanh
bên trong nước.
SVTH: NGUYỄN BỬU THỊNH – MSSV: 1720065

Trang 14


LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

GVHD: TS. PHAN TRỌNG NHÂN

Hiện nay, với sự phát triển của thương mại điện tử đã tạo điều kiện thuận lợi cho
người dùng đặt mua sản phẩm thậm chí sản phẩm đó chỉ được bày bán ở khu vực khác
thậm chí ở nước ngồi. Q trình đặt mua sản phẩm được thực hiện thơng qua vài thao
tác đơn giản trên các thiết bị di động cơng nghệ như laptop, điện thoại, máy tính bảng
thơng qua tương tác với các website thương mại điện tử.
2.1.2.! Phân hệ gợi ý
Đối với thương mại điện tử, người mua và người bán không cần gặp gỡ trực tiếp,
mà họ giao dịch với nhau trên trang web. Vì vậy rất cần có một trợ lý bán hàng tự động
có khả năng tư vấn, khuyến nghị cho người dùng các sản phẩm phù hợp. Một trong
những giải pháp để phục vụ cho nhu cầu này là tích hợp các phân hệ gợi ý vào website
bán hàng của chúng ta. Mục tiêu của phân hệ gợi ý là gợi ý các món hàng, sản phẩm liên
quan nhất tới người dùng dựa vào các tiêu chí cụ thể nào đó.
Phân hệ gợi ý (recommendation system) là kỹ thuật của trí tuệ nhân tạo, được

nghiên cứu để cung cấp những gợi ý tự động tới người dùng hoặc khách hàng.
Có 2 phương thức gợi ý chính, bao gồm:
¥! Gợi ý dựa trên dữ liệu về hành vi trong quá khứ của người dùng để hướng dẫn
người dùng định vị được những sản phẩm mà họ thích, giúp người dùng có những
quyết định tốt khi mua sắm online.
¥! Gợi ý những sản phẩm liên quan, gần gũi với một sản phẩm cụ thể nào đó, giúp
người dùng có thể lựa chọn sản phẩm phù hợp nhất với nhu cầu sử dụng của họ.
Ta có thể thấy rằng phân hệ gợi ý là một trong những công cụ được sử dụng rất
phổ biến trên các website thương mại điện tử hiện nay. Ví dụ:
¥! Khi ta xem một video clip nào đó trên YouTube, YouTube đã tự động gợi ý ra
các video clip có liên quan đến video clip mà bạn đang xem. YouTube còn tự gợi
ý ra những clip có thể bạn sẽ thích.
¥! Khi ta mua một món hàng nào đó trên Amazon, hệ thống sẽ tự động gợi ý ra
những những sản phẩm khác thường được mua kèm với sản phẩm mà ta đã đặt
mua, thậm chí hệ thống cịn có thể biết ta thích món hàng nào dựa trên lịch sử
mua hàng của chúng ta.
¥! Facebook hiển thị quảng cáo những sản phẩm có liên quan đến từ khố mà ta vừa
tìm kiếm.
¥! Facebook gợi ý kết bạn cho người dùng.
¥! Netflix tự động gợi ý phim cho người dùng.
2.1.3.! Ứng dụng phân hệ gợi ý vào hệ thống thương mại điện tử
Ứng dụng phân hệ gợi ý vào hệ thống thương mại điện tử là quá trình xây dựng
một website thương mại điện tử, bán hàng có tích hợp phân hệ gợi ý để gợi ý ra các sản
phẩm phù hợp với người dùng dựa trên những tiêu chí về sở thích cũng như là lịch sử
SVTH: NGUYỄN BỬU THỊNH – MSSV: 1720065

Trang 15


LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC


GVHD: TS. PHAN TRỌNG NHÂN

tương tác của người dùng đối với website của chúng ta và những sản phẩm có liên quan,
tương tự hay gần gũi đối với sản phẩm mà ta đang xem, nhằm đa dạng hoá việc gợi ý
sản phẩm cho người dùng.
Việc phát triển một hệ thống website thương mại điện tử đã giúp ích cho người
dùng về nhiều mặt. Thay vì phải tốn thời gian ra cửa hàng để mua và lựa chọn sản phẩm
thì hiện nay, chỉ với vài thao tác trên máy tính và các thiết bị cơng nghệ là ta có thể xem
thơng tin các sản phẩm và lựa chọn đặt mua các sản phẩm cần thiết theo nhu cầu. Hơn
thế nữa, việc tích hợp phân hệ gợi ý vào trang thương mại điện tử lại còn giúp ích rất
nhiều trong việc gợi ý sản phẩm phù hợp nhất tới tay người dùng cũng như tăng doanh
thu của người khác.
Đối với thương mại truyền thống trước đây thì người bán thường dựa vào những
sản phẩm phổ biến được người dùng ưa chuộng và trưng bày trên các gian hàng để người
mua có thể dễ dàng tiếp cận những sản phẩm phổ biến. Tuy nhiên điều này lại có một
hạn chế là đối với nhiều người dùng khác nhau thì nhu cầu sử dụng khác nhau nên nhiều
khi khơng gian trưng bày có hạn, khó có thể đưa ra những sản phẩm phù hợp đối với tất
cả người dùng. Có khi sản phẩm nào đó phù hợp với người dùng này nhưng không phù
hợp với người dùng khác, điều này dẫn đến việc khó có thể gợi ý chính xác sản phẩm
phù hợp nhất với nhu cầu của người dùng.
Việc tích hợp phân hệ gợi ý vào trang thương mại điện tử đã giúp khắc phục được
vấn đề này. Khi người dùng truy cập vào website của chúng ta để trải nghiệm và xem
sản phẩm, khi đó hệ thống sẽ dựa vào lịch sử tương tác của người dùng đối với các sản
phẩm trên website của chúng ta để từ đó đưa ra những gợi ý phù hợp cho người dùng,
những người dùng khác nhau khi tương tác với website sẽ được đề xuất những sản phẩm
gợi ý khác nhau, điều này giúp những người dùng khác nhau có thể tiếp cận đến những
sản phẩm gợi ý phù hợp với họ. Đồng thời thông qua các tương tác của nhiều khách
hàng khác nhau ta có thể lưu trữ được những sản phẩm phổ biến, có lượt xem nhiều nhất
và từ đó gợi ý cho người dùng mới.

2.1.4.! Một số website có tích hợp phân hệ gợi ý và cơ chế
Các phân hệ gợi ý đã và đang được nghiên cứu, ứng dụng một cách mạnh mẽ và
mang lại lợi ích cho cả người cung cấp dịch vụ và người sử dụng dịch vụ. Hầu hết các
trang thương mại điện tử lớn trên thế giới như Amazon, YouTube, Facebook, Netflix,
Spotify, Google, … đều sử dụng các phân hệ gợi ý trong website. Ở Việt Nam cũng có
những trang thương mại điện tử đã được tích hợp phân hệ gợi ý như: FPTShop, Thế
Giới Di Động, Shopee.
Việc tích hợp phân hệ gợi ý trong website giúp nâng cao trải nghiệm cho khách
hàng, nâng cao chất lượng dịch vụ và thu lại lợi nhuận tốt hơn. Điển hình như: ở trang
Netflix, 2/3 số phim được xem đều là phim mà hệ thống sử dụng phân hệ gợi ý để đề
SVTH: NGUYỄN BỬU THỊNH – MSSV: 1720065

Trang 16


LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

GVHD: TS. PHAN TRỌNG NHÂN

xuất cho người dùng. Hay là ở trang Amazon, 35% doanh thu từ những sản phẩm bán
ra đều là những sản phẩm gợi ý cho người dùng bằng phân hệ gợi ý, ….
Các phân hệ gợi ý hoạt động dựa trên cơ sở là các thuật toán machine learning
dựa trên các thông tin về lịch sử người dùng. Khi người dùng tương tác với website,
website sẽ thu thập các thông tin tương tác của người dùng như: những sản phẩm được
xem nhiều nhất, người dùng cụ thể quan tâm đến những sản phẩm cụ thể nào và so sánh
với những người dùng khác để từ đó đưa ra những sản phẩm gợi ý phù hợp cho người
dùng dựa trên việc so sánh sở thích của những người dùng khác nhau. Hoặc khi người
dùng lựa chọn một sản phẩm cụ thể nào đó, hệ thống sẽ xem xét và so sánh sự tương
quan về các thông tin đặc trưng của sản phẩm để rồi đưa ra những sản phẩm gần gũi
nhất đối với sản phẩm mà người dùng đã xem.

2.2.! Công nghệ sử dụng
2.2.1.! Facebook Chatbot
Facebook là một phương tiện truyền thông xã hội và dịch vụ mạng xã hội trực
tuyến thành lập vào năm 2004 của Mỹ có trụ sở tại Menlo Park, California. Facebook
được Mark Zuckerberg cùng với các sinh viên Đại Học Harvard và các bạn cùng phòng
là Eduardo Saverin, Andrew McCollum, Dustin Moskovitz, Chris Hughes sáng lập. Đây
được coi là một trong những công ty công nghệ Big Four cùng với Amazon, Apple và
Google.
Trong luận văn này, ta sẽ sử dụng chatbot messenger của facebook và nhúng
plugin vào website thương mại điện tử của chúng ta và tích hợp các giải thuật của phân
hệ gợi ý (recommendation system) và các giải thuật học máy(machine learning) khác
vào để thực hiện trả lời câu hỏi của khách hàng khi khách hàng đặt câu hỏi trong chatbot.
Khi một người gửi tin nhắn trên chatbot của facebook. Máy chủ của facebook
gửi webhook đến URL của máy chủ máy chủ doanh nghiệp, nơi lưu trữ ứng dụng nhắn
tin. Ứng dụng này có thể trả lời người đó trên messenger thơng qua các API gửi. Bằng
cách này, ta có thể tạo dựng ra các cuộc trò chuyện một cách tự động giữa người dùng
và chatbot khi người dùng gửi tin nhắn tới chatbot.

Hình 2.1: Sơ đồ tương tác giữa người dùng với chatbot [1]
SVTH: NGUYỄN BỬU THỊNH – MSSV: 1720065

Trang 17


LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

GVHD: TS. PHAN TRỌNG NHÂN

Mỗi lần một người bắt đầu một cuộc trò chuyện với chatbot của chúng ta. Nền
tảng messenger sẽ gán cho họ một ID người dùng trong trang, thường được gọi là PSID.

Mỗi một người sẽ có PSID khác nhau đối với mỗi bot messenger mà họ trò chuyện. Điều
này đảm bảo rằng chỉ những bot mà người dùng chọn bắt đầu cuộc trị chuyện mới có
thể gửi tin nhắn cho họ.
Mỗi khi chatbot phản hồi tin nhắn cho một ai đó, ta sẽ thêm PSID của họ vào
thuộc tính recipient.id của yêu cầu để xác định ai sẽ nhận tin nhắn. Tương tự, khi một
người dùng thực hiện hành động cho một cuộc trò chuyện, chẳng hạn như nhấn vào một
nút nào đó hoặc gửi tin nhắn, PSID của họ sẽ được thêm vào thuộc tính sender.id trên
sự kiện webhook để chatbot của chúng ta có thể xác định được ai đã thực hiện hành
động đó.
Nền tảng messenger của facebook cung cấp các REST API hỗ trợ chúng ta xây
dựng một chatbot có khả năng tương tác với người dùng một cách tự động và một số
các tính năng khác trên messenger.
Trong chatbot của chúng ta, ta sẽ thực hiện nhận tin nhắn của người dùng trong
messenger thông qua việc gọi các API được xây dựng sẵn bởi facebook, sau đó thơng
qua các thuật tốn machine learning để xác định dạng của tin nhắn người gửi gửi tới(lời
chào hay là tìm kiếm sản phẩm) để từ đó đưa ra các phản hồi phù hợp như là trả ra những
sản phẩm mà người dùng đang tìm kiếm cũng thơng qua việc gọi API của facebook.
Trong chatbot của chúng ta, mỗi khi người gửi đặt câu hỏi liên quan đến tìm mua
sản phẩm, ta sẽ gợi ý ra các sản phẩm kèm theo các nút bấm cho phép người dùng có
thể đặt mua sản phẩm trên chatbot để thêm sản phẩm vào giỏ hàng, sau đó điền thơng
tin cá nhân để tiến hành đặt hàng hoặc chuyển sang trang đặt hàng để xác nhận đặt hàng
trên chatbot.
Để xây dựng được chatbot trên website của chúng ta, trước tiên chúng ta cần cài
đặt một ứng dụng facebook (facebook app). Ứng dụng facebook này là nơi mà liên kết
trang facebook của chúng ta tới webhook, chúng ta sẽ cấu hình các cài đặt để sử dụng
các công cụ trong chatbot messenger, sinh ra access token để tương tác với facebook
messenger thông qua API và chọn ra các sự kiện gửi tới webhook.
Bên cạnh đó chúng ta cần tạo ra một trang facebook. Trang facebook này là nơi
mà khi người dùng gửi tin nhắn tới chatbot, tin nhắn sẽ được nhận và phản hồi lại cho
người dùng. Chúng ta cũng cần phải có một webhook URL, đây là nơi để tiếp nhận các

sự kiện, các hành động diễn ra trong cuộc trò chuyện với chatbot của chúng ta.
Các bước thiết lập webhook:
¥! Thêm nền tàng messenger vào ứng dụng facebook.
¥! Cấu hình webhook cho ứng dụng.
SVTH: NGUYỄN BỬU THỊNH – MSSV: 1720065

Trang 18


LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

GVHD: TS. PHAN TRỌNG NHÂN

¥! Chọn trang mà ta đã tạo và muốn đăng ký ứng dụng facebook để nhận các sự
kiện webhook. Sau khi đăng ký thành cơng, messenger chatbot của chúng ta có
thể nhận được các sự kiện khi người dùng nhắn tin tới.
Một khi thiết lập ứng dụng thành cơng, ta có thể bắt đầu xây dựng một chatbot
để phản hồi tin nhắn của người dùng một cách tự động khi người dùng gửi tin nhắn đến.
2.2.2.! Python, sklearn
2.2.2.1.!Ngôn ngữ Python
Python là ngơn ngữ lập trình hướng đối tượng, cấp cao, thơng dịch, mạnh mẽ, do
Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991.
Python là một ngôn ngữ lập trình mã nguồn mở, có cấu trúc dữ liệu cấp cao mạnh
mẽ, hình thức cũng như cách tiếp cận đơn giản nhưng hiệu quả đối với đa số lập trình
viên.
Python có cú pháp rõ ràng, sáng sủa, dễ hiểu, cách gõ linh động. Vì vậy, python
trở thành một ngơn ngữ lý tưởng để viết kịch bản và phát ứng dụng trong nhiều lĩnh vực,
đa nền tảng.
Python sử dụng các từ khố tiếng Anh gần gũi với lập trình viên.
Python có hỗ trợ lập trình hàm, lập trình hướng cấu trúc cũng như lập trình hướng

đối tượng.
Python có thể được sử dụng như là một ngôn ngữ kịch bạn hoặc có thể biên dịch
sang byte-code để xây dựng các ứng dụng lớn hơn.
Mọi thứ trong python đều là hướng đối tượng. Lập trình hướng đối tượng giúp
giải quyết các vấn đề phức tạp một cách trực quan, ta có thể chia những vấn đề phức tạp
một cách nhỏ hơn bằng cách tạo ra các đối tượng.
Các chương trình Python có thể di chuyển từ nền tảng này sang nền tảng khác và
chạy nó mà khơng có bất kỳ thay đổi nào, chạy liền mạch trên hầu hết tất cả các nền
tảng như Windows, MacOS, Linux.
Python có khả năng mở rộng và có thể nhúng. Ta có thể dễ dàng kết hợp với các
phần được viết bằng các ngôn ngữ khác như C, C++.
Python có một số lượng lớn thư viện tiêu chuẩn giúp cơng việc lập trình trở nên
dễ dàng, thuận tiện hơn.
2.2.2.2.!Ứng dụng của Python
Ứng dụng trong lập trình web: trong Python ta có thể tạo web app có khả năng
mở rộng được bằng bằng sử dụng framework và CMS được tích hợp trong Python.
SVTH: NGUYỄN BỬU THỊNH – MSSV: 1720065

Trang 19


LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

GVHD: TS. PHAN TRỌNG NHÂN

Những nền tảng phổ biến để tạo web app là: Django, Flask, Pyramid, Plone, Django
CMS. Các trang web nổi tiếng như Mozilla, Reddit, Instagram đều được viết bằng
Python.
Ứng dụng trong khoa học dữ liệu (data science), học máy (machine learning),
khai phá dữ liệu (data mining) và học sâu (deep learning). Một số thư viện phổ biến như:

¥! NumPy: dùng trong xử lý mảng và ma trận lớn đa chiều.
¥! SciPy: được sử dụng phổ biến trong machine learning vì có chưa các module
khác nhau để tối ưu hoa, đại số tuyến tính, tích hợp và thống kê.
¥! Scikit-learn: là một trong những thư viện machine learning phổ biến nhất cho các
thuật toán machine learning cổ điển. Hỗ trợ hầu hết các thuật tốn học giám sát
và học khơng giám sát.
¥! Theano: được sử dụng phổ biến để xác định, đánh giá và tối ưu hoá các biểu thức
toán học liện quan đến mảng nhiều chiều một cách hiệu quả.
¥! TensorFlow: được sử dụng phổ biến trong lĩnh vực nghiên cứu và ứng dụng học
sâu (deep learning).
¥! Keras: đây là một API mạng neuron cấp cao có khả năng chạy trên TensorFlow,
CNTK hoặc Theano. Nó có thể chạy liên tục trên cả CPU và GPU. Cho phép tạo
mẫu một cách dễ dàng, nhanh chóng.
¥! PyTorch: thư viện mã nguồn mở được triển khai bằng C với trình bao bọc trong
Lua, có nhiều lựa chọn về công cụ và thư viện hỗ trợ Thị giác máy tính, xử lý
ngơn ngữ tự nhiên, …
¥! Pandas được sử dụng trong phân tích dữ liệu.
Ngồi ra cịn có các thư viện khác như: EarchPy được sử dụng cho khoa học trái
đất, AstroPy được sử dụng cho thiên văn học.
Trong luận văn này, ngôn ngữ python được sử dụng để chạy các giải thuật
recommendation system để gợi ý ra các sản phẩm cho người dùng dựa trên lịch sử tương
tác của người dùng với trang web cũng như những sản phẩm liên quan.
2.2.3.! MySQL
MySQL là một hệ quản trị cơ sở dữ liệu mã nguồn mở (RDBMS) dựa trên ngơn
ngữ truy vấn có cấu trúc (SQL) được phát triển, phân phối bởi tập đoàn Oracle.
MySQL hoạt động theo mơ hình client – server, tốc độ cao, được sử dụng trong
tạo lập, quản lý các cơ sở dữ liệu dựa trên việc quản lý tất cả các liên hệ giữa chúng.
MySQL chạy trên hầu hết tất cả các nền tảng, bao gồm cả Linux, UNIX và
Windows. MySQL thường được kết hợp với các ứng dụng web.
Các ứng dụng web lớn nhất như Facebook, Twitter, YouTube, Google đều dùng

MySQL cho mục đích lưu trữ dữ liệu.
SVTH: NGUYỄN BỬU THỊNH – MSSV: 1720065

Trang 20


×