1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đồ Án chuyên ngành Đề tài phát triển website dành gợi Ý phim dành cho sinh viên

15 2 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Phát Triển Website Dành Gợi Ý Phim Dành Cho Sinh Viên
Tác giả Nguyễn Cao Triều
Người hướng dẫn Lê Văn Hạnh
Trường học Trường Đại Học Quốc Tế Hồng Bàng
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ án
Năm xuất bản 2024
Thành phố Hồ Chí Minh
Định dạng
Số trang 15
Dung lượng 891,86 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ví dụ như Netflix đã chứng minh tính hiệu quả của hệ thống gợi ý phim khi sử dụng thuật toán học máy để đề xuất các bộ phim phù hợp, cải thiện trải nghiệm người dùng và tăng thời gian tư

Trang 1

TRƯỜNG ĐẠI HỌC QUỐC TẾ HỒNG BÀNG

KHOA CÔNG NGHỆ - KỸ THUẬT

BỘ MÔN CÔNG NGHỆ THÔNG TIN

-

 -ĐỒ ÁN CHUYÊN NGÀNH

ĐỀ TÀI : PHÁT TRIỂN WEBSITE DÀNH GỢI Ý PHIM DÀNH CHO SINH VIÊN

Người Hướng Dẫn : Lê Văn Hạnh

Sinh viên thực hiện : Nguyễn Cao Triều

Mã số sinh viên : 2111111028

TP Hồ Chí Minh, tháng 07 năm 2024

Trang 2

MỤC LỤC

Trang 3

CHƯƠNG 1

TỔNG QUAN VỀ ĐỀ TÀI

1.1 GIỚI THIỆU VỀ ĐỀ TÀI

Hiện nay, với số lượng phim ngày càng nhiều, người dùng thường gặp khó khăn trong việc lựa chọn bộ phim phù hợp Việc phải tìm kiếm giữa hàng ngàn tùy chọn làm cho quá trình chọn phim trở nên phức tạp hơn Các hệ thống gợi ý phim ra đời nhằm giải quyết vấn đề này, giúp người dùng chọn phim dựa trên sở thích cá nhân Tuy nhiên, độ chính xác và hiệu quả của các hệ thống hiện tại vẫn còn hạn chế, khiến người dùng không phải lúc nào cũng tìm được phim ưng ý

Song song với đó, việc đặt vé xem phim trực tuyến ngày càng trở nên phổ biến, nhưng không phải hệ thống nào cũng cung cấp đầy đủ các tính năng cần thiết Việc kết hợp một hệ thống gợi ý phim với chức năng đặt vé trực tuyến sẽ giúp người dùng, đặc biệt là học sinh và sinh viên, trải nghiệm việc tìm kiếm và đặt vé một cách thuận tiện hơn

Ví dụ như Netflix đã chứng minh tính hiệu quả của hệ thống gợi ý phim khi sử dụng thuật toán học máy để đề xuất các bộ phim phù hợp, cải thiện trải nghiệm người dùng và tăng thời gian tương tác

Dự án website này hướng tới việc xây dựng một hệ thống gợi ý phim dựa trên sở thích cá nhân và tích hợp tính năng đặt vé trực tuyến, giúp nâng cao trải nghiệm người dùng và đáp ứng nhu cầu ngày càng tăng của thị trường Hơn nữa, hệ thống còn có tiềm năng áp dụng trong giáo dục, hỗ trợ học sinh và sinh viên tìm kiếm các nội dung phim tài liệu phù hợp, từ đó nâng cao chất lượng học tập

1.1.1.Khảo Sát Hiện Trạng

1.1.1.1 Thực trạng chọn phim và đặt vé xem phim

Ngày nay, với số lượng phim khổng lồ từ các nền tảng trực tuyến và rạp chiếu, người dùng gặp khó khăn trong việc lựa chọn một bộ phim phù hợp Mặc dù các hệ thống gợi ý phim đã ra đời nhằm giải quyết vấn đề này, độ chính xác và tính hữu ích vẫn còn nhiều hạn chế, khiến việc tìm được phim theo đúng sở thích của người dùng trở nên phức tạp

