Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 124 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
124
Dung lượng
5,67 MB
Nội dung
ĐẠ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 TRẦN VĂN THIỆT - 20521956 TRẦN ĐÌNH KHƠI - 20520594 ĐỒ ÁN ỨNG DỤNG XEM PHIM HỖ TRỢ GỢI Ý PHIM SỬ DỤNG HỆ THỐNG KHUYẾN NGHỊ Application that supports movie recommendations using a recommendation system Lớp SE121.N21 GIẢNG VIÊN HƯỚNG DẪN Th.S TRẦN ANH DŨNG TP HỒ CHÍ MINH, 2023 ĐẠ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 TRẦN VĂN THIỆT - 20521956 TRẦN ĐÌNH KHƠI - 20520594 ĐỒ ÁN ỨNG DỤNG XEM PHIM HỖ TRỢ GỢI Ý PHIM SỬ DỤNG HỆ THỐNG KHUYẾN NGHỊ Application that supports movie recommendations using a recommendation system Lớp: SE121.N21 GIẢNG VIÊN HƯỚNG DẪN Th.S TRẦN ANH DŨNG TP HỒ CHÍ MINH, 2023 LỜI CẢM ƠN Nhóm chúng em xin gửi lời cảm ơn chân thành tri ân sâu sắc đến thầy Trần Anh Dũng hướng dẫn, tạo điều kiện cho nhóm chúng em hồn thành đồ án mơn Đồ án Trong vịng 16 tuần, qua buổi học, nhờ dẫn nhiệt tình thầy, chúng em tiếp thu kiến thức quan trọng, bổ ích góp ý chân thành để làm đồ án hồn chỉnh Trong khoảng thời gian thực đồ án, chúng em học hỏi thêm nhiều kiến thức, kinh nghiệm, biết quy trình để tạo sản phẩm phần mềm Bên cạnh đó, chúng em xin cảm ơn bạn bè lớp động viên, thảo luận góp ý cho nhóm đồng thời khơi thêm nguồn động lực cho nhóm suốt q trình đầy khó khăn Mặc dù cố gắng hồn thành báo cáo với tất nỗ lực song báo cáo nhóm chúng em chắn khơng tránh khỏi thiếu sót, chúng em mong nhận thơng cảm góp ý chân thành từ thầy Chúng em xin chân thành cảm ơn Xin chúc điều tốt đẹp đồng hành người Thành phố Hồ Chí Minh, 30 tháng 06 năm 2023 Sinh viên TRẦN ĐÌNH KHƠI TRẦN VĂN THIỆT MỤC LỤC LỜI CẢM ƠN MỤC LỤC DANH MỤC HÌNH DANH MỤC BẢNG DANH MỤC TỪ VIẾT TẮT 12 TÓM TẮT ĐỒ ÁN 13 ĐỀ CƯƠNG CHI TIẾT 15 NỘI DUNG ĐỒ ÁN 21 CHƯƠNG 1: MỞ ĐẦU .21 1.1 Lý chọn đề tài 21 1.2 Mục đích nghiên cứu 22 1.2.1 Khách quan 22 1.2.2 Chủ quan .22 1.3 Đối tượng nghiên cứu 22 1.3.1 Các công nghệ nghiên cứu: 22 1.3.2 Đối tượng sử dụng đề tài hướng đến: 23 1.4 Phạm vi nghiên cứu 23 1.4.1 Phạm vi môi trường: 23 1.4.2 Phạm vi chức năng: .23 1.5 Mục tiêu đề tài 23 1.5.1 Xây dựng mơ hình: 23 1.5.2 Xây dựng ứng dụng: 23 CHƯƠNG 2: KIẾN THỨC NỀN TẢNG 25 2.1 Flutter 25 2.2 Dart .27 2.3 ASP.Net Core .29 2.4 C# .30 2.5 MS SQL Server 31 2.6 Microsoft-ML .33 CHƯƠNG 3: HỆ THỐNG GỢI Ý RECOMMENDER SYSTEM 35 3.1 Khái niệm 35 3.1.1 Recommendater System 35 3.1.2 Phương pháp Collaborative Filtering 36 3.2 Các thành phần 38 3.2.1 Utility Matrix 38 3.2.2 Thuật toán Matrix Factorization 39 3.3 Áp dụng vào đề tài .41 3.3.1 Luồng xử lý 41 3.3.2 Phân tích liệu 41 3.3.3 Xây dựng Recommender System 42 3.3.4 Thử nghiệm đánh giá 42 CHƯƠNG 4: XÂY DỰNG HỆ THỐNG 44 4.1 Kiến trúc hệ thống tổng quan: 44 4.2 Kiến trúc phía Client 45 4.2.1 Kiến trúc hệ thống .45 4.2.2 Chi tiết thành phần hệ thống .45 4.3 Kiến trúc phía Server 48 4.3.1 Kiến trúc hệ thống .48 4.3.2 Chi tiết thành phần hệ thống .48 4.4 Sơ đồ Use case 52 4.4.1 Danh sách tác nhân .53 4.4.2 Danh sách Use case .53 4.4.3 Mô tả chi tiết Use case 55 4.5 Sơ đồ hoạt động 67 4.5.1 Sơ đồ hoạt động cho Xem thông tin phim 67 4.5.2 Sơ đồ hoạt động cho Xem phim 68 4.5.3 Sơ đồ hoạt động cho Gợi ý phim 69 4.6 Thiết kế sở liệu 70 4.6.1 Sơ đồ bảng 70 4.6.2 Danh sách bảng liệu 70 4.6.3 Mô tả chi tiết bảng liệu 73 CHƯƠNG 5: THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG 87 5.1 Sơ đồ liên kết hình .87 5.2 Danh sách hình .87 5.3 Mô tả chi tiết hình 90 5.3.1 Màn hình Get Started 90 5.3.2 Màn hình Login 92 5.3.3 Màn hình Signup 93 5.3.4 Màn hình Verify Signup .95 5.3.5 Màn hình Forgot pass 97 5.3.6 Màn hình Verify forgot pass .98 5.3.7 Màn hình New pass 100 5.3.8 Màn hình Congrats 101 5.3.9 Màn hình Home .103 5.3.10 Màn hình Movie list 104 5.3.11 Màn hình Movie detail 106 5.3.12 Màn hình Actor detail .107 5.3.13 Màn hình Actor search 109 5.3.14 Màn hình Search filter .110 5.3.15 Màn hình Watching 111 5.3.16 Màn hình Profile .112 5.3.17 Màn hình Saved .112 5.3.18 Màn hình Review 114 5.3.19 Màn hình History 115 5.3.20 Màn hình Settings 116 CHƯƠNG 6: CÀI ĐẶT VÀ KIỂM THỬ .118 6.1 Kiểm thử phía ứng dụng 118 6.1.1 Môi trường kiểm thử 118 6.1.2 Kết kiểm thử .118 6.2 Kiểm thử hệ thống khyến nghị 118 6.2.1 Môi trường kiểm thử 118 6.2.2 Kết kiểm thử .119 CHƯƠNG 7: TỔNG KẾT 121 7.1 Kết đạt 121 7.2 Hạn chế 121 7.3 Hướng phát triển 121 TÀI LIỆU THAM KHẢO 122 DANH MỤC HÌNH Hình 2.1: Flutter 25 Hình 2.2: Ngơn ngữ lập trình Dart 27 Hình 2.3: ASP.Net Core 29 Hình 2.4: Ngơn ngữ lập trình C# 30 Hình 2.5: MS SQL Server 31 Hình 2.6: Microsoft-ML 33 Hình 3.1: Cách thức hoạt động Collaborative filtering 37 Hình 3.2: Utility Matrix 38 Hình 3.3: Hình minh họa thuật tốn Matrix Factorization 39 Hình 3.4: Hình minh họa thuật toán Matrix Factorization dạng biểu thức 39 Hình 3.5: Hàm mát thuật tốn Matrix Factorization 40 Hình 3.6: Hàm tối ưu W cố định X .40 Hình 3.7: Hàm tối ưu X cố định W .40 Hình 3.8: Hình minh họa liệu train 41 Hình 3.9: Đánh giá mơ hình kết dự đốn mã khóa học-thời gian 42 Hình 4.1: Sơ đồ kiến trúc hệ thống tổng quan 44 Hình 4.2: Sơ đồ kiến trúc hệ thống phía client 45 Hình 4.3: Sơ đồ kiến trúc hệ thống phía server .48 Hình 4.4: Sơ đồ Use case 52 Hình 4.5: Xem thơng tin phim Activity Diagram .67 Hình 4.6: Xem phim Activity Diagram 68 Hình 4.7: Gợi ý Activity Diagram 69 Hình 4.8: Sơ đồ liên kết hình 70 Hình 5.1: Sơ đồ liên kết hình 87 Hình 5.2: Màn hình Get Started 91 Hình 5.3: Màn hình Login 92 Hình 5.4: Màn hình Signup .94 Hình 5.5: Màn hình Verify Signup 96 Hình 5.6: Màn hình Forgot pass 97 Hình 5.7: Màn hình Verify forgot pass .99 Hình 5.8: Màn hình New pass 100 Hình 5.9: Màn hình Congrats 102 Hình 5.10: Màn hình Home 103 Hình 5.11: Màn hình Movie list 105 Hình 5.12: Màn hình Movie detail 106 Hình 5.13: Màn hình Actor detail 108 Hình 5.14: Màn hình Actor search 109 Hình 5.15: Màn hình Search filter 110 Hình 5.16: Màn hình Watching .111 Hình 5.17: Màn hình Profile 112 Hình 5.18: Màn hình Saved 113 Hình 5.19: Màn hình Review 114 Hình 5.20: Màn hình History 115 Hình 5.21: Màn hình Settings 116 Hình 6.1: Kết đánh giá mơ hình đánh giá hồi quy (Regression Evaluation) 119 Hình 6.2: Tích hợp vào API 120 Hình 5.13: Màn hình Actor detail • Các thành phần: STT Kiểu Ràng buộc Ý nghĩa Image Ảnh đại diện Text Nút xem thêm Container Mục phim Bảng 5.24: Mô tả đối tượng hình Actor detail • Danh sách biến cố: STT Biến cố Xử lý Nhấn vào ảnh đại diện Mở chế độ tồn hình Nhấn see more Mở rộng nội dung mô tả diễn viên 108 Nhấn mục phim Mở hình Movie detail Bảng 5.25: Biến cố xử lý hình Actor detail 5.3.13 Màn hình Actor search • Giao diện: Hình 5.14: Màn hình Actor search • Các thành phần: STT Kiểu Ràng buộc Ý nghĩa 109 Mục diễn viên Container Bảng 5.26: Mô tả đối tượng hình Actor search • Danh sách biến cố: STT Biến cố Xử lý Nhấn mục phim Mở hình Movie detail Bảng 5.27: Biến cố xử lý hình Actor search 5.3.14 Màn hình Search filter • Giao diện: Hình 5.15: Màn hình Search filter 110 5.3.15 Màn hình Watching • Giao diện: Hình 5.16: Màn hình Watching • Các thành phần: STT Kiểu Ràng buộc Ý nghĩa Text Nút chia sẻ Text Nút tải xuống Rating Bar Value > Thanh đánh giá TextField Not null Trường đánh giá Button Nút đánh giá Bảng 5.28: Mô tả đối tượng hình Watching 111 • Danh sách biến cố: STT Biến cố Xử lý Nhấn vào nút chia sẻ Tạo link chia sẻ phim Nhấn nút tải xuống Tải phim local Bảng 5.29: Biến cố xử lý hình Watching 5.3.16 Màn hình Profile • Giao diện: Hình 5.17: Màn hình Profile 5.3.17 Màn hình Saved • Giao diện: 112 Hình 5.18: Màn hình Saved • Các thành phần: STT Kiểu Ràng buộc Container Ý nghĩa Mục phim Bảng 5.30: Mô tả đối tượng hình Saved • Danh sách biến cố: STT Biến cố Xử lý Nhấn vào mục phim Mở hình Movie detail Bảng 5.31: Biến cố xử lý hình Saved 113 5.3.18 Màn hình Review • Giao diện: Hình 5.19: Màn hình Review • Các thành phần: STT Kiểu Ràng buộc Container Ý nghĩa Mục đánh giá Bảng 5.32: Mô tả đối tượng hình Review • Danh sách biến cố: STT Biến cố Xử lý Nhấn vào mục đánh giá Mở pop up xem chi tiết đánh giá Nhấn vào icon Edit Mở popup edit đánh giá Nhấn giữ mục đánh giá Mở popup hỏi xoá đánh giá Nhấn vào phim mục đánh giá Chuyển tới Movie detail Bảng 5.33: Biến cố xử lý hình Review 114 5.3.19 Màn hình History • Giao diện: Hình 5.20: Màn hình History • Các thành phần: STT Kiểu Container Ràng buộc Ý nghĩa Mục phim Bảng 5.34: Mơ tả đối tượng hình History • Danh sách biến cố: 115 STT Biến cố Xử lý Nhấn vào mục phim Mở hình Movie detail Nhấn giữ mục phim Mở popup hỏi xoá history Bảng 5.35: Biến cố xử lý hình History 5.3.20 Màn hình Settings • Giao diện: Hình 5.21: Màn hình Settings • Các thành phần: 116 STT Kiểu Ràng buộc Ý nghĩa ListItem Mục ngôn ngữ Listtem Mục chủ đề Bảng 5.36: Mô tả đối tượng hình Settings • Danh sách biến cố: STT Biến cố Xử lý Nhấn vào mục ngôn ngữ Mở popup chọn ngôn ngữ Nhấn vào switch chủ đề Đổi chủ đề ứng dụng Bảng 5.37: Biến cố xử lý hình Settings 117 CHƯƠNG 6: CÀI ĐẶT VÀ KIỂM THỬ 6.1 Kiểm thử phía ứng dụng 6.1.1 Môi trường kiểm thử Môi trường cài đặt: Android 10.0 (target API 33), IOS 14 Thiết bị cài đặt: + Điện thoại cá nhân hệ điều hành Android API 30 + IOS Simulator ver 14 Macbook M1 6.1.2 Kết kiểm thử STT Tính Mức độ hồn thiện Xác thực người dùng 100% Tra cứu phim, diễn viên 100% Xem phim 100% Quản lý phim, đánh giá 100% Tải phim 100% Cài đặt tài khoản 100% Hiển thị gợi ý phim 100% Quản lý đánh giá, lịch sử, yêu thích Ghi 100% Bảng 6.1: Kết kiểm thử 6.2 Kiểm thử hệ thống khyến nghị 6.2.1 Môi trường kiểm thử Môi trường dạy: Visual Studio 2022, Microsoft.ML 2.0.1 118 Thiết bị cài đặt: + Máy tính cá nhân Windows 10 Pro 6.2.2 Kết kiểm thử Hình 6.1: Kết đánh giá mơ hình đánh giá hồi quy (Regression Evaluation) 119 Hình 6.2: Tích hợp vào API Như kết cho thấy RMSE mơ hình ≈ 0.471 RSquared ≈ 0.829, cho thấy mơ hình gợi ý dựa phân rã ma trận hoạt động tốt, với mức độ sai số thấp khả giải thích phương sai cao biến mục tiêu 120 CHƯƠNG 7: TỔNG KẾT 7.1 Kết đạt - Hoàn thành tất tính theo kế hoạch dự kiến đưa - Hiểu thêm cách hoạt động hệ thống gợi ý Recommender System kiến thức phân tích liệu, đánh giá mơ hình - Biết cách quản lý mã nguồn làm việc thông qua Github - Cải thiện kỹ lập trình, biết cách kiểm tra lỗi tự sửa lỗi - Cải thiện khả đọc tài liệu tiếng Anh - Cải thiện kỹ làm việc nhóm giao tiếp ứng xử 7.2 Hạn chế - Các tính chưa tối ưu tốt nên đơi xảy tượng giật hình - Giao diện người dùng mức tạm - Dữ liệu lưu trữ MSSQL Azure bị hạn chế tốc độ phản hồi - Hệ thống gợi ý chưa thật tối ưu vài trường hợp chưa có liệu - Chưa đề cập đến vấn đề quyền tác phẩm phim sử dụng ứng dụng 7.3 Hướng phát triển Qua trình thực hiện, nhóm nhận thấy hạn chế đồ án cịn cải thiện mở rộng thêm Cụ thể sau: Cải thiện Recommender System: - Tìm giải pháp training liệu liên tục dựa hành vi người dùng - Áp dụng thêm nhiều thuật tốn, hướng xử lý khác để tìm phương pháp “học” tối ưu cho hệ thống Cải thiện ứng dụng: - Cải thiện giao diện người dùng trực quan - Ổn định tối ưu tính có - Phát triển thêm tính chia sẻ phim, thơng báo phim có - Đa dạng hố chủ đề ngơn ngữ ứng dụng 121 TÀI LIỆU THAM KHẢO Các Thư viện tiêu biểu sử dụng trình phát triển [1] flutter_bloc: https://pub.dev/packages/flutter_bloc [2] video_player: https://pub.dev/packages/video_player [3] dio: https://pub.dev/packages/dio Tài liệu hướng dẫn ngơn ngữ lập trình [4] Code thao khảo: https://stackoverflow.com/ [5] Flutter: https://docs.flutter.dev/ Tài liệu code mẫu xây dựng Recommender System [6] Nuget package: Microsoft.ML 2.0.0 Microsoft.ML.Recommender 0.20.0 [7] Giới thiệu Content-Based Recommendation System: Content-Based Recommendation System [8] Giới thiệu Matrix Factorization Collaborative Filtering: Matrix Factorization Collaborative Filtering Tutorial: Build a recommender using matrix factorization [10] Code mẫu xây dựng Web API Net Core: Tutorial: Create a web API with ASP.NET Core [11] Tài liệu Microsoft Recommenders: Microsoft Recommenders Documentation [11] Website Hướng dẫn khai thác liệu: Weka 122