Tải bản đầy đủ (.pdf) (55 trang)

Xây dựng Website cung cấp và gợi ý tin tức

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.14 MB, 55 trang )

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 hiện : Đặ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
1. Thông tin về sinh viên
Họ và tên sinh viên: ĐẶNG ĐÌNH DIỆN
Điện thoại liên lạc: 0984881707

Email:

Lớp: IS1 – Việt Nhật – K55

Hệ đào tạo: Đại học chính quy

Tên đề tài: Xây dựng website cung cấp và gợi ý tin tức
Đồ án tốt nghiệp được thực hiện 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

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.
 Thử nghiệm tại địa chỉ />4. Lời cam đoan của sinh viên:
Tôi - Đặng Đình Diện - cam kết ĐATN là công trình nghiên cứu của bản thân tôi
dưới sự hướng dẫn của TS. Vũ Thị Hương Giang.


Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất
kỳ công trình nào khác.


Hà Nội, ngày

tháng 5 năm 2015

Tác giả ĐATN

Đặng Đình Diện

5. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và 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 nay với sự phát triển không ngừng của báo điện tử, có rất nhiều đầu báo khác
nhau, đa dạng về nội dung và hình thức, nhằm đáp ứng nhu cầu của người dùng.
Bởi vậy, hàng ngày có rất nhiều tin tức được đăng tải trên báo điện tử. Chính điều
đó làm cho người dùng khó khăn trong việc tìm đọc các tin tức mà mình quan tâm.
Hệ gợi ý là hệ thống giúp người dùng có thể đưa ra quyết định trong hoàn cảnh có
quá nhiều thống tin. Bởi vậy hệ gợi ý rất hữu ích giúp cho người dùng có thể dễ
dàng hơn trong việc tìm kiếm tin tức của mình.

Từ nhu cầu cần phải có một hệ gợi ý phù hợp cho các website tin tức. ĐATN của
em tập trung xây dựng một 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 trên nội dung và phương pháp
gợi ý lọc cộng tác).
Cấu trúc của luận văn
PHẦN 1: ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI QUYẾT
Trong phần này trình bày các nội dung



Đưa ra các vấn đề và định hướng giải quyết
Hệ gợi ý, các phương pháp gợi ý, nhược điểm của các phương pháp.

PHẦN 2: CÁC KẾT QUẢ ĐẠT ĐƯỢC
Trong phần này trình bày các nội dung





Trình bày chi tiết thiết kế chức năng và cơ sở dữ 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 trên nội dung
và gợi ý lọc cộng tác)
Trình bày kết quả chạy thử nghiệm các chức năng chính
Trình bày đánh giá, nhận xét về đồ án

PHẦN 3:
Trong phần này trình bày các nội dung





Trình bày kết quả đạt được của đồ án tốt nghiệp và những thiếu sót của đồ án
Nêu định hướng phát triển


LỜI CẢM ƠN

Trước tiên, tôi xin gửi lời cảm ơn tới các thầy cô giáo trong trường Đại học Bách
Khoa Hà Nội nói chung, Viện Công Nghệ Thông Tin và Truyền Thông, các thầy cô
trong dự án Việt Nhật nói riêng đã tận tình giảng dạy, truyền đạt cho tôi những kiến
thức, kinh nghiệm quý báu trong suốt thời gian qua.
Đặc biệt, tôi 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 chỉ bảo, hướng dẫn tôi trong suốt quá trình làm đồ án tốt
nghiệp. Trong thời gian được sự hướng dẫn của thầy, tôi không chỉ tiếp thu thêm
nhiều kiến thức bổ ích mà còn học tập được tinh thần làm việc, thái độ nghiên cứu
khoa học nghiêm túc, hiệu quả, đây là những điều rất cần thiết cho tôi trong quá
trình học tập và làm việc sau này.
Cuối cùng, tôi 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 đỡ tôi trong quá trình học tâp, tìm hiểu và hoàn thành đồ án tốt nghiệp.
Tuy nhiên do thời gian và trình độ có hạn nên đồ án này chắc chắn không thiếu khỏi
những thiếu sót, tôi rất mong được sự đóng góp ý kiến quý báu của các thầy, các cô
và toàn thể các bạn.Tôi xin chân thành cảm ơn.

Hà Nội, ngày

tháng 5 năm 2015

Tác giả ĐATN


Đặng Đình Diện