Đồng thời, việc đặt vé xem phim trực tuyến đã trở nên rất phổ biến, giúp người dùng tiết kiệm thời gian xếp hàng mua vé tại rạp Tuy nhiên, một số hệ thống đặt vé hiện nay vẫn chưa cung cấp đủ các tính năng tiện ích như chọn chỗ ngồi, thời gian chiếu linh hoạt hay tích hợp gợi ý phim theo sở thích người dùng, dẫn đến trải nghiệm chưa thực sự tối ưu

1.1.1.2 Hệ thống gợi ý phim hiện nay

Nhiều nền tảng phát trực tuyến lớn như Netflix, YouTube hay Amazon Prime Video đã áp dụng các thuật toán gợi ý phim dựa trên lịch sử xem, sở thích, và hành vi người dùng Các hệ thống này sử dụng những thuật toán tiên tiến như Collaborative Filtering (lọc cộng tác), Content-Based Filtering (lọc dựa trên nội dung), và Hybrid

Trang 4

Methods (phương pháp kết hợp) để đề xuất phim Tuy nhiên, chúng vẫn chưa hoàn toàn chính xác trong mọi trường hợp, và đôi khi các đề xuất không thực sự phù hợp với sở thích cụ thể của từng cá nhân

1.1.1.3 Hệ thống đặt vé xem phim trực tuyến

Các rạp chiếu phim và nền tảng trực tuyến ngày càng phát triển các hệ thống đặt

vé online nhằm mang lại sự tiện lợi cho người dùng Một số hệ thống nổi bật như CGV, Galaxy, Lotte Cinema đã cung cấp các tính năng đặt vé trực tuyến, cho phép người dùng chọn chỗ ngồi và giờ chiếu Tuy nhiên, việc tích hợp tính năng gợi ý phim trong các nền tảng này vẫn còn hạn chế, khiến người dùng phải tự tìm kiếm phim trước khi tiến hành đặt vé

1.1.1.4 Hạn chế của các hệ thống hiện nay

Khả năng cá nhân hóa chưa cao: Hệ thống gợi ý phim hiện tại còn phụ thuộc nhiều vào lịch sử xem của người dùng thay vì phân tích sâu về sở thích thực tế và các yếu tố tinh vi khác như tâm trạng hay bối cảnh

Thiếu tích hợp giữa gợi ý và đặt vé: Nhiều nền tảng đặt vé chưa tích hợp tính năng gợi ý phim, khiến người dùng phải chuyển đổi giữa các ứng dụng hoặc nền tảng khác nhau

Trải nghiệm người dùng chưa tối ưu: Một số nền tảng đặt vé có giao diện khó sử dụng hoặc thiếu linh hoạt khi lựa chọn thời gian, chỗ ngồi

1.1.1.5 Xu hướng phát triển

Với nhu cầu ngày càng cao về giải trí và sự tiện lợi, các hệ thống gợi ý phim và đặt

vé trực tuyến cần được cải thiện về khả năng cá nhân hóa và tích hợp các tính năng gợi ý phim trực tiếp ngay trên nền tảng đặt vé Việc áp dụng trí tuệ nhân tạo (AI) và các thuật toán học máy (machine learning) để nâng cao độ chính xác của hệ thống gợi ý là xu hướng tất yếu trong tương lai

Từ khảo sát này, có thể thấy tiềm năng và cơ hội lớn để phát triển một hệ thống gợi

ý phim tích hợp với đặt vé trực tuyến, đặc biệt hướng đến nhóm đối tượng học sinh, sinh viên

1.1.2.Yêu cầu chức năng của ứng dụng

- Quản Lý Người Dùng

- Gợi ý phim

- Tương tác người dùng

- Tìm kiếm phim

- Quản lý admin

