Tìm hiểu flutter và thuật toán recommendation, xây dựng ứng dụng minh họa

137 41 0
Tìm hiểu flutter và thuật toán recommendation, xây dựng ứng dụng minh họa

Đ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

ĐẠ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 HUỲNH HẠ VY – 16521470 ĐỖ NGỌC BÍCH TRÂM – 16521273 KHĨA LUẬN TỐT NGHIỆP Tìm hiểu Flutter thuật toán Recommendation, xây dựng ứng dụng minh họa Research on Several Recommendation Algorithms and Build Illustrative Application with Flutter KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM GIẢNG VIÊN HƯỚNG DẪN THS TRẦN ANH DŨNG TS NGUYỄN ĐÌNH HIỂN TP HỒ CHÍ MINH, 2021 ĐẠ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 HUỲNH HẠ VY – 16521470 ĐỖ NGỌC BÍCH TRÂM – 16521273 KHĨA LUẬN TỐT NGHIỆP Tìm hiểu Flutter thuật toán Recommendation, xây dựng ứng dụng minh họa Research on Several Recommendation Algorithms and Build Illustrative Application with Flutter KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM GIẢNG VIÊN HƯỚNG DẪN THS TRẦN ANH DŨNG TS NGUYỄN ĐÌNH HIỂN TP HỒ CHÍ MINH, 2021 DANH SÁCH HỘI ĐỒNG BẢO VỆ KHĨA LUẬN Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ……………… …… ngày ……………… Hiệu trưởng Trường Đại học Công nghệ Thông tin ………………………………………… – Chủ tịch ………………………………………… – Thư ký ………………………………………… – Ủy viên ………………………………………… – Ủy viên ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh Phúc CÔNG NGHỆ THÔNG TIN TP HCM, ngày tháng năm 2021 NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP (CỦA CÁN BỘ HƯỚNG DẪN) Tên khóa luận: Tìm hiểu Flutter thuật tốn Recommendation, xây dựng ứng dụng minh họa Cán hướng dẫn: Nhóm sinh viên thực hiện: HUỲNH HẠ VY 16521470 THS TRẦN ANH DŨNG ĐỖ NGỌC BÍCH TRÂM 16521273 TS NGUYỄN ĐÌNH HIỂN Đánh giá Khóa luận: Về báo cáo: Số trang Số chương Số bảng số liệu Số hình vẽ Số tài liệu tham khảo Sản phẩm Một số nhận xét hình thức báo cáo: • • Về nội dung nghiên cứu: • • Về chương trình ứng dụng: • • Về thái độ làm việc sinh viên: • • Đánh giá chung: Điểm sinh viên: HUỲNH HẠ VY: ……… /10 ĐỖ NGỌC BÍCH TRÂM: ……… /10 Người nhận xét (Ký ghi rõ họ tên) TRẦN ANH DŨNG NGUYỄN ĐÌNH HIỂN ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC Độc Lập – Tự Do – Hạnh Phúc CÔNG NGHỆ THÔNG TIN TP HCM, ngày tháng năm 2021 NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP (CỦA CÁN BỘ PHẢN BIỆN) Tên khóa luận: Tìm hiểu Flutter thuật tốn Recommendation, xây dựng ứng dụng minh họa Nhóm sinh viên thực hiện: HUỲNH HẠ VY 16521470 ĐỖ 16521273 NGỌC BÍCH Cán phản biện: TRÂM Đánh giá Khóa luận: Về báo cáo: Số trang Số chương Số bảng số liệu Số hình vẽ Số tài liệu tham khảo Sản phẩm Một số nhận xét hình thức báo cáo: Về nội dung nghiên cứu: Về chương trình ứng dụng: Về thái độ làm việc sinh viên: Đánh giá chung: Điểm sinh viên: HUỲNH HẠ VY: ……… /10 ĐỖ NGỌC BÍCH TRÂM: ……… /10 Người nhận xét (Ký ghi rõ họ tên) LỜI CẢM ƠN Sau trình học tập rèn luyện khoa Công nghệ phần mềm trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM chúng em trang bị kiến thức bản, kỹ thực tế để hồn thành Khóa luận tốt nghiệp Chúng em xin gửi lời cảm ơn chân thành đến thầy Trần Anh Dũng thầy Nguyễn Đình Hiển quan tâm hướng dẫn truyền đạt kiến thức kinh nghiệm cho chúng em suốt thời gian học tập mơn Khóa luận tốt nghiệp Cuối cùng, chúng em xin gửi lời cảm ơn đến tất thầy cô khoa bạn bè bên cạnh, bảo, truyền đạt động viên chúng em Trong q trình làm tập mơn khơng tránh khỏi sai sót, chúng em mong nhận góp ý quý thầy bạn để hoàn thiện Chúng em xin chân thành cảm ơn Thành phố Hồ Chí Minh, tháng Sinh viên HUỲNH HẠ VY ĐỖ NGỌC BÍCH TRÂM năm 2021 ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh Phúc CÔNG NGHỆ THÔNG TIN TP HCM, ngày… tháng … năm 2021 ĐỀ CƯƠNG CHI TIẾT Tên đề tài: Tìm hiểu Flutter thuật tốn Recommendation, xây dựng ứng dụng minh họa Cán hướng dẫn: TS Nguyễn Đình Hiển Ths Trần Anh Dũng Thời gian thực hiện: Từ ngày 14/8/2020 đến ngày 10/01/2020 Sinh viên thực hiện: Huỳnh Hạ Vy – 16521470 Đỗ Ngọc Bích Trâm – 16521273 Nội dung đề tài: Mục tiêu đề tài: 1.1 Bối cảnh chọn đề tài Ngày nay, công nghệ thông tin ngày phát triển, kéo theo bùng nổ thiết bị điện tử, đặc biệt điện thoại thông minh máy tính Nếu trước việc sở hữu điện thoại thơng minh hay máy tính khó khăn ngày cạnh tranh gay gắt thương hiệu khiến giá thành thiết bị rẻ việc sở hữu chúng trở nên dễ dàng Vì nhu cầu phát triển ứng dụng cho thiết bị ngày tăng cao Để tiếp cận đến nhiều người dùng, nhà phát triển ứng dụng mong muốn ứng dụng họ chạy nhiều tảng đặc biệt Android, iOS, Windows, MacOS web Thay phải tìm hiểu nhiều ngơn ngữ, cơng nghệ khác ứng với tảng thị trường có nhiều cơng cụ hỗ trợ lập trình đa tảng Flutter, React Native, Ionic, … giúp nhà phát triển ứng dụng tiết kiệm thời gian, chi phí dành cho q trình phát triển ứng dụng Trong số có Flutter cơng cụ đời muộn có tốc độ phát triển vượt trội nhiều ưu điểm so với công nghệ trước, nhiều công ty công nghệ lớn sử dụng Flutter để phát triển sản phẩm Google, Alibaba, Tencent, … Ứng dụng xây dựng với Flutter hoạt động với hiệu mạnh mẽ có vấn đề mặt tương thích, ngồi cịn công cụ mã nguồn mở nên ngày nhiều lập trình viên cơng ty quan tâm đến cơng nghệ Đây lý nhóm chọn đề tài khóa luận tốt nghiệp “Tìm hiểu Flutter xây dựng ứng dụng minh họa” Ngoài ra, thời điểm dịch tồn cầu COVID19 diễn ra, thơng qua kiến thức tìm hiểu, tích lũy nhóm nhận thấy từ việc mua hàng qua mạng với thủ tục đăng ký mua sắm đơn giản đem lại nhiều lợi ích: tiết kiệm chủ động thời gian, tránh nơi đông người tránh khỏi phiền phức khó chịu Vậy nên việc mua bán hàng qua mạng người quan tâm Trên sở kiến thức học nhà trường trình tìm hiểu website thực tế, nhóm định tích hợp thêm hệ thống hỗ trợ gợi ý sản phẩm vào ứng dụng nhằm hỗ trợ khách hàng đến mức tối đa, tăng trải nghiệm khách hàng ứng dụng - Khách hàng cần thao tác đơn giản điện thoại di động đặt hàng 1.2 Tính mới, khác biệt chức đề tài so với số ứng dụng - u.genre: Chứa tên 19 thể loại phim Các thể loại bao gồm: unknown, Action, Adventure, Animation, Children's, Comedy, Crime, Documentary, Drama, Fantasy, Film-Noir, Horror, Musical, Mystery, Romance, Sci-Fi, Thriller, War, Western - u.item: thông tin phim a) Content-based Recommender System Trong hệ thống content-based, tức dựa nội dung item, cần xây dựng hộ sơ (profile) cho item Profile biểu diễn dạng toán học feature vector Trong trường hợp đơn giản, feature vector trực tiếp trích xuất từ item Các bước thực hiện: - Đọc liệu items - Xây dựng item profiles - Tìm mơ hình cho user Đọc liệu items: đọc liệu items từ file u.item, liệu train từ ua.base, liệu test từ ua.test Hình 3: Kết load liệu Content-based Xây dựng items profile: xây dựng items profile dựa thể loại TF-IDF Hình 4: Ví dụ feature vector item Mỗi hàng tương ứng với feature vector item (ở phim) 96 Kết dự đoán: dự đoán rating cho user có id 120, kết tìm là: Hình 5: Kết dự đốn content-based Tính tốn RMSE cho tập liệu train liệu test, kết là: Hình 6: RMSE content-based b) Neighborhood-based Collaborative Filtering Giả sử có user từ u0 đến u6 item từ i0 đến i4, số ô vuông thể số mà user rate cho item với giá trị cao thể mức độ quan tâm cao Các dấu hỏi chấm giá trị mà hệ thống cần phải tìm Đặt mức độ giống user ui, uj sim(ui, uj) Quan sát qua ta nhận thấy u0, u1 thích i0, i1, i2 khơng thích i3, i4 cho Điều ngược lại xảy user cịn lại Vì vậy, similarity function tốt cần đảm bảo: sim(u0, u1) > sim(u0, ui), ∀i > Từ đó, để xác định mức độ quan tâm u0 lên i2, nên dựa hành vi u1 lên sản phẩm Vì u1 thích i2 nên hệ thống cần gợi ý i2 cho u0 Câu hỏi đặt là: hàm số similarity tốt? Để đo similarity user, cách thường làm xây dựng feature vector cho user áp dụng hàm có khả đo similarity vector Chú ý việc feature vector khác với việc xây dựng item profile Content-based System Các vector xây dựng trực tiếp dựa utility matrix khơng dùng liệu ngồi item profile Với user, thông tin mà biết rating mà user 97 thực hiện, tức cột tương ứng user thường rate số lượng nhỏ item Cách khắc phục cách đó, ta giúp hệ thống điền giá trị cho việc điền không làm ảnh hưởng nhiều tới giống vector Việc điền phục vụ cho việc tính similarity suy luận giá trị cuối Vậy dấu ‘?’ nên thay giá trị để hạn chế việc sai lệch nhiều? Một lựa chọn nghĩ tới thay dấu ‘?’ giá trị ‘0’ Điều không thực tốt giá trị ‘0’ tương ứng với mức độ quan tâm thấp Một giá trị an toàn 2.5 trung bình cộng 0, mức thấp nhất, 5, mức cao Tuy nhiên, giá trị có hạn chế user dễ tính khó tính Với user dễ tính, thích tương ứng với sao, khơng thích chút, chẳng hạn Việc chọn giá trị 2.5 khiến cho item lại negative user Điều ngược lại xảy với user khó tính cho cho item họ thích cho item họ khơng thích Để giải vấn đề này, ta chọn giá trị trung bình cộng rating mà user tương ứng thực Việc tránh việc user q khó tính q dễ tính, tức lúc có item mà user thích so với item khác 98 Hình 7: Các bước neighborhood-based CF Ví dụ mơ tả User-user CF: a) utility matrix (UM) ban đầu b) UM chuẩn hoá c) User similarity matrix d) Dự đoán (normalized) rating thiếu e) Vd cách dự đoán normalized rating u1 cho i1 f) Dự đoán (denormalized) rating cịn thiếu Chuẩn hố liệu: Hàng cuối hình a) giá trị trung bình rating cho user Giá trị cao tương ứng với user dễ tính ngược lại Khi tiếp tục trừ từ rating giá trị thay giá trị chưa biết 0, ta ma trận chuẩn hố hình b) Vì bước chuẩn hố lại quan trọng? • Việc trừ trung bình cộng cột khiến cột có giá trị dương âm Những giá trị dương tương ứng với việc user thích item, giá trị âm tương ứng với việc user không thích item Những giá trị tương ứng với việc chưa xác định liệu user có thích item hay khơng 99 • Về mặt kỹ thuật, số chiều utility matrix lớn với hàng triệu user item, lưu toàn giá trị ma trận khả cao khơng đủ nhớ Ta thấy số lượng rating biết trước thường số nhỏ so với kích thước utility matrix, tốt lưu ma trận dạng sparse matrix, tức lưu giá trị khác vị trí chúng Vì vậy, tốt hết, dấu ‘?’ nên thay giá trị ‘0’, tức chưa xác định liệu user có thích item hay khơng Việc khơng tới ưu nhớ mà việc tính tốn similarity matrix sau hiệu Sau chuẩn hoá liệu trên, vài similarity function thường sử dụng là: Cosine Similarity: Đây hàm sử dụng nhiều nhất, quen thuộc giống với cơng thức tính cos góc vector u1, u2 𝑢1 ⋅𝑢2 cosine_similarity(u1, u2) = cos(u1, u2) = ‖𝑢 ‖.‖𝑢2 ‖ Trong đó, u1,2 vector tương ứng với user 1, chuẩn hoá Độ similarity vector số đoạn [-1, 1] Giá trị thể vector hoàn toàn giống Hàm số cos góc nghĩa góc vector 0, tức vector tích số dương với vector lại Giá trị cos = -1 thể vector hoàn toàn trái ngược Điều hợp lý, tức hành vi user hồn tồn ngược similarity vector thấp Ví dụ cosine_similarity user hình b) cho hình c) Similarity matrix S ma trận đối xứng cos hàm chẵn, user A giống user B điều ngược lại Các ô màu xanh đường chéo cos góc vector nó, tức cos(0) = Khi tính tốn bước sau, ta không cần quan tâm tới giá trị Tiếp tục quan sát vector hàng tương ứng với u0, u1, u2 ta thấy vài điều thú vị: 100 • u0 gần với u1 u5 (độ giống dương) user lại Việc similarity cao u0 u1 dễ hiểu có xu hướng quan tâm tới i0, i1, i2 item cịn lại Việc u0 gần với u5 đầu vơ lý u5 đánh giá thấp item mà u0 đánh giá cao; nhiên nhìn vào ma trận chuẩn hố hình b), ta thấy điều hợp lý Vì item mà cung cấp thông tin i1 với giá trị tương ứng tích cực • u1 gần với u0 xa user lại • u2 gần với u3, u4, u5, u6 xa user lại Từ similarity matrix này, ta phân nhóm user làm nhóm (u0, u1) (u2, u3, u4, u5, u6) Vì ma trận S nhỏ nên dễ dàng quan sát thấy điều này; số user lớn hơn, việc xác định mắt thường bất khả thi Việc xây dựng thuật tốn phân nhóm user (user clustering) việc tối quan trọng Pearson correlation: Pearson correlation hay gọi hệ số tương quan pearson, dùng để đo lường mức độ tương quan người dùng Nguyên tắc thuật toán đo lường phụ thuộc tuyến tính biến (hoặc người dùng) Do phân tích tương quan Pearson cịn gọi phân tích hồi quy đơn giản Hệ số tương quan Pearson (r) nhận giá trị từ -1 đến +1 Khi r = gần 0, điều có nghĩa biến khơng có liên quan đến Khi r > nghĩa biến tuyến tính dương, nghĩa giá trị biến tăng giá trị biến tăng Ngược lại r < nghĩa biến tuyến tính âm, nghĩa giá trị biến tăng biến giảm ngược lại Cho biến số x, y từ n mẫu, hệ số tương quan Pearson ước tính công thức sau: 101 Rating prediction Việc xác định mức độ quan tâm user lên item dựa user gần (neighbor user) tương tự phương pháp K-nearest neighbors (KNN) Tương tự KNN, CF, missing rating xác định dựa thông tin k neighbor user Tất nhiên quan tâm tới user rate item xét Predicted rating thường xác định trung bình cộng trọng số rating chuẩn hố Có điểm cần lưu ý, KNN, trọng số xác định dựa khoảng cách điểm, khoảng cách số không âm Trong đó, CF, trọng số xác định dựa similarity user, trọng số nhỏ hình c) Cơng thức phổ biến sử dụng để dự đoán rating u cho i là: 𝑦̂𝑖,𝑢 = ∑𝑢𝑗 ∈𝑁(𝑢,𝑖) 𝑦𝑖,𝑢 𝑠𝑖𝑚(𝑢, 𝑢𝑗 ) 𝑗 ∑𝑢𝑗 ∈𝑁(𝑢,𝑖)|𝑠𝑖𝑚(𝑢, 𝑢𝑗 )| (ta sử dụng trị tuyệt đối để xử lý số âm) Trong 𝑁(𝑢, 𝑖) tập hợp k user neighborhood (tức có similarity cao nhất) u rate i Hình d) thể việc điền giá trị cịn thiếu ma trận chuẩn hố Các màu đỏ thể giá trị dương, tức item mà user quan tâm Ở đây, ta lấy ngưỡng 0, ta hồn tồn chọn ngưỡng khác Một ví dụ việc tính normalize rating u1 cho i1 cho hình e) với số nearest neighbors k = Các bước thực sau: • Xác định user rate i1, u0, u3, u5 102 • Xác định similarity u1 user này, ta nhận 0.83, -0.40, 0.23 Hai (k=2) giá trị lớn 0.83 -0.23 tương ứng với u0 u5 • Xác định normalized rating u0 u5 cho i1, ta thu giá trị 0.75 0.5 • Dự đốn kết quả: 𝑦̂𝑖1,𝑢1 = 0.83 × 0.75 + (−0.23) × 0.5 ≈ 0.48 |0.83| + |−0.23| Việc hệ thống định gợi ý item cho user xác định nhiều cách khác Có thể xếp unrate item theo thứ tự từ lớn đến bé predicted rating, chọn item có normalized predicted rating dương – tương ứng với việc user có nhiều khả thích c) Matrix Factorization Collaborative Filtering Matrix Factorization hướng tiếp cận khác Collaborative Filtering, gọi Matrix Decomposition, nghĩa gợi ý "kỹ thuật phân rã ma trận" Kỹ thuật phân rã ma trận phương pháp chia ma trận lớn X thành hai ma trận có kích thước nhỏ W H, cho ta xây dựng lại X từ hai ma trận nhỏ xác tốt, nghĩa X ~ WH^TWHT Hình 8: Ý tưởng Matrix Factorization CF Các bước thực hiện: 103 - Đọc liệu, Xây dựng utility matrix - Phân rã utility matrix thành hai ma trận low-rank - Đưa gợi ý cho user cách sử dụng ma trận vừa phân rã 4.2 Đánh giá 4.2.1 So sánh kết Trên liệu MoviesLens100K, với liệu train từ file ua.base liệu test từ ua.test Content-based RMSE Neighborhood- Matrix based factorization 0.908843 0.894275 1.029203 1.270618 0.98679 1.060379 training RMSE test Neighborhood-based cho kết tốt (RMSE nhỏ nhất) Matrix factorization cho kết tốt nhiều so với content-based tệ so với neighborhood-based chút Nhưng việc sử dụng matrix factorization giảm thiểu nhớ lưu trữ xuống (lưu trữ ma trận kích thước k x (M+N) với k số nhân tố ẩn (latent factor) thay lưu trữ ma trận similarity với kích thước M2 N2 sử dụng neighborhood-based) 4.2.2 Content-based Recommender System Ưu điểm: - Không cần liệu user khác - Có thể gợi ý item mới, item khơng phổ biến dựa feature vector Nhược điểm: 104 - Khó để tìm feature cho item - Khơng gợi ý item ngồi user profile - Không khai thác liệu rating user khác 4.2.3 Neighborhood-based Collaborative Filtering Matrix Factorization Collaborative Filtering Ưu điểm: - Đưa gợi ý xác sử dụng liệu rating từ nhiều user khác - Có thể hoạt động với nhiều loại item khác Nhược điểm: - Khởi đầu lạnh (Cold Start): cần số lượng đủ user hệ thống để tìm gợi ý phù hợp - Ma trận thưa (Sparsity): Utility matrix (ma trận rating) thường thưa thớt dẫn đến khó khăn việc tìm users rate item - Không gợi ý item chưa có rating (item mới) - Có xu hướng gợi ý item phổ biến 4.3 Áp dụng Neighborhood-based Collaborative Filtering Khi người dùng login vào ứng dụng, hệ thống kiểm tra xem user có rating cho sản phẩm hay chưa: - Trường hợp user chưa rating sản phẩm nào: hệ thống lấy sản phẩm bán chạy để đưa vào danh sách gợi ý cho user - Trường hợp user có rating, hệ thống thực bước sau: + Dự đoán rating user tất sản phẩm mà user chưa đánh giá + Lấy mảng sản phẩm có dự đốn đánh giá cao + Trả để hiển thị giao diện cho user 105 Sau nhận liệu gợi ý, ứng dụng hiển thị sản phẩm mục “Others people like” Hình 9: Hiển thị kết gợi ý ứng dụng 4.4 Ứng dụng Content-based filtering Khi người dùng login vào ứng dụng, hệ thống lấy id người dung vào querry database để lấy sản phẩm user xem: - Lấy mảng sản phẩm có điểm tương đồng với sản phẩm user xem cao - Trả để hiển thị giao diện cho user Sau nhận liệu gợi ý, ứng dụng hiển thị sản phẩm mục “Similar Products” 106 Hình 10: Hiển thị kết gợi ý ứng dụng Xử lý bổ sung: Khi người dùng xem sản phẩm ứng dụng, hệ thống lưu lại sản phẩm user xem, thời gian xem sản phẩm user database Dữ liệu lưu trữ: Hình 4-14: Lịch sử xem sản phẩm người dùng 107 CHƯƠNG 5: KẾT LUẬN, HƯỚNG PHÁT TRIỂN 5.1 Kết đạt − Hiểu kiến thức liên quan đến Flutter − Biết cách sử dụng công cụ hỗ trợ lập trình đa tảng với Flutter − Biết kỹ thuật lập trình với Flutter − Biết cách sử dụng công nghệ hỗ trợ để xây dựng ứng dụng minh họa − Có khả dùng Flutter để xây dựng ứng dụng đa tảng − Hoàn thành ứng dụng mua bán Laptop thiết bị kèm với giao diện trực quan, hoạt động tốt hai tảng Android iOS − Đẩy mạnh tích hợp tính gợi ý, giới thiệu sản phẩm phù hợp - tạo điều kiện thuận lợi cho khách hàng − Ứng dụng có giao diện đẹp, dễ sử dụng tâm lý thoải mái hút khách hàng sử dụng − Tạo liên kết logic hình để khách hàng chuyển hình cách nhanh thuận tiện − Đảm bảo tính bảo mật thông tin nhạy cảm khách hàng tạo cảm giác an toàn cho khách hàng − Đối với nhà quản trị cập nhật, thêm xóa sửa đổi thơng tin liên quan đến mặt hàng vấn đề khác Nhận trả lời ý kiến phía khách hàng 5.2 Ưu điểm − Hoàn thành yêu cầu đặt ban đầu, có đầy đủ tính cần thiết ứng dụng thương mại điện tử − Giao diện đơn giản, bố cục hợp lý, người dùng dễ dàng theo tác ứng dụng − Tốc độ phản hồi thao tác nhanh, tối ưu hóa suất người dùng 108 − Sinh viên thực nắm cách thức làm ứng dụng bán hàng, hiểu biết ngôn ngữ Elixir, Python − Ứng dụng triển khai nghiệm thu thành công máy thật − Hồn thành việc áp dụng thuật tốn gợi ý Collaborative filtering Content-based filtering vào ứng dụng Phục vụ việc gợi ý sản phẩm cho người dùng Gợi ý sản phẩm phù hợp dựa lịch sử đánh giá sản phẩm xem họ để tăng tỉ lệ mua hàng, từ tăng doanh thu 5.3 Nhược điểm − Còn hạn chế số tính năng: + Chưa tích hợp tốn trực tuyến + Tối ưu code chưa tốt nên tốc độ tương tác ứng dụng chậm − Hệ thống gợi ý chưa hiệu với trường hợp chưa có liệu, thời gian cập nhật lại liệu gợi ý chậm thời gian thực 5.4 Hướng phát triển − Xây dựng chứa cịn thiếu, hồn thiện chức có − Tích hợp toán trực tuyến qua Bảo Kim, Ngân Lượng, Paypal − Tối ưu hóa code để tăng tốc độ tương tác − Tối ưu hóa CSDL hợp lý − Tối ưu hóa việc gợi ý − Thêm số gợi ý cho người dùng dựa trên: Like, Vùng miền 109 TÀI LIỆU THAM KHẢO [1] Flutter: https://medium.com/ [2] Recommendation: https://machinelearningcoban.com/ [3] Elixir document: https://elixir-lang.org/docs.html [4] Python document: https://www.python.org/doc/ [5] Nodejs document: https://nodejs.org/en/docs/ 110 ... Phát triển ứng dụng 11/9/2020 10/10/2020 − Tìm hiểu Flutter ngôn ngữ Dart ứng dụng vào việc xây dựng giao diện ứng dụng − Tìm hiểu ngôn ngữ Elixir framework phoenix vào việc thực hóa ứng dụng theo... kết hợp với tìm hiểu cơng nghệ nhóm, luận văn tốt nghiệp nhóm đạt mục đích mong đợi 1.4 Ý nghĩa đề tài Trước hết, đề tài ' 'Tìm hiểu Flutter xây dựng ứng dụng minh họa' ' ứng dụng xây dựng đề tài... 1.5 Nhiệm vụ đề tài − Tìm hiểu hoạt động kinh doanh sản phẩm laptop phụ kiện thực tế − Tìm hiểu cách thức xây dựng ứng dụng đa tảng với Flutter − Xây dựng thành công ứng dụng có tích hợp hệ thống