MỤC LỤC
DANH MỤC HÌNH VẼ ..................................................................................................... 1
DANH MỤC BẢNG ......................................................................................................... 2
Danh sách thuật ngữ ..................................................................................................... 4
PHẦN 1: ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP ........................................................ 5
1. Đặt vấn đề ................................................................................................................ 5
2. Các vấn đề cần giải quyết .......................................................................................... 6
2.1. Vấn đề thu thập tin tức ................................................................................................. 6
2.2. Vấn đề gợi ý tin tức....................................................................................................... 6

3. Định hướng giải pháp ............................................................................................... 6
3.1. Định hướng giải pháp cho vấn đề thu thập tin tức ......................................................... 6
3.2. Định hướng giải pháp cho vấn đề gợi ý tin tức ............................................................... 6

4. Cơ sở lý thuyết .......................................................................................................... 6
4.1. Giới thiệu về hệ gợi ý .................................................................................................... 6
4.2. Các phương pháp gợi ý phổ biến ................................................................................... 7
4.1.1. Phương pháp gợi ý dựa trên lọc cộng tác (Collaborative Filtering) ............................................... 7
4.1.2. Phương pháp gợi ý lọc dựa trên nội dung (Content-based Filtering) ............................................ 8
4.1.3. Hệ gợi ý lai ghép (Hybrid Recommender Systems) ....................................................................... 8

PHẦN 2: CÁC KẾT QUẢ ĐẠT ĐƯỢC ............................................................................... 10
1. Thiết kế các chức năng ............................................................................................ 10
1.1. Sơ đồ usecase ............................................................................................................. 10
1.2. Mô tả các chức năng ................................................................................................... 11
1.2.1. Mô tả chức năng đăng nhập ........................................................................................................ 11
1.2.2. Mô tả chức năng đăng xuất ......................................................................................................... 11

1.2.3. Mô tả chức năng đăng ký ............................................................................................................ 11
1.2.4. Mô tả chức năng tìm kiếm nguồn tin tức .................................................................................... 12
1.2.5. Mô tả chức năng tìm kiếm nguồn rss feed .................................................................................. 12
1.2.6. Mô tả chức năng tìm kiếm bộ sưu tập của người dùng khác ...................................................... 13
1.2.7. Mô tả chức năng lựa chọn nguồn tin tức có sẵn ......................................................................... 13
1.2.8. Mô tả chức năng gợi ý tin tức liên quan ...................................................................................... 14
1.2.9. Mô tả chức năng gợi ý nguồn tin tức khác .................................................................................. 14
1.2.10. Mô tả chức năng sắp xếp tin tức ............................................................................................... 15
1.2.11. Mô tả chức năng sắp 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 năng sắp xếp tin tức mới nhất (Most recent) ........................................................ 15
1.2.13. Mô tả chức năng sắp xếp tin tức hot nhất (Top stories) ........................................................... 16
1.2.14. Mô tả chức năng thích tin tức ................................................................................................... 16
1.2.15. Mô tả chức năng bình luận tin tức ............................................................................................ 17


1.2.16. Mô tả chức năng tự tạo bộ sưu tập tin tức của mình ............................................................... 17
1.2.17. Mô tả chức năng lưu lại tin tức để đọc sau ............................................................................... 18
1.2.18. Mô tả chức năng cấu hình nguồn tin tức .................................................................................. 18
1.2.19. Mô tả chức năng thêm nguồn tin tức ........................................................................................ 18
1.2.20. Mô tả chức năng sửa nguồn tin tức .......................................................................................... 19
1.2.21. Mô tả chức năng xóa nguồn tin tức .......................................................................................... 19

2. Thiết kế cơ sở dữ 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

3. 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 mới .............................................................................................. 30

4. Phương pháp thu thập tin tức ................................................................................. 30
4.1. Lý do lựa chọn công nghệ RSS để thu thập tin tức ........................................................ 30
4.2. Cấu trúc của RSS ......................................................................................................... 31


4.3. Quá trình thu thập tin tức .......................................................................................... 33

5. Các phương pháp gợi ý sử dụng trong hệ thống ...................................................... 34

5.1. Kịch bản gợi ý ............................................................................................................. 34
5.2. Đề xuất sử dụng phương pháp gợi ý lai ghép cho chức năng sắp 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 trong quá trình sắp 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 và thuật toán TF-IDF ........................................................................ 36
5.2.3. Phương pháp gợi ý lọc dựa trên 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 trên ............................................................................................ 39