1.2 Giới thiệu về (các) cơ sở lý thuyết sử dụng trong đề tài.

1.2.1.Collaborative Filtering (Lọc cộng tác)

Collaborative Filtering là một trong những phương pháp phổ biến nhất được sử

dụng trong hệ thống gợi ý, đặc biệt là với các ứng dụng gợi ý phim Có hai loại chính: U

Trang 5

ser-based Collaborative Filtering (lọc cộng tác dựa trên người dùng) và Item-based Collaborative Filtering (lọc cộng tác dựa trên sản phẩm).

Item-based Collaborative Filtering được chọn trong đề tài này vì tính ổn định

và hiệu quả trong việc gợi ý các sản phẩm tương tự dựa trên hành vi của người dùng Phương pháp này phân tích lịch sử tương tác của người dùng với các phim và tính toán độ tương đồng giữa các phim Dựa trên những gì người dùng

đã xem, hệ thống sẽ gợi ý các phim có độ tương đồng cao với những phim mà

họ đã thích hoặc đánh giá cao

Triển khai:

Sử dụng thư viện SciKit-Learn (Python) hoặc Apache Mahout (Java) để triển khai thuật toán Item-based Collaborative Filtering Các thư viện này cung

cấp các công cụ mạnh mẽ để thực hiện tính toán ma trận tương đồng giữa các phim dựa trên lịch sử tương tác

Dữ liệu từ MySQL sẽ được sử dụng để huấn luyện mô hình, bao gồm các đánh

giá hoặc tương tác của người dùng với các bộ phim Các bước tính toán độ tương đồng giữa các mục sẽ dựa trên dữ liệu này để đề xuất các phim phù hợp

1.2.2 Content-Based Filtering (Lọc dựa trên nội dung)

Phương pháp Content-Based Filtering dựa trên đặc điểm của phim (thể loại, mô

tả, diễn viên, đạo diễn) để gợi ý các phim có nội dung tương tự với những phim mà người

dùng đã thích hoặc tìm kiếm Trong đề tài này, TF-IDF (Term Frequency-Inverse

Document Frequency) sẽ được sử dụng để phân tích từ khóa trong mô tả phim, giúp tìm

kiếm các phim có nội dung tương tự

TF-IDF là một kỹ thuật giúp biểu diễn văn bản dưới dạng vector, dựa trên tần

suất xuất hiện của các từ trong tài liệu Điều này giúp hệ thống xác định các phim có nội dung tương tự bằng cách tính toán độ tương đồng giữa các phim dựa trên mô tả và thông tin chi tiết của phim

Triển khai:

Sử dụng thư viện Python như TfidfVectorizer từ SciKit-Learn để biểu diễn

các văn bản liên quan đến phim (ví dụ như tên phim, mô tả, thể loại)

 Khi người dùng thực hiện tìm kiếm hoặc tương tác với một bộ phim, hệ thống

sẽ tính toán độ tương đồng giữa từ khóa tìm kiếm hoặc nội dung phim đã xem với các phim khác trong cơ sở dữ liệu, từ đó đề xuất các phim tương tự

1.2.3 Tích hợp Flask vào Spring Boot Backend

Để triển khai các mô hình gợi ý sử dụng Python, Flask sẽ được tích hợp với backend Spring Boot.

Flask API sẽ được xây dựng để xử lý các mô hình gợi ý, bao gồm cả

Collaborative Filtering và Content-Based Filtering Flask sẽ chịu trách

nhiệm tính toán kết quả gợi ý dựa trên dữ liệu nhận từ Spring Boot

Triển khai:

Trang 6

 Khi người dùng thực hiện một hành động (như tìm kiếm phim hoặc xem một

phim cụ thể), Spring Boot sẽ gửi dữ liệu (thông tin phim hoặc người dùng) đến

Flask API.

 Flask API sẽ xử lý dữ liệu bằng mô hình học máy (Collaborative hoặc Content-Based Filtering) và trả về danh sách các phim được gợi ý