Ngày đăng: 05/09/2021, 20:52

Mục lục

  • CHƯƠNG 1: GIỚI THIỆU CHUNG

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

    • 1.2. Tính mới/ khác biệt về chức năng của đề tài so với một số ứng dụng thương mại điện tử hiện nay.

      • 1.2.1 Điểm mới nổi bật của đề tài

      • 1.2.2 Tính khác biệt, cải thiện về chức năng

      • 1.3. Đối tượng nghiên cứu:

      • 1.4. Phạm vi nghiên cứu

      • 1.5. Phương pháp nghiên cứu

      • 1.6. Bố cục của khóa luận

      • CHƯƠNG 2: KIẾN THỨC NỀN TẢNG

        • 2.1. Tổng quan về Flutter

          • 2.1.1 Tổng quan và lịch sử

          • 2.1.2 Tổng quan về Flutter:

          • 2.1.3 Ưu điểm và nhược điểm của Flutter

          • 2.1.4 Khi nào nên sử dụng Flutter

          • 2.1.5 So sánh cơ bản giữa Flutter và React Native

          • 2.1.6 So sánh chi tiết giữa Flutter, React Native và Xamarin

          • 2.2.2 Các phương pháp trong hệ thống khuyến nghị

            • a) Hệ thống khuyến nghị theo nội dung (Content-based approach)

            • b) Hệ thống khuyến nghị lọc cộng tác (Collaborative filtering)

            • c) Hệ thống khuyến nghị lai (Hybrid recommender system)

            • CHƯƠNG 3: XÂY DỰNG HỆ THỐNG

              • 3.1 Xây dựng kiến trúc hệ thống

                • 3.1.1 Xác định yêu cầu hệ thống

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

                  • a) Phần ứng dụng (khách hàng)

                  • b) Phần Admin (quản trị viên)

                  • 3.1.3 Phân tích thiết kế hệ thống

                    • a) Sơ đồ use case

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

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

Tài liệu liên quan