5.3. Đề xuất sử dụng phương pháp gợi ý dựa trên nội dung cho chức năng gợi ý tin tức liên
quan ................................................................................................................................. 40
5.4. Gợi ý các nguồn tin tức khác ....................................................................................... 41

6. Cài đặt và 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 trên localhost (ubuntu) ........................................................ 42
6.4. Chạy thử nghiệm ........................................................................................................ 42
6.4.1. Chạy thử chức năng gợi ý các tin tức liên quan........................................................................... 42
6.4.2. Chạy thử chức năng sắp 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 năng gợi ý nguồn tin tức khác ............................................................................. 44
6.4.4. Chạy thử chức năng thu thập tin tức .......................................................................................... 44
6.4.5. Chạy thử khả năng tính toán thuật toán tf-idf ............................................................................ 45

6.5. Đánh giá ..................................................................................................................... 45

PHẦN 3: KẾT LUẬN ...................................................................................................... 46
1. Kết quả đạt được .................................................................................................... 46
2. 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 ra danh sách sản phẩm có khả năng người dùng thích .................. 7
Hình 2: Sơ đồ usecase ................................................................................................. 10
Hình 3: Sơ đồ thực thể ERD ......................................................................................... 21
Hình 4: Sitemap của 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 mới ................................................................. 30
Hình 13: Quá trình thu thập tin tức .............................................................................. 33
Hình 14: Các pha trong quá trình sắp xếp tin tức theo mức độ tương đồng .................. 35
Hình 15: Quá trình tính các 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 năng gợi ý tin tức liên quan ............................................... 42
Hình 18: Đầu vào chức năng sắp xếp theo mức độ liên quan ........................................ 43
Hình 19: Đầu ra chức năng sắp xếp tin tức liên quan .................................................... 43
Hình 20: Gợi ý các nguồn tin khác ............................................................................... 44
Hình 21: Các tin tức mới đượ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

1



DANH MỤC BẢNG
Bảng 1: Đặc tả chức năng đăng nhập .......................................................................... 11
Bảng 2: Đặc tả chức năng đăng xuất ........................................................................... 11
Bảng 3: Đặc tả chức năng đăng ký .............................................................................. 12
Bảng 4: Đặc tả chức năng tìm kiếm nguồn rss feed ...................................................... 12
Bảng 5: Đặc tả chức năng tìm kiếm bộ sưu tập tin tức của người dùng khác ................ 13
Bảng 6: Đặc tả chức năng lựa chọn nguồn tin tức có sẵn ............................................. 13
Bảng 7: Mô tả chức năng gợi ý tin tức liên quan .......................................................... 14
Bảng 8: Mô tả chức năng gợi ý nguồn tin tức khác ...................................................... 14
Bảng 9: Đặc tả chức năng sắp xếp tin tức theo mức độ liên quan đến người dùng ....... 15
Bảng 10: Đặc tả chức năng sắp xếp tin tức mới nhất ................................................... 16
Bảng 11: Đặc tả chức năng sắp xếp tin tức hot nhất .................................................... 16
Bảng 12: Đặc tả chức năng thích tin tức ...................................................................... 17
Bảng 13: Đặc tả chức năng bình luận tin tức ................................................................ 17
Bảng 14: Đặc tả chức năng tự tạo bộ sưu tập tin tức của mình .................................... 18
Bảng 15: Đặc tả chức năng lưu lại tin tức để đọc sau ................................................... 18
Bảng 16: Đặc tả chức năng thêm nguồn tin tức ........................................................... 19
Bảng 17: Đặc tả chức năng sửa nguồn tin tức .............................................................. 19
Bảng 18: Đặc tả chức năng 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


2


Bảng 29: Mô tả bảng collections_articles..................................................................... 24
Bảng 30: Mô tả bảng collection_subscriptions ............................................................. 25
Bảng 31: Mô tả bảng categories .................................................................................. 25
Bảng 32: Mô tả bảng preferences ................................................................................ 25

Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật

3


Danh sách thuật ngữ
RSS

TF-IDF

CSDL

Rich Site Summary
Một định dạng tập tin thuộc họ XML để chia sẻ tin tức trong
web
Term frequency – Inverse document frequency
Một con số thu được qua thống kê, thể hiện mức độ quan trọng
của từ này trong một văn bản
Cơ sở dữ liệu

Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật


4


PHẦN 1: ĐẶT VẤN ĐỀ VÀ ĐỊNH HƢỚNG GIẢI PHÁP
1. Đặt vấn đề
Báo điện tử hay báo mạng là loại hình báo chí được xây dựng dưới hình thức
một trang web và phát hành dựa trên nền tảng Internet. Nó có các đặc trưng riêng
biệt, đó là tính đa phương tiện, tính thời sự với khả năng cập nhật thông tin nhanh
mới, tính phi định kỳ, và khả năng truyền tải thông tin không hạn chế. Với những
đặc trưng đó mà báo điện tử trở thành kênh truyền thông vô cùng hiệu quả, ngày
càng trở nên phổ biến và phát triển mạnh mẽ. Hiện nay có rất nhiều các trang báo
mạng với sự đa dạng về nội dung xuất hiện, 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 khác), Amazon (gợi ý sản phẩm khác cùng thể loại), Facebook (gợi ý kết
bạn).
Hiện nay có các dịch vụ đọc tin tức thịnh hành trên nền web như yahoo news
hay trên nền di động như ứng dụng flipboard, feedly. Song cũng chỉ dừng lại ở việc
cung cấp các tin tức từ nhiều nguồn khác nhau, chưa giải quyết được khó khăn
trong việc tìm kiếm tin tức của người dùng.
Bởi vậy, để giúp người đọc dễ dàng tìm thấy những tin tức mà họ quan tâm,
em đề 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 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 để 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á” hay “sự ưu tiên” của

người dùng với một sản phẩm hay một đối tượng nào đó.

Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật

6


Hình 1: Hệ gợi ý đưa ra danh sách sản phẩm có khả năng người dùng thích

Hệ gợi ý trở nên phổ biến trong những năm gần đây, và nó được áp dụng
trong nhiều ứng dụng khác nhau. Phổ biến nhất có thể kể đến đó là: phim truyện, tin
tức, sách báo, bài báo khoa học, câu lệnh tìm kiếm, mạng xã hội tags, và các sản
phẩm thông thường.
Hệ gợi ý thường đưa ra danh sách các gợi ý theo một trong hai cách: thông
qua lọc cộng tác hoặc lọc dựa trên nội dung. Lọc cộng tác hướng tới xây dựng một
mô hình từ những hành vi của người dùng trong quá khứ (Như các sản phẩm mua
trước đây, và các đánh giá của người dùng) cũng như dự đoán trước độ tương đồng
giữa hai người dùng. Sau đó sử dụng một mô hình dự đoán các sản phẩm (hoặc
đánh giá cho sản phẩm) mà người dùng có thể thích. Phương pháp lọc dựa trên nội
dung hướng tới việc sử dụng một loạt các đặc tính riêng biệt của sản phẩm để gợi ý
thêm các sản phẩm có đặc tính tương tự. Hai phương pháp này có thể được kết hợp
với nhau trong hệ gợi ý lai ghép.

4.2. Các phƣơng pháp gợi ý phổ biến

4.1.1. Phƣơng pháp gợi ý dựa trên lọc cộng tác (Collaborative Filtering)
Một phương pháp tiếp cận hệ gợi ý được sử dụng rộng rãi là lọc cộng tác
[1] . Phương pháp lọc cộng tác dựa trên việc thu thập và phân tích một lượng lớn
các thông tin từ hành vi, hoạt động hay sở thích của người dùng và dự đoán sản
phẩm mà người dùng thích dựa trên độ tương đồng với người dùng khác. Một ưu

điểm nổi trội của phương pháp gợi ý lọc cộng tác là không phụ thuộc vào nội dung
của sản phẩm, do đó nó có thể đưa ra gợi ý chính xác mà không cần hiểu nội dung
của sản phẩm đó. Rất nhiều thuật toán được sử dụng để tính toán độ tương đồng
giữa người dùng trong hệ gợi ý. Ví dụ như là: k lân cận gần nhất (k-NN), sự tương
quan Pearson.
Phương pháp lọc cộng tác thường gặp phải ba vấn đề:

Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật

7


 Khởi đầu kém (Cold Start): Phương pháp này thường yêu cầu lượng lớn
dữ liệu từ người sử dụng để đưa ra gợi ý, nên khi hệ thống mới được xây
dựng, lượng dữ liệu còn ít, khó có thể đưa ra gợi ý một cách chính xác.
 Khả năng mở rộng (Scalability): Trong rất nhiều môi trường mà hệ thống