Spring Boot sẽ nhận kết quả từ Flask và trả về cho frontend React.js, hiển thị

các phim gợi ý cho người dùng

1.2.4.Sử dụng MySQL cho dữ liệu và huấn luyện mô hình

Cơ sở dữ liệu MySQL sẽ được sử dụng để lưu trữ toàn bộ dữ liệu cần thiết cho hệ

thống, bao gồm thông tin phim, đánh giá của người dùng, và lịch sử tương tác

Vai trò của MySQL trong gợi ý:

 Dữ liệu từ MySQL sẽ được sử dụng để huấn luyện các mô hình gợi ý

Với Collaborative Filtering, dữ liệu bao gồm lịch sử xem và đánh giá của

người dùng sẽ được sử dụng để tính toán độ tương đồng giữa các phim hoặc người dùng

Với Content-Based Filtering, thông tin chi tiết về các phim (mô tả, thể loại,

diễn viên, đạo diễn) sẽ được sử dụng để tính toán độ tương đồng dựa trên nội dung phim

 MySQL cũng sẽ lưu trữ kết quả gợi ý, thông tin người dùng, và lịch sử đặt vé

1.3 Giới thiệu về (các) công cụ sẽ sử dụng trong đề tài

Intellij idea : Tạo một RESTful API để thự hiện các chức năng trong website gợi

ý phim bằng Java Spring Boot

1 Tạo Project Spring Boot trong IntelliJ IDEA

2.Cấu hình kết nối MySQL

3 Tạo các Entity (Model) cho hệ thống

4 Tạo Repository Layer

5 Tạo Service Layer

6 Tạo Controller Layer

7 Chạy ứng dụng

Trang 7

MySQL : là quản lý và lưu trữ dữ liệu của hệ thống về (Lịch chiếu phim, Thông

tin vé, Thông tin ghế, Dữ liệu phim….)

1 Cài đặt MySQL

2.Tạo cơ sở dữ liệu (Database)

3 Tạo các bảng (Tables)

4.Nhập dữ liệu mẫu

5 Kết nối Spring Boot với MySQL

6 Tạo API để tương tác với cơ sở dữ liệu

7 Test và quản lý cơ sở dữ liệu

Visual Studio Code (VS Code) là một trình soạn thảo mã nguồn mở được nhiều

lập trình viên ưa chuộng để phát triển các ứng dụng React JS Dưới đây là cách thiết lập

và sử dụng VS Code để lập trình React JS:

1 Cài đặt Node.js và NPM

2 Cài đặt Visual Studio Code

3 Cài đặt Extensions cần thiết cho React JS

4 Tạo ứng dụng React bằng Create React App

5 Cấu trúc thư mục cơ bản trong React

6 Tạo Component trong React

7 Debugging React trong VS Code

8 Chạy thử và tối ưu hóa ứng dụng

Trang 8

Flask là một micro-framework Python phổ biến để xây dựng các ứng dụng web,

bao gồm việc xây dựng RESTful APIs Dưới đây là hướng dẫn từng bước để xây dựng một Flask API đơn giản trong Python:

1 Cài đặt Flask

2 Cấu trúc thư mục của dự án

3 Tạo file app.py

4 Chạy Flask API

5 Test API bằng Postman hoặc Curl

6 Mở rộng và tích hợp với MySQL

1.4 Triển khai ứng dụng

1.4.1.Thiết kế

1.4.1.1 Thiết kế dữ liệu

Bảng User

Bảng Banner

Bảng Tin Tức

Bảng Lịch Sử

Bảng Rạp Chiếu

Bảng Cụm Rạp

Bảng Phim

Trang 9

1.4.1.2 Thiết kế giao diện

1.4.1.2.1 1 Giao Diện Chính

Giao diện chính của hệ thống sẽ bao gồm các thành phần sau:

Header: Chứa logo, menu điều hướng (đăng nhập, đăng ký, liên hệ, thanh toán),

thanh tìm kiếm phim

