2. Mục đích nội dung của ĐATN: Xây dựng website cung cấp và gợi ý tin tức dựa trên lịch sử đọc tin của người dùng và cộng đồng, để giúp người dùng tìm đễ dàng tìm thấy tin tức mà họ quan tâm. 3. Các nhiệm vụ cụ thể của ĐATN Tìm hiểu công nghệ: cấu trúc của RSS, cách thu thập tin tức qua RSS Feeds sử dụng Google Feed API, tìm hiểu framwork CakePHP. Tìm hiểu về các phương pháp gợi ý: phương pháp gợi ý dựa trên nội dung và phương pháp gợi ý lọc cộng tác, phương pháp gợi ý lai ghép. Cách thức xây dựng hệ gợi ý. Tìm hiểu mô hình không gian vector và thuật toán tính trọng số của từ TFIDF Đề xuất là phương pháp gợi ý lai ghép (kết hợp giữa phương pháp gợi ý dựa trên nội dung và phương pháp gợi ý lọc cộng tác) cho website đọc tin tức RSS Xây dựng website đọc tin tức RSS với những chức năng chính sau o Thu thập tin tức thông qua nguồn tin RSS o Cấu hình nguồn thu thập tin tức o Đưa ra gợi ý các tin tức liên quan o Sắp xếp tin tức theo mức độ liên quan tới người dùng, sắp xếp tin tức mới nhất, sắp xếp tin tức hot nhất.
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ──────── * ─────── ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC NGÀNH CÔNG NGHỆ THÔNG TIN XÂY DỰNG WEBSITE CUNG CẤP VÀ GỢI Ý TIN TỨC Sinh viên thực : Đặng Đình Diện Lớp IS1 Việt Nhật – K55 Giáo viên hướng dẫn: TS Vũ Thị Hƣơng Giang HÀ NỘI 5-2015 PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Thông tin sinh viên Họ tên sinh viên: ĐẶNG ĐÌNH DIỆN Điện thoại liên lạc: 0984881707 Email: dien.hust@gmail.com Lớp: IS1 – Việt Nhật – K55 Hệ đào tạo: Đại học quy Tên đề tài: Xây dựng website cung cấp gợi ý tin tức Đồ án tốt nghiệp thực tại: Trường Đại Học Bách Khoa Hà Nội Thời gian làm ĐATN: Từ ngày 08/2014 đến 05/2015 Mục đích nội dung ĐATN: Xây dựng website cung cấp gợi ý tin tức dựa lịch sử đọc tin người dùng cộng đồng, để giúp người dùng tìm đễ dàng tìm thấy tin tức mà họ quan tâm Các nhiệm vụ cụ thể ĐATN Tìm hiểu công nghệ: cấu trúc RSS, cách thu thập tin tức qua RSS Feeds sử dụng Google Feed API, tìm hiểu framwork CakePHP Tìm hiểu phương pháp gợi ý: phương pháp gợi ý dựa nội dung phương pháp gợi ý lọc cộng tác, phương pháp gợi ý lai ghép Cách thức xây dựng hệ gợi ý Tìm hiểu mô hình không gian vector thuật toán tính trọng số từ TFIDF Đề xuất phương pháp gợi ý lai ghép (kết hợp phương pháp gợi ý dựa nội dung phương pháp gợi ý lọc cộng tác) cho website đọc tin tức RSS Xây dựng website đọc tin tức RSS với chức sau o Thu thập tin tức thông qua nguồn tin RSS o Cấu hình nguồn thu thập tin tức o Đưa gợi ý tin tức liên quan o Sắp xếp tin tức theo mức độ liên quan tới người dùng, xếp tin tức nhất, xếp tin tức hot Thử nghiệm địa http://news247.pe.hu/ Lời cam đoan sinh viên: Tôi - Đặng Đình Diện - cam kết ĐATN công trình nghiên cứu thân hướng dẫn TS Vũ Thị Hương Giang Các kết nêu ĐATN trung thực, chép toàn văn công trình khác Hà Nội, ngày tháng năm 2015 Tác giả ĐATN Đặng Đình Diện Xác nhận giáo viên hướng dẫn mức độ hoàn thành ĐATN cho phép bảo vệ: Hà Nội, ngày tháng năm Giáo viên hướng dẫn TS Vũ Thị Hương Giang TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP Ngày với phát triển không ngừng báo điện tử, có nhiều đầu báo khác nhau, đa dạng nội dung hình thức, nhằm đáp ứng nhu cầu người dùng Bởi vậy, hàng ngày có nhiều tin tức đăng tải báo điện tử Chính điều làm cho người dùng khó khăn việc tìm đọc tin tức mà quan tâm Hệ gợi ý hệ thống giúp người dùng đưa định hoàn cảnh có nhiều thống tin Bởi hệ gợi ý hữu ích giúp cho người dùng dễ dàng việc tìm kiếm tin tức Từ nhu cầu cần phải có hệ gợi ý phù hợp cho website tin tức ĐATN em tập trung xây dựng website thu thập tin tức qua RSS, có sử dụng phương pháp gợi ý lai ghép (kết hợp phương pháp gợi ý dựa nội dung phương pháp gợi ý lọc cộng tác) Cấu trúc luận văn PHẦN 1: ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI QUYẾT Trong phần trình bày nội dung Đưa vấn đề định hướng giải Hệ gợi ý, phương pháp gợi ý, nhược điểm phương pháp PHẦN 2: CÁC KẾT QUẢ ĐẠT ĐƯỢC Trong phần trình bày nội dung Trình bày chi tiết thiết kế chức sở liệu Trình bày hệ gợi ý lai ghép (kết hợp hai phương pháp gợi ý lọc dựa nội dung gợi ý lọc cộng tác) Trình bày kết chạy thử nghiệm chức Trình bày đánh giá, nhận xét đồ án PHẦN 3: Trong phần trình bày nội dung Trình bày kết đạt đồ án tốt nghiệp thiếu sót đồ án Nêu định hướng phát triển LỜI CẢM ƠN Trước tiên, xin gửi lời cảm ơn tới thầy cô giáo trường Đại học Bách Khoa Hà Nội nói chung, Viện Công Nghệ Thông Tin Truyền Thông, thầy cô dự án Việt Nhật nói riêng tận tình giảng dạy, truyền đạt cho kiến thức, kinh nghiệm quý báu suốt thời gian qua Đặc biệt, xin chân thành cảm ơn TS.Vũ Thị Hương Giang - người thầy tận tình giúp đỡ, trực tiếp bảo, hướng dẫn suốt trình làm đồ án tốt nghiệp Trong thời gian hướng dẫn thầy, không tiếp thu thêm nhiều kiến thức bổ ích mà học tập tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc, hiệu quả, điều cần thiết cho trình học tập làm việc sau Cuối cùng, xin gửi lời cảm ơn tới gia đình, bạn bè động viên, đóng góp ý kiến giúp đỡ trình học tâp, tìm hiểu hoàn thành đồ án tốt nghiệp Tuy nhiên thời gian trình độ có hạn nên đồ án chắn không thiếu khỏi thiếu sót, mong đóng góp ý kiến quý báu thầy, cô toàn thể bạn.Tôi xin chân thành cảm ơn Hà Nội, ngày tháng năm 2015 Tác giả ĐATN Đặng Đình Diện MỤC LỤC DANH MỤC HÌNH VẼ DANH MỤC BẢNG Danh sách thuật ngữ PHẦN 1: ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP Đặt vấn đề Các vấn đề cần giải 2.1 Vấn đề thu thập tin tức 2.2 Vấn đề gợi ý tin tức Định hướng giải pháp 3.1 Định hướng giải pháp cho vấn đề thu thập tin tức 3.2 Định hướng giải pháp cho vấn đề gợi ý tin tức Cơ sở lý thuyết 4.1 Giới thiệu hệ gợi ý 4.2 Các phương pháp gợi ý phổ biến 4.1.1 Phương pháp gợi ý dựa lọc cộng tác (Collaborative Filtering) 4.1.2 Phương pháp gợi ý lọc dựa nội dung (Content-based Filtering) 4.1.3 Hệ gợi ý lai ghép (Hybrid Recommender Systems) PHẦN 2: CÁC KẾT QUẢ ĐẠT ĐƯỢC 10 Thiết kế chức 10 1.1 Sơ đồ usecase 10 1.2 Mô tả chức 11 1.2.1 Mô tả chức đăng nhập 11 1.2.2 Mô tả chức đăng xuất 11 1.2.3 Mô tả chức đăng ký 11 1.2.4 Mô tả chức tìm kiếm nguồn tin tức 12 1.2.5 Mô tả chức tìm kiếm nguồn rss feed 12 1.2.6 Mô tả chức tìm kiếm sưu tập người dùng khác 13 1.2.7 Mô tả chức lựa chọn nguồn tin tức có sẵn 13 1.2.8 Mô tả chức gợi ý tin tức liên quan 14 1.2.9 Mô tả chức gợi ý nguồn tin tức khác 14 1.2.10 Mô tả chức xếp tin tức 15 1.2.11 Mô tả chức xếp tin tức theo mức độ liên quan đến người dùng (Most relevant) 15 1.2.12 Mô tả chức xếp tin tức (Most recent) 15 1.2.13 Mô tả chức xếp tin tức hot (Top stories) 16 1.2.14 Mô tả chức thích tin tức 16 1.2.15 Mô tả chức bình luận tin tức 17 1.2.16 Mô tả chức tự tạo sưu tập tin tức 17 1.2.17 Mô tả chức lưu lại tin tức để đọc sau 18 1.2.18 Mô tả chức cấu hình nguồn tin tức 18 1.2.19 Mô tả chức thêm nguồn tin tức 18 1.2.20 Mô tả chức sửa nguồn tin tức 19 1.2.21 Mô tả chức xóa nguồn tin tức 19 Thiết kế sở liệu 21 2.1 Bảng users 22 2.2 Bảng rss_feeds 22 2.3 Bảng rss_feed_subscriptions 22 2.4 Bảng groups 23 2.5 Bảng articles 23 2.6 Bảng bookmarks 23 2.7 Bảng comments 23 2.8 Bảng liked_items 24 2.9 Bảng read_histories 24 2.10 Bảng collections 24 2.11 Bảng collections_ articles 24 2.12 Bảng collection_subscriptions 25 2.13 Bảng categories 25 2.14 Bảng preferences 25 Thiết kế giao diện 25 3.1 Sitemap 25 3.2 Giao diện người dùng 26 3.2.1 Giao diện trang chủ 26 3.2.2 Giao diện xem chi tiết tin tức 27 3.2.3 Giao diện trang Discover 27 3.2.4 Giao diện trang Search 28 3.2.5 Giao diện trang Your Collection 28 3.2.6 Giao diện trang Manage Subscriptions 29 3.3 Giao diện người quản trị 29 3.3.1 Giao diện quản lý nguồn tin tức 29 3.3.2 Giao diện thêm nguồn tin tức 30 Phương pháp thu thập tin tức 30 4.1 Lý lựa chọn công nghệ RSS để thu thập tin tức 30 4.2 Cấu trúc RSS 31 4.3 Quá trình thu thập tin tức 33 Các phương pháp gợi ý sử dụng hệ thống 34 5.1 Kịch gợi ý 34 5.2 Đề xuất sử dụng phương pháp gợi ý lai ghép cho chức xếp tin tức theo mức độ liên quan đến người dùng (Most Relevant) 35 5.2.1 Các pha trình xếp tin tức theo mức độ liên quan đến người dùng 35 5.2.2 Mô hình không gian vector thuật toán TF-IDF 36 5.2.3 Phương pháp gợi ý lọc dựa nội dung 38 5.2.4 Phương pháp gợi ý lọc cộng tác 39 5.2.5 Hàm kết hợp hai phương pháp 39 5.3 Đề xuất sử dụng phương pháp gợi ý dựa nội dung cho chức gợi ý tin tức liên quan 40 5.4 Gợi ý nguồn tin tức khác 41 Cài đặt thử nghiệm hệ thống 41 6.1 Môi trường cài đặt 41 6.2 Các thư viện sử dụng 42 6.3 Các bước cài đặt website localhost (ubuntu) 42 6.4 Chạy thử nghiệm 42 6.4.1 Chạy thử chức gợi ý tin tức liên quan 42 6.4.2 Chạy thử chức xếp tin tức theo mức độ liên quan tới người dùng 43 6.4.3 Chạy thử chức gợi ý nguồn tin tức khác 44 6.4.4 Chạy thử chức thu thập tin tức 44 6.4.5 Chạy thử khả tính toán thuật toán tf-idf 45 6.5 Đánh giá 45 PHẦN 3: KẾT LUẬN 46 Kết đạt 46 Hướng phát triển 46 TÀI LIỆU THAM KHẢO 47 DANH MỤC HÌNH VẼ Hình 1: Hệ gợi ý đưa danh sách sản phẩm có khả người dùng thích Hình 2: Sơ đồ usecase 10 Hình 3: Sơ đồ thực thể ERD 21 Hình 4: Sitemap website 26 Hình 5: Giao diện trang chủ 26 Hình 6: Giao diện xem chi tiết tin tức 27 Hình 7: Giao diện trang discover 27 Hình 8: Giao diện trang Search 28 Hình 9: Giao diện trang Collection 28 Hình 10: Giao diện trang Manage Subscriptions 29 Hình 11: Giao diện quản lý nguồn tin tức 29 Hình 12: Giao diện thêm nguồn tin tức 30 Hình 13: Quá trình thu thập tin tức 33 Hình 14: Các pha trình xếp tin tức theo mức độ tương đồng 35 Hình 15: Quá trình tính tin tức liên quan 40 Hình 16: Quá trình gợi ý nguồn tin tức khác 41 Hình 17: Thử nghiệm chức gợi ý tin tức liên quan 42 Hình 18: Đầu vào chức xếp theo mức độ liên quan 43 Hình 19: Đầu chức xếp tin tức liên quan 43 Hình 20: Gợi ý nguồn tin khác 44 Hình 21: Các tin tức thêm vào CSDL 45 Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật DANH MỤC BẢNG Bảng 1: Đặc tả chức đăng nhập 11 Bảng 2: Đặc tả chức đăng xuất 11 Bảng 3: Đặc tả chức đăng ký 12 Bảng 4: Đặc tả chức tìm kiếm nguồn rss feed 12 Bảng 5: Đặc tả chức tìm kiếm sưu tập tin tức người dùng khác 13 Bảng 6: Đặc tả chức lựa chọn nguồn tin tức có sẵn 13 Bảng 7: Mô tả chức gợi ý tin tức liên quan 14 Bảng 8: Mô tả chức gợi ý nguồn tin tức khác 14 Bảng 9: Đặc tả chức xếp tin tức theo mức độ liên quan đến người dùng 15 Bảng 10: Đặc tả chức xếp tin tức 16 Bảng 11: Đặc tả chức xếp tin tức hot 16 Bảng 12: Đặc tả chức thích tin tức 17 Bảng 13: Đặc tả chức bình luận tin tức 17 Bảng 14: Đặc tả chức tự tạo sưu tập tin tức 18 Bảng 15: Đặc tả chức lưu lại tin tức để đọc sau 18 Bảng 16: Đặc tả chức thêm nguồn tin tức 19 Bảng 17: Đặc tả chức sửa nguồn tin tức 19 Bảng 18: Đặc tả chức xóa nguồn tin tức 20 Bảng 19 : Mô tả bảng users 22 Bảng 20: Mô tả bảng rss_feeds 22 Bảng 21: Mô tả bảng rss_feed_subscriptions 22 Bảng 22: Mô tả bảng groups 23 Bảng 23 : Mô tả bảng articles 23 Bảng 24: Mô tả bảng bookmarks 23 Bảng 25: Mô tả bảng comments 24 Bảng 26: Mô tả bảng linked_items 24 Bảng 27: Mô tả bảng read_histories 24 Bảng 28: Mô tả bảng collections 24 Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật 4.3 Quá trình thu thập tin tức Hình 13: Quá trình thu thập tin tức Đọc file RSS: Sử dụng Google Feed API [3] để đọc file RSS Gọi đến Google Feed API, trả lại định dạng JSON có cấu trúc sau: feedUrl: Url RSS Feed title: tiêu đề RSS Feed link: Url RSS Feed (mã HTML) description: mô tả RSS Feed author: tác giả RSS Feed entries[] : Mảng báo () RSS Feed Mỗi gồm phần tử sau: o mediaGroup: Chứa kết RSS feed đa phương tiện o title: Tiêu đề báo o link: Link báo o content: mô tả báo, bao gồm mã HTML Thông thường content có link ảnh đại diện cho báo Link ảnh cần phải tách riêng để sử dụng o contentSnippet: Mô tả báo mà loại bỏ mã HTML o publishedDate: Ngày đăng báo Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật 33 o categories[]: Một list tags báo Bóc tách liệu: Sử dụng kết JSON trả về, đưa định dạng khác để dễ dàng sử dụng Trong pha thực việc sau: Tách link ảnh báo (link ảnh gộp chung với mô tả báo, đặt phần tử content ) Chuyển định dạng ngày tháng publishedDate sang định dạng ngày tháng sử dụng CSDL (trong publishedDate sử dụng định dạng DATE_RFC2822, Thu, 28 May 2015 15:09:44 +0700, chuyển định dạng Y-m-d h:i:s, 2015-05-28 15:09:44) Loại bỏ kí tự đặc biệt: Loại bỏ kí tự đặc biệt có tiêu đề mô tả tin tức Loại bỏ tất kí tự đặc biệt sau: „ ? ! : ; [ ] ~ ` “ … < > _ - ( ) \n \ , & > đưa dấu cách thành dấu cách Đưa chữ hoa chữ thường Thống kê tần suất xuất từ: Thông kê tần suất xuất từ có tiêu đề mô tả tin tức Việc giúp cho việc sau tính toán lại trọng số TF-IDF từ nhanh chóng dễ dàng Lƣu vào CSDL: Kiểm tra xem tin tức có CSDL chưa, chưa có lưu vào CSDL (Việc kiểm tra dựa đường link tin tức) Các phƣơng pháp gợi ý sử dụng hệ thống 5.1 Kịch gợi ý Trong hệ thống em đưa kịch gợi ý sau: Sắp xếp tin tức theo mức độ quan tâm đến người dùng: Sử dụng phương pháp gợi ý lai ghép phương pháp lọc cộng tác phương pháp lọc dựa nội dung Phương pháp lọc dựa nội dung dựa lịch sử đọc tin người dùng Phương pháp lọc cộng tác dựa lịch sử đọc tin người dùng khác Đưa gợi ý tin tức liên quan (với tin tức đọc): Sử dụng phương pháp lọc dựa nội dung Đưa tin tức category với tin tức đọc có độ tương đồng lớn Đưa gợi ý nguồn tin tức khác: Thống kê xem người dùng theo dõi nguồn tin nhiều nhất, đưa gợi ý nguồn tin khác category với nguồn tin mà người dùng theo dõi Sắp xếp theo số lượng người theo dõi nguồn tin Và đưa cho người dùng nguồn Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật 34 tin category với người dùng theo dõi, có số lượng người theo dõi nhiều 5.2 Đề xuất sử dụng phƣơng pháp gợi ý lai ghép cho chức xếp tin tức theo mức độ liên quan đến ngƣời dùng (Most Relevant) 5.2.1 Các pha trình xếp tin tức theo mức độ liên quan đến ngƣời dùng Hình 14: Các pha trình xếp tin tức theo mức độ tương đồng Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật 35 5.2.2 Mô hình không gian vector thuật toán TF-IDF Vector space model [4] (Mô hình không gian vector) mô hình đại số (algebraic model) thể thông tin văn vector, phần tử vector thể mức độ quan trọng từ xuất hay không xuất (Bag of words) tài liệu Mô hình biểu diễn văn điểm không gian Euclid nchiều, chiều tương ứng với từ tập hợp từ Phần tử thứ i, di vector văn cho biết số lần mà từ thứ i xuất văn Sự tương đồng hai văn định nghĩa khoảng cách điểm, góc vector không gian Mỗi báo tin tức mô hình hóa dạng vector gồm 10 chiều (Hay nói cách khác 10 từ có trọng số cao nhất) Mỗi chiều từ lấy tiêu đề mô tả báo Mỗi từ không gian vector có trọng số, có nhiều phương pháp xếp hạng khác nhau, tf-idf (term frequency–inverse document frequency) phương pháp phổ biến để đánh giá xếp hạng từ tài liệu Về tf-idf kỹ thuật (cụ thể ranking function) giúp chuyển đổi thông tin dạng văn thành Vector space model thông qua trọng số TF-IDF [5] (Viết tắt thuật ngữ tiếng Anh term frequency – inverse document frequency, từ số thu qua thống kê, thể mức độ quan trọng từ văn TF(Term frequency): tần số xuất từ văn Giả sử số lần từ khóa xuất tài liệu số lần xuất nhiều từ văn Khi đó, – tần số xuất từ khóa tài liệu định nghĩa : Như nói đơn giản TF thương số lần xuất từ văn số lần xuất nhiều từ văn (giá trị thuộc khoảng [0, 1]).Cũng có số tài liệu viết = số từ có tài liệu Tuy nhiên,có vấn đề từ quan trọng từ có tần suất xuất cao Trong ngôn ngữ có từ lặp lặp lại nhiều lần vô nghĩa (ví dụ tiếng Anh a, the, to, of v.v), full-text search n ó gọi stopwords Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật 36 Đối với TF, từ xuất nhiều có điểm cao, từ điểm xếp hạng lại thấp Do cần cách đánh giá khác với từ hiếm, mang nhiều thông tin từ phổ biến văn Ví dụ báo hay văn thông thường, từ “các”, “những” từ xuất nhiều, không mang nhiều ý nghĩa Những từ xuất nhiều nhiều văn bản, trọng số phải thấp hơn, IDF xuất IDF (Inverse document frequency): tần số nghịch từ văn Ý tưởng giảm trọng số từ có TF cao, cách lấy tổng số tài liệu (N) chia cho số tài liệu mà từ xuất hiện.Tính IDF để giảm giá trị từ phổ biến từ có giá trị IDF tập văn Công thức tính từ khóa định nghĩa sau: Trong đó: N tổng số văn gợi ý cho người dùng số văn có chứa từ khóa định = |{ }| Nếu không xuất văn tập mẫu số 0, phép chia cho không hợp lệ, người ta thường thay mẫu thức 1+ Cơ số logarit công thức không thay đổi giá trị từ mà thu hẹp khoảng giá trị từ Vì thay đổi số dẫn đến việc giá trị từ thay đổi số định tỷ lệ trọng lượng với không thay đổi (nói cách khác, thay đổi số không ảnh hưởng đến tỷ lệ giá trị IDF) Tuy nhiên việc thay đổi khoảng giá trị giúp tỷ lệ IDF TF tương đồng TF*IDF: xác định số từ khóa văn ,được xây dựng theo công thức sau: = x Sự kết hợp hai tiêu chuẩn cho biết: tầm quan trọng từ khóa (do TF mang lại) phân biệt từ khóa (do IDF mang lại) Một từ khóa có tầm quan trọng lớn giá trị phải lớn hơn.Việc giúp lọc từ khóa phổ biến giữ lại từ khóa có giá trị cao (từ khoá quan trọng văn đó) Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật 37 Những văn dài có nhiều khả trọng số từ (trong văn dài) cao so với văn ngắn Bởi để ngăn chặn điều đó, ta cần bình thường hóa vector √∑| | Trong T tổng số báo hệ thống Giá trị trọng số này: Cao từ xuất nhiều lần tập nhỏ tài liệu Nhỏ xuất vài lần tài liệu xuất nhiều tài liệu khác Nhỏ từ xuất gần tất tài liệu Độ tƣơng đồng Cosine (cosine similarity) Để đo độ tương đồng tin tức, tin tức phải trích xuất k từ khóa có trọng số cao Mỗi báo thể vector có độ dài k bao gồm k từ khóa có trọng số cao Dưới ví dụ báo s: Content(s) = ( , … ), với , , trọng số từ khóa từ tới k(các trọng số xác định TF-IDF) Dưới ví dụ báo c: Content(c) = ( , … ), với , , trọng số từ khóa từ tới k(các trọng số xác định TF-IDF) Để đo độ tương đồng sử dụng phương pháp cosin ∑ ⃗⃗⃗⃗ ⃗⃗⃗⃗ ⃗⃗⃗⃗ ⃗⃗⃗⃗ || | | || √∑ √∑ 5.2.3 Phƣơng pháp gợi ý lọc dựa nội dung Phương pháp gợi ý lọc dựa nội dung, tính toán độ tương đồng tin tức với lịch sử đọc tin người dùng Ví dụ tin tức cần tính độ tương đồng S, tin tức thể vector ⃗⃗⃗⃗ Người dùng đọc k báo: ⃗⃗⃗⃗ , ⃗⃗⃗⃗ , … ,⃗⃗⃗⃗⃗ Vậy độ tương đồng tin tức S với lịch sử đọc tin tính theo công thức sau: Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật 38 ⃗⃗⃗⃗ ⃗⃗⃗⃗ Trong ⃗⃗⃗⃗ ⃗⃗⃗⃗ ⃗⃗⃗⃗ ⃗⃗⃗⃗⃗ ⃗⃗⃗⃗ ⃗⃗⃗⃗⃗ độ tương đồng báo s báo k 5.2.4 Phƣơng pháp gợi ý lọc cộng tác Trong hệ thống này, em sử dụng phương pháp lọc cộng tác dựa hành vi đọc người dùng khác Và dự đoán tin tức mà người dùng thích dựa độ tương đồng sở thích người dùng Trong thuật toán này, để thể sở thích người dùng, người dùng Ui có tập báo họ đọc Để so sánh độ tương đồng sở thích hai người dùng, ta sử dụng công thức độ tương đồng Jaccard [6] | | | | Để dự đoán khả người dùng Us thích báo A Ta có công thức sau: ∑ Trong khả mà người dùng Us thích báo A k số người dùng đọc báo A độ tương đồng sở thích người dùng Ui Us 5.2.5 Hàm kết hợp hai phƣơng pháp Là hệ gợi ý kết hợp sử dụng hệ gợi ý dựa nội dung hệ gợi ý lọc cộng tác Như nói trên, hệ gợi ý dựa nội dung lọc cộng tác có ưu nhược điểm riêng, để tránh hạn chế phương pháp, ta dùng kết hợp phương pháp Một tập tin tức làm đầu vào cho thuật toán, tin tức đánh giá mức độ quan tâm người dùng với tin tức dựa tiêu chí: Độ tương đồng báo với lịch sử đọc tin người dùng Đánh giá tin tức người khác có sở thích Được tính toán công thức sau Si,new = k1W1 + k2W2 Trong Si,new mức độ liên quan người dùng i với tin tức new W1 độ tương đồng báo với lịch sử đọc tin người dùng Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật 39 W2 điểm dự đoán tin tức mà người dùng thích dựa độ tương đồng sở thích người dùng k1, k2 hệ số Ở hệ thống em chọn mặc định k1 = 0.7 k2 = 0.3 Sau tin tức đánh giá, xếp theo mức độ liên quan đến người dùng từ cao đến thấp đưa cho người dùng 5.3 Đề xuất sử dụng phƣơng pháp gợi ý dựa nội dung cho chức gợi ý tin tức liên quan Hình 15: Quá trình tính tin tức liên quan Ví dụ tin tức cần tính độ tương đồng S, tin tức thể vector ⃗⃗⃗⃗ Bƣớc 1: Lấy k báo có category với báo ⃗⃗⃗⃗ : ⃗⃗⃗⃗ , ⃗⃗⃗⃗ , … ,⃗⃗⃗⃗⃗ Bƣớc 2: Tính độ tương đồng Vậy độ tương đồng tin tức S với lịch sử đọc tin tính theo công thức sau: ⃗⃗⃗⃗ ⃗⃗⃗⃗⃗ ⃗⃗⃗⃗ ⃗⃗⃗⃗⃗ Trong ⃗⃗⃗⃗ ⃗⃗⃗⃗⃗ độ tương đồng báo s báo k Được tính theo công thức cosin Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật 40 Bƣớc 3: Sắp xếp lại độ tương đồng từ cao đến thấp Lấy báo có độ tương đồng cao 5.4 Gợi ý nguồn tin tức khác Hình 16: Quá trình gợi ý nguồn tin tức khác Bƣớc 1: Tìm category mà người dùng theo dõi nhiều nhất, người dùng chưa theo dõi nguồn tin nào, đưa gợi ý nguồn có số người theo dõi nhiều Bƣớc 2: Lấy danh sách nguồn tin có category với nguồn tin mà người dùng theo dõi nhiều Bƣớc 3: Sắp xếp lại nguồn tin theo số người theo dõi Lấy nguồn tin có số người theo dõi nhiều Nếu số nguồn tin nhỏ có đưa gợi ý nhiêu Cài đặt thử nghiệm hệ thống 6.1 Môi trƣờng cài đặt Hệ thống triển khai trên: Hệ điều hành Ubuntu 13.10 Ram 2GB Chip Intel core i5, 2.4 GHz Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật 41 Web server: Apache 2.4.6 (Ubuntu) Cơ sở liệu: MySQL 5.5.37 Ngôn ngữ PHP version 5.5.3 6.2 Các thƣ viện sử dụng Để hoàn thành đồ án em sử dụng thư viện: Thư viện Jquery, đường dẫn download thư viện: https://jquery.com/download/ Thư viện Google Feed API để đọc RSS, đường dẫn download thư viện: https://www.google.com/jsapi 6.3 Các bƣớc cài đặt website localhost (ubuntu) Giải nén file mã nguồn, copy source code vào var/www Gõ lệnh cd /var/www Cấp quyền truy cập câu lệnh chmod 777 -R flushvideo.com Import sở liệu với tên news247 Config cài đặt sở liệu news247/app/Config/database.php Vào trình duyệt gõ localhost/news247/index.php 6.4 Chạy thử nghiệm 6.4.1 Chạy thử chức gợi ý tin tức liên quan Đầu vào: Một tin tức người dùng đọc: Đầu ra: Đưa tin tức có độ tương đồng lớn Kịch bản: Kích vào tin tức để đọc, trang xem tin tức chi tiết Hình 17: Thử nghiệm chức gợi ý tin tức liên quan Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật 42 6.4.2 Chạy thử chức xếp tin tức theo mức độ liên quan tới ngƣời dùng Đầu vào: Một tập tin tức cần xếp theo mức độ liên quan đến người dùng Lịch sử đọc tin người dùng Lịch sử đọc tin cộng đồng Hiện hệ thống em chưa thử nghiệm thực tế nên chưa có lịch sử đọc tin người dùng khác Hình 18: Đầu vào chức xếp theo mức độ liên quan Đầu ra: Sắp xếp lại tập tin tức theo mức độ liên quan đến người dùng Kịch bản: Vào trang web, kích vào đọc tin tức trên, refesh trang chủ Nó xếp lại theo mức độ liên quan đến người dùng Hình 19: Đầu chức xếp tin tức liên quan Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật 43 6.4.3 Chạy thử chức gợi ý nguồn tin tức khác Đầu vào: Danh sách nguồn tin mà người dùng theo dõi Đầu ra: Đưa tối đa gợi ý nguồn tin khác có category với nguồn tin mà người dùng theo dõi, có số người đọc nhiều Kịch bản: Vào Discover để thêm nguồn tin thao – vnexpress giới – vnexpress Gợi ý nguồn tin tức khác trang chủ Đưa nguồn tin dân trí – giới, dân trí – thể thao Cùng category với nguồn tin tức người dùng theo dõi Hình 20: Gợi ý nguồn tin khác 6.4.4 Chạy thử chức thu thập tin tức Đầu vào: Thu thập tin tức 22 nguồn tin Đầu ra: Thêm vào CSDL tin tức 22 nguồn tin Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật 44 Hình 21: Các tin tức thêm vào CSDL Thời gian thực trình thu thập tin tức 49.265 (s) Thu thập thêm 571 tin tức 6.4.5 Chạy thử khả tính toán thuật toán tf-idf Đầu vào: 2108 tin tức Đẩu ra: Các tin tức tính toán để đưa vector tin tức gồm 10 từ có trọng số cao (trong tiêu đề mô tả tin tức) Thời gian thực hiện: 82.149 (s) 6.5 Đánh giá Ưu điểm: Chức xếp tin tức theo mức độ liên quan đến người dùng tính toán nhanh (2s) đưa kết xác Chức gợi ý tin tức liên quan chức gợi ý nguồn tin khác đưa kết khả quan, tin cậy Nhược điểm: Thời gian tính toán thuật toán tf-idf lâu Do người quản trị thu thập thêm tin tức mới, cần chạy thuật toán tf-idf lúc Nếu không lần đưa gợi ý đến vài phút Như người dùng có trải nghiệm tệ hệ thống Khi thực việc thu thập tin tức tình toán thuật toán tf-idf, người dùng truy cập vào hệ thống Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật 45 PHẦN 3: KẾT LUẬN Kết đạt đƣợc Trong trình thực đồ án em đạt kết sau đây: Tìm hiểu cấu trúc RSS, cách thu thập tin tức công nghệ RSS Tìm hiểu hệ gợi ý phương pháp gợi ý dựa nội dung, phương pháp gợi ý lọc cộng tác gợi ý lai ghép Tìm hiểu mô hình không gian vector thuật toán tính trọng số từ TFIDF Tìm hiểu ngôn ngữ lập trình php framwork cakephp Từ kiến thức em tìm hiểu được, em xây dựng thành công website đọc tin tức RSS có sử dụng hệ gợi ý Hoàn thành chức sau: thu thập tin tức qua RSS, gợi ý tin tức liên quan, xếp tin tức theo mức độ liên quan đến người dùng, xếp tin tức nhất, xếp tin tức hot nhất, cấu hình nguồn tin tức Tuy nhiên đồ án nhiều thiếu sót hạn chế, cụ thể sau: Thời gian chạy thuật toán gợi ý chậm Nguồn tin tức giới hạn Do chạy thử nghiệm nên chưa thu thập đánh giá người dùng website Hƣớng phát triển Để website hoàn thiện nữa, em xin đề xuất hướng phát triển sau Nghiên cứu mở rộng phương pháp gợi ý khác Cải thiện tốc độ tính toán thuật toán Xây dựng giao diện website cho di động Thêm nhiều nguồn tin tức Có nhiều phiên cho nước khác Do thời gian tìm hiểu, nghiên cứu, thực đồ án có hạn, với hạn chế kiến thức chuyên môn lẫn kinh nghiệm thực tiễn nên đồ án dừng lại việc tìm hiểu lí thuyết xây dựng hệ thống bản, đơn giản, đồ án tốt nghiệp tránh sai sót Tôi mong có ý kiến đánh giá, góp ý thầy cô bạn để đồ án thêm hoàn thiện Một lần nữa, xin chân thành cảm ơn TS.Vũ Thị Hương Giang tạo điều kiện giúp đỡ suốt trình làm đồ án Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật 46 TÀI LIỆU THAM KHẢO [1] Wikipedia, Recommender system, URL: http://en.wikipedia.org/wiki/Recommender_system#cite_note-Breese98-14 , last visited May 2015 [2] James Lewin, Các nguồn cung cấp nội dung RSS 2.0 (RSS feed), URL: http://www.ibm.com/developerworks/vn/library/webservices/201301/x-rss20/ , last visited May 2015 [2] Google, Google Feed API, URL: https://developers.google.com/feed/, last visited May 2015 [4] Tìm hiểu mô hình không gian vector, URL: http://butchiso.com/2013/10/timhieu-ve-mo-hinh-khong-gian-vector.html, last visited May 2015 [5] Wikipedia, Tf-idf, URL: http://vi.wikipedia.org/wiki/Tf%E2%80%93idf [6] Wikipedia, Jaccard index, URL: http://en.wikipedia.org/wiki/Jaccard_index , last visited May 2015 Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật 47 [...]... xuất xây dựng hệ gợi ý sử dụng phương pháp gợi ý lai ghép (kết hợp giữa phương pháp gợi ý dựa trên nội dung và phương pháp gợi ý lọc cộng tác) nhằm sắp xếp lại các tin tức theo mức độ liên quan đến người dùng Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật 5 2 Các vấn đề cần giải quyết 2.1 Vấn đề thu thập tin tức Làm thế nào để thu thập tin tức 2.2 Vấn đề gợi ý tin tức Gợi ý tin. .. với tin tức đang đọc được đưa ra, nhằm gợi ý cho người dùng Mục đích Giúp người dùng dễ tìm thấy tin tức mà mình quan tâm Điều kiện Đã login thành công vào hệ thống Các bước thực Bước 1: Kích vào đọc một tin tức bất kỳ hiện chức năng Hiện thị ra các tin tức có độ tương đồng lớn nhất với tin tức đang đọc Kết quả Bảng 7: Mô tả chức năng gợi ý tin tức liên quan 1.2.9 Mô tả chức năng gợi ý nguồn tin tức. .. bookmarks sẽ chuyển sang icon đã bookmarks, và trong Bookmarks sẽ thêm tin tức này Bảng 15: Đặc tả chức năng lưu lại tin tức để đọc sau 1.2.18 Mô tả chức năng cấu hình nguồn tin tức Chức năng quản lý nguồn tin tức có thể là: Thêm nguồn tin tức Sửa nguồn tin tức Xóa nguồn tin tức 1.2.19 Mô tả chức năng thêm nguồn tin tức Thành phần Mô tả Tên Thêm nguồn tin tức Tác nhân Người quản trị Sinh viên thực... tin tức Gợi ý tin tức như thế nào để giúp người dùng dễ dàng hơn trong việc tìm kiếm tin tức mà mình quan tâm 3 Định hƣớng giải pháp 3.1 Định hƣớng giải pháp cho vấn đề thu thập tin tức Làm thế nào để thu thập tin tức: Việc thu thập tin tức sẽ dựa trên công nghệ RSS Sử dụng Google Feed API để đọc file RSS, rồi lưu vào CSDL 3.2 Định hƣớng giải pháp cho vấn đề gợi ý tin tức Gợi ý tin tức như thế nào... bởi vậy lượng tin tức được đăng lên hằng ngày vô cùng lớn Điều này gây nhiều khó khăn cho người dùng trong việc tìm kiếm và đọc những tin tức mà mình quan tâm Hệ gợi ý được sử dụng rộng rãi để giải quyết vấn đề thông tin quá tải Hệ gợi ý có vai trò đưa ra gợi ý, những thứ mà người dùng có khả năng thích Chúng ta có thể dễ dàng bắt gặp hệ gợi ý trên một số website nổi tiếng như Youtube (gợi ý xem video... thị ra các nguồn tin ở giao diện trang chủ Bảng 8: Mô tả chức năng gợi ý nguồn tin tức khác Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật 14 1.2.10 Mô tả chức năng sắp xếp tin tức Chức năng sắp xếp tin tức có thể là: Sắp xếp tin tức theo mức độ liên quan đến người dùng Sắp xếp tin tức hot nhất Sắp xếp tin tức mới nhất 1.2.11 Mô tả chức năng sắp xếp tin tức theo mức độ... nào để giúp người dùng dễ dàng hơn trong việc tìm kiếm tin tức mà mình quan tâm: Để giải quyết bài toán này, hệ thống gợi ý trong đồ án sẽ kết hợp hai phương pháp gợi ý, đó là gợi ý dựa trên nội dung và gợi ý dựa trên lọc cộng tác 4 Cơ sở lý thuyết 4.1 Giới thiệu về hệ gợi ý Hệ gợi ý (Recommender Systems) [1] là một phân lớp của hệ thống lọc thông tin mà nó sẽ tìm cách dự đoán trước được “đánh giá”... nguồn tin hiện chức năng Bước 2: Nhấn vào nút follow Kết quả Nhận thông báo thành công Bảng 6: Đặc tả chức năng lựa chọn nguồn tin tức có sẵn Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật 13 1.2.8 Mô tả chức năng gợi ý tin tức liên quan Thành phần Mô tả Tên Gợi ý nguồn tin tức liên quan Tác nhân Người dùng thông thường Mô tả về chức Khi người dùng đọc 1 tin tức, thì 3 tin tức. .. tin tức Thành phần Mô tả Tên Thích tin tức Tác nhân Người dùng thông thường Mô tả về chức Người dùng thích tin tức đang đọc năng Mục đích Giúp người dùng thể hiện quan điểm về tin tức đó Và giúp hệ thống có thể tính toán gợi ý dựa trên phương pháp gợi ý lọc cộng tác Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật 16 Điều kiện Đã login thành công vào hệ thống Chưa thích tin tức. .. Mô tả Tên Gợi ý nguồn tin tức khác Tác nhân Người dùng thông thường Mô tả về chức Đưa ra gợi ý các nguồn tin tức khác có cùng thể loại năng với những nguồn tin mà người dùng đang theo dõi Mục đích Để có thể giúp người đọc tìm thấy những nguồn tin mà mình quan tâm Điều kiện Đã login thành công vào hệ thống Và chưa lựa chọn nguồn tin đó Các bước thực Không phải làm gì cả Các nguồn tin được gợi ý sẽ hiện ... Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật 20 Thiết kế sở liệu Hình 3: Sơ đồ thực thể ERD Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật 21 2.1... khác Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật 26 3.2.2 Giao diện xem chi tiết tin tức Hình 6: Giao diện xem chi tiết tin tức Trong giao diện Người dùng xem tin tức... Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật 28 3.2.6 Giao diện trang Manage Subscriptions Hình 10: Giao diện trang Manage Subscriptions Giao diện để quản lý nguồn