có hàng triệu người sử dụng và sản phẩm thì sẽ yêu cầu khả năng tính
toán lớn để đưa ra gợi ý.
 Sự thưa thớt (Sparsity): Số lượng các sản phẩm được bán trên các trang
thương mại điện tử là rất lớn. Tuy nhiên đã số các người dùng thường chỉ
đưa ra đánh giá một tập nhỏ các sản phẩm trong CSDL. Vì thế, thậm chí
các sản phẩm phổ biến nhất cũng chỉ có rất ít đánh giá.
4.1.2. Phƣơng pháp gợi ý lọc dựa trên nội dung (Content-based Filtering)
Một phương pháp phổ biến khác để tiếp cận hệ gợi ý là phương pháp lọc dựa
trên nội dung [1]. Phương pháp lọc dựa trên nội dung dựa trên mô tả về sản phẩm
và sở thích của người dùng. Trọng hệ gợi ý dựa trên nội dung, từ khóa được sử
dụng để mô tả sản phẩm và hồ sơ của người dùng được xây dựng để chỉ là kiểu mà
người dùng thích. Hay nói cách khác, thuật toán này cố gắng đưa ra danh sách gợi ý
mà nó tương đồng với những gì người dùng thích trong quá khứ.
Để tóm tắt được những đặc trưng của sản phẩm trong hệ thống, một thuật

toán biểu diễn sản phẩm sẽ được sử dụng. Thuật toán phổ biến được sử dụng đó là
TF-IDF.
Để tạo hồ sơ của người dùng, hệ thống thường tập trung vào 2 kiểu thống tin
sau: 1. Mô hình về sở thích của người dùng. 2. Lịch sử sử dụng người dùng trong hệ
thống.
Về cơ bản, phương pháp này sử dụng thông tin về sản phẩm (ví dụ như tập
thuộc tính và đặ trưng của sản phẩm) để mô tả sản phẩm đó. Hệ thống tạo hồ sơ của
người dùng dựa trên trọng lượng vector của đặc trưng sản phẩm. Trọng lượng này
biểu thị tầm quan trọng của mỗi đặc trưng, nó được tính toán dựa trên vector bằng
những kỹ thuật khác nhau. Phương pháp tiếp cận sử dụng giá trị trung bình của
vector sản phẩm trong khi các phương pháp phức tạp khác sử dụng các kỹ thuật như
phân lớp Bayes (Bayesian Classifiers), phân tích nhóm (Cluster analysis), Cây
quyết định (Decision trees), mạng thần kinh nhân tạo (artificial neural networks) để
đánh giá khả năng người dùng sẽ thích sản phẩm đó.
Đối với người dùng mới chưa sử dụng hệ thống. Thì dữ liệu về hồ sơ của
người dùng không có, do đó không thể đưa ra đánh giá chính xác được.
4.1.3. Hệ gợi ý lai ghép (Hybrid Recommender Systems)
Nghiên cứu gần đây cho thấy hệ gợi ý lai ghép [1] giữa phương pháp lọc
cộng tác và phương pháp lọc dựa trên nội dung có hiệu quả hơn trong một số trường
Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật

8


hợp. Hệ gợi ý lai ghép có thể cài đặt theo một số cách sau: Hoặc tính toán chỉ số
bằng phương pháp lọc dựa trên nội dung và lọc cộng tác riêng biệt rồi sau đó kết
hợp 2 chỉ số đó với nhau, hoặc băng việc thêm khả năng lọc dựa trên nội dung vào
phương pháp tiếp cận lọc cộng tác, hoặc hợp nhất hai phương pháp vào một mô
hình. Một số nghiên cứu so sánh hiệu quả của hệ gợi ý lai với các phương pháp gợi
ý đơn thuần như lọc cộng tác và lọc dựa trên nội dung, nó chỉ ra rằng hệ gợi ý lai

đưa ra gợi ý chính xác hơn các phương pháp gợi ý đơn thuần. Những phương pháp
này có thể sử dụng để khắc phục một số vấn đề thường gặp như khởi đầu kém hay
vấn đề thưa thớt.

Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật

9


PHẦN 2: CÁC KẾT QUẢ ĐẠT ĐƢỢC
1. Thiết kế các chức năng
1.1. Sơ đồ usecase
Hệ thống có hai tác nhân: Người dùng thông thường và Người quản trị