Footer: Chứa thông tin liên hệ, mạng xã hội, các liên kết hữu ích.

Banner: Khu vực hiển thị banner quảng cáo hoặc banner phim hot.

Tin tức: Hiển thị các bài viết tin tức về phim ảnh, lịch chiếu, cập nhật sự kiện điện

ảnh

Các phim sắp chiếu và đang chiếu: Hiển thị danh sách các phim sắp chiếu và

đang chiếu kèm theo hình ảnh, thông tin cơ bản

Danh sách phim gợi ý: Hiển thị các bộ phim gợi ý dựa trên sở thích người dùng

hoặc lịch sử xem phim của họ

Thanh tìm kiếm phim: Cho phép người dùng tìm kiếm phim theo từ khóa hoặc

thể loại

1.4.1.2.2 Giao Diện Trang Tin Tức

Hiển thị các tin tức: Liệt kê các bài viết về tin tức mới nhất, có thể lọc theo danh

mục hoặc từ khóa tìm kiếm Mỗi bài viết hiển thị tiêu đề, hình ảnh, và mô tả ngắn

1.4.1.2.3 Giao Diện Trang Phim

Danh sách phim: Hiển thị các phim sắp chiếu và đang chiếu Mỗi phim có hình

ảnh đại diện, tên phim, và nút "Xem chi tiết"

1.4.1.2.4 Trang Chi Tiết Phim

Hiển thị thông tin chi tiết của phim: Bao gồm tên phim, trailer, thể loại, đánh

giá, mô tả, lịch chiếu

Danh sách rạp chiếu: Hiển thị các cụm rạp và rạp chiếu cho phim, kèm theo lịch

chiếu tại từng rạp

1.4.1.2.5 Giao Diện Trang Danh Sách Ghế Ngồi

Lựa chọn ghế: Cho phép người dùng chọn ghế ngồi trong rạp, hiển thị trạng thái

ghế (đã đặt, còn trống, VIP, thường)

Thông tin vé và thanh toán: Hiển thị tổng số tiền cần thanh toán, thông tin vé, và

nút thanh toán

1.4.1.2.6 Giao Diện Trang Quản Lý Của Admin

Quản lý người dùng: Hiển thị danh sách người dùng, cho phép admin tạo, chỉnh

sửa, và xóa tài khoản người dùng

Quản lý phim: Admin có thể thêm phim mới, chỉnh sửa thông tin phim, xóa

phim

Trang 10

Quản lý lịch chiếu: Cho phép admin tạo và quản lý lịch chiếu phim tại các cụm

rạp

Quản lý banner: Admin có thể thêm hoặc xóa banner phim quảng cáo.

Quản lý tin tức: Admin có thể thêm, chỉnh sửa hoặc xóa bài viết tin tức.

1.4.1.3 Thiết kế xử lý

1.4.1.3.1 Cơ sở dữ liệu liên quan

Chức năng gợi ý phim sẽ tương tác với các bảng sau trong cơ sở dữ liệu:

Bảng User: Lưu trữ thông tin người dùng, bao gồm cả thông tin cá nhân và lịch sử

đăng nhập

Bảng Phim: Chứa thông tin về các bộ phim bao gồm tên phim, thể loại, đánh giá,

trạng thái chiếu (đang chiếu, sắp chiếu), và các thông tin khác

Bảng Lịch Sử: Lưu trữ lịch sử xem phim của người dùng, bao gồm các thông tin

về phim đã xem, thời gian xem và đánh giá của người dùng đối với phim đó

1.4.1.3.2 Các thuật toán và phương pháp gợi ý

Để gợi ý phim hiệu quả, có một số phương pháp xử lý và thuật toán mà hệ thống có thể sử dụng:

1.4.1.3.3 Collaborative Filtering (Lọc cộng tác)

Nguyên lý: Dựa vào lịch sử xem phim của người dùng khác để gợi ý phim cho

