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

Đồ án xây dựng website bán đồng hồ tích hợp hệ thống gợi ý sản phẩm

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 (4.81 MB, 119 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

ĐỒ ÁN 1
XÂY DỰNG WEBSITE BÁN ĐỒNG HỒ TÍCH HỢP
HỆ THỐNG GỢI Ý SẢN PHẨM

NGÀNH KỸ THUẬT PHẦN MỀM
GIẢNG VIÊN HƯỚNG DẪN
ThS. Nguyễn Thị Thanh Trúc

SINH VIÊN THỰC HIỆN
Trần Trọng Hoàng – 20520521

Thành phố Hồ Chí Minh, tháng 6 năm 2023


LỜI CẢM ƠN
Đồ án 1 với đề tài “Xây dựng website bán đồng hồ tích hợp hệ
thống gợi ý sản phẩm” là minh chứng cho q trình cố gắng khơng
ngừng trong việc tìm tịi, học hỏi trong suốt hơn 3 năm học tập tại trường
Đại học Công nghệ Thông tin. Thể hiện khả năng của bản thân trong
việc áp dụng kiến thức chun mơn vào giải quyết bài tốn thực tế.
Em xin được gửi lời cảm ơn sâu sắc tới ThS.Nguyễn Thị Thanh
Trúc, người đã trực tiếp hướng dẫn, chỉ bảo, giúp đỡ em những lúc khó
khăn, đưa ra những lời khun bổ ích để đồ án được hồn thành đúng
tiến độ và đáp ứng các yêu cầu đề ra ban đầu.
Thành phố Hồ Chí Minh, tháng 06 năm 2023
Sinh viên
Trần Trọng Hoàng




ĐẠI HỌC QUỐC GIA

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

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 CHI TIẾT
TÊN ĐỀ TÀI: XÂY DỰNG WEBSITE BÁN ĐỒNG HỒ TÍCH HỢP HỆ
THỐNG GỢI Ý SẢN PHẨM
Cán bộ hướng dẫn: ThS. Nguyễn Thị Thanh Trúc
Thời gian thực hiện: Từ ngày 1/03/2023 đến ngày 29/06/2023
Sinh viên thực hiện:
Trần Trọng Hoàng – 20520521
Nội dung đề tài:
Mục tiêu:
-

Xây đựng một website bán đồng hồ với các chức năng cơ bản và hệ thống

gợi ý sản phẩm theo nội dung
-

Khách hàng có thể dễ dàng truy cập trang web và tìm kiếm sản phẩm, đặt


hàng sản phẩm, được gợi ý các các sản phẩm tương tự với các sản phẩm đang xem.
-

Người quản trị có thể dễ dàng quản lý các sản phẩm, đơn hàng

-

Tìm hiểu và ứng dụng các công nghệ mới, nâng cao kỹ năng phát triển phần

mềm.
Phạm vi:
-

Cho phép đăng nhập email google và tiến hành đặt mua sản phẩm trên máy

chủ local
-

Hệ thống gợi ý và tìm kiếm giúp hỗ trợ người mua dễ dàng hơn.

-

Quản lý được các mặt hàng đang được bán.

Đối tượng sử dụng:
-

Người dùng Intenet.



Phương pháp thực hiện:
-

Tìm hiểu và phân tích các trang website bán đồng hồ hiện có

-

Tìm hiểu và phân tích hệ thống gợi ý sản phẩm

-

Xây dựng hệ thốngở mức MVP (Minimum Viable Product) để đo lường tính

hiệu quả.
Kết quả mong đợi:
-

Hiểu rõ các công nghệ:

o

Front – end: HTML-CSS, Template Engine.

o

Back – end: NodeJS, ExpressJS, Cloudinary, Google API, Hệ thống gợi ý

sản phẩm.
-


Hoàn thành sản phẩm với các chức năng đã được phân tích.

-

Giao diện thân thiện và tạo ra được những giá trị của mục tiêu hướng tới.


Kế hoạch thực hiện:
Đồ án được thực hiện trong 15 tuần, thời gian và mô tả nội dung công việc được thể
hiện ở bảng bên dưới:
Thời gian thực hiện

Công việc

Giai đoạn 1: Tìm hiểu, nghiên cứu
Iteration 1 (01-21/03/2023)



Nghiên cứu hiện trạng thị trường.

Nghiên cứu, đánh giá, phân



Nghiên cứu, đánh giá các cơng nghệ phát
triển web – BE

tích.



Phân tích sản phẩm hiện có.



Nghiên cứu, đánh giá các cơng nghệ phát
triển web – FE

Iteration 2 (22-15/04/2023)

Tìm hiểu và thực hiện code cơ bản với



Chuẩn bị kiến thức về cơng
nghệ.

JavaScript, NodeJS, ExpressJS
Tìm hiểu và thực hiện code cơ bản với



Template Engine Handlebars
Giai đoạn 2: Triển khai
Iteration 4 (16-1/05/2023)



Thiết kế database.


Chuẩn bị source code và thiết



Cấu hình và tạo bộ cấu trúc code cho BE.

kế database.



Thiết kế giao diện phù hợp.



Cầu hình và tạo bộ cấu trúc code cho FE

Iteration 5 (2-20/05/2023)

Hoàn thành các chức năng cơ bản CRUD dành cho:

Chức năng quản lý người Admin
dùng, sản phẩm, đơn hàng,
tag, categories,…
Iteration 6 (20-04/06/2023)

Hoàn thành các chức năng cơ bản dành cho khách

Chức năng tìm kiếm, đặt mua, hàng
xem sản phẩm, thêm vào giỏ Khách hàng có thể xem được sản phẩm, thêm sản
hàng, đăng nhập, ….


phẩm vào giỏ hàng, tiến hành đặt mua, tìm kiếm sản
phẩm theo tên, tags, category


Iteration 7 (5-22/06/2023)

Tìm hiểu, nghiên cứu về hệ thống gợi ý sản phẩm,

Tìm hiểu và xây dựng hệ content-base recommender
thống gợi ý sản phẩm

Sau khi đánh giá và nghiên cứu áp dụng thư viện vào
đồ án để áp dụng

Iteration 8 (22-25/06/2023)

Hoàn thiện các chức năng thống kê: Thống kê thu
chi, lợi luận, …

Giai đoạn 3: Hồn thiện, trình bày.
Iteration 9 (22-29/06/2023)
Cải thiện giao diện, sẵn sàng
trình bày.

Cải thiện giao diện


MỤC LỤC
CHƯƠNG 1.


GIỚI THIỆU CHUNG .......................................................1

1.1.

Giới thiệu đề tài .................................................................................1

1.2.

Lý do chọn đề tài ...............................................................................1

1.3.

Mục tiêu trong đề tài .........................................................................1

1.4.

Đối tượng nghiên cứu ........................................................................2

1.4.1. Các công nghệ ....................................................................................2
1.4.2. Đối tượng phạm vi đề tài hướng đến ...............................................2
1.5.

Phạm vi ...............................................................................................2

1.6.

Phương pháp thực hiện .....................................................................2

1.7.


Ý nghĩa thực tiễn ...............................................................................2

1.8.

Kết quả dự kiến .................................................................................3

CHƯƠNG 2. CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ SỬ DỤNG ............4
2.1.

Hệ thống gợi ý dựa theo nội dung ....................................................4

2.1.1.

Giới thiệu: ...................................................................................4

2.1.2.

Cách thức hoạt động ..................................................................5

2.1.3.

Giới thiệu thư viện Content Based Recommender ...............10

2.2.

Mơ hình ứng dụng web MVC.........................................................14

2.2.1.


Giới thiệu mơ hình ứng dụng web MVC ...............................14

1


2.2.2.

Các đặc trưng của mơ hình MVC ..........................................14

2.2.3.

Lý do chọn mơ hình MVC cho đề tài .....................................15

2.3.

Server-Side Rendering ....................................................................15

2.3.1.

Giới thiệu về Server-Side Rendering .....................................15

2.3.2.

Các đặc trưng của Server-Side Rendering ............................16

2.3.3.

Lý do chọn Server-Side Rendering cho đề tài .......................16

2.4.


NodeJS ..............................................................................................17

2.4.1.

Giới thiệu NodeJS ....................................................................17

2.4.2.

Các đặc trưng của NodeJS ......................................................17

2.4.3.

Lý do chọn NodeJS cho đề tài .................................................19

2.5.

ExpressJS .........................................................................................20

2.5.1.

Giới thiệu ..................................................................................20

2.5.2.

Các đặc trưng của ExpressJS .................................................21

2.5.3.

Lý do chọn ExpressJS cho đề tài ............................................21


2.6.

MongoDB .........................................................................................22

2.6.1.

Giới thiệu về MongoDB ...........................................................22

2.6.2.

Các đặc trưng của MongoDB .................................................22

2.6.3.

Lý do chọn MongoDB cho đề tài ............................................23

2.7.

Cloudinary .......................................................................................23

2


2.7.1.

Giới thiệu Cloudinary ..............................................................24

2.7.2.


Các đặc trưng của cloudinary .................................................24

2.7.3.

Lý do lựa cọn Cloudianry .......................................................24

2.8.

Bootstrap 5 .......................................................................................24

2.8.1.

Giới thiệu Bootstrap 5 .............................................................24

2.8.2.

Lý do lựa chọn Bootstrap 5 .....................................................25

CHƯƠNG 3.
3.1.

PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG....................26

Phân tích yêu cầu hệ thống .............................................................26

3.1.1.

Xác định yêu cầu ......................................................................26

3.1.2.


Sơ đồ phân rã chức năng .........................................................26

3.1.3.

Phân tích u cầu phi chức năng ............................................27

3.1.4.

Mơ hình hóa các u cầu .........................................................27

3.1.5.

Đặc tả use case ..........................................................................28

3.2.

Thiết kế hệ thống .............................................................................61

3.2.1.

Thiết kế xử lý ............................................................................61

3.2.2.

Thiết kế cơ sở dữ liệu ...............................................................63

3.2.3.

Thiết kế kiến trúc hệ thống .....................................................69


3.2.4.

Thiết kế giao diện. ....................................................................72

CHƯƠNG 4. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ......................... 107

3


4.1.

Kết quả đạt được .......................................................................... 107

4.2.

Thuận lợi và khó khăn ................................................................. 108

4.2.1.

Thuận lợi ................................................................................ 108

4.2.2.

Khó khăn................................................................................ 108

4.3.

Hướng phát triển .......................................................................... 108


TÀI LIỆU THAM KHẢO .......................................................................... 109

4


CHƯƠNG 1.

GIỚI THIỆU CHUNG

1.1. Giới thiệu đề tài
-

Đề tài website bán đồng hồ với hệ thống gợi ý là một đề tài thú vị và có ý
nghĩa trong lĩnh vực thương mại điện tử. Website bán đồng hồ là một loại
website chuyên cung cấp các sản phẩm đồng hồ của nhiều thương hiệu, kiểu
dáng và mức giá khác nhau. Hệ thống gợi ý là một tính năng quan trọng của
website bán đồng hồ, giúp khách hàng tìm kiếm và lựa chọn sản phẩm phù
hợp với nhu cầu và sở thích của họ. Hệ thống gợi ý dựa trên sự tương đồng
giữa các sản phẩm như chất liệu, mô tả, đưa ra các sản phẩm đề xuất nhằm
giúp khách hàng dễ dàng chọn lựa được sản phẩm hơn.

1.2. Lý do chọn đề tài
-

Trong thời đại hiện nay mạng Internet là một sản phẩm hết sức lớn lao và là
nền tảng chính cho sự truyền tài, trao đổi thơng tin trên tồn cầu. Trong hoạt
động sản xuất kinh doanh, giờ đây thương mại điện tử đã khẳng định được vai
trò xúc tiến và thúc đẩy hoạt động của doanh nghiệp. Đối với một cửa hàng,
việc quảng bá và giới thiệu đến khách hàng các sản phẩm mới đáp ứng được
nhu cầu của khách hàng là rất cần thiết. Vì vậy, em đã quyết định “xây dựng

hệ thống bán đồng tích hợp hệ thống gợi ý sản phẩm" có tên là Luxe Watch
giới thiệu và cung cấp các loại đồng hồ sang trọng đang có mặt trên thị trường
và khách hàng có thể đặt hàng ngay tại website mà không cần đến trực tiếp
điểm giao dịch. Việc này giúp cho khách hàng có thể chủ động và tiết kiệm
thời gian của chính mình.

1.3. Mục tiêu trong đề tài
-

Nghiên cứu một số thuật toán có trong hệ thống gợi ý

-

Xây dựng website bán đồng hồ cùng hệ thống gợi ý sản phẩm cho khách hàng

-

Xây dựng được hệ thống quản lý bán hàng đảm bảo thực hiện được đầy đủ các
chức năng cơ bản của một website bán hàng.

-

Giải quyết tối ưu hóa quá trình mua bán qua mạng phù hợp với thực tiễn

-

Đưa ra các báo cáo, thống kê tổng hợp

1



-

Tìm hiểu và ứng dụng các cơng nghệ mới, nâng cao kỹ năng phát triển phần
mềm

1.4. Đối tượng nghiên cứu
1.4.1. Các công nghệ
o Front-end: HTML-CSS, Template Handlebars
o Backend: NodeJS
o Database: MongoDB, Cloudinary
o Hệ thống gợi ý dựa theo nội dung (Content-based recommendation
systems)
1.4.2. Đối tượng phạm vi đề tài hướng đến
o Các cửa hàng muốn có một website bán đồng hồ
o Khách hàng muốn mua sản phẩm trực tuyến
1.5. Phạm vi
-

Đề tài tập trung vào xây dựng hệ thống trên nền tảng website
hướng tới đối tượng sử dụng là những người có nhu cầu mua
đồng hồ với thương hiệu rõ ràng.

-

Áp dụng tại các cửa hàng bán đồng hồ muốn có website bán
đồng hồ trực tuyến.

-


Người dùng có điện thoại hoặc laptop có internet là có thể truy
cập.

1.6. Phương pháp thực hiện
-

Tìm hiểu và phân tích quy trình tìm kiếm, mua bán sản phẩm tại các
website bán đồng hồ

-

Phân tích các giải pháp của các sản phẩm tương tự trên thị trường.

-

Xây dựng chức năng ở mức MVP (Minimum Viable Product) để đo
lường tính hiệu quả.

1.7. Ý nghĩa thực tiễn
-

Việc tìm kiếm sản phẩm ưng ý dễ dàng hơn cho khách hàng

-

Khách hàng có một nơi để mua sản phẩm đồng hồ chất lượng

2



-

Người quản trị có thể dễ dàng quản lý các sản phẩm có trong cửa hàng

1.8. Kết quả dự kiến
-

Hiểu rõ các công nghệ mới:
o

Front – end: HTML-CSS, Template Engine.

o

Back – end: NodeJS, ExpressJS, Cloudinary, Google API, Hệ

thống gợi ý dựa theo nội dung sản phẩm.
-

Hoàn thành sản phẩm với các chức năng đã được trình bày.

-

Giao diện thân thiện và tạo ra được những giá trị của mục tiêu hướng

tới.

3



CHƯƠNG 2. CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ SỬ DỤNG
2.1.

Hệ thống gợi ý dựa theo nội dung

2.1.1. Giới thiệu:
-

Hệ thống gợi ý dựa theo nội dung (Content-based recommendation systems)
là một loại hệ thống gợi ý mà sử dụng các đặc trưng của các sản phẩm hoặc
người dùng để tạo ra các gợi ý phù hợp. Ví dụ, một hệ thống gợi ý dựa theo
nội dung cho các bộ phim có thể sử dụng các thể loại, diễn viên, đạo diễn,
năm sản xuất, đánh giá của các bộ phim để tìm ra những bộ phim tương tự
với sở thích của người dùng. Hệ thống gợi ý dựa theo nội dung có ưu điểm là
khơng cần phải có nhiều dữ liệu về hành vi của người dùng, và có thể giải
thích được lý do tại sao một sản phẩm được gợi ý.Sau đó, hệ thống sẽ so sánh
các thuộc tính này với các mục chưa được người dùng tương tác, và đưa ra
những mục có độ tương đồng cao nhất.

2.1.2. Ưu điểm

4


-

Mơ hình khơng cần bất kỳ dữ liệu nào về người dùng khác, vì các đề xuất là
riêng biệt cho người dùng này. Điều này làm cho việc mở rộng cho một số
lượng lớn người dùng dễ dàng hơn.


-

Mơ hình có thể nắm bắt được sở thích cụ thể của người dùng và có thể đề
xuất các mặt hàng theo niềm yêu thích rất ít người dùng khác quan tâm
2.1.3. Nhược điểm

-

Vì biểu diễn tính năng của các mặt hàng được thiết kế bằng tay ở một mức
độ nào đó, kỹ thuật này yêu cầu rất nhiều kiến thức về lĩnh vực. Do đó, mơ
hình chỉ có thể tốt bằng các tính năng được thiết kế bằng tay

-

Mơ hình chỉ có thể đưa ra các đề xuất dựa trên sở thích hiện có của người
dùng. Nói cách khác, mơ hình có khả năng giới hạn để mở rộng sở thích hiện
có của người dùng

2.1.2.
-

Cách thức hoạt động

Để có thể hoạt động hiệu quả trong phạm vi đồ án này, hệ thống sẽ gợi ý dựa
trên các nội dung có trong một sản phẩm khí khách hàng xem sản phẩm, do
đó cần kết hợp các thuật toán liên quan.
2.1.2.1.

Tiền xử lý văn bản(Content Preprocessing)


Các bước tiền xử lý văn bản:
-

Biến đổi về chữ thường: Như tên thì đơn giản là ta chuyển tất cả các chữ in
hoa về chữ thường. Đây là cách đơn giản nhưng cũng rất hiệu quả trong việc
tiền xử lí dữ liệu văn bản, đặc biệt là đối với những bộ dữ liệu nhỏ.

-

Tách các câu: Từ một đoạn văn bản gồm nhiều câu thì thơng qua bước này
ta thu được các câu thành phần. Để nhận biết một câu đơn giản nhất là khi
gặp dấu "." kết thúc câu, tách câu mỗi khi gặp dấu ".".

-

Loại bỏ các ký tự đặc biệt: Trong các câu trong văn bản sẽ tồn tại nhiều dấu
câu như ?, !, ", ;, ... trước khi xây dựng bộ từ vựng thì các kí tự này cũng cần
được loại bỏ

-

Loại bỏ các stop-word: Stop words thường là các từ xuất hiện nhiều lần và
khơng đóng góp nhiều vào ý nghĩa của câu, chúng sẽ đóng vai trị như nhiễu,

5


trong tiếng Anh các từ này có thể kể đến như the, is, at, on, which, in, some,
many hay trong tiếng Việt là các từ cái, các, cả,.... Các từ này thường sẽ được
loại bỏ để giảm kích thước của bộ từ vựng.

-

Loại bỏ các từ hiếm gặp: Bên cạnh stop words thì trong nhiều bài tốn ta
cũng cần phải loại bỏ các từ hiếm gặp, đặc biệt khi bộ dữ liệu lớn. Đây cũng
là kĩ thuật mà ta cần cân nhắc trước khi sử dụng bởi loại bỏ các từ này có thể
gây ra sự mất mát về ngữ nghĩa của câu, đặc biệt là với các bộ dữ liệu trung
bình, nhỏ.

-

Stremming: loại bỏ một phần của từ, hoặc tối giản một từ thành gốc của nó.
Điều này khơng nhất thiết phải là rút gọn từ thành gốc từ điển. Giả sử chúng
ta có một tập hợp các từ – send và sending. Cả hai từ đều là các thì khác nhau
của cùng một từ gốc “send”. Vì vậy, sau khi thực hiện stemming, ta chỉ có
một từ duy nhất là “send”. Trong hệ thống này sẽ sử dụng thuật toán Porter’s
Stemmer. Đây là một trong những phương pháp tạo gốc phổ biến nhất được
đề xuất vào năm 1980. Nó dựa trên ý tưởng rằng các hậu tố trong tiếng Anh
được tạo thành từ sự kết hợp của các hậu tố nhỏ hơn và đơn giản hơn. Thuật
toán này được biết đến rộng rãi nhờ tốc độ và sự đơn giản của nó. Các ứng
dụng chính của Porter Stemmer bao gồm khai thác dữ liệu và truy xuất thông
tin. Tuy nhiên, các ứng dụng của nó chỉ giới hạn trong các từ tiếng Anh.
Ngoài ra, gốc đầu ra từ thuật tốn này khơng nhất thiết phải là một từ có
nghĩa. Các thuật tốn có bản chất khá dài và được biết đến là thuật toán gốc
lâu đời nhất.

Thuật toán TF-IDF:
-

Viết tắt của thuật ngữ tiếng Anh term frequency – inverse document
frequency, tf-idf là trọng số của một từ trong văn bản thu được qua thống kê

thể hiện mức độ quan trọng của từ này trong một văn bản, mà bản thân văn
bản đang xét nằm trong một tập hợp các văn bản.

-

Thuật tốn này thường được sử dụng vì: trong ngơn ngữ ln có những từ
xảy ra thường xun với các từ khác.

6


-

Có nghĩa là ln có một tập các từ mà tần số xuất hiện, sử dụng nhiều hơn
các từ khác , điều này đúng trong bất kì ngơn ngữ nào. Chính vì vậy ta cần
có một phương pháp để làm mịn đường cong tần số trên hay là việc cân bằng
mức độ quan trọng giữa các từ.

-

Cách tính trọng số tf-idf:


Tf-term freaquency: dùng để ước lượng tần suất xuất hiện của từ
trong văn bản. Tuy nhiên với mỗi văn bản thì có độ dài khác nhau, vì
thế số lần xuất hiện của từ có thể nhiều hơn . Vì vậy số lần xuất hiện
của từ sẽ được chia độ dài của văn bản (tổng số từ trong văn bản đó)

TF(t, d) = ( số lần từ t xuất hiện trong văn bản d) / (tổng số từ trong văn
bản d)



IDF- Inverse Document Frequency: dùng để ước lượng mức độ
quan trọng của từ đó như thế nào Khi tính tần số xuất hiện tf thì các
từ đều được coi là quan trọng như nhau. Tuy nhiên có một số từ
thường được được sử dụng nhiều nhưng không quan trọng để thể hiện
ý nghĩa của đoạn văn , ví dụ :

7




Từ nối: and, with, or, …



Giới từ: in, at, on, …



Từ chỉ định: this, that, these, …

Vì vậy ta cần giảm đi mức độ quan trọng của những từ đó bằng
cách sử dụng IDF:
IDF(t, D) = log_e( Tổng số văn bản trong tập mẫu D/ Số văn bản có chứa
từ t )

2.1.2.3.
-


Khi đó ta có giá trị của TF-IDF = TF (t, d) * IDF (t, D)
Vector Space Model - Cosine similatrity

Cosine similatrity là một một trong các thuật toán dùng để so sánh độ tương
đồng dựa vào phân tích cấu trúc ngữ pháp trong câu.

-

Vector Space Model – Cosine Similarity: Ý tưởng của bài toán này là việc
biến 2 văn bản cần so sánh thành 2 vector rồi từ đó tính tốn khoảng cách
giữa 2 vector đó. Cơng thức để tính khoảng cách của 2 vector trong khơng

8


gian như sau:

-

Ví dụ, ta có 2 vecctor như sau: u⃗ =(2,3,4,2) và v⃗ =(1,−2,1,3). Như vậy ta sẽ
tính khoảng cách Euclidean như sau:

-

Để đưa văn bản thành vector model để tính tốn như ví dụ trên thì ta sẽ sử
dụng thuật toán tf-idf để đưa văn bản về dạng vector, ví dụ có 2 văn bản:

-


Văn bản 1: dog cat

-

Văn bản 2: dog cat snake

-

dog

cat

snake

V1

0.14

0.14

0

V2

0.14

0.14

0.1


Sau khi đã có vector tọa độ của các 2 văn bản cần so sánh, áp dụng cơng thức
tính khoảng cách như sau:


Cosine Similarity (d1, d2) = Dot product(d1, d2) / ||d1|| * ||d2||




Trong đó:

Dot product (d1, d2) = d1[0] *d2[0] + d1[1] *d2[1] + ....
d1[n]*d2[n]
||d1|| = square root(d1[0] ^2 + d1[1] ^2 + ... + d1[n]^2)
||d2|| = square root(d2[0] ^2 + d2[1] ^2 + ... + d2[n]^2)

9


-

Ý nghĩa của kết quả (V1, V2) cho ta biết rằng cosine của góc θ giữa 2
vector(v1, v2) có giá trị là 0.93267115869 ngoài ra cos 0° = 1 và cos 90° = 0

-

Khi đầu vào là thông tin của một sản phẩm, hệ thống sẽ thực hiện tính tốn
và đưa ra chỉ số này, kết quả càng cao thì sản phẩm có độ tương đồng càng
lớn với dữ liệu đầu vào. Từ đó, hệ thống sẽ đưa ra đề xuất các sản phẩm tương
đồng với sản phẩm được xem nhất.


2.1.3.

Giới thiệu thư viện Content Based Recommender
Để đơn giản cho việc phát triển hệ thống, em quyết định sử dụng thư

viện Content Based Recommender giúp hỗ trợ trong việc sử dụng triển khai
hệ thống.

10


2.1.2.1.
-

Lý do chọn thư viện:

Thư viện là một Content-based recommendation systems đơn giản, được viết
bằng javascript để minh họa đề xuất dựa trên nội dung, phù hợp với trong
trường hợp khi có lượng dữ liệu ít về các sản phẩm sẽ được đề xuất. Nó phụ
thuộc vào đặc trưng và tính chất để đề xuất và nó khơng cần có sự tương tác
giữa người dùng với sản phẩm.

-

Content-based recommendation system strong thư viện này được xây dựng
dựa trên những thuật tốn được tìm hiểu ở trên

11



2.1.2.2.

Các bước được thực hiện trong thư viện

2.1.2.3.

Thực tế triển khai

12


13


2.2.

Mơ hình ứng dụng web MVC

2.2.1. Giới thiệu mơ hình ứng dụng web MVC
-

Mơ hình Model-View-Controller (MVC) là một mẫu kiến trúc phân tách một
ứng dụng thành ba thành phần logic chính Model, View và Controller. Do đó
viết tắt MVC. Mỗi thành phần kiến trúc được xây dựng để xử lý khía cạnh
phát triển cụ thể của một ứng dụng. MVC tách lớp logic nghiệp vụ và lớp hiển
thị ra riêng biệt.
2.2.2. Các đặc trưng của mơ hình MVC

-


Mơ hình MVC là một mơ hình kiến trúc phổ biến trong lập trình web, giúp
phân tách ứng dụng web thành ba thành phần chính: Model, View và
Controller.

- Model: là thành phần đại diện cho dữ liệu và logic nghiệp vụ của ứng dụng.
Model có thể kết nối với cơ sở dữ liệu, xử lý các yêu cầu và trả về kết quả.
- View: là thành phần đảm nhiệm việc hiển thị giao diện người dùng và tương tác
với người dùng. View có thể chứa các đối tượng giao diện như textbox, button,
image... View cũng có thể nhận được sự kiện từ người dùng và gửi đến Controller.

14


- Controller: là thành phần điều khiển luồng xử lý của ứng dụng. Controller nhận
các yêu cầu từ View, gọi đến Model để xử lý và trả về kết quả cho View để hiển
thị.
Mơ hình MVC giúp tăng tính tái sử dụng, bảo trì và mở rộng của mã nguồn, cũng
như giảm sự phụ thuộc giữa các thành phần.

2.2.3. Lý do chọn mơ hình MVC cho đề tài
- Hệ thống MVC phát triển tốt sẽ cho phép phát triển front – end, back – end cùng
trên hệ thống mà không có sự can thiệp, chia sẻ, chỉnh sửa các tập tin trong khi
một hoặc hai bên vẫn đang làm việc.
- Việc sử dụng mơ hình tương đối đơn giản. Chỉ cần hiểu rõ quy trình vận hành,
nắm được các chức năng của từng bộ phận thì việc triển khai mơ hình
MVC tương đối dễ dàng.
2.3.

Server-Side Rendering


2.3.1. Giới thiệu về Server-Side Rendering
-

Server side là kịch bản thường được sử dụng bởi máy chủ để người sử dụng
tùy chỉnh website đang truy cập. Server side là một kỹ thuật được dùng để
phát triển website. Bên cạnh chức năng cung cấp việc hiển thị tập tin website,
nó cịn phản hồi cho server biết các tùy chỉnh của người truy cập đối với
website.

-

Server-side rendering là một cơ chế đã được sử dụng từ lâu. Theo cơ chế này
thì hầu hết các xử lý logic đều ở phía máy chủ. Trong đó, máy chủ thực hiện

15


×