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

Ứng dụng thuật toán neighborhood based collaborative filtering vào website gợi ý xem phim online

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 (6.11 MB, 97 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA CƠNG NGHỆ THÔNG TIN 1
-------***-------

ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
ĐỀ TÀI:

Ứng dụng thuật toán Neighborhood-based Collaborative
Filtering vào website gợi ý xem phim online

Giảng viên hướng dẫn

: TS PHAN THỊ HÀ

Sinh viên thực hiện

: NGUYỄN VĂN HẢI

Lớp

: D17HTTT6

Mã Sinh Viên

: B17DCCN204

Khóa

: 2017 – 2022


Hệ

: ĐẠI HỌC CHÍNH QUY

HÀ NỘI – 2022


HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA CƠNG NGHỆ THÔNG TIN 1
-------***-------

ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
ĐỀ TÀI:

Ứng dụng thuật toán Neighborhood-based Collaborative
Filtering vào website gợi ý xem phim online

Giảng viên hướng dẫn

: TS PHAN THỊ HÀ

Sinh viên thực hiện

: NGUYỄN VĂN HẢI

Lớp

: D17HTTT6


Mã Sinh Viên

: B17DCCN204

Khóa

: 2017 – 2022

Hệ

: ĐẠI HỌC CHÍNH QUY

HÀ NỘI - 2022


Đồ án tốt nghiệp

Lời cảm ơn
Trước tiên, với tất cả lịng kính trọng, em xin được gửi lời cảm ơn chân thành và
sâu sắc nhất đến cô Phan Thị Hà - người đã tận tình, chỉ bảo, hướng dẫn em trong
suốt thời gian em nghiên cứu và thực hiện đồ án. Em xin chúc cơ cùng gia đình
thật nhiều sức khỏe, chúc cô công tác tốt và gặt hái được nhiều thành công hơn
trong cuộc sống.
Em xin gửi lời cảm ơn đến các thầy cô giáo trong học viên công nghệ bưu chính
viễn thơng đã giảng dạy và dìu dắt em trong những năm tháng em học tập và nghiên
cứu tại trường. Nhờ sự nhiệt tình, tâm huyết của các thầy cô trong khoa cũng như
trong trường, em đã tiếp thu được nhiều kiến thức mới, giúp em có một nền tảng
vững chắc để em có thể tự tin bước theo cơng việc mà mình đã chọn.
Cuối cùng, em xin cảm ơn gia đình và bạn bè, đã ln là chỗ dựa vững chắc tạo
điều kiện, quan tâm, động viên em trong suốt q trình học tập và hồn thiện đồ

án tốt nghiệp.
Mặc dù đã có nhiều cố gắng trong suốt q trình thực hiện đề tài, song có thể cịn
những mặt hạn chế thiếu sót. Em rất mong nhân được ý kiến đóng góp và sự chỉ
dẫn của các thầy cô và bạn bè.
Em xin chân thành cảm ơn!
Hà Nội, ngày 03, tháng 01, năm 2022
Sinh viên
Nguyễn Văn Hải

Nguyễn Văn Hải – B17DCCN204

1


Đồ án tốt nghiệp

Mục Lục
Chương 1. Giới thệu về website xem phim online ............................................. 9
1.1

Sự cần thiết của một website xem phim online .................................... 9

1.2

Giới thiệu về hệ thống gợi ý ................................................................. 10

1.2.1

Giới thiệu ........................................................................................ 10


1.2.2

Các kỹ thuật chính trong hệ thống gợi ý ..................................... 10

1.3

Một số hệ thống website xem phim trực tuyến hiện nay .................. 11

1.4

Đề xuất giải pháp của đề tài................................................................. 14

1.5

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

1.5.1

Ngôn ngữ sử dụng .......................................................................... 15

1.5.2

Mơ hình Webservice ...................................................................... 16

1.6

kết luận .................................................................................................. 21

Chương 2. Thuật toán gợi ý Neighborhood-based Collaborative Filtering . 22
2.1 Ý tưởng của thuật toán............................................................................. 22

2.2 Nguyên lý thực hiện cài đặt thuật toán ................................................... 22
2.3 Kết luận ...................................................................................................... 26
Chương 3. Đặc tả và phân tích hệ thống .......................................................... 28
3.1 Mô tả yêu cầu của hệ thống ..................................................................... 28
3.1.1 Mục đính của hệ thống ....................................................................... 28
3.1.2 Phạm vi hệ thống ................................................................................ 28
3.1.3 Mô tả thông tin chung ........................................................................ 28
3.1.4 Thông tin về người dùng và chức năng ............................................ 30
3.2 Phân tích .................................................................................................... 31
3.2.1 Mơ tả nghiệp vụ các chức năng ......................................................... 31
3.2.2
3.3

Trích các lớp thực thể của hệ thống ............................................. 46

Kết luận ................................................................................................. 48

Chương 4. Thiết kế hệ thống ............................................................................. 49
4.1 Thiết kế cơ sở dữ liệu................................................................................ 49
4.3 Thiết kế chi tiết từng chức năng .............................................................. 51
4.3.1 Các chức năng của quản trị hệ thống ............................................... 51
4.3.2 Các chức năng chung của người dùng.............................................. 62
4.3.3 Các chức năng của người xem ........................................................... 65
Nguyễn Văn Hải – B17DCCN204

2


Đồ án tốt nghiệp


4.4 Thiết kế sơ đồ tổng quát của hệ thống .................................................... 77
4.5 Kết luận ...................................................................................................... 78
Chương 5. cài đặt và thử nghiệm hệ thống ...................................................... 79
5.1

Công cụ cài đặt và các thư viện hỗ trợ ............................................... 79

5.1.1

Công cụ cài đặt ............................................................................... 79

5.1.2

Công cụ triển khai.......................................................................... 79

5.1.3

Thư viện hộ trợ .............................................................................. 80

5.2

Kết quả cài đặt ...................................................................................... 81

5.2.1

Các chức năng của quản trị viên .................................................. 81

5.2.2

Các chức năng của người xem ...................................................... 85


5.3

Kết luận ................................................................................................. 92

Kết luận ............................................................................................................... 93
Tài liệu tham khảo ............................................................................................. 94

Nguyễn Văn Hải – B17DCCN204

3


Đồ án tốt nghiệp

Danh Mục Hình Ảnh
Chương 1
Hình 1. 1 Các nhóm hệ thống gợi ý ..................................................................... 11
Hình 1. 2 Giao diện trang web youtube ............................................................... 12
Hình 1. 3 Giao diện trang web netfix ................................................................... 13
Hình 1. 4 Giao diện trang web FPT Play ............................................................. 13
Hình 1. 5 Mơ hình webservice ............................................................................. 17
Hình 1. 6 Lưu đồ hoạt động của webservice ........................................................ 20
Chương 2
Hình 2. 1 Bảng dữ liệu ma trân dựa trên số điểm đánh giá của người dùng cho
một bộ phim ......................................................................................................... 22
Hình 2. 2 Cơng thức consine Similarity ............................................................... 23
Hình 2. 3 Gía trị trung bình đánh giá của từng user............................................. 23
Hình 2. 4 Kết quả bảng dữ liệu sau khi chuẩn hóa .............................................. 24
Hình 2. 5 Ma trận giá trị tương đồng giữa các user sau khi được tính ................ 24

Hình 2. 6 Cơng thức xác định mức độ quan tâm của một user đến một bộ phim 25
Hình 2. 7 Ví dụ khi dùng cơng thức xác định mức độ quan tâm ......................... 25
Hình 2. 8 Kết quả dự đốn sau khi sử dụng cơng thức xác định mức độ quan tâm
.............................................................................................................................. 26
Hình 2. 9 Kết quả dự đoán khi quy đổi về thang giá trị 5 .................................... 26
Chương 3
Hình 3. 1 Biểu đồ use case tổng quan .................................................................. 31
Hình 3. 2 Biểu đồ lớp thực thể ............................................................................. 48
Chương 4
Hình 4. 1 Lược đồ cơ sở dữ liệu .......................................................................... 50
Hình 4. 2 Sơ đồ khối chức năng hệ thống gợi ý phim ......................................... 50
Hình 4. 3 Biểu đồ lớp chức năng hiển thị danh sách phim tồn hệ thống ........... 51
Hình 4. 4 Biểu đồ tuần tự chức năng hiển thị danh sách phim toàn hệ thống ..... 52
Hình 4. 5 Biểu đồ chức năng thêm một bộ phim mới vào hệ thống .................... 52
Hình 4. 6 Biều đồ tuần tự chức năng thêm một bộ phim mới vào hệ thống ........ 53
Hình 4. 7 Biểu đồ lớp chức năng sửa thông tin một bộ phim .............................. 54
Hình 4. 8 Biều đồ tuần tự chức năng sửa thơng tin một bộ phim ........................ 55
Hình 4. 9 Biều đồ lớp chức năng thêm thể loại cho một bộ phim ....................... 56
Hình 4. 10 Biều đồ tuần tự chức năng thêm thể loại cho phim ........................... 57

Nguyễn Văn Hải – B17DCCN204

4


Đồ án tốt nghiệp

Hình 4. 11 Biểu đồ lớp chức năng thêm tập phim mới cho một bộ phim............ 58
Hình 4. 12 Biều đồ tuần tự chức năng thêm tập phim mới cho một bộ phim ...... 59
Hình 4. 13 Biểu đồ lớp chức năng thống kê doanh thu theo năm ........................ 60

Hình 4. 14 Biểu đồ tuần tự chức năng thống kê doanh thu theo năm .................. 60
Hình 4. 15 Biểu đồ lớp chức năng thống kê doanh thu trong 1 khoảng thời gian 61
Hình 4. 16 Biểu đồ tuần tự chức năng thống kê doanh thu trong một khoảng thời
gian ....................................................................................................................... 62
Hình 4. 17 Biểu đồ lớp chức năng đăng ký .......................................................... 63
Hình 4. 18 Biểu đồ tuần tự chức năng đăng ký .................................................... 63
Hình 4. 19 Biểu đồ lớp chức năng lấy lại mật khẩu ............................................. 64
Hình 4. 20 Biểu đồ tuần tự chức năng lấy lại mật khẩu ....................................... 64
Hình 4. 21 Biểu đồ lớp chức năng tìm kiếm phim theo tên ................................. 65
Hình 4. 22 Biểu đồ tuần tự chức năng tìm kiếm phim theo tên ........................... 66
Hình 4. 23 Biểu đồ lớp chức năng bình luận ....................................................... 66
Hình 4. 24 Biểu đồ tuần tự chức năng bình luận ................................................. 67
Hình 4. 25 Biểu đồ lớp chức năng đánh giá phim................................................ 67
Hình 4. 26 Biểu đồ tuần tự chức năng đánh giá phim.......................................... 68
Hình 4. 27 Biểu đồ lớp chức năng xem phim ...................................................... 69
Hình 4. 28 Biểu đồ tuần tự chức năng xem phim ................................................ 69
Hình 4. 29 Biểu đồ lớp chức năng tìm kiếm phim theo thể loại .......................... 70
Hình 4. 30 Biểu đồ tuần tự chức năng tìm kiếm phim theo thể loại .................... 71
Hình 4. 31 Biểu đồ lớp chức năng sửa thơng tin cá nhân .................................... 71
Hình 4. 32 Biểu đồ tuần tự chức năng sửa thông tin cá nhân .............................. 72
Hình 4. 33 Biểu đồ lớp chức năng xem thơng tin cá nhân ................................... 72
Hình 4. 34 Biểu đồ tuần tự chức năng xem thông tin cá nhân ............................. 73
Hình 4. 35 Biểu đồ lớp chức năng gợi ý xem phim ............................................. 73
Hình 4. 36 Biểu đồ tuần tự chức năng gợi ý phim ............................................... 74
Hình 4. 37 Biểu đồ lớp chức năng nhắn tin chung ............................................... 75
Hình 4. 38 Biểu đồ tuần tự chức năng nhắn tin chung ......................................... 75
Hình 4. 39 Biểu đồ lớp chức năng nâng cấp tài khoản ........................................ 76
Hình 4. 40 Biểu đồ tuần tự chức năng nâng cấp tài khoản .................................. 77
Hình 4. 41 Sơ đồ tổng quan toàn hệ thống ........................................................... 77
Chương 5

Hình 5. 1 Hiển thị danh sách phim của tồn bộ hệ thống .................................... 81
Hình 5. 2 Hiển thị giao diện thêm phim mới ....................................................... 82
Hình 5. 3 Nhập thơng tin của bộ phim mới vào form .......................................... 82
Hình 5. 4 Giao diện thêm thể loại cho phim ........................................................ 83
Hình 5. 5 Giao diện sau khi thêm thể loại cho phim thành cơng ......................... 83
Hình 5. 6 Hiển thị danh sách các tập phim .......................................................... 84
Hình 5. 7 Nhập thơng tin tập phim....................................................................... 84
Hình 5. 8 Chọn năm muốn thực hiện thống kê doanh thu ................................... 84
Nguyễn Văn Hải – B17DCCN204

5


Đồ án tốt nghiệp

Hình 5. 9 Hiển thị giao diện kết quả sau khi thực hiện thống kê doanh thu theo
năm ....................................................................................................................... 85
Hình 5. 10 Giao diện đăng ký tài khoản .............................................................. 86
Hình 5. 11 Giao diện đăng nhập tài khoản ........................................................... 86
Hình 5. 12 Giao diện nâng cấp tài khoản ............................................................. 87
Hình 5. 13 Giao diện đăng nhập của paypal ........................................................ 87
Hình 5. 14 Giao diện thanh tìm kiếm ................................................................... 88
Hình 5. 15 Giao diện kết quả tìm kiếm ................................................................ 88
Hình 5. 16 Giao diện bình luận phim ................................................................... 88
Hình 5. 17 Giao diện đáng giá phim .................................................................... 89
Hình 5. 18 Giao diện giới thiệu bộ phim ............................................................. 89
Hình 5. 19 Giao diện trình chiếu phim và danh sách các tập phim ..................... 90
Hình 5. 20 Giao diện thanh menu bên phải.......................................................... 90
Hình 5. 21 Hiển thị giao diện thơng tin cá nhân của người dùng ........................ 90
Hình 5. 22 Giao diện cập nhật thơng tin .............................................................. 91

Hình 5. 23 Giao diện danh sách phim .................................................................. 91
Hình 5. 24 Hiển thị giao diện danh sách các phim được gợi ý với phim được chọn
.............................................................................................................................. 92

Nguyễn Văn Hải – B17DCCN204

6


Đồ án tốt nghiệp

Danh Mục Các Từ Viết Tắt
STT
1
2
3
4
5

Từ viết tắt
XML
HTML
CSS
NBCF
WSDL

Ý nghĩa
Extensible Markup Language
Hypertext Markup Language
Cascading Style Sheets

Neighborhood-based Collaborative Filtering
Web Service Description Language

6

UDDI

Universal Description, Discovery, and
Integration

7

WS

WebService

8

SOAP

Simple Object Access Protocol

Nguyễn Văn Hải – B17DCCN204

7


Đồ án tốt nghiệp

Lời mở đầu

Ngày nay, cùng với sự phát triển của xã hội, nhu cầu của con người không ngừng
tăng lên. Không chỉ dừng ở việc đáp ứng đủ nhu cầu vật chất mà còn phải đáp ứng
cả về nhu cầu tinh thần. Chính vì điều đó, nhiều khu vui chơi giải trí được hình
thành lên nhằm đáp ứng nguyện vọng của con người. Và tất nhiên, rạp chiếu phim
cũng là một trong số chúng. Cịn gì vui sướng hơn việc được xem những bộ phim
yêu thích tại những màn ảnh rộng lớn. Tuy nhiên không phải ai cũng có thời gian,
tiền bạc để đầu tư cho những lần xem phim đó.
Chính vì thế, khi internet ra đời đã đem đến cho những nhà làm phim cách thức
quảng bá những sản phẩm của mình một cách tốt nhất, đem lại nguồn thu nhập lớn
cho họ. Những bộ phim được trình chiếu trên các trang web giúp các nhà làm phim
tiếp cận với khách hàng của mình một cách dễ dàng nhất. Người xem có thể xem
phim ở bất cứ đâu, bất cứ khi nào mình muốn mà chỉ mất một khoản chi phí rất
nhỏ hoặc khơng cần phải bỏ ra thứ gì.
Cho đến hiện tại, đã có rất nhiều những trang web xem phim online ra đời với
nhiều chủ đề đa dạng, nhiều thể loại hấp dẫn người xem. Nhưng phần lớn những
trang web đó chưa thực sự đem lại trải nghiệm tốt cho người dùng, chưa có hệ
thống gợi ý phim phù hợp.
Chính vì điều đó, em đã hình thành lên suy nghĩ xây dựng một website xem phim
trực tuyến sử dụng thuật toán gợi ý phim nhằm đem lại cho người xem sự trải
nghiệm tốt nhất. Trong thời gian thực hiện đề tài, em đã cố gắng xây dựng và hoàn
thiện một số chức năng cơ bản. Những chức năng còn thiếu sẽ được tiếp tục hoàn
thiện nhằm đưa hệ thống vào sử dụng và vận hành sớm nhất có thể.
Nội dung đề tài bao gồm 5 chương:






Chương 1: Giới thiều về website xem phim online

Chương 2: Thuật toán gợi ý Neighborhood-based Collaborative Filtering
Chương 3: Đặc tả và phân tích hệ thống
Chương 4: Thiết kế hệ thống
Chương 5: Cài đặt và thử nghiệm hệ thống

Nguyễn Văn Hải – B17DCCN204

8


Đồ án tốt nghiệp

Chương 1. Giới thệu về website xem phim online
Nội dung chương 1 sẽ trình bày về:
• Sự cần thiết của một website xem phim online
• Giới thiệu về hệ thống gợi ý
• Một số hệ thống website xem phim trực tuyến hiện nay
• Đề xuất giải pháp của đề tài
• Cơng nghệ sử dụng
1.1 Sự cần thiết của một website xem phim online
Trong những năm gần đây, nhu cầu xem phim khơng ngừng tăng lên. Nó giúp
cho ngưởi xem giảm cẳng thẳng, đem đến cho người xem những phút giây vui vẻ
bên gia đình và những người thân yêu sau một ngày làm việc một mỏi.
Trước đây, khi Internet chưa phát triển thì việc xem các bộ phim truyền hình,
hay các bộ phim ngắn sẽ khơng diễn ra thường xuyên. Để xem được nó, chúng ta
phải đến các rap chiếu phim quốc gia hoặc các rap chiếu phim doanh nghiệp, ngồi
ra chúng ta cịn có thể th đĩa về để xem những bộ phim đó. Chi phí cho những
lần xem phim đó tương đối là lớn và khơng phải ai cũng có đủ khả năng chi trả
Và khơng phải bất kỳ ai cũng có thời gian đến những rạp xem phim lớn để trải
nghiệm cảm giác đó. Vì thế khi Internet ra đời, dẫn đến sự ra đời của hàng loạt các

trang web giải trí, các trang web thương mại điện tử và web xem phim online cũng
là một trong số chúng. Những web xem phim online xuất hiện ngày càng nhiều,
cho đến hiện tại có hàng trăm website xem phim online với nhiều chủ đề đa dạng,
phong phú. Việc ra đời của website xem phim online đã đem lại rất nhiều những
lợi ích to lớn đối với ngành làm phim. Chúng có những ưu điểm sau :
• Có thể xem phim ở bất kỳ đâu, vào bất kỳ thời gian nào mà người xem muốn.
• Phạm vi tiếp cận rộng bao gồm mọi vùng miền trong nước và cả ngồi nước
từ đó mang lại lợi nhuận và doanh thu cao cho các nhà làm phim, thu hút
lương người xem đông đảo hơn so với khi những bộ phim chỉ chiếu ở rạp.
• Đồng thời, với một website xem phim online, các doanh nghiệp,cá nhân còn
tiết kiệm được rất nhiều chi phí thuê mặt bằng hay nhân viên phục vụ so với
việc mở một rạp chiếu phim. Nói một cách đơn giản, website xem phim online
chính là một rạp chiếu phim trực tuyến trên Internet.
Sự ra đời của website xem phim online dẫn đến sự phát triển nhanh chóng của
ngành cơng nghiệp phim điện ảnh trên tồn thế giới. Không chỉ các nhà doanh
nghiệp , bất kỳ cá nhân, nhóm nhỏ nào cũng có thể trở thành những nhà đạo diễn,
những diễn viên trong chính những video do bản thân tự dàn dựng đem đến một
nguồn thu nhập không hề nhỏ cho họ. Tiêu biểu cho loại hình này chính là youtube
và TikTok. Có thể nói chúng là những trang mạng xã hội xem phim online phổ
biến nhất trên thế giới hiện nay.
Nguyễn Văn Hải – B17DCCN204

9


Đồ án tốt nghiệp

Chính vì những lợi ích mà website xem phim online đem lại như trên nên việc
xây dựng hệ thống xem phim online là vô cùng cần thiết đối với cuộc sống hiện
đại ngày nay.

1.2 Giới thiệu về hệ thống gợi ý
1.2.1 Giới thiệu
Hệ thống gợi ý (Recommender System) là 1 nhánh con của hệ thống lọc
thông tin (Infomation filtering system), nhằm tìm cách dự đốn việc đánh giá
(rating) của người dùng (user) sẽ đưa ra cho 1 sản phẩm (item). Chúng chủ yếu
được dùng trong các ứng dụng thương mại điện tử. [3].
Hiện nay, các hệ thống xem phim trực tuyến đã tạo nhiều điều kiện thuận
lợi để người xem có thể tiếp cận nhiều bộ phim cùng lúc. Cũng chính vì vậy, bởi
vì có q nhiều các bộ phim hiển thị trên trang web nên đã gây ra khơng ít khó
khăn cho người xem, khiến người xem khó có thể chọn ra cho mình một bộ phim
ưng ý nhất.
Để người xem có thể chọn được một bộ phim ưng ý thì một sự gợi ý là rất
quan trọng. Trong các rạp chiếu phim, những sự gợi ý từ các nhân viên bán vé sẽ
làm tăng thêm nguồn thu nhập cho rạp chiếu phim. Do đó một hệ thống gợi ý trong
một trang web xem phim online là vô cùng cần thiết
Một hệ thống gợi ý tốt có thể đóng vai trị như một người trung gian hỗ trợ
người xem chọn ra những bộ phim hay và đúng với yêu cầu người xem muốn.
Bằng cách xác định mục đích và nhu cầu của người xem, hệ thống có thể đưa ra
một danh sách các bộ phim gợi ý giúp cho người xem dễ dàng chọn lựa.
1.2.2 Các kỹ thuật chính trong hệ thống gợi ý
Các hệ thống gợi ý thường sử dụng nhiều thuật toán khác nhau, về cơ bản, chúng
ta có thể chia làm 2 nhóm lớn.
• Lọc dựa theo nội dung (Content-Based Filtering)
• Lọc cộng tác (Collaborative Filtering)
Hệ thống gợi ý dựa trên nội dung (Content-Based Recommendation System) dựa
vào thuộc tính của các sản phẩm, ví dụ như tên, nhà sản xuất, giá cả, chỉ số, mô
tả... để đưa ra các sản phẩm tương tự nhau. Đặc điểm của phương pháp này là việc
xây dựng mơ hình cho mỗi người dùng khơng phụ thuộc vào những người
dùng khác mà thường phụ thuộc vào các đặc điểm của mặt hàng [5].
Hệ thống gợi ý dựa trên lọc cộng tác (Collaborative Filtering Recommendation

System) dựa vào hành vi của những người dùng có xu hướng tương tự để gợi ý ra
Nguyễn Văn Hải – B17DCCN204

10


Đồ án tốt nghiệp

các sản phẩm cho người dùng. Phương pháp này có thể tận dụng được thơng tin từ
người dùng mà không phụ thuộc vào những đặc điểm của mặt hàng. Tuy nhiên
cũng chính vì thế mà phương pháp này địi hỏi một lượng lớn dữ liệu hiện có của
người dùng để đưa ra những đề xuất chính xác [5].
Ví dụ: người dùng A mua sản phẩm X, Y, Z, người dùng B mua sản phẩm
X, Y thì khả năng cao người dùng B cũng sẽ mua Z do đó nên gợi ý Z cho người
dùng B [5].
Ngồi ra, cịn có Hệ thống gợi ý lai (Hybrid Recommendation System) là
sự kết hợp từ 2 nhóm trên [5].

Hình 1. 1 Các nhóm hệ thống gợi ý
Ở trong hệ thống này chúng ta sẽ sử dụng thuật toán gợi ý NBCF:
NBCF viết tắt là Neighborhood-based Collaborative Filtering
Ý tưởng cơ bản của NBCF là xác định mức độ quan tâm của một user tới
một item dựa trên các users khác gần giống với user này. Việc gần giống nhau giữa
các users có thể được xác định thông qua mức độ quan tâm của các users này tới
các items khác mà hệ thống đã biết. Ví dụ, A, B đều thích phim Cảnh sát hình sự,
tức đều rate bộ phim này 5 sao. Ta đã biết A cũng thích Người phán xử, vậy nhiều
khả năng B cũng thích bộ phim này. Ta sẽ đi sâu vào phương pháp này trong phần
sau [6].
1.3 Một số hệ thống website xem phim trực tuyến hiện nay


Nguyễn Văn Hải – B17DCCN204

11


Đồ án tốt nghiệp

Hiện nay có rất nhiều website xem phim online trên thế giới. Nổi bật nhất trong
đó là :
Youtube () : Youtube [10] là nền tảng mạng xã
hội cho người dùng chia sẻ các video được đăng tải từ máy tính hoặc điện
thoại.

Hình 1. 2 Giao diện trang web youtube
Youtube cho phép người dùng đăng tải, xem và chia sẻ những clip thú vị, đăng ký
theo dõi người dùng khác với công nghệ H.264/MPEG – 4 AVC, WebM, Adobe
Flash Player sẽ giúp hiển thị nhiều video đa phương tiện do người dùng cùng doanh
nghiệp tạo ra. Thông thường, những nội dung này sẽ là các chương trình truyền
hình, clip ngắn, clip âm nhạc, phim ngắn, những bản ghi âm, trailer phim, các video
mang tính sáng tạo, video giáo dục.
Netfix (): Netflix [11] là dịch vụ xem video trực tuyến
của Mỹ, nội dung chủ yếu là phim và các chương trình truyền hình, rất phổ biến ở
Mỹ và nhiều nước khác trên thế giới mang đến đa dạng các loại chương trình truyền
hình, phim, phim tài liệu đoạt giải thưởng và nhiều nội dung khác trên hàng nghìn
thiết bị có kết nối Internet. Tương tự như một số trang web như HDViet, FPT
Play… ở nước ta, nhưng Netflix cung cấp kho video khủng với chất lượng cao
hơn, có bản quyền đầy đủ và có ứng dụng để được sử dụng trên các thiết bị thông
minh như smartphone, tablet, smart tivi… Khi đó, chỉ cần có kết nối internet và
một thiết bị thơng minh, là người dùng có thể thưởng thức nội dung số từ Netflix
dễ dàng.


Nguyễn Văn Hải – B17DCCN204

12


Đồ án tốt nghiệp

Hình 1. 3 Giao diện trang web netfix

Đặc biệt, giữa bối cảnh người dùng đang thiếu các nguồn nội dung 4K để phát
trên tivi 4K, thì việc Netflix có hỗ trợ phát video 4K trở thành một ưu điểm rất nổi
bật và đáng để người dùng kì vọng.
Fptplay (): Fptplay là dịch vụ xem phim trực tuyến do công ty
cổ phần viễn thông FPT thành lập. Website chứa các bộ phim của nhiều quốc gia
với nội dung phong phú. Có những bộ phim được xem miễn phí nhưng cũng có
những bộ phim bị tính phí.

Hình 1. 4 Giao diện trang web FPT Play
Nguyễn Văn Hải – B17DCCN204

13


Đồ án tốt nghiệp

Ngoài những website nổi bật như ở trên thì cịn rất nhiều các website xem phim
online trực tuyến khác. Mỗi website thì đều sẽ có những hệ thống gợi ý của riêng
mình, nhưng chúng khơng được thực sự tốt như các ông lớn về công nghệ như
youtube, netfix, fpt, facebook.

Với mục đính xây dựng được một hệ thống gợi ý xem phim thực sự tốt. Nhóm
đề tài sẽ quyết định phát triển hệ thống website gợi ý xem phim online dựa trên
thuật toán gợi ý Neighborhood-based Collaborative Filtering.
1.4 Đề xuất giải pháp của đề tài
Mục tiêu của nhóm đề tài là phát triển một website xem phim online với các
tiêu chí như sau:
• Đối với người quản lý hệ thống: Hộ trợ việc quản lý tài khoản, quản lý
phim, quản lý bình luận, quản lý lượt xem, quản lý đánh giá, quản lý quốc
gia, quản lý giao dịch, quản lý thanh tốn
• Đối với người xem: đăng ký tài khoản, đăng nhập tài khoản, xem danh sách
phim, tìm kiếm phim, xem phim, đánh giá phim, bình luận phim, nâng cấp
tài khoản, xem thông tin cá nhân, thực hiện thay đổi thông tin, thực hiện
lấy lại mật khẩu, xem thông báo, xem lịch sử giao dịch, xem lịch sử xem
phim
Như vậy hệ thống có những chức năng cơ bản như sau:
• Người xem :
o Đăng ký tài khoản với email và số điện thoại là duy nhất.
o Đăng nhập tài khoản.
o Thực hiện lấy lại mật khẩu với số điện thoại đăng ký trước đó.
o Xem danh sách phim theo các tiêu trí (tên phim, tên thể loại, tên tài
khoản, tên diễn viên, phim được yêu thích nhất, phim có lượt xem cao
nhất trong tháng).
o Tìm kiếm phim theo nhiều tiêu trí.
o Xem phim (phim tính phí, phim miễn phí)
o Nâng cấp tài khoản (thực hiện thanh tốn nâng cấp tài khoản qua cổng
thanh toán paypal).
o Đánh giá phim (đánh giá phim dựa trên số sao, cao nhất là 5 sao, nhỏ
nhất là 1 sao).
o Bình luận phim.
o Xem thông tin cá nhân, thực hiện sửa đổi thông tin cá nhân

o Xem thông báo
Nguyễn Văn Hải – B17DCCN204

14


Đồ án tốt nghiệp

o Xem lịch sử giao dịch
o Xem lịch sử xem phim
o Lấy lại mật khẩu
• Người quản trị hệ thống:
o Quản lý tài khoản (thực hiện thêm, sửa, vơ hiệu hóa thơng tin tài khoản
của tồn bộ hệ thống).
o Quản lý phim (thực hiện thêm, sửa các bộ phim, thể loại phim, tập phim).
o Quản lý bình luận (thực hiện thống kê bình luận, phân tích bình luận của
từng bộ phim để đưa ra bộ phim có những bình luận tích cực nhât).
o Quản lý lượt xem (Hiển thị danh sách lượt xem theo từng ngày của từng
bộ phim, thống kê tổng lượt xem của từng bộ phim).
o Quản lý đánh giá (Hiển thị danh sách đánh giá, thêm sửa xóa đánh giá
của từng bộ phim).
o Quản lý quốc gia (Hiển thị danh sách các quốc gia của các bộ phim,
thêm, sửa, xóa danh sách đó).
o Quản lý giao dịch (Hiển thị lịch sử giao dịch của tồn bộ tài khoản trên
hệ thống xem phim online).
1.5 Cơng nghệ sử dụng
1.5.1 Ngôn ngữ sử dụng
a. Ngôn ngữ lập trình Java
Java [12] là một nền tảng phát triển các ứng dụng phần mềm có vị trí rất
lớn trong những năm cuối thế kỉ 20, đầu thế kỉ 21. Đánh dấu sự trưởng thành của

mơ hình lập trình hướng đối tượng, nó được coi là một nền tảng mang tính cách
mạng trong ngành phần mềm. Mơ hình máy ảo Virtual Machine đã cho phép các
ứng dụng viết bằng Java có thể chạy trên nhiều hệ điều hành khác nhau.
b. FrameWork React js
React Js [13] là một thư viện viết bằng javascript, dùng để xây dựng giao diện
người dùng (UI). React được sử dụng rộng rãi và có hệ sinh thái đa dạng phong
phú. UI tất nhiên là quan trọng, nhưng khơng phải là tất cả. Để phát triển ứng dụng
hồn chỉnh, một mình React Js là khơng làm được tất cả, bạn sẽ cần thêm:
o Serverside language : để xử lý logic và lưu trữ dữ liệu trên server.
o HTML/CSS nếu bạn làm ứng dụng web.
o Flux/Redux : là một kiến trúc giúp bạn tổ chức code rõ ràng và sạch sẽ.
o Objective C: nếu bạn sử dụng React để xây dựng app cho iOS
c. Ngơn ngữ lập trình JavaScript
Giới thiệu

Nguyễn Văn Hải – B17DCCN204

15


Đồ án tốt nghiệp

JavaScript [14] là một ngôn ngữ lập trình hoặc ngơn ngữ kịch bản cho phép
triển khai những chức năng phức tạp trên trang web như hiển thị các cập nhật nội
dung kịp thời, tương tác với bản đồ, hoạt cảnh 2D/3D vv... - đều có sự hỗ trợ của
JavaScript
Đặc điểm của JavaScript
Ưu điểm:
o
o

o
o

Khơng cần Compile vì web browser có thể biên dịch nó bằng HTML.
Dễ học hơn các ngơn ngữ lập trình khác.
Nhanh và nhẹ hơn các ngơn ngữ lập trình khác.
Hoạt động trên nhiều trình duyệt, nhiều nền tảng.

Nhược điểm:
o Dễ bị khai thác, bảo mật khơng cao.
o Có thể được dùng để thực thi mã độc trên máy tính người dùng
d. FrameWork Spring boot
Spring Boot [15] là một dự án phát triển bởi JAV (ngôn ngữ java) trong hệ sinh
thái Spring framework. Nó giúp cho các lập trình viên chúng ta đơn giản hóa q
trình lập trình một ứng dụng với Spring, chỉ tập trung vào việc phát triển business
cho ứng dụng.
e. HTML
HTML – HyperText Markup Language: Là [16] ngôn ngữ đánh dấu siêu văn
bản. Nó giúp người dùng tạo và cấu trúc các thành phần trong trang web. HTML
không phải là ngôn ngữ lập trình, nó khơng thể tạo ra các chức năng “động” mà
chỉ có thể dùng để bố cục và định dạng trang web.
f. CSS
CSS – Cascading Style Sheet Language: Là [17] ngơn ngữ tạo phong cách cho
trang web. Nó dùng để làm đẹp và tạo kiểu cho những phần tử được viết dưới dạng
ngơn ngữ đánh dấu như HTML. Nó có thể sử dụng để điều khiển định dạng nhiều
trang web cùng lúc giúp tiết kiệm công sức cho người viết web.
1.5.2 Mơ hình Webservice
Giới thiệu

Nguyễn Văn Hải – B17DCCN204


16


Đồ án tốt nghiệp

WebService [7] là tập hợp các giao thức và tiêu chuẩn mở được sử dụng để
trao đổi dữ liệu giữa các ứng dụng hoặc giữa các hệ thống. Cụ thể:


Webservice là phương thức giao tiếp giữa hai thiết bị qua mạng.



Webservice là ứng dụng hoặc thành phần ứng dụng để giao tiếp.



Webservice là tập hợp các tiêu chuẩn hoặc giao thức để trao đổi thông
tin giữa hai thiết bị hoặc ứng dụng.

Hình 1. 5 Mơ hình webservice
Các thành phần của WebService [8]
• XML – Extensible Markup Language
Là một chuẩn mở do W3C đưa ra cho cách thức mô tả dữ liệu, được sử dụng
để định nghĩa các thành phần dữ liệu trên trang web cho những tài liệu B2B.
XML hồn tồn có cấu trúc thẻ giống như ngôn ngữ HTML nhưng HTML
định nghĩa thành phần được hiển thị như thế nào thì XML lại định nghĩa những
thành phần đó chứa cái gì .
• WSDL – Web Service Description Language

WSDL định nghĩa cách mô tả dịch vụ Web theo cú pháp tổng quát của XML,
bao gồm các thông tin :
o

Tên dịch vụ.

Nguyễn Văn Hải – B17DCCN204

17


Đồ án tốt nghiệp

o

Giao thức và kiểu mã hóa sẽ được sử dụng khi gọi các hàm của dịch vụ
Web.

o

Loại thông tin: thao tác, tham số, những kiểu dữ liệu (có thể là giao diện
của dịch vụ Web cộng với tên cho giao diện này).

WSDL hợp lệ gồm hai phần: phần giao diện (mô tả giao diện và phương thức
kết nối) và phần thi hành mô tả thông tin truy xuất CSDL. Cả hai phần này sẽ
được lưu trong 2 tập tin XML tương ứng là tập tin giao diện dịch vụ và tập tin
thi hành dịch vụ.
• UDDI – Universal Description, Discovery, and Integration
Để có thể sử dụng các dịch vụ, trước tiên client phải tìm dịch vụ, ghi nhận
thông tin về cách sử dụng và biết được đối tượng nào cung cấp dịch vụ. UDDI

định nghĩa một số thành phần cho biết các thông tin này, cho phép các client
truy tìm và nhận những thơng tin được u cầu khi sử dụng dịch vụ Web. Cấu
trúc UDDI bao gồm :
o Trang trắng – White pages : Chứa thông tin liên hệ và các định dạng của
dịch vụ web
o Trang vàng - Yellow pages : Chứa thông tin mô tả dịch vụ web theo
những loại khác nhau
o Trang xanh - Green pages : chứa thông tin kỹ thuật mô tả các hành vi và
các chức năng của dịch vụ Web.
o Loại dịch vụ - tModel : chứa các thông tin về loại dịch vụ được sử dụng
• SOAP – Simple Object Access Protocol
Các dịch vụ web có thể truy xuất bằng một giao thức là SOAP. SOAP là
một giao thức giao tiếp có cấu trúc như XML. Nó được xem là cấu trúc xương
sống của các ứng dụng phân tán được xây dựng từ nhiều ngôn ngữ và các hệ
điều hành khác nhau. SOAP là giao thức thay đổi các thơng điệp dựa trên
XML qua mạng máy tính, thơng thường sử dụng giao thức HTTP.
Cấu trúc một thông điệp dạng SOAP :

Nguyễn Văn Hải – B17DCCN204

18


Đồ án tốt nghiệp

o

Phần tử gốc – envelop: phần tử bao trùm nội dung thông điệp, khai báo
văn bản XML như là một thông điệp SOAP.


o

Phần tử đầu trang – header: chứa các thông tin tiêu đề cho trang, phần
tử này không bắt buộc khai báo trong văn bản. Header cịn có thể mang
những dữ liệu chứng thực, những chứ ký số, thơng tin mã hóa hay cài
đặt cho các giao dịch khác.

o

Phần tử khai báo nội dung chính trong thông điệp – body, chứa các
thông tin yêu cầu và thông tin được phản hồi.

o

Phần tử đưa ra các thông tin về lỗi -fault, cung cấp thông tin lỗi xảy ra
trong qúa trình xử lý thơng điệp.

Hoạt động của WebService [8]
Một ứng dụng WS bao gồm 2 thành phần: Client và Server giao tiếp với
nhau qua giao thức HTTP.


Client gửi yêu cầu qua các lời gọi hàm thông qua HTTP Request đến
Server



Server gửi các kết quả được thực thi các ở hàm thơng qua HTTP Request

Mơ hình hoạt động của ứng dụng WebService gồm 3 thành phần chính:



UDDI register: Cơng cụ giúp nhà phát triển WS công bố những thông
tin về WebService của mình cho cộng đồng các nhà phát triển ứng dụng.
Người dùng sẽ dựa vào các thông tin này để sử dụng WebService trong
ứng dụng riêng của minh.



WebService: Chứa giao thức SOAP định dạng dữ liệu, tài liệu WSDL
định nghĩa các hàm trong WebService, XML để xây dựng ứng dụng
phân tán.



Applicantion Client: Ứng dụng phía Client sử dụng WebService xây
dựng riêng cho mình.

Nguyễn Văn Hải – B17DCCN204

19


Đồ án tốt nghiệp

Cách thức hoạt động có thể mơ tả như sau: Đầu tiên, Applicantion Client
cần truy vấn các mẫu tin UDDI theo 1 thơng tin nào đó (chẳng hạn tên loại) để
xác định WebService cần tìm. Khi đã xác định được WebService cần cho ứng
dụng, Client có thế lấy thông tin về địa chỉ của tài liệu WSDL của WebService
này dựa trên mẫu tin UDDI. Tài liệu WSDL sẽ mô tả cách thức liên lạc với

WebService, định dạng gói tin truy vấn và phản hồi. Dựa vào những thơng tin
này, Client có thể tạo những gói tin SOAP tương ứng để liên lạc với Service.

Hình 1. 6 Lưu đồ hoạt động của webservice
Restful Service
Restful Service [9] là các Web Service được viết dựa trên kiến trúc REST.
REST đã được sử dụng rộng rãi thay thế cho các Web Service dựa trên SOAP và
WSDL. RESTful Web Service nhẹ (lightweigh), dễ dàng mở rộng và bảo trì.
REST định nghĩa các quy tắc kiến trúc để bạn thiết kế Web services, chú
trọng vào tài nguyên hệ thống, bao gồm các trạng thái tài nguyên được định dạng
như thế nào và được truyền tải qua HTTP, và được viết bởi nhiều ngôn ngữ khác
nhau. Nếu tính theo số dịch vụ mạng sử dụng, REST đã nổi lên trong vài năm qua
như là một mơ hình thiết kế dịch vụ chiếm ưu thế. Trong thực tế, REST đã có
những ảnh hưởng lớn và gần như thay thế SOAP và WSDL vì nó đơn giản và dễ
sử dụng hơn rất nhiều.

Nguyễn Văn Hải – B17DCCN204

20


Đồ án tốt nghiệp

REST là một bộ quy tắc để tạo ra một ứng dụng Web Service, mà nó tuân
thủ 4 nguyên tắc thiết kế cơ bản sau:
o Sử dụng các phương thức HTTP một cách rõ ràng
o Phi trạng thái
o Hiển thị cấu trúc thư mục như các URls
o Truyền tải JavaScript Object Notation (JSON), XML hoặc cả hai.
REST đặt ra một quy tắc địi hỏi lập trình viên xác định rõ ý định của mình

thơng qua các phương thức của HTTP. Thơng thường ý định đó bao gồm lấy dữ
liệu, trèn dữ liệu, cập nhập dữ liệu hoặc xóa dữ liệu. Vậy khi bạn muốn thực hiện
một trong các ý định trên hãy lưu ý các quy tắc sau:
o Để tạo một tài nguyên trên máy chủ, bạn cần sử dụng phương thức
POST.
o Để truy xuất một tài nguyên, sử dụng GET.
o Để thay đổi trạng thái một tài nguyên hoặc để cập nhật nó, sử dụng PUT.
Để huỷ bỏ hoặc xoá một tài nguyên, sử dụng DELETE.

1.6 kết luận
Chương này đã trình bày về tổng quan đề tài, tầm quan trọng của hệ thống
gợi ý và một số hệ thống gợi ý phổ biến, ưu, nhược điểm chung của các hệ thống
gợi ý từ đó xác định hướng phát triển và phạm vi của đề tài. Đây là những khảo
sát, xác định mục tiêu cần thiết trước khi đi tới nghiên cứu xây dựng hệ thống gợi
ý cho website xem phim online.

Nguyễn Văn Hải – B17DCCN204

21


Đồ án tốt nghiệp

Chương 2. Thuật toán gợi ý Neighborhood-based Collaborative Filtering
2.1 Ý tưởng của thuật toán
Hệ thống gợi ý (Recommender Systems) là một thành phần trong hệ thống
thông tin. Mục đích của nó là hỗ trợ người dùng tìm kiếm được đúng thơng tin cần
thiết, dự đốn sở thích hay xếp hạng mà người dùng có thể dành cho một mục
thơng tin nào đó mà họ chưa xem xét tới trong quá khứ [6].
Ý tưởng cơ bản của NBCF là xác định mức độ quan tâm của một user tới

một item dựa trên các users khác gần giống với user này. Việc gần giống nhau giữa
các users có thể được xác định thông qua mức độ quan tâm của các users này tới
các items khác mà hệ thống đã biết. Ví dụ, A, B đều thích phim thiếu lâm tự, tức
đều rate bộ phim này 5 sao. Ta đã biết A cũng thích người phán xử, vậy nhiều khả
năng B cũng thích bộ phim này [6].
2.2 Nguyên lý thực hiện cài đặt thuật tốn
Xác định sự tương đồng [6]
Cơng việc đầu tiên chúng ta cần thực hiện là xác định sự tương đồng giữa các users
với nhau.

Hình 2. 1 Bảng dữ liệu ma trân dựa trên số điểm đánh giá của người dùng
cho một bộ phim
Hình ảnh trên là ví dụ về một ma trận dựa trên số điểm của một người dùng
đánh giá cho một bộ phim. Một cách trực quan, hành vi của u0 gần giống với u1
hơn là u2, u3, u4, u5, u6. Từ đó có thể dự đoán rằng u0 sẽ quan tâm tới i2 vì u1

Nguyễn Văn Hải – B17DCCN204

22


Đồ án tốt nghiệp

cũng quan tâm tới item này. Đặt mức độ giống nhau của hai users ui , uj là sim(ui
, uj).
Công thức được sử dụng để xác định sự tương đồng giữa hai users là consine
similarity. Đây là công thức được sử dụng nhiều nhất để xác định sự tương đồng
giữa hai vector có cùng độ dài. Gía trị càng lớn, chúng sẽ càng giống nhau.

Hình 2. 2 Cơng thức consine Similarity

Chuẩn hóa dữ liệu [6]
Trước khi xác định sự tương đồng giữa hai users, chúng ta sẽ phải đi qua
một bước vô cùng quan trọng, hầu như khơng thể thiếu trong các bài tốn liên quan
đến xử lý dữ liệu, đó là chuẩn hóa dữ liệu.

Hình 2. 3 Gía trị trung bình đánh giá của từng user
Hàng cuối cùng trong hình trên là giá trị trung bình đánh giá của mỗi user.
Gía trị càng cao tương ứng với các user dễ tính và ngược lại. Khi đó nếu tiếp tục

Nguyễn Văn Hải – B17DCCN204

23


×