người dùng hiện tại Phương pháp này sẽ tìm ra những người dùng có hành vi xem phim tương tự, sau đó gợi ý các phim mà người dùng khác đã xem nhưng người dùng hiện tại chưa xem

Xử lý: Dựa trên bảng Lịch Sử, hệ thống sẽ so sánh hành vi của người dùng hiện tại

với các người dùng khác và đưa ra các gợi ý dựa trên sự tương đồng trong sở thích phim

1.4.1.3.4 Content-based Filtering (Lọc dựa trên nội dung)

Nguyên lý: Dựa vào thông tin về các phim mà người dùng đã xem (thể loại, diễn

viên, đạo diễn, ) để gợi ý các bộ phim tương tự

Xử lý: Hệ thống phân tích thể loại và các thông tin liên quan đến phim mà người

dùng đã xem từ bảng Lịch Sử, sau đó truy vấn bảng Phim để tìm các phim có đặc điểm tương tự

1.4.1.3.5 Hybrid Filtering (Kết hợp)

Nguyên lý: Kết hợp cả hai phương pháp Collaborative Filtering và Content-based Filtering để gợi ý phim chính xác hơn.

Xử lý: Hệ thống sử dụng cả dữ liệu từ người dùng (hành vi xem phim) và dữ liệu

về nội dung phim (thể loại, đánh giá, ) để đưa ra gợi ý

Trang 11

1.4.1.3.6 Quy trình xử lý gợi ý phim

Bước 1: Thu thập thông tin từ người dùng

 Khi người dùng đăng nhập vào hệ thống, thông tin về các phim họ đã xem (lấy từ bảng Lịch Sử) sẽ được phân tích

 Hệ thống sẽ sử dụng dữ liệu này để xác định các thể loại phim mà người dùng yêu thích hoặc các xu hướng xem phim của họ

Bước 2: Xử lý và phân tích dữ liệu

 Hệ thống thực hiện phân tích dữ liệu dựa trên các phương pháp lọc như đã mô tả ở trên

 Các phim phù hợp sẽ được lấy từ bảng Phim, dựa trên sự tương đồng về thể loại, đạo diễn, diễn viên hoặc lịch sử xem phim của các người dùng khác có hành vi tương tự

Bước 3: Gợi ý phim cho người dùng

 Sau khi phân tích, hệ thống sẽ hiển thị danh sách các phim gợi ý cho người dùng trên trang chính hoặc một phần riêng trên giao diện

 Các phim có thể được phân loại thành "Phim bạn có thể thích", "Phim tương tự với những gì bạn đã xem", hoặc "Phim phổ biến mà bạn chưa xem"

1.4.1.3.7 Giao diện hiển thị gợi ý phim

Trên giao diện chính, danh sách phim gợi ý sẽ được hiển thị ở một vị trí dễ nhìn, thường

là dưới banner hoặc bên cạnh danh sách các phim đang chiếu, sắp chiếu Mỗi phim gợi ý

sẽ hiển thị thông tin cơ bản như:

 Tên phim

 Ảnh bìa

 Thể loại

 Đánh giá

 Nút "Xem chi tiết"

1.4.1.3.8 Tích hợp với các tính năng khác

Chức năng gợi ý phim có thể được kết hợp với các tính năng khác như:

Lịch sử xem phim: Dựa trên các phim đã xem trước đó để cung cấp gợi ý mới.

Đánh giá phim: Nếu người dùng đánh giá một phim cao, hệ thống có thể gợi ý

các phim tương tự

Phim hot: Các bộ phim nổi bật có thể được ưu tiên gợi ý cho người dùng.

1.4.1.3.9 Tối ưu hóa trải nghiệm người dùng

Để nâng cao trải nghiệm người dùng, chức năng gợi ý phim cần:

Độ chính xác cao: Càng gợi ý những phim phù hợp với sở thích cá nhân của

người dùng thì khả năng giữ chân họ trên hệ thống càng lớn

Ngày đăng: 17/02/2025, 16:37

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w