Hình 2: Sơ đồ usecase

Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật

10


1.2. Mô tả các chức năng
1.2.1. Mô tả chức năng đăng nhập
Thành phần

Mô tả

Tên

Đăng nhập


Tác nhân

Người dùng thông thường và người quản trị

Mô tả về chức Người dùng sử dụng tên đăng nhập và mật khẩu để
năng
tiến hành đăng nhập và sử dụng website
Mục đích

Giúp xác thực người dùng

Điều kiện

Chưa đăng nhập vào hệ thống

Các bước thực Bước 1: Nhập tên người dùng và mật khẩu
hiện chức năng Bước 2: Bấm nút Login
Kết quả

Hiện ra trang chủ website
Bảng 1: Đặc tả chức năng đăng nhập

1.2.2. Mô tả chức năng đăng xuất
Thành phần

Mô tả

Tên


Đăng xuất

Tác nhân

Người dùng thông thường và người quản trị

Mô tả về chức Người dùng thoát khỏi hệ thống
năng
Mục đích
Đăng xuất
Điều kiện

Đã đăng nhập vào hệ thống

Các bước thực Bước 1: Kích vào tên user ở góc phải phía trên màn
hiện chức năng hình
Bước 2: Bấm nút Logout
Kết quả

Thoát ra trang đăng nhập
Bảng 2: Đặc tả chức năng đăng xuất

1.2.3. Mô tả chức năng đăng ký

Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật

11


Thành phần


Mô tả

Tên

Đăng ký

Tác nhân

Người dùng thông thường

Mô tả về chức Người dùng nhập các thông tin: tên, username,
năng
password, email, gender để đăng ký người dùng mới
Mục đích

Để sử dụng hệ thống

Điều kiện

Chưa đăng nhập vào hệ thống

Các bước thực Bước 1: Nhập đầy đủ các thông tin
hiện chức năng Bước 2: Bấm nút Submit
Kết quả

Hiện ra trang chủ website
Bảng 3: Đặc tả chức năng đăng ký

1.2.4. Mô tả chức năng tìm kiếm nguồn tin tức


Chức năng tìm kiếm nguồn tin tức có thể là:
 Tìm kiếm nguồn rss feed
 Tìm kiếm bộ sưu tập của người dùng khác
1.2.5. Mô tả chức năng tìm kiếm nguồn rss feed
Thành phần

Mô tả

Tên

Tìm kiếm nguồn rss feed

Tác nhân

Người dùng thông thường

Mô tả về chức Người dùng tìm kiếm nguồn tin tức mà mình muốn
năng
đọc
Mục đích

Để có thể đọc 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

Các bước thực Bước 1: Kích vào nút “Add News Feeds”
hiện chức năng Bước 2: Nhập từ khóa mà bạn muốn tìm kiếm

Bước 3: Nhấn vào nút GO
Kết quả

Hiện thị ra các nguồn tin mà trong mô tả hoặc tên có
từ khóa đó
Bảng 4: Đặc tả chức năng tìm kiếm nguồn rss feed

Sinh viên thực hiện: Đặng Đình Diện 20101235 Khóa K55 Lớp IS1 Việt Nhật

12


1.2.6. Mô tả chức năng tìm kiếm bộ sƣu tập của ngƣời dùng khác
Thành phần

Mô tả

Tên

Tìm kiếm bộ sưu tập tin tức của người khác

Tác nhân

Người dùng thông thường

Mô tả về chức Người dùng tìm kiếm những bộ sưu tập tin tức do
năng
người khác sưu tầm
Mục đích


Để có thể đọc những bộ sưu tập tin tức được chọn lọc
bởi người khác

Đ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 nút “Add News Feeds”
hiện chức năng Bước 2: Nhập từ khóa mà bạn muốn tìm kiếm
Bước 3: Nhấn vào nút GO
Bước 4: Chọn tab “Collection”
Hiện thị ra các bộ sưu tập mà trong mô tả hoặc tên có
từ khóa đó

Kết quả

Bảng 5: Đặc tả chức năng tìm kiếm bộ sưu tập tin tức của người dùng khác

1.2.7. Mô tả chức năng lựa chọn nguồn tin tức có sẵn
Thành phần

Mô tả

Tên

Lựa chọn nguồn tin tức có sẵn

Tác nhân

Người dùng thông thường


Mô tả về chức Sau khi tìm kiếm nguồn tin tức, người dùng có thể
năng
theo dõi (lựa chọn) nguồn tin tức.
Mục đích

Để có thể đọc 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
Chưa lựa chọn nguồn tin tức này

Các bước thực Bước 1: Tìm kiếm 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 có nội dung
năng
tương đồng nhất 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 khác
Thành phần

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 chức năng hiển thị ở giao diện trang chủ
Kết quả


Hiện 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 độ liên quan đến ngƣời dùng
(Most relevant)
Thành phần

Mô tả

Tên

Sắp xếp tin tức theo mức đọ liên quan đến người dùng

Tác nhân

Người dùng thông thường

Mô tả về chức Sắp xếp các tin tức lại dựa trên phương pháp gợi ý lai

năng
ghép (kết hợp giữa thuật toán gợi ý dựa trên nội dung
và gợi ý lọc cộng tác)
Mục đích

Giúp họ có thể dễ dàng hơn trong việc tìm tin tức mà
họ 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: Người dùng chọn phương pháp sắp xếp
hiện chức năng “Most relevant”.
Kết quả

Hiện thị lại các tin tức dựa trên chỉ cố liên quan, từ
cao đến thấp.

Bảng 9: Đặc tả chức năng sắp xếp tin tức theo mức độ liên quan đến người
dùng

1.2.12. Mô tả chức năng sắp xếp tin tức mới nhất (Most recent)
Thành phần

Mô tả

Tên

Sắp xếp tin tức mới nhất


Tác nhân

Người dùng thông thường

Mô tả về chức Sắp xếp các tin tức dựa trên ngày đăng tin tức
năng
Mục đích
Giúp họ có thể dễ dàng hơn trong việc cập nhật 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

15


mới
Điều kiện

Đã login thành công vào hệ thống

Các bước thực Bước 1: Người dùng chọn phương pháp sắp xếp
hiện chức năng “Most recent”.
Hiện thị lại các tin tức dựa trên ngày đăng tin, mới ở
trên đầu, cũ ở dưới

Kết quả

Bảng 10: Đặc tả chức năng sắp xếp tin tức mới nhất

1.2.13. Mô tả chức năng sắp xếp tin tức hot nhất (Top stories)

Thành phần

Mô tả

Tên

Sắp xếp tin tức hot nhất

Tác nhân

Người dùng thông thường

Mô tả về chức Sắp xếp các tin tức dựa trên số lượt thích và bình luận
năng
Mục đích
Giúp họ có thể dễ dàng hơn trong việc cập nhật tin tức
đang được mọi người 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: Người dùng chọn phương pháp sắp xếp “Top
hiện chức năng stories”.
Hiện thị lại các tin tức dựa trên số lượt thích và bình
luận

Kết quả

Bảng 11: Đặc tả chức năng sắp xếp tin tức hot nhất


1.2.14. Mô tả chức năng thích 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 đó

Các bước thực Bước 1: Chọn một tin tức để đọc

hiện chức năng Bước 2: Nhấn nút like
Kết quả

Nút like chuyển thành icon màu đỏ
Bảng 12: Đặc tả chức năng thích tin tức

1.2.15. Mô tả chức năng bình luận tin tức
Thành phần

Mô tả

Tên

Bình luận tin tức

Tác nhân

Người dùng thông thường

Mô tả về chức Người dùng đưa ra bình luận về 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 đó
Điều kiện

Đã login thành công vào hệ thống

Các bước thực Bước 1: Chọn tab comment
hiện chức năng Bước 2: Nhập bình luận
Bước 3: Nhấn nút GO

Kết quả

Hiện thị bình luận ở tab comment
Bảng 13: Đặc tả chức năng bình luận tin tức

1.2.16. Mô tả chức năng tự tạo bộ sƣu tập tin tức của mình
Thành phần

Mô tả

Tên

Tự tạo bộ sưu tập tin tức của mình

Tác nhân

Người dùng thông thường

Mô tả về chức Người dùng thu thập các tin tức mà họ đã đọc để thêm
năng
vào bộ sưu tập. Để sau đó có thể dễ dàng tìm thấy.
Mục đích

Giúp chính họ có thể lưu lại những tin tức mà họ
thích, và giúp người khác có thể theo dõi bộ sưu tập
của mình

Điều kiện

Đã login thành công 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

17


×