Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
1,19 MB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN Báo Cáo Đồ Án Môn Học ĐỀ TÀI: NHẬN DẠNG CHỦ ĐỀ BÀI VIẾT VÀ ỨNG DỤNG Giảng viên hướng dẫn: ThS Mai Trọng Khang Lớp: SE122.M21 Mơn Học: Đồ án Nhóm sinh viên thực hiện: Dương Bình Trọng MSSV: 19521056 Phạm Đức Hồng MSSV: 19521542 Tp Hồ Chí Minh, tháng năm 2022 ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN Báo Cáo Đồ Án Môn Học ĐỀ TÀI: NHẬN DẠNG CHỦ ĐỀ BÀI VIẾT VÀ ỨNG DỤNG Giảng viên hướng dẫn: ThS Mai Trọng Khang Lớp: SE122.M21 Mơn Học: Đồ án Nhóm sinh viên thực hiện: Dương Bình Trọng MSSV: 19521056 Phạm Đức Hồng MSSV: 19521542 Tp Hồ Chí Minh, tháng năm 2022 Lời Cảm ơn Đầu tiên, nhóm chúng em xin gửi lời cảm ơn đến tập thể quý thầy cô Trường Đại học Công nghệ Thông tin – Đại học Quốc gia Thành phố Hồ Chí Minh quý thầy cô Khoa Công nghệ Phần mềm giúp chúng em có kiến thức tảng để thực đề tài Nhóm chúng em xin gửi lời cảm ơn tới thầy Mai Trọng Khang, người trực tiếp hướng dẫn nhóm thực đồ án, hướng dẫn tận tình đóng góp nhiều ý kiến quý báu giúp chúng em hoàn thành tốt báo cáo Trong thời gian thực đề tài, nhóm vận dụng kiến thức tảng tích lũy đồng thời kết hợp với việc học hỏi tiếp thu kiến thức Chúng em cố gắng vận dụng thu thập để hồn thành đồ án tốt Tuy nhiên, q trình thực hiệ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ừ q thầy Nhóm chúng em xin trân trọng cảm ơn Nhận Xét Của Giảng Viên MỤC LỤC TỔNG QUAN ĐỀ TÀI 1.1 1.1.1 Sơ xử lí ngơn ngữ tự nhiên 1.1.2 Về đề tài đồ án 1.2 Hướng CƠ SỞ LÍ THUYẾT 10 2.1 Phương pháp giải toán Machine Learning 10 2.1.1 Supervised Learning – Học có giám sát 10 2.1.2 Unsupervised Learning – Học không giám sát 10 2.2 Một số toán áp dụng Máy học để giải đồ án 10 2.2.1 Nhận dạng chủ đề viết 10 2.2.2 Lọc viết tương tự 11 2.2.3 Đánh nhãn viết tự động 12 2.2.4 Hệ thống gợi ý tin tức 14 2.3 Giới thiệu Google Cloud Platform 15 2.3.1 Cloud Function 16 2.3.2 Cloud Run 16 2.3.3 Cloud Build 16 2.3.4 Cloud Scheduler 16 XÂY DỰNG ỨNG DỤNG 17 3.1 Tổng quan 17 3.1.1 Mô tả chung 17 3.1.2 Tính 17 3.2 Backend 17 3.2.1 Sơ đồ tổnq quan 17 3.2.2 Giải thích thành phần 18 3.2.3 Luồng chạy 19 3.3 Mobile app 20 3.3.1 Màn hình Splash 20 3.3.2 Màn hình Đăng nhập 21 3.3.3 Màn hình Onboarding 22 3.3.4 Màn hình Trang chủ 23 5 3.3.5 Màn hình Xem chi tiết (bài viết gốc) 24 3.3.6 Màn hình Tìm kiếm 25 3.3.7 Màn hình Hồ sơ người dùng 26 KẾT LUẬN 27 4.1 Nhận xét 27 4.2 Hướng phát triển 27 DANH MỤC TÀI LIỆU THAM KHẢO 28 TỔNG QUAN ĐỀ TÀI 1.1 Giới thiệu 1.1.1 Sơ xử lí ngơn ngữ tự nhiên Xử lý ngôn ngữ tự nhiên nhánh Trí tuệ nhân tạo, tập trung vào việc nghiên cứu tương tác máy tính ngơn ngữ tự nhiên người, dạng tiếng nói (speech) văn (text) Mục tiêu lĩnh vực giúp máy tính hiểu thực hiệu nhiệm vụ liên quan đến ngôn ngữ người như: tương tác người máy, cải thiện hiệu giao tiếp người với người, đơn giản nâng cao hiệu xử lý văn lời nói Xử lý ngơn ngữ tự nhiên đời từ năm 40 kỷ 20, trải qua giai đoạn phát triển với nhiều phương pháp mơ hình xử lý khác Có thể kể tới phương pháp sử dụng ô-tô-mát mô hình xác suất (những năm 50), phương pháp dựa ký hiệu, phương pháp ngẫu nhiên (những năm 70), phương pháp sử dụng học máy truyền thống (những năm đầu kỷ 21), đặc biệt bùng nổ học sâu thập kỷ vừa qua Xử lý ngơn ngữ tự nhiên chia thành hai nhánh lớn, khơng hồn tồn độc lập, bao gồm xử lý tiếng nói (speech processing) xử lý văn (text processing) Xử lý tiếng nói tập trung nghiên cứu, phát triển thuật toán, chương trình máy tính xử lý ngơn ngữ người dạng tiếng nói (dữ liệu âm thanh) Các ứng dụng quan trọng xử lý tiếng nói bao gồm nhận dạng tiếng nói tổng hợp tiếng nói Nếu nhận dạng tiếng nói chuyển ngơn ngữ từ dạng tiếng nói sang dạng văn ngược lại, tổng hợp tiếng nói chuyển ngơn ngữ từ dạng văn thành tiếng nói Xử lý văn tập trung vào phân tích liệu văn Các ứng dụng quan trọng xử lý văn bao gồm tìm kiếm truy xuất thơng tin, dịch máy, tóm tắt văn tự động, hay kiểm lỗi tả tự động Xử lý văn chia tiếp thành hai nhánh nhỏ bao gồm hiểu văn sinh văn Nếu hiểu liên quan tới tốn phân tích văn sinh liên quan tới nhiệm vụ tạo văn ứng dụng dịch máy tóm tắt văn tự động Xử lý văn bao gồm bước sau: a Phân tích hình vị: nhận biết, phân tích, miêu tả cấu trúc hình vị ngơn ngữ cho trước đơn vị ngôn ngữ khác, từ gốc, biên từ, phụ tố, từ loại, v.v Trong xử lý tiếng Việt, hai tốn điển hình phần tách từ (word segmentation) gán nhãn từ loại (part-of-speech tagging) b Phân tích cú pháp: quy trình phân tích chuỗi biểu tượng, dạng ngơn ngữ tự nhiên ngơn ngữ máy tính, tn theo văn phạm hình thức Văn phạm hình thức thường dùng phân tích cú pháp ngơn ngữ tự nhiên bao gồm Văn phạm phi ngữ cảnh (Context-free grammar – CFG), Văn phạm danh mục kết nối (Combinatory categorial grammar – CCG), Văn phạm phụ thuộc (Dependency grammar – DG) Đầu vào q trình phân tích câu gồm chuỗi từ nhãn từ loại chúng, đầu phân tích thể cấu trúc cú pháp câu c Phân tích ngữ nghĩa: q trình liên hệ cấu trúc ngữ nghĩa, từ cấp độ cụm từ, mệnh đề, câu đoạn đến cấp độ toàn viết, với ý nghĩa độc lập chúng Nói cách khác, việc nhằm tìm ngữ nghĩa đầu vào ngơn từ Phân tích ngữ nghĩa bao gồm hai mức độ: Ngữ nghĩa từ vựng biểu ý nghĩa từ thành phần, phân biệt nghĩa từ; Ngữ nghĩa thành phần liên quan đến cách thức từ liên kết để hình thành nghĩa rộng d Phân tích diễn ngơn: phân tích văn có xét tới mối quan hệ ngôn ngữ ngữ cảnh sử dụng (context-of-use) Phân tích diễn ngơn, đó, thực mức độ đoạn văn toàn văn thay phân tích riêng mức câu 1.1.2 Về đề tài đồ án Xem tin tức nhu cầu thiếu người Hiện nay, có nhiều trang báo mạng cung cấp dịch vụ này, nhiên có vấn đề, ta truy cập vào trang khó mà biết tin tức phù hợp với chúng ta, hay chí đọc tin trước, điều gây phiền tối buộc phải tìm chủ đề nội dung phù hợp với Chính lẽ đó, nhóm tụi em định nảy ý tưởng làm ứng dụng Hedlines, ứng dụng gợi ý tin tức phù hợp với người dùng 1.2 Hướng Về hướng áp dụng trí tuệ nhân tạo, đồ án mở rộng tốn khơng sử dụng riêng nhận dạng chủ đề viết mà sử dụng kĩ thuật khác là: lọc viết tương tự nhau, đánh nhãn viết tự động thực hoá hệ thống gợi ý tin tức Tự tìm hiểu xây dựng hệ thống backend hoàn toàn dịch vụ đám mây (cloud service) Ứng dụng (mobile app) xây dựng framework Flutter, framework xây dựng ứng dụng đa tảng thịnh hành Mỗi ngày hệ thống tiến hành cào (crawl) viết từ nhiều nguồn báo uy tín về, sau qua số q trình xử lí (gán nhãn, lọc trùng ) tiến hành lưu vào sở liệu phục vụ cho ứng dụng đầu cuối Trong báo cáo gồm phần chính: • Phần 1: Tổng quan đề tài – khái quát nội dung định hướng thực đề tài • Phần 2: Cơ sở lý thuyết – tổng hợp phần kiến thức lý thuyết mà nhóm tìm hiểu thực đề tài • Phần 3: Xây dựng ứng dụng – mơ tả chi tiết q trình nhóm xây dựng nên ứng dụng thực tế CƠ SỞ LÍ THUYẾT 2.1 Phương pháp giải toán Machine Learning 2.1.1 Supervised Learning – Học có giám sát Trong học tập có giám sát, máy tính cung cấp ví dụ đầuvào gắn nhãn với đầu mong muốn chúng Mục đích phương pháp để thuật tốn học dạy học cách so sánh kết đầu thực tế với kết đầu dạy để tìm lỗi sửa đổi mơ hình cho phù hợp Do đó, việc học giám sát sử dụng mẫu để dự đoán giá trị nhãn liệu không gắn nhãn bổ sung Ví dụ, với việc học có giám sát, thuật tốn cung cấp liệu với văn nghệ thuật dán nhãn “arts” văn Covid-19 dán nhãn “covid-19” Bằng cách đào tạo liệu này, thuật tốn học có giám sát sau xác định văn nghệ thuật có nhãn “arts”, văn liên quan đến Covid-19 có nhãn “covid-19" Phương pháp thường sử dụng cho toán phân lớp (classification) 2.1.2 Unsupervised Learning – Học không giám sát Trong học tập khơng giám sát, liệu khơng gắn nhãn, thuật toán học để lại điểm chung liệu đầu vào Vì liệu khơng gắn nhãn phong phú liệu dán nhãn, phương pháp machine learning tạo điều kiện cho việc học tập khơng giám sát đặc biệt có giá trị Không giám sát thường sử dụng cho liệu giao dịch 2.2 Một số toán áp dụng Máy học để giải đồ án 2.2.1 Nhận dạng chủ đề viết Nhóm định thực đồ án sử dụng liệu thuộc chủ đề đưới đây: • • • • • • Kinh doanh (bussiness) Giải trí (entertainment) Thời (news) Du lịch (travel) Thể thao (sport) Cơng nghệ (technology) Vì hầu hết liệu trang web phân loại chủ đề rõ ràng với toán có ứng dụng thực tế, nhóm tiến hành giải thêm tốn khác mục đích cuối làm cho ứng dụng (sẽ trình bày phần mục lớn kế tiếp) hấp dẫn, thu hút người dùng 10 Nhóm định triển khai theo phương pháp Yake Tuy nhiên, Yake có hạn chế từ khố đơi vô nghĩa (not makesense) với người Chúng ta hạn chế việc thơng qua việc xây dựng từ khố/nhãn có sẵn, tiến hành ghép nối vơ nghĩa Yake rút trích vào từ khố/nhãn sẵn có xây dựng 2.2.4 Hệ thống gợi ý tin tức Vấn đề App cần hiển thị viết (tin tức) theo thứ tự phù hợp với sở thích người dùng nhiên phải đảm bảo ưu tiên cho viết mới, bật Vì đặc thù liệu tin tức nên việc áp dụng báo liên quan có phần khơng phù hợp, nhiều gợi ý tin cũ Phương pháp giải Nhóm tự đề xuất phương pháp gợi ý dựa trọng số đánh giá theo: • Các chủ đề người dùng ưa thích (preferences) • Độ (newest first) • Nổi bật (hot news) Trọng số đánh cho chủ đề, từ trọng số ta suy số lượt viết trả từ backend cho client Mỗi chủ đề có: • Base score (10) – trọng số • Bonus score – trọng số thêm, cho phép kiểm sốt độ ưu tiên chủ đề • Piority factor – hệ số ưu tiên tính dựa chủ đề người dùng thích, thống kế hành vi người dùng… • Hate factor – hệ số viết thuộc chủ đề người dùng khơng hứng thú • Like factor – hệ số viết thuộc chủ đề người dùng hứng thú 14 Từ ta có cơng thức tính trọng số cho chủ đề: • topic_weight = base_score * (piority_factor – hate_factor + like_factor) + bonus_score Từ trọng số cho chủ đề ta tính viết trả về: • article_count = topic_weight / total_weights * MAX_ARTICLE_COUNT Sau ta lầy chủ đề article_count viết từ trước, với bật ta đẩy lên đầu Cuối trộn mảng kết lại cách ngẫu nhiên Sau tiến hành điều chỉnh lại piority_factor cách đơn giản cách giảm piority_factor chủ đề lớn tăng piority_factor chủ đề thấp 2.3 Google Cloud Platform Google Cloud Platform (GCP) tảng kỹ thuật điện toán đám mây cho phép cá nhân, tổ chức, doanh nghiệp, quan xây dựng, phát triển, hoạt động ứng dụng hệ thống phần mềm google tạo Các ứng dụng phổ biến người sử dụng nhiều như: Trình duyệt Chrome, ứng dụng đồ Google Map, Google Apps, kênh Youtube… Google Cloud cung cấp tất giải pháp quản lý cho doanh nghiệp, giúp doanh nghiệp phát triển hệ thống cơng nghệ cách xác, đại Bên cạnh đó, GC cịn giúp người dùng doanh nghiệp giải vấn đề như: Development (phát triển), Management (Quản lý), Computer Engine, Mobile, Storage, Big Data… Một điểm khác biệt mà Google Cloud Platform mang lại so với dịch vụ đám mây khác hệ thống DataCenter ln ổn định có độ bảo mật liệu cực cao, giúp bảo vệ liệu người dùng khách hàng trước dịm ngó xâm nhập trái phép hacker công nghệ 15 2.3.1 Cloud Function Là dịch vụ Google Cloud, Cloud Functions cho phép bạn chạy code backend tự động trigger event kích hoạt tính Firebase (Google) Ví dụ upload ảnh lên Google Storage Cloud Functions tự động trigger kiện để xử lí tác vụ Ví dụ resize ảnh chẳng hạn … 2.3.2 Cloud Run Cloud Run môi trường quản lý máy chủ dành cho triển khai phát triển serverless HTTP containers mà không cần lo lắng việc cung cấp machines,, cấu hình cluster autoscaling 2.3.3 Cloud Build Đây sản phẩm GCP nhằm build mã nguồn tất ngơn ngữ lập trình Tăng tơc độ build với VMs Cloud không tốn tài nguyên máy cá nhân Cloud Build hỗ trợ nhiều lựa chọn để build mã nguồn: Docker container,Maven, Gradle, webpack, Go Bazel 2.3.4 Cloud Scheduler Là cơng cụ lên lịch trình cho cơng việc nhằm mục đích cho cơng việc tự động thực vào thời điểm mong muốn Giảm thiểu bước lặp lại thủ công, Cloud Scheduler cho phép chạy công việc tuần, ngày, giờ, khoảng thời gian tuỳ theo người sử dụng 16 XÂY DỰNG ỨNG DỤNG 3.1 Tổng quan 3.1.1 Mô tả chung Tên ứng dụng: Hedlines Ngơn ngữ lập trình sử dụng: Python, Dart (Flutter) Công nghệ sử dụng: Google Cloud Platform, Flutter, Flask 3.1.2 Tính • • • • Đăng nhập/đăng xuất Xem tin tức (theo dạng lướt dọc tin) Tìm kiếm tin tức Cập nhật chủ đề ưa thích 3.2 Backend 3.2.1 Sơ đồ tổnq quan 17 Toàn hệ thống backend triển khai dịch vụ đám mây Google Cloud Platform liệu phục vụ tìm kiếm lưu vào Redis 3.2.2 Giải thích thành phần • Cloud Scheduler: có nhiệm vụ khởi chạy crawler (bộ cào liệu) cách bắn tín hiệu vào Cloud Pub/Sub start_crawl • news_crawler: Cloud Fucntions có nhiệm vụ lấy liệu từ trang báo thông qua RSS (Really Simple Syndication) • articles_handler: Cloud Run có nhiệm vụ xử lí viết lấy Phần xử lí bao gồm lọc trùng, đánh nhãn, thêm thời gian đọc ước tính 18 • hedlines: sau viết xử lí, nhãn/từ khố lưu vào Firestore Redis để phục vụ mục đích sử dụng Ngồi cịn có số Cloud Functions khác: • articles_recommender: phục vụ việc trả viết trang chủ cho app mobile • articles_searcher: phục vụ việc tìm kiếm tin tức 3.2.3 Luồng chạy Mỗi ngày vào 7h 19h (có thể điều chỉnh), Cloud Scheduler kích hoạt khởi chạy news_crawler tiến hành cào viết Sau đó, news_crawler gửi liệu cào cho articles_handler tiến hành xử lí Sau q trình xử lí, articles_handler lưu viết nhãn/từ khoá vào sở liệu Ngồi ra, hệ thống có sử dụng CI/CD để tự động deploy lại dịch vụ có thay đổi thông qua Cloud Build 19 3.3 Mobile app 3.3.1 Màn hình Splash 20 3.3.2 Màn hình Đăng nhập 21 3.3.3 Màn hình Onboarding 22 3.3.4 Màn hình Trang chủ 23 3.3.5 Màn hình Xem chi tiết (bài viết gốc) 24 3.3.6 Màn hình Tìm kiếm 25 3.3.7 Màn hình Hồ sơ người dùng 26 KẾT LUẬN 4.1 Nhận xét • Hồn thành thành cơng việc đề cách hoàn chỉnh, tiến độ phù hợp vói kế hoạch định hướng ban đầu • Được áp dụng kiến thức Trí tuệ Nhân tạo (AI) Máy học (Machine Learning vào ứng dụng thực tế • Hồn thiện ứng dụng Hedlines chạy hoàn toàn ổn định cho người sử dụng cuối (end user) • Có thêm kiến thức dịch vụ đám máy (cloud service) cụ thể Google Cloud Platform áp dụng vào đề tài để xây dựng toàn hệ thống backend 4.2 Hướng phát triển • • • • Hồn thiện app mobile với đầy đủ tính cịn dang dở Mở rộng chủ đề viết (tin tức) nguồn báo Các chủ đề chi tiết, nhỏ Cải thiện hệ thống đề xuất (recommendation system) cách sử dụng Google Analytics, mơ hình Máy học • Thêm phần Tóm tắt tin tức • Thống kê nhãn/từ khoá hot 27 DANH MỤC TÀI LIỆU THAM KHẢO [1] Radim Řehůřek (2021) Doc2Vec Model – gensim Đăng tại: https://radimrehurek.com/gensim/auto_examples/tutorials/run_doc2vec_lee.html# sphx-glr-auto-examples-tutorials-run-doc2vec-lee-py (Truy cập: 09/5/2022) [2] Quoc V Le, Thomas Mikolv (2014) ‘Distributed Representations of Sentences and Documents’, arXiv doi: arXiv:1405.4053v2 [3] Trí tuệ nhân tạo (2019) DOC2VEC – Phương pháp Vector hóa văn Đăng tại: https://trituenhantao.io/kien-thuc/gioi-thieu-ve-doc2vec (Truy cập:09/10/2021) [4] Google.(2022) Cloud Computing Services | Google Cloud Đường dẫn: https://cloud.google.com/ (Truy cập: 15/07/2022) [5] Campos, R., & Mangaravite, V., & Pasquali, A., & Jorge, A., & Nunes, C., & Jatowt, A (2018) A Text Feature Based Automatic Keyword Extraction Method for Single Documents.In Gabriella Pasi et al (Eds.), Lecture Notes in Computer Science Advances in Information Retrieval - 40th European Conference on Information Retrieval (ECIR'18) Grenoble, France March 26 – 29 (Vol 10772(2018), pp 684 691) YAKE [6] RAKE algorithm: Rose, S., Engel, D., Cramer, N., & Cowley, W (2010) Automatic Keyword Extraction from Individual Documents In M W Berry & J Kogan (Eds.), Text Mining: Theory and Applications: John Wiley & Sons [7] Sharma, P., & Li, Y (2019) Self-Supervised Contextual Keyword and Keyphrase Retrieval with Self-Labelling [8] Redis (2022) Documentation | Redis Đường dẫn: https://redis.io/docs/ (Truy cập: 15/07/2022) 28 ... HỌC CÔNG NGHỆ THÔNG TIN Báo Cáo Đồ Án Môn Học ĐỀ TÀI: NHẬN DẠNG CHỦ ĐỀ BÀI VIẾT VÀ ỨNG DỤNG Giảng viên hướng dẫn: ThS Mai Trọng Khang Lớp: SE122.M21 Mơn Học: Đồ án Nhóm sinh viên thực hiện: Dương... tưởng làm ứng dụng Hedlines, ứng dụng gợi ý tin tức phù hợp với người dùng 1.2 Hướng Về hướng áp dụng trí tuệ nhân tạo, đồ án mở rộng tốn khơng sử dụng riêng nhận dạng chủ đề viết mà sử dụng kĩ... không giám sát 10 2.2 Một số toán áp dụng Máy học để giải đồ án 10 2.2.1 Nhận dạng chủ đề viết 10 2.2.2 Lọc viết tương tự 11 2.2.3 Đánh nhãn viết tự động 12 2.2.4 Hệ