đồ án 1 xây dựng web và app xem phim tích hợp hệ thống khuyến nghị

96 0 0
Tài liệu đã được kiểm tra trùng lặp
đồ án 1 xây dựng web và app xem phim tích hợp hệ thống khuyến nghị

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Màn hình Danh sách các tập phim tải xuống .... Giao diện hiện đại và thân thiện của các ứng dụng giúp tăng cường trải nghiệm người dùng, đi kèm với các chức năng tìm kiếm thông minh và k

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Trang 2

2

LỜI CẢM ƠN

Lời đầu tiên, nhóm chúng em không biết nói gì hơn ngoài bày tỏ sự biết ơn sâu sắc đến các thầy cô và các bạn Người đã đồng hành và tận tình giúp đỡ chúng em trong suốt quá trình học tập để hoàn thành đồ án này Trong suốt quá trình đó, chúng em luôn nhận được sự hướng dẫn đầy tâm quyết, tận tình và tình yêu thương từ mọi người

Đặc biệt, chúng em xin bày tỏ sự kính trọng và lòng biết ơn sâu sắc nhất đến cô giáo đã hướng dẫn tụi em đó là ThS.Trần Thị Hồng Yến – Giảng Viên Khoa Công nghệ phần mềm, Trường ĐH Công nghệ thông tin - ĐHQGHCM, cô là người đã hướng

dẫn tụi em thực hiện Đồ án 1 và đã trực tiếp giúp đỡ cho chúng em để có thể hoàn

thành đồ án này một cách tốt nhất

Cuối cùng, chúng em xin chân thành cảm ơn gia đình và người thân, đã luôn tạo điều kiện, quan tâm, giúp đỡ, động viên chúng em trong suốt quá trình học tập và hoàn thành đồ án này

Tuy nhiên, với điều kiện thời gian cũng như kinh nghiệm còn hạn chế của một sinh viên, chúng em nhận thấy đồ án của mình vẫn còn chưa hoàn chỉnh, có nhiều thiếu xót, có nhiều điều cần chỉnh sửa, có nhiều điều cần học hỏi Vì thế, chúng em rất mong nhận được sự chỉ bảo, đóng góp ý kiến của các thầy cô để chúng em có điều kiện bổ sung, nâng cao kiến thức của mình, phục vụ tốt hơn cho các đồ án kế tiếp cũng như công việc thực tế sau này

Chúng em xin chân thành cảm ơn ạ!

Trang 5

2.1.3.2 Xác suất hậu nghiệm 25

2.2 Nghiên cứu thực nghiệm 26

2.2.1 Bộ dữ liệu 26

2.2.2 Phương pháp huấn luyện 26

2.2.2.1 Hàm mất mát 26

2.2.2.2 Thuật toán 27

2.2.2.3 Dữ liệu đầu vào 27

Chương 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 28

3.1 Yêu cầu chức năng 28

3.2 Yêu cầu phi chức năng 29

3.3.2.1 Activity Diagram cho Đăng nhập 32

3.3.2.2 Activity Diagram cho Quên mật khẩu 33

3.3.2.3 Activity Diagram cho Đăng ký 34

3.3.2.4 Activity Diagram cho Tìm kiếm phim 35

3.3.2.5 Activity Diagram cho Xem phim 35

3.3.2.6 Activity Diagram cho Điều chỉnh phim xem 36

3.3.2.7 Activity Diagram cho Chọn tập phim 36

3.3.2.8 Activity Diagram cho Thêm phim vào danh sách của tôi 37

3.3.2.9 Activity Diagram cho Tải phim 38

Trang 6

6

3.3.2.10 Activity Diagram cho Chỉnh sửa thông tin hồ sơ 39

3.3.2.11 Activity Diagram cho Đánh giá phim 40

3.3.2.12 Activity Diagram cho Đổi mật khẩu 41

3.3.2.13 Activity Diagram cho Đăng xuất 42

3.3.2.14 Activity Diagram cho Xoá tài khoản 43

3.4.9 Chỉnh sửa thông tin hồ sơ 50

3.4.11.Thêm phim vào danh sách của tôi 51

3.4.13.Tải phim 52

3.4.14.Đánh giá phim 53

3.4.16.Đổi mật khẩu 54

3.4.18.Đăng xuất 55

3.4.19.Xoá tài khoản 55

3.5 Thiết kế mô hình dữ liệu quan hệ 56

Trang 7

4.1.8.1 Màn hình Danh sách các phim tải xuống 72

4.1.8.1 Màn hình Danh sách các tập phim tải xuống 73

4.1.9 Màn hình Hồ sơ 74

4.1.10.Màn hình Đổi mật khẩu 75

4.1.11.Màn hình Danh sách của tôi 76

4.1.12.Màn hình Chi tiết phim 77

4.1.12.3 Hộp thoại phim đã tải 83

4.1.12.4 Hộp thoại Đánh giá phim 84

4.1.13.Màn hình Tìm kiếm phim 85

4.1.13.1 Màn hình Tìm kiếm phim 85

Trang 8

8

4.1.13.1 Màn hình Kết quả tìm kiếm phim 86

4.1.14.Hộp thoại Đăng xuất 87

5.4 Bảng phân công công việc 95

TÀI LIỆU THAM KHẢO 96

Trang 9

9

MỤC LỤC BẢNG

Bảng 1.1 Bảng khảo sát các phần mềm hiện nay 17

Bảng 1.2 Bảng phân tích các khía cạnh Netflix 18

Bảng 3.1 Danh sách các chức năng 28

Bảng 3.2 Danh sách các Use Case 31

Bảng 3.3 Đặc tả use case đăng nhập 44

Bảng 3.4 Đặc tả use case quên mật khẩu 45

Bảng 3.5 Đặc tả use case đăng ký 46

Bảng 3.6 Đặc tả use case tìm kiếm phim 47

Bảng 3.7 Đặc tả use case xem phim 48

Bảng 3.8 Đặc tả use case chọn tập phim 49

Bảng 3.9 Đặc tả use case chỉnh sửa thông tin hồ sơ 50

Bảng 3.10 Đặc tả use case thêm phim vào danh sách của tôi 51

Bảng 3.11 Đặc tả use case tải phim 52

Bảng 3.12 Đặc tả use case đánh giá phim 53

Bảng 3.13 Đặc tả use case đổi mật khẩu 54

Bảng 3.14 Đặc tả use case đăng xuất 55

Bảng 3.15 Danh sách các bảng đối tượng 57

Bảng 3.16 Chi tiết bảng Person 58

Bảng 3.17 Chi tiết bảng Cast 58

Bảng 3.18 Chi tiết bảng Crew 59

Bảng 3.19 Chi tiết bảng Film 60

Bảng 3.20 Chi tiết bảng Gerne 61

Bảng 3.21 Chi tiết bảng Film_Gerne 61

Bảng 3.22 Chi tiết bảng Seasons 61

Bảng 3.23 Chi tiết bảng Episodes 62

Bảng 3.24 Chi tiết bảng Review 63

Bảng 3.25 Chi tiết bảng Profile 63

Bảng 4.1 Mô tả màn hình giới thiệu 64

Trang 10

10

Bảng 4.2 Mô tả màn hình Đăng nhập 65

Bảng 4.3 Mô tả màn hình Đăng ký 66

Bảng 4.4 Mô tả màn hình Trang chủ 68

Bảng 4.5 Mô tả hộp thoại Thể loại 69

Bảng 4.6 Mô tả màn hình Chi tiết thể loại 70

Bảng 4.7 Mô tả màn hình Mới và hot 71

Bảng 4.8 Mô tả màn hình Các phim tải xuống 72

Bảng 4.9 Mô tả màn hình Các tập phim tải xuống 73

Bảng 4.10 Mô tả màn hình Hồ sơ 74

Bảng 4.11 Mô tả màn hình Đổi mật khẩu 75

Bảng 4.12 Mô tả màn hình danh sách phát của tôi 76

Bảng 4.13 Mô tả màn hình chi tiết phim 78

Bảng 4.14 Mô tả mục đề xuất phim 79

Bảng 4.15 Mô tả mục danh sách diễn viên phim 79

Bảng 4.16 Mô tả mục danh sách đội ngũ 80

Bảng 4.17 Mô tả màn hình Danh sách tập phim 81

Bảng 4.18 Mô tả màn hình tải phim 82

Bảng 4.19 Mô tả hộp thoại phim đã tải 83

Bảng 4.20 Mô tả hộp thoại Đánh giá phim 84

Bảng 4.21 Mô tả màn hình Tìm kiếm phim 85

Bảng 4.22 Mô tả màn hình Kết quả tìm kiếm phim 86

Bảng 4.23 Mô tả hộp thoại đăng xuất 87

Bảng 4.24 Mô tả màn hình xem phim 88

Bảng 4.25 Mô tả màn hình trang mở đầu 90

Bảng 4.26 Mô tả màn hình web trang chủ 92

Bảng 4.27 Mô tả màn hình web phim chi tiết 93

Bảng 5.1 Bảng phân công công việc 95

Trang 11

11

MỤC LỤC HÌNH ẢNH

Hình 1.1 Biểu đồ tỉ lệ người xem ở các nền tảng xem phim trực tuyến 14

Hình 2.1 Giới thiệu Flutter 20

Hình 2.2 Giới thiệu Supabase 23

Hình 2.3 Công thức tính xác suất thực nghiệm 25

Hình 3.1 Sơ đồ Use Case tổng quát 30

Hình 3.2 ActivityDiagram cho đăng nhập 32

Hình 3.3 Activity Diagram cho quên mật khẩu 33

Hình 3.4 Activity Diagram cho đăng ký 34

Hình 3.5 Activity Diagram cho tìm kiếm phim 35

Hình 3.6 Activity Diagram cho xem phim 35

Hình 3.7 Activity Diagram cho điều chỉnh phim xem 36

Hình 3.8 Activity Diagram cho chọn tập phim 36

Hình 3.9 Activity Diagram cho Thêm phim vào danh sách của tôi 37

Hình 3.10 Activity Diagram cho Tải phim 38

Hình 3.11 Activity Diagram cho chỉnh sửa thông tin hồ sơ 39

Hình 3.12 Activity Diagram cho đánh giá phim 40

Hình 3.13 Activity Diagram cho đổi mật khẩu 41

Hình 3.14 Activity Diagram cho đăng xuất 42

Hình 3.15 Activity Diagram cho xoá tài khoản 43

Hình 3.16 Sơ đồ các đối tượng 56

Trang 12

12

Hình 4.9 Màn hình Các tập phim tải xuống 73

Hình 4.10 Màn hình Hồ sơ 74

Hình 4.11 Màn hình Đổi mật khẩu 75

Hình 4.12 Màn hình Danh sách của tôi 76

Hình 4.13 Màn hình chi tiết phim 77

Hình 4.14 Mục Đề xuất phim 78

Hình 4.15 Màn hình mục diễn viên phim 79

Hình 4.16 Màn hình mục danh sách đội ngũ phim 80

Hình 4.17 Màn hình Danh sách tập phim 81

Hình 4.18 Màn hình tải phim 82

Hình 4.19 Hộp thoại phim đã tải 83

Hình 4.20 Hộp thoại Đánh giá phim 84

Hình 4.21 Màn hình Tìm kiếm phim 85

Hình 4.22 Màn hình Kết quả tìm kiếm phim 86

Hình 4.23 Hộp thoại Đăng xuất 87

Hình 4.24 Màn hình Xem phim 88

Hình 4.25 Màn hình Web Giới thiệu 1 89

Hình 4.26 Màn hình Web Giới thiệu 2 89

Hình 4.27 Màn hình Web Giới thiệu 3 90

Hình 4.28 Màn hình Web Trang chủ 1 91

Hình 4.29 Màn hình Web Trang chủ 2 91

Hình 4.30 Màn hình Web phim chi tiết 1 92

Hình 4.31 Màn hình Web phim chi tiết 2 93Z

Trang 13

13

Chương 1 GIỚI THIỆU ĐỀ TÀI

1.1 Mở đầu 1.1.1 Đề tài

1.1.1.1 Đặt vấn đề

Việc xem phim đóng vai trò quan trọng trong đời sống của con người, mang lại những lợi ích đa dạng Nó không chỉ là một hình thức giải trí và giảm stress hiệu quả mà còn tạo nguồn năng lượng tích cực và động lực Xem phim cung cấp cơ hội học hỏi và mở rộng kiến thức, giúp người xem hiểu biết về văn hóa, lịch sử và nhiều lĩnh vực khác Thông qua trải nghiệm xã hội, nó còn tạo ra những kỷ niệm đặc biệt và tăng cường kết nối xã hội

Ngoài ra, xem phim thúc đẩy sự phát triển tư duy và trí tưởng tượng, giúp người xem thách thức bản thân và khám phá những ý tưởng mới Nó cũng đóng vai trò trong việc thiết lập giá trị và triết lý cá nhân, đồng thời là một phương tiện giao tiếp nghệ thuật, mang lại trải nghiệm thị giác và sáng tạo

Việc có ứng dụng di động và trang web xem phim không chỉ mang lại sự thuận tiện và linh hoạt cao cho người xem mà còn cung cấp trải nghiệm người dùng tối ưu hóa Giao diện hiện đại và thân thiện của các ứng dụng giúp tăng cường trải nghiệm người dùng, đi kèm với các chức năng tìm kiếm thông minh và khả năng tương tác với người xem

Hiện nay theo thống kê từ movieguide.org [1], tổng số người xem phim trực tuyến trên thường xuyên lên tới hơn 70% dân số đều xem phim Trong đó, theo kết quả nghiên cứu từ GMO-Z.com RUNSYSTEM [2] cho thấy có đến hơn 67% người tham gia khảo sát có sử dụng nền tảng xem phim có bản quyền, trong đó chiếm tỉ lệ nhiều nhất là Netflix với 41.9%, và thiết bị chủ yếu khảo sát viên sử dụng rơi vào Laptop và SmartPhone

Trang 14

Để giải quyết vấn đề trên, nhóm em quyết định chọn đề tài Xây dựng app và web xem phim tích hợp hệ thống khuyến nghị nhằm phát triển một ứng dụng cung cấp

một lựa chọn phù hợp với người sử dụng nhất giúp cải thiện trải nghiệm người dùng và tăng khả năng giữ chân khách hàng.

1.1.2 Mục đích và phạm vi của đề tài

1.1.2.1 Mục đích

- Xây dựng hệ thống quản lý các bộ phim

- Lên danh sách và cập nhật các bộ phim, sắp xếp các bộ phim theo danh mục, diễn viên, đạo diễn Từ đó người dùng có thể tìm kiếm phim hiệu quả

Trang 15

- Chức năng xem thông tin diễn viên và đạo diễn và những bộ phim liên quan - Quản lý hồ sơ cá nhân người dùng

- Thông báo về các bộ phim sắp ra mắt và các thông báo về tài khoản người dùng

- Hệ thống khuyến nghị

- Mô hình hoạt động của ứng dụng xem phim

1.1.3 Phương pháp nghiên cứu

- Tìm hiểu công nghệ: Dart, Flutter, Supabase - PostgreSQL, Microsoft Azure

Trang 16

16

- Phân tích các giải pháp của các ứng dụng tương tự trên thị trường - Thực hiện khảo sát nhu cầu, tình trạng thực tế của người dùng - Phân tích và xác định yêu cầu

- Lên kế hoạch - Thiết kế:

- Thiết kế cơ sở dữ liệu - Thiết kế đối tượng - Triển khai

1.2.1.1 Khảo sát các phần mềm hiện nay

Sau khi tìm hiểu các công nghệ và phần mềm tương tự có mặt tại Việt Nam, dưới đây là bảng so sánh của một số phần mềm tiêu biểu

Trang 17

17

Bảng 1.1 Bảng khảo sát các phần mềm hiện nay

Video

Netflix Bilibili

Bắt buộc đăng nhập để sử dụng Có Có Không Cho phép đăng nhập từ bên thứ 3 Không Không Có

lượt/ngày)

Theo dõi thời lượng đã xem mỗi tập phim

Hầu hết các phần mềm đều quản lý số lượng lớn các bộ phim với đa dạng thể loại Trong đó vấn đề bảo mật và mức độ linh hoạt cũng được coi trọng

Dưới đây là bảng phân tích chi tiết phần mềm xem phim được đánh giá khá cao, Netflix

Trang 18

18

Bảng 1.2 Bảng phân tích các khía cạnh Netflix

Khía Cạnh Phân Tích

Kiến Trúc Hệ Thống

Netflix sử dụng một kiến trúc phân tán để đảm bảo mức độ linh hoạt và mở rộng Cơ sở dữ liệu phải xử lý hàng triệu dữ liệu về người dùng, lịch sử xem phim, và thông tin phim Sự mở rộng đồng thời và cân nhắc kỹ thuật là quan trọng để đảm bảo trải nghiệm người dùng liền mạch

Trải Nghiệm Người Dùng

Giao diện người dùng của Netflix được thiết kế để đáp ứng tốt trên nhiều thiết bị và kích thích việc tương tác Kỹ sư phần mềm phải liên tục tối ưu hóa trải nghiệm người dùng, đồng thời sử dụng thuật toán máy học để đề xuất nội dung cá nhân hóa dựa trên lịch sử xem phim và sở thích cá nhân của người dùng

Quản Lý Nội Dung

Hệ thống quản lý nội dung phải xử lý hàng nghìn, thậm chí hàng triệu tiêu đề phim, đồng thời quản lý các biến thể chất lượng video và phụ đề Công nghệ mã hóa và lưu trữ phải được tối ưu hóa để đảm bảo tải nhanh và chất lượng video cao

Bảo Mật và Quyền Riêng

Bảo mật là mối quan tâm hàng đầu với Netflix vì thông tin người dùng, đặc biệt là thông tin thanh toán, phải được bảo vệ chặt chẽ Kỹ sư phần mềm cần triển khai các biện pháp bảo mật như mã hóa mạnh mẽ, kiểm soát truy cập và giám sát hệ thống liên tục

Tối Ưu Hóa Hiệu Suất

Việc tối ưu hóa hiệu suất là quan trọng để đảm bảo việc xem phim mượt mà và không gặp gián đoạn Kỹ sư phần mềm cần theo dõi hiệu suất hệ thống, tối ưu hóa mã nguồn và áp dụng các kỹ thuật caching để giảm thiểu thời gian tải

Trang 19

nền tảng nhất có thể và tăng tính trải nghiệm người dùng

- Cải thiện chất lượng xem phim: Có thể xây dựng hệ thống khuyến nghị các bộ phim tương tự dựa trên thể loại phim của người dùng đang xem, góp phần làm người dùng hứng thú hơn khi sử dụn0g phần mềm

Trang 20

Tại thời điểm ra mắt vào năm 2018, Flutter chủ yếu hỗ trợ phát triển ứng dụng di động Hiện nay, Flutter hỗ trợ phát triển ứng dụng trên sáu nền tảng: iOS, Android, web, Windows, MacOS và Linux

Hình 2.1 Giới thiệu Flutter

Flutter sử dụng Ngôn ngữ Dart Dart là ngôn ngữ thuần OOP, nó được sử dụng để xây dựng các ứng dụng web, server, máy tính để bàn và thiết bị di động

Sự hình thành và phát triển của Flutter có thể giải quyết cho vấn đề thường gặp ở trên di động là Fast Development – phát triển nhanh và Native Performance – hiệu suất gốc Sử dụng Flutter hoàn toàn không mất phí và dùng với mã nguồn mở

Flutter thường bao gồm 2 thành phần chính quan trọng như sau:

Trang 21

21

- Một SDK (Software Development Kit): Đây là một bộ sưu tập bao gồm các công cụ có thể hỗ trợ cho người dùng có thể phát triển được các ứng dụng nền của mình Những điều này thường bao gồm các công cụ có trình để biên dịch mã thành các mã gốc dành riêng cho hệ điều hành iOS và Android

- Một Framework (UI Library based on widgets): Mỗi một tập hợp những thành phần giao diện của người dùng đều có thể thực hiện tái sử dụng vô cùng dễ dàng nên người sử dụng có thể cá nhân hóa tùy theo nhu cầu riêng của bản thân mình

Tính năng phát triển nhanh chóng các ứng dụng: Hầu hết, mọi tính năng hot reload của Flutter giúp cho người dùng có thể sử dụng thử nghiệm nhanh chóng và dễ dàng hơn rất nhiều Với khả năng xây dựng giao diện cho người dùng cộng thêm các tính năng về sửa lỗi nhanh chóng nên Flutter đang thu hút không ít người sử dụng lựa chọn Ngoài ra, các trải nghiệm về thực hiện tải lại lần thứ hai đều rất dễ dàng mà không làm mất đi trạng thái ở trên emulator, simulator và device cho cả iOS và Android.UI đẹp mắt và có tính biểu cảm: Flutter thỏa mãn người sử dụng nhờ các widget built-in vô cùng đẹp mắt dựa theo Material Design và Cupertino (iOS-flavor), thì các API sẽ thực hiện chuyển động theo nhiều hướng phong phú, scroll tự nhiên và mượt mà nên có thể tự động nhận thức được các nền tảng cần thiết

2.1.1.2 Ưu điểm

- Có hiệu ứng, hiệu suất ứng dụng cao

- Có sự giao tiếp với hệ thống gần như trực tiếp

- Sử dụng ngôn ngữ kiểu tĩnh nhưng có cú pháp hiện đại, linh động

- Có thể chạy giả lập mobile ở trên web, tiện ích cho sự phát triển Những bộ đo lường chỉ số hiệu suất giúp cho lập trình viên có thể kiểm soát hiệu suất của ứng dụng một cách hiệu quả

- Có thể dùng trong xây dựng các nền tảng gắn liền với ứng dụng thực tế nhằm tăng hiệu suất

Trang 22

22

2.1.1.3 Nhược điểm

- Bộ Render UI được nhóm phát triển hầu như là viết lại, nó không có sự liên quan đến UI của Framework native, từ đó khiến cho memory sử dụng quá nhiều Đồng thời, những UI không chung cùng OS, nó được phát triển riêng nó tương tự với Android nhưng UI của Android thì lại khác với iOS

- Để dùng Flutter thì bạn cần phải học thêm ngôn ngữ Dart Dart lại không phổ biến lắm và có thể ảnh hưởng tới sự phát triển các ứng dụng trên thiết bị

2.1.2 Tổng quan về Supabase

2.1.2.1 Giới thiệu

Supabase [4] là một giải pháp thay thế Firebase mã nguồn mở cung cấp Backend dưới dạng Dịch vụ cho nhiều ứng dụng khác nhau Các công cụ mà Supabase cung cấp như sau:

- Cơ sở dữ liệu Postgres được lưu trữ - Đăng ký thời gian thực

- Xác thực và ủy quyền - API được tạo tự động - bảng điều khiển - Kho

Trang 23

23

Hình 2.2 Giới thiệu Supabase

Supabase cung cấp tất cả các tính năng phụ trợ mà bạn cần để xây dựng một sản phẩm Bạn có thể sử dụng tất cả các công cụ hoặc chỉ những công cụ bạn cần nhất, ví dụ:

- Cơ sở dữ liệu: Cơ sở dữ liệu Postgres riêng tư, có thể mở rộng

- Thẩm quyền: Quản lý người dùng với Bảo mật cấp hàng

- Lưu trữ tập tin: Lưu trữ, sắp xếp và trình bày các tệp lớn

- API được tạo tự động: Tạo ngay API cho cơ sở dữ liệu của bạn

Supabase được xây dựng trên phần mềm nguồn mở Công cụ và cộng đồng MIT, Apache 2 hoặc, nếu có sẵn theo giấy phép tương thích, họ sẽ sử dụng và quảng bá chúng

Nếu nó chưa tồn tại, họ sẽ tạo chương trình và xuất bản nó Supabase không phải là bản đồ một - một của Firebase về mặt tính năng Mục đích của họ là cung cấp cho các nhà phát triển trải nghiệm phát triển tương tự bằng cách sử dụng các công nghệ nguồn mở

Supabase là một nền tảng được lưu trữ Bạn có thể đăng ký ngay và bắt đầu sử dụng Supabase mà không cần phải cài đặt bất cứ thứ gì trên máy chủ của mình Bạn cũng có thể lưu trữ và phát triển mọi thứ tại máy tính

Họ chia mỗi thư viện thành những phần nhỏ có thể sử dụng riêng Mỗi thư viện con là một triển khai độc lập của hệ thống bên ngoài Đây là một trong những cách để giữ cho các công nghệ hiện tại có liên quan

Trang 24

- Gợi ý phim ảnh (Netflix, Youtube) - Xếp hạng page của Google

- Xếp hạng sản phẩm thương mại điện tử (Amazon) - Tự động hoàn thiện câu truy vấn

- Tìm kiếm hình ảnh (vimeo)

- Tìm kiếm nhà nghỉ (Expedia/Booking)

Trong bài toán Ranking, mô hình cố gắng dự đoán thứ hạng (hoặc chỉ số liên quan) của một danh sách các mục đối với task cụ thể Thuật toán đối với Ranking có thể chia làm các nhóm sau:

- Point-wise models: Dự đoán một điểm số đối với từng cặp truy vấn-văn bản trong dataset, và sử dụng nó để xếp hạng các mục

- Pairwise models: Học một phân loại nhị phân mà có thể trả lời rằng văn bản này có liên quan tới truy vấn này hay không?

Trang 25

2.1.3.2 Xác suất hậu nghiệm

Xác suất hậu nghiệm, theo thống kê của Bayes, là xác suất được điều chỉnh hoặc cập nhật của một biến cố xảy ra sau khi xem xét thông tin mới

Xác suất hậu nghiệm được xác định bằng cách điều chỉnh xác suất tiên nghiệm bằng định lí Bayes

Theo thuật ngữ thống kê, xác suất hậu nghiệm là xác suất của biến cố A xảy ra do biến cố B đã xảy ra

Xác suất tiên nghiệm theo Bayes, là xác suất của một biến cố xảy ra trước khi dữ liệu mới được thu thập

Xác suất tiên nghiệm là dự đoán đúng nhất về kết quả xác suất dựa trên kiến thức và tính logic ở thời điểm trước khi thử nghiệm được thực hiện

- Công thức tính xác suất hậu nghiệm:

Công thức tính xác suất hậu nghiệm của biến cố A xảy ra khi biến cố B đã xảy ra:

Hình 2.3 Công thức tính xác suất thực nghiệm

Trong đó:

- A,B là các biến cố

- P(B) và P(A) là xác suất của biến cố B xảy ra và biến cố A xảy ra - P(B\A) là xác suất biến cố B xảy ra khi biến cố A đúng

Trang 26

Tên bộ dữ liệu: TMDB 5000 Movie Dataset

Tổng quan bộ dữ liệu: Bộ dữ liệu "TMDB 5000 Movie Dataset" là một tập dữ liệu chứa thông tin về các bộ phim từ trang web The Movie Database (TMDB) Dữ liệu này cung cấp một bản tổng quan về hàng ngàn bộ phim, bao gồm thông tin về đạo diễn, diễn viên, thể loại, ngày phát hành, đánh giá, doanh thu, và nhiều thuộc tính khác

2.2.2 Phương pháp huấn luyện

Sử dụng mô hình ranking để xếp loại các dữ liệu dựa trên các đánh giá trọng số của một thức đo đánh giá và tính lấy trung bình của các truy vấn theo mô hình List-wise models

[5]Phương pháp "listwise" là một hướng tiếp cận trong huấn luyện mô hình khuyến nghị dựa trên ranking, nơi mục tiêu là tối ưu hóa trực tiếp một hàm mất mát liên quan đến độ đo hiệu suất của toàn bộ danh sách các mục được đề xuất cho một người dùng Thay vì xem xét từng cặp mục hoặc dự đoán xác suất mỗi mục, phương pháp listwise đánh giá hiệu suất của mô hình trên toàn bộ danh sách và tối ưu hóa theo hàm mất mát liên quan đến thứ tự đúng của các mục trong danh sách

Trang 27

27

2.2.2.2 Thuật toán

- Các thuật toán được thiết kế để tối ưu hóa hàm mất mát listwise thường đặc trưng bởi việc sử dụng các kỹ thuật học tập sâu (deep learning) hoặc học tập xếp hạng (learning to rank)

- Mô hình có thể sử dụng các kiến trúc như mạng nơ-ron, mạng nơ-ron học tập sâu, hoặc các mô hình nhúng (embedding models)

2.2.2.3 Dữ liệu đầu vào

- Dữ liệu đầu vào cho phương pháp listwise thường bao gồm các cặp người dùng và danh sách các mục được đề xuất, cùng với thông tin về thứ tự đúng của các mục đó

- Mỗi điểm dữ liệu đầu vào thường biểu diễn một người dùng và một danh sách đề xuất

Sử dụng mô hình xếp hạng (ranking) top 250 bộ phim của IMDB dựa trên số lượt bình chọn, có trọng số dựa trên công thức sau:

𝑊 =𝑅 𝑣 + 𝐶 𝑚𝑣 + 𝑚Trong đó:

Trang 28

28

Chương 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG

3.1 Yêu cầu chức năng

Bảng 3.1 Danh sách các chức năng

1 Đăng nhập 2 Đăng ký 3 Đăng xuất 4 Quên mật khẩu 5 Đổi mật khẩu

6 Hiện danh sách phim theo thể loại, hạng mục 7 Tìm kiếm phim theo từ khoá

8 Danh sách các thông báo về phim mới nhất

9 Danh sách các phim tải xuống Chỉ có trên mobile 10 Chi tiết phim

11 Xem phim

12 Tạo danh sách phim yêu thích

điểm trên thang 5 14 Danh sách phim đề xuất

15 Danh sách diễn viên

16 Danh sách đội ngũ sản xuất 17 Điều chỉnh tốc độ phim

18 Khoá màn hình xem phim Chỉ có trên mobile 19 Xem và chỉnh sửa hồ sơ người dùng

20 Xoá tài khoản

Trang 29

29

3.2 Yêu cầu phi chức năng

- Giao diện người dùng thân thiện, dễ sử dụng, đáp ứng các nhu cầu của người dùng

- Hệ thống bảo mật: bảo vệ thông tin khách hàng, thông tin sản phẩm, thông tin nhân viên và dữ liệu kinh doanh khác khỏi các mối đe dọa bên ngoài

- Tính ổn định và độ tin cậy: hệ thống phải hoạt động ổn định và đáp ứng được các yêu cầu kinh doanh trong thời gian dài mà không gặp sự cố nghiêm trọng - Hiệu suất: Hệ thống phải cho phép thao tác và xuất kết quả nhanh chóng Truy

vấn cơ sở dữ liệu và hiển thị kết quả không quá 10 giây (yêu cầu Internet) - Tính khả dụng: Thiết bị cần được kết nối Internet

Trang 30

30

3.3 Mô tả tổng thể 3.3.1 Mô hình Use Case

3.3.1.1 Sơ đồ tổng quát

Hình 3.1 Sơ đồ Use Case tổng quát

Trang 31

31

3.3.1.1 Danh sách các Use Case

Bảng 3.2 Danh sách các Use Case

UC03 Đăng ký User Người dùng tạo tài khoản mới

UC04 Tìm kiếm phim User Người dùng tìm bộ phim bằng cách nhập thông tin phim

UC05 Xem phim User Người dùng muốn xem phim và các thao tác khi xem phim

UC06 Chọn tập phim User Người dùng chọn tập phim muốn xem trong giao diện xem phim

UC07 Chỉnh sửa thông

UC10 Đánh giá phim User Người dùng muốn đánh giá phim

UC11 Đổi mật khẩu User Người dùng muốn đổi mật khẩu của tài khoản

UC12 Đăng xuất User Người dùng muốn đăng xuất khỏi ứng dụng

UC13 Xoá tài khoản User Người dùng muốn xoá tài khoản

Trang 32

32

3.3.2 Mô hình Activity

3.3.2.1 Activity Diagram cho Đăng nhập

Hình 3.2 ActivityDiagram cho đăng nhập

Trang 33

33

3.3.2.2 Activity Diagram cho Quên mật khẩu

Hình 3.3 Activity Diagram cho quên mật khẩu

Trang 34

34

3.3.2.3 Activity Diagram cho Đăng ký

Hình 3.4 Activity Diagram cho đăng ký

Trang 35

35

3.3.2.4 Activity Diagram cho Tìm kiếm phim

Hình 3.5 Activity Diagram cho tìm kiếm phim

3.3.2.5 Activity Diagram cho Xem phim

Hình 3.6 Activity Diagram cho xem phim

Trang 36

36

3.3.2.6 Activity Diagram cho Điều chỉnh phim xem

Hình 3.7 Activity Diagram cho điều chỉnh phim xem

3.3.2.7 Activity Diagram cho Chọn tập phim

Hình 3.8 Activity Diagram cho chọn tập phim

Trang 37

37

3.3.2.8 Activity Diagram cho Thêm phim vào danh sách của tôi

Hình 3.9 Activity Diagram cho Thêm phim vào danh sách của tôi

Trang 38

38

3.3.2.9 Activity Diagram cho Tải phim

Hình 3.10 Activity Diagram cho Tải phim

Trang 39

39

3.3.2.10 Activity Diagram cho Chỉnh sửa thông tin hồ sơ

Hình 3.11 Activity Diagram cho chỉnh sửa thông tin hồ sơ

Trang 40

40

3.3.2.11 Activity Diagram cho Đánh giá phim

Hình 3.12 Activity Diagram cho đánh giá phim

Ngày đăng: 15/05/2024, 09:30

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan