MỤC LỤC LỜI CAM ĐOAN MỤC LỤC DANH MỤC CÁC TỪ VIẾT TẮT DANH MỤC HÌNH VẼ LỜI MỞ ĐẦU 1 CHƯƠNG 1: TỔNG QUAN VỀ FORUM VÀ HỆ THỐNG TƯ VẤN BÀI VIẾT TRÊN FORUM 3 1.1. Tổng quan về forum 3 1.1.1. Forum và những đặc điểm của nó 3 1.1.2. Một số thành phần cơ bản của forum 4 1.1.3. Mối quan hệ giữa các thành phần trong forum 6 1.2. Hệ thống tư vấn bài viết trên forum 7 1.2.1. Tổng quan về một hệ tư vấn 7 1.2.2. Một số phương pháp tư vấn thông dụng 8 1.2.3. Phương pháp tư vấn bài viết dựa trên nội dung 12 CHƯƠNG 2: PHƯƠNG PHÁP PHÂN TÍCH BÀI VIẾT, TƯ VẤN TRẢ LỜI DỰA TRÊN NỘI DUNG 14 2.1. Nguyên tắc chung 14 2.1.1. Bài toán tư vấn bài viết dựa trên nội dung 14 2.1.2. Hướng giải quyết 15 2.2. Khảo sát các phương pháp phân tích câu hỏi cho các loại câu hỏi khác nhau 17 2.2.1. Câu hỏi đơn giản (factualbase) 17 2.2.2. Câu hỏi định nghĩa (definition question) 20 2.2.3. Câu hỏi phức tạp, có ràng buộc về thời gian 21 2.3. Một số phương pháp xác định loại câu hỏi 22 2.3.1. Phương pháp xác định loại câu hỏi sử dụng kĩ thuật xử lý NN tự nhiên 22 2.3.2. Phương pháp xác định loại câu hỏi sử dụng mẫu quan hệ 24 CHƯƠNG 3: PHÁT TRIỂN HỆ THỐNG TRẢ LỜI, TƯ VẤN 27 BÀI VIẾT TRÊN DIỄN ĐÀN 27 3.1. Hệ thống trả lời, tư vấn bài viết trên diễn đàn 27 3.2. Phân tích hệ thống trả lời, tư vấn bài viết trên diễn đàn 27 3.2.1. Đặc tả hệ thống 27 3.2.2. Sơ đồ chức năng hệ thống 28 3.2.3. Biểu đồ Usecase tổng quát 28 3.2.4. Biểu đồ phân rã chức năng 29 3.2.5. Biểu đồ tuần tự 30 3.3. Nền tảng cài đặt hệ thống 32 3.4. Giao diện chương trình 38 KẾT LUẬN 40 TÀI LIỆU THAM KHẢO 41
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN THỊ KIỀU TRANG
XÂY DỰNG HỆ THỐNG TƯ VẤN BÀI VIẾT TRÊN FORUM CHO NGƯỜI DÙNG TRÊN CƠ SỞ
Trang 3Tôi xin cam đoan đây là sản phẩm nghiên cứu của bản thân, được xuấtphát từ yêu cầu bài toán phát sinh trong công việc để hình thành hướngnghiên cứu được thực hiện dưới sự hướng dẫn của giáo viên hướng dẫnTS.Hà Mạnh Đào Mọi sự tham khảo sử dụng trong đồ án đều được trích dẫncác nguồn tài liệu trong báo cáo và danh mục tài liệu tham khảo Các sao chépkhông hợp lệ, vi phạm quy chế của nhà trường, tôi xin hoàn toàn chịu tráchnhiệm.
Hà Nội, ngày tháng 9 năm 2016
Người cam đoan
Trang 4Để có thể hoàn thành được đồ án này, em xin chân thành cảm ơn cácthầy cô trong khoa Công nghệ thông tin – Trường Đại học Tài nguyên và Môitrường Hà Nội đã dạy dỗ em trong suốt bốn năm học vừa qua.
Em xin gửi lời cảm ơn chân thành nhất tời thầy TS Hà Mạnh Đào làngười đã trực tiếp hướng dẫn và chỉ bảo tận tình em trong quá trình làm đồ ánnày Em đặc biệt cảm ơn thầy vì đã truyền đạt cho em rất nhiều kiến thức vàkinh nghiệm trong qúa trình làm đồ án Em xin cảm ơn thầy đã tạo cho emmột điều kiện làm đồ án tốt nhất có thể
Cuối cùng, em vô cùng cảm ơn tất cả thành viên trong gia đình, tất cảbạn bè; những người đã cho em sự động viên nhiệt tình nhất trong quá trìnhlàm đồ án này
Hà Nội, tháng 06 năm 2016
Nguyễn Thị Kiều Trang
Trang 5LỜI CAM ĐOAN
MỤC LỤC
DANH MỤC CÁC TỪ VIẾT TẮT
DANH MỤC HÌNH VẼ
LỜI MỞ ĐẦU 1
CHƯƠNG 1: TỔNG QUAN VỀ FORUM VÀ HỆ THỐNG TƯ VẤN BÀI VIẾT TRÊN FORUM 3
1.1 Tổng quan về forum 3
1.1.1 Forum và những đặc điểm của nó 3
1.1.2 Một số thành phần cơ bản của forum 4
1.1.3 Mối quan hệ giữa các thành phần trong forum 6
1.2 Hệ thống tư vấn bài viết trên forum 7
1.2.1 Tổng quan về một hệ tư vấn 7
1.2.2 Một số phương pháp tư vấn thông dụng 8
1.2.3 Phương pháp tư vấn bài viết dựa trên nội dung 12
CHƯƠNG 2: PHƯƠNG PHÁP PHÂN TÍCH BÀI VIẾT, TƯ VẤN TRẢ LỜI DỰA TRÊN NỘI DUNG 14
2.1 Nguyên tắc chung 14
2.1.1 Bài toán tư vấn bài viết dựa trên nội dung 14
2.1.2 Hướng giải quyết 15
2.2 Khảo sát các phương pháp phân tích câu hỏi cho các loại câu hỏi khác nhau 17
2.2.1 Câu hỏi đơn giản (factual-base) 17
2.2.2 Câu hỏi định nghĩa (definition question) 20
2.2.3 Câu hỏi phức tạp, có ràng buộc về thời gian 21
2.3 Một số phương pháp xác định loại câu hỏi 22
Trang 62.3.2 Phương pháp xác định loại câu hỏi sử dụng mẫu quan hệ 24
CHƯƠNG 3: PHÁT TRIỂN HỆ THỐNG TRẢ LỜI, TƯ VẤN 27
BÀI VIẾT TRÊN DIỄN ĐÀN 27
3.1 Hệ thống trả lời, tư vấn bài viết trên diễn đàn 27
3.2 Phân tích hệ thống trả lời, tư vấn bài viết trên diễn đàn 27
3.2.1 Đặc tả hệ thống 27
3.2.2 Sơ đồ chức năng hệ thống 28
3.2.3 Biểu đồ Use-case tổng quát 28
3.2.4 Biểu đồ phân rã chức năng 29
3.2.5 Biểu đồ tuần tự 30
3.3 Nền tảng cài đặt hệ thống 32
3.4 Giao diện chương trình 38
KẾT LUẬN 40
TÀI LIỆU THAM KHẢO 41
Trang 7Từ viết tắt Từ đầy đủ
LDA Latent Dirichlet Allocation
LSA Latent Semantic Analysis
pLSA Probabilistic Latent Semantic Analysis
TF-IDF Term Frequently – Invert Document Frequently
Trang 9có ích trên hệ thống Web Bởi có hàng tỷ người dùng sử dụng internet mỗingày, lượng thông tin mà họ tạo ra là vô cùng lớn từ những đoạn status, tweettrên các mạng xã hội, những hình ảnh, đoạn video trên những trang chia sẻảnh, video, đến những bài viết trên các forum.
Một trong những tác vụ quan trọng của việc tìm kiếm và thu thập thôngtin là việc tư vấn nội dung cần thiết cho người dùng internet Nhiệm vụ củaviệc tư vấn là đưa ra cho người dùng một danh sách các đối tượng mà có thểngười dùng sẽ quan tâm từ một tập hợp những đối tượng hỗn độn có được từcác trang web Đã có rất nhiều nghiên cứu được thực hiện để tìm ra phươngpháp tư vấn hiệu quả Một số phương pháp đã được tìm ra và cho kết quả tốtnhư: phương pháp lọc cộng tác, phương pháp lọc theo nội dung, phương pháplọc dựa trên tri thức và phương pháp lai giữa các phương pháp trên Hiện tạichưa có một nghiên cứu cụ thể nào cho vấn đề tư vấn bài viết cho người dungtrên forum, trong khi đó các forum hiện nay và trước đây là một trong nhữngnguồn thông tin quan trọng và phổ biến của hệ thống website Ứng dụngnhững kết quả trên, Đồ án này sẽ đi xây dựng một phương pháp tư vấn bài
Trang 10viết cho người dùng trên forum dựa trên nội dung, bên cạnh đó là viết ra mộtứng dụng tư vấn bài viết cho người dùng trên forum.
Do đó, nhiệm vụ cụ thể của đồ án sẽ là đi xây dựng một phương pháp
tư vấn bài viết cho người dùng của các forum: đầu tiên sẽ là phân tích bài toán
để hiểu được những việc cần làm, sau đó là lựa chọn phương pháp tư vấnthích hợp cho hệ tư vấn cho bài viết, tiếp đến là thu thập thông tin và huấnluyện bộ dữ liệu, cuối cùng là tính toán và đánh giá độ chính xác của phươngpháp tư vấn Kết quả của đồ án là xây dựng được một hệ thống tư vấn bài viếtcho người dùng và có thể triển khai hệ thống đó thành một ứng dụng cụ thểtrên nền web application hoặc window application
Nội dung đồ án gồm 3 chương:
Chương 1 – Tổng quan về forum và hệ thống tư vấn bài viết trênforum: nội dung của chương này là đưa ra cái nhìn sơ qua về các thành phầntrong một forum, rồi từ đó xây dựng nên những ý tưởng đầu tiên về một hệ tưvấn bài viết trên forum và lựa chọn phương pháp tư vấn sẽ sử dụng cho hệthống
Chương 2 – Phương pháp phân tích bài viết, tư vấn trả lời câu hỏi trêndiễn đàn
Chương 3 – Phát triển hệ thống trả lời, tư vấn bài viết trên diễn đàn
Trang 11CHƯƠNG 1: TỔNG QUAN VỀ FORUM VÀ HỆ THỐNG TƯ VẤN BÀI
VIẾT TRÊN FORUM 1.1 Tổng quan về forum
1.1.1 Forum và những đặc điểm của nó
Có rất nhiều cách nhìn nhận khác nhau về một forum Có người nóiforum là một bảng tin, hay một bảng các thông báo Trong khi đó có người lạicho rằng forum là một danh sách các thảo luận hay một nhóm các thảo luận.Tuy nhiên có thể mô tả về một forum như sau: forum là nơi một trang thảoluận trực tuyến, tại đó mỗi người dùng có thể tạo ra một cuộc thảo luận (haycòn gọi là một thread) bằng cách đăng một đoạn tin lên trên forum, và đăng ýkiến bình luận vào một cuộc thảo luận khác Một forum có cấu trúc dạng cây.Trong đó, mỗi forum lại bao gồm nhiều subforum, mỗi subforum chứa nhiềuchủ đề khác nhau Mỗi chủ đề lại chứa nhiều thread khác nhau, các threadđược bình luận bởi nhiều người dùng
Tùy vào từng forum mà người dùng khi bình luận hoặc tạo một threadmới có cần phải đăng nhập vào hệ thống hay không Hầu hết các forum hiệnnay đều yêu cầu người dùng đăng nhập trước khi tạo thread hoặc viết bìnhluận vào thread Tùy vào mức độ truy nhập của người dùng, một thread đượcđăng bởi người dùng cần phải được sự chấp nhận của người quản lý forumhay không Người dùng có thể bình luận vào các thread ở những thời điểmkhác nhau, mà không cần thiết tất cả người dùng phải online
Forum có nhiều điểm khác biệt so với các website khác như:
- So với một hòm thư điện tử: cả hai đều là những trang web chứa danhsách các thảo luận của người dùng, tuy nhiên hòm thư điện tử sẽ tự động gửinhững phản hồi tới những người đang tham gia cuộc thảo luận Trong khi đó,một forum yêu cầu người dùng phải truy cập vào trang forum để đọc toàn bộ
Trang 12thread và các phản hồi của bài viết Do đó người dùng có thể bỏ lỡ nhữngphản hồi của những thread mà họ quan tâm
- So với wiki: cả hai đều là những nguồn thông tin quan trọng trêninternet Tuy nhiên wiki cho phép người dùng có thể sửa nội dung (kể cả nộidung của người khác viết) Trong khi đó những thao tác trên nội dung củaforum được giới hạn bởi người quản lý trang web và người đăng nội dung đó
- So với các phòng chat và trao đổi tin nhắn: cả hai đều là cuộc thảoluận của hai hay nhiều người về một chủ đề nào đó Tuy nhiên, forum khácphòng chat ở chỗ những người dùng không phải online đồng thời cùng lúc đểgửi và nhận phản hồi, những phản hồi đã được đăng lên forum có thể đượcđọc bởi tất cả mọi người dùng kể cả khi cuộc thảo luận đã kết thúc
Một forum được cấu tạo nên từ nhiều thành phần khác nhau như: ngườidùng, bài viết và bình luận Phần tiếp theo sẽ trình bày về các thành phần này
và mối quan hệ giữa chúng
1.1.2 Một số thành phần cơ bản của forum
1.1.2.1 Người dùng
Đối tượng người dùng chính là đối tượng cần xem xét để có thể đưa ra
tư vấn cho họ Người dùng sẽ có một số thông tin có ích như sau:
Tên Người dùng: Thành phần này giúp ta phân biệt các người dùng
với nhau Đây là phần tử định danh cho mỗi một người dùng
Số bài viết của người dùng: Thành phần này rất có ích để đánh giá độ
tin cậy của một bài báo Nếu người dùng đăng nhiều bài cũng có thể là anh ta
có kinh nghiệm và do đó mức độ hấp dẫn của bài báo cáo hơn
Bài viết cuối cùng(PostID): thành phần này chứa ID của bài viết cuối
cùng mà người dùng viết Sở thích của mỗi người thay đổi theo thời gian, do
Trang 13đó bài viết cuối cùng này có thể rất có ích khi xác định sở thích của ngườidùng.
Số lượng bình luận của người dùng: Thành phần này sẽ đánh giá độ
tích cực hoạt động của người dùng, một người dùng có nhiều bình luận và bàiviết có vẻ như là sẽ có độ tin cậy cao hơn
1.1.2.2 Bài viết
Đối tượng bài viết là đối tượng được sử dụng để tư vấn cho ngườidùng Một bài viết sẽ có những đặc điểm chính là:
Tiêu đề của bài viết: Đây là thành phần đầu tiên mà mỗi người dùng
sẽ nhìn thấy của bài viết Nó nằm ở ngay trang danh sách các bài viết củaforum Nhiều người dùng sẽ có thể bị hấp dẫn khi đọc những tiêu đề này vàvào đọc bài báo đó
Số lượng bình luận: Đây cũng là một thành phần nằm ở ngay trang
danh sách các bài báo Nó cho thấy số lượng người đã bình luận cho bài báonày Đây là một tiêu chí đánh giá sự phổ biến của bài báo Một bài báo mà cónhiều bình luận chứng tỏ nó hấp dẫn và thu hút sự trao đổi của nhiều người
Số lượng người xem: Gần giống như thuộc tính “số lượng bình luận”,
thuộc tính này cũng cho biết sự phổ biến của bài viết Bài viết càng có nhiềungười xem càng dễ được người dùng đọc
Ngày đăng bài: Thuộc tính này rất quan trọng trong việc đánh giá tình
thời sự của bài viết Một bài viết chỉ có tính thời sự trong vòng vài ngày kể từkhi nó viết, rất ít bài viết có tính nóng hổi sau vài ngày được đăng
Nội dung bài viết: Đây là thuộc tính quan trọng nhất của một bài viết.
Nó xác định chủ đề của bài viết, từ đó sẽ được đem so sánh với sở thích củangười dùng rồi từ đó các bài viết sẽ được sắp xếp theo mức độ tương đồng với
sở thích của người dùng
Trang 14Nội dung bài viết còn được sử dụng để tìm ra sở thích của người viết
nó Từ đó xây dựng được tập sở thích của người dùng
Tên người dùng: Thành phần này của bài báo xác định ngược lại xem
bài viết đó viết bởi ai, điều này làm cho việc di chuyển trong hệ thống linhhoạt hơn
1.1.2.3 Bình luận
Đối tượng bình luận là đối tượng được sử dụng để tư vấn cho ngườidùng Một bình luận sẽ có những đặc điểm chính là:
Ngày đăng bình luận: Thuộc tính này đánh giá sự hấp dẫn của bài
viết Một bài viết mà sau vài ngày vẫn có bình luận thì chứng tỏ bài viết đócòn rất hấp dẫn
Nội dung bình luận: Đây là thuộc tính quan trọng nhất của một bình
luận Nó có thể dùng để xác định quan điểm cũng như sở thích của ngườidùng
Tên người dùng: thành phần này cũng tương tự như thành phần tên
người dùng của bài viết, nó giúp chúng ta dễ dàng tìm kiếm người dùng viếtbình luận này khi cần
PostID: thành phần này chỉ rõ bình luận này thuộc bài viết nào.
1.1.3 Mối quan hệ giữa các thành phần trong forum
1.1.3.1 Người dùng – người dùng (user – user)
Mối quan hệ này cho biết những người dùng nào có cùng chung sởthích hay có cùng quan điểm về tất cả các vấn đề hoặc một số vấn đề Từ đó
hệ thống sẽ xếp hạng các bài viết dựa trên sự tương đồng này
Ví dụ: Một người dùng U sẽ thích đọc một bài viết của người dùng Ahơn một bài viết của người dùng B hơn vì lý do người dùng A và người dùng
U có cùng chung quan điểm sở thích về thể thao, trong khi đó người dùng B
Trang 15có sở thích về chính trị Do dó bài viết của người dùng A có tỷ lệ là về thểthao cao hơn B và từ đó người dùng U sẽ đọc bài viết của người dùng Atrước.
1.1.3.2 Người dùng – bài viết (user – post)
Mối quan hệ này là một mối quan hệ 1 – n Trong đó một người dùng
có thể viết nhiều bài viết Mỗi một bài viết lại thể hiện quan điểm và sở thíchcủa người dùng trong đó Hệ thống sẽ sử dụng các bài viết của người dùng đểđánh giá được sở thích của người dùng, rồi từ đó sử dụng sở thích đó để sosánh với nội dung các bài báo được đem ra tư vấn
1.1.3.3 Người dùng – bình luận (user – comment)
Đây cũng là một mối quan hệ 1 – n Cũng gần tương tự như mối quan
hệ User-Post, mối quan hệ này cũng được dùng để xác định được quan điểm
và sở thích của một người dùng Mối quan hệ này có thể dùng để xác định sựtương đồng sở thích giữa người dùng với người dùng
1.1.3.4 Bài viết – bình luận (post – comment)
Mối quan hệ này cho biết các bình luận và bài viết nào sẽ có chung mộtchủ đề Điều này được dùng để đánh giá được mức độ tương đồng về sở thíchhoặc quan điểm của người đăng bài viết và người viết bình luận với nhau
1.2 Hệ thống tư vấn bài viết trên forum
1.2.1 Tổng quan về một hệ tư vấn
Hệ thống tư vấn sẽ đưa ra những dự đoán về đánh giá hay độ quan tâmcủa một người dùng cho một sản phẩm nào đó cần đánh giá Hệ thống tư vấnđược sử dụng phổ biến trong một vài năm gần đây, và nó được ứng dụng chonhiều loại ứng dụng khác nhau như tư vấn phim, âm nhạc, tin tức, sách, bàibáo nghiên cứu, … Hệ thống tư vấn có thể thay thế cho các thuật toán tìmkiếm bởi nó giúp người dùng tìm ra những phần tử mới mà người dùng không
Trang 16phải tự tìm bằng tay Đã có nhiều hệ thống tư vấn ra đời để ứng dụng chonhiều loại hình website khác nhau như:
hệ tư vấn URL cho người dùng tweeter[1], hệ tư vấn bản tin cho người dùngGoogle Reader…
Hệ tư vấn có thể tạo ra danh sách tư vấn bằng một trong hai cách: sửdụng bộ lọc cộng tác (Collaborative Filtering) hoặc sử dụng bộ lọc dựa trênnội dung (Conten-Based Filtering) Phương pháp lọc cộng tác xây dựng nên
mô hình tư vấn dựa trên những hoạt động trước đây của người dùng (nhữngphần tử trước đây được lựa chọn hay được người dùng đánh giá điểm chophần tử đó) cũng như là những quyết định tương tự với người dùng nàynhưng được thực hiện bởi những người dùng khác Phương pháp lọc theo nộidung sử dụng một tập các biểu diễn rời rạc của những đối tượng để đưa ra tưvấn cho những phần tử có cùng tính chất với các phần tử trên
Đây là hai phương pháp thường sử dụng trong các hệ tư vấn Ngoài ramột hệ tư vấn có thể sử dụng phương pháp kết hợp hai bộ lọc này lại để đưa
ra tư vấn (Hybrid Recommender System) Mỗi một phương pháp có một ưuđiểm và nhược điểm của mình Phần tiếp theo sẽ trình bày cụ thể về mỗi mộtphương pháp này để chỉ ra những ưu, nhược điểm của chúng
1.2.2 Một số phương pháp tư vấn thông dụng
a) Phương pháp tư vấn bằng lọc cộng tác(Collaborative Filtering – CF)
Phương pháp lọc cộng tác là một phương pháp thiết kế hệ tư vấn được
sử dụng rộng rãi Phương pháp này hoạt động dựa trên việc thu thập và phântích lượng lớn những thông tin có liên quan đến những hoạt động, mối quantâm, hành vi của người dùng; từ đó sẽ dự đoán thứ mà người dùng thích Cóthể nói một hệ thống tư vấn dựa trên lọc cộng tác thực hiện tư vấn dựa trên sựtương đồng về sở thích Ví dụ như những người dùng cùng đánh giá về mộtsản phẩm nào đó có nghĩa là họ có tương đồng về sở thích
Trang 17Hơn thế nữa phương pháp lọc công tác không dựa trên nội dung củathông tin nên nó là một hệ có phạm vi tự do Do đó phương pháp này có thểcho những tư vấn có độ chính xác cao đối với những đối tượng phức tạp,những đối tượng yêu cầu hiểu rõ bản chất của những đối tượng đó Có thể nóiphương pháp lọc cộng tác dựa trên tiểu sử của người dùng để tư vấn.
Mặc dù có nhiều ưu điểm nhưng phương pháp lọc cộng tác cũng gặpphải một số vấnđề trong qua trình vận hành đó là:
+ Vấn đề cold-start: là vấn đề mà hệ thống không thể đưa ra được dựđoán cho một người dùng mới hoặc một đối tượng mới Nguyên nhân củaviệc này là do hệ thống yêu cầu một lượng thông tin lớn của người dùng cũngnhư đối tượng được tư vấn để đưa ra tư vấn chính xác
+ Vấn đề thừa dữ liệu: là một vấn đề khi mà có qua nhiều đối tượng để
tư vấn nhưng người dùng chỉ đánh giá cho một số ít các sản phẩm trong tậpcác đối tượng kia
+ Vấn đề mở rộng: vấn để xảy ra trong một số môi trường mà số lượngngười dùng và đối tượng quá lớn, do đó cần tốn một lượng lớn công sức đểtính toán và đưa ra tư vấn
a Phương pháp tư vấn bằng lọc theo nội dung(Content-Based Filtering - CBF)
Phương pháp lọc theo nội dung cũng là một phương pháp đẻ xây dựngnên một hệ thống tư vấn Phương pháp này dựa trên thông tin chi tiết vànhững đặc tính của các đối tượng để đưa ra tư vấn Những thuật toán củaphương pháp này sẽ tư vấn những đối tượng có những điểm tương tự vớinhững đối tượng mà người dùng đã thích trước đó hay đang thử nghiệm hiệntại Hay nói cách khác, các đối tượng tiềm năng sẽ được so sánh với các đốitượng đã được đánh giá trước đó bởi người dùng, sau đó đối tượng có đặcđiểm trùng khớp nhất sẽ được tư vấn cho người dùng Phương pháp này bắt
Trang 18nguồn từ những nghiên cứu về thu thập thông tin (information retrieval) vàlọc thông tin (information filtering).
Cụ thể, hệ thống sẽ sử dụng một số thuật toán để biểu diễn mỗi một đốitượng thành một vector có trọng số từ thông tin của đối tượng đó (thông tinbao gồm những thuộc tính, đặc điểm của đối tượng) Sau đó, hệ thống sẽ tạocho mỗi một người dùng trong hệ thống một vector theo nội dung, vector này
có thể được xem như là thông tin của người dùng về khía cạnh nội dung cácphần tử Để có thể tính toán được vector nội dung của người dùng từ cácvector đặc trưng của các đối tượng có thể sử dụng nhiều thuật toán khác nhaunhư: bộ phân loại Bayesian, cây quyết định, mạng nơron nhân tạo Tuy nhiêncách đơn giản nhất để tính toán các trọng số này là lấy trung bình các giá trịtương ứng trong các vector đặc trưng của các đối tượng được đánh giá
Vấn đề của phương pháp này là liệu hệ thống có thể học được mối quantâm của người dùng từ những hành động của người dùng có liên quan đếnmột kiểu nội dung nào đó và sử dụng những thông tin đó cho những kiểu nộidung khác Nếu hệ thống chỉ có thể tư vấn những nội dung có cùng kiểu vớinhững nội dung mà người dùng đã từng sử dụng thì những kết quả của hệthống này là kém hiệu quả hơn so với việc hệ thống tư vấn được cả nhữngkiểu thông tin khác Ví dụ: một hệ thống mà có người dùng đã bình luậnnhững bài báo khoa học trên các trình duyệt mà nó có thể tư vấn cho ngườidùng đó những đối tượng khác như các video, các thảo luận từ những nguồnkhác thì hệ thống này sẽ hưu ích hơn là chỉ có thể tư vấn các bài báo khoa họckhác
b Phương pháp tư vấn kết hợp(Hybrid Method)
Hai phương pháp dùng cho hệ tư vấn đã trình bày ở trên đều có nhữngnhược điểm riêng của nó Để hạn chế những nhược điểm này, hệ tư vấn kếthợp hai phương pháp này và một số phương pháp khác nữa đã được ra đời
Trang 19Một hệ tư vấn như vậy được gọi là một hệ tư vấn kết hợp hay hệ tư vấn lai(Hybird System).
Việc kết hợp hai phương pháp lọc theo nội dung và lọc cộng tác trongnhiều trường hợp sẽ hiệu quả hơn và có độ chính xác cao hơn Để có thể kếthợp hai phương pháp này có thể sử dụng một số biện pháp như: dự đoán bằnghai phương pháp một cách riêng rẽ trước sao đó kết hợp chúng lại; thêm một
số tính năng lọc công tác vào lọc theo nội dung hoặc ngược lại; Phươngpháp kết hợp này cũng có thể giải quyết được một số vấn đề thường xảy ravới hai phương pháp lọc theo nội dung và lọc cộng tác, đó là những vấn đề vềviệc thưa thớt dữ liệu, vấn đề cold-start
Phương pháp kết hợp này không chỉ là sự kết hợp của hai phương pháplọc cộng tác và lọc theo nội dung mà còn là sự kết hợp của nhiều phươngpháp tư vấn khác như: tư vấn dựa trên tri thức, demographic Mỗi mộtphương pháp tư vấn lại có một nhược điểm riêng và phương pháp kết hợp sẽgộp chúng lại để có thể hạn chế những nhược điểm riêng của từng phươngpháp Sau đây là một số phương pháp lai các phương pháp đó lại với nhau:
Tính trọng số: dự đoán của mỗi phương pháp sẽ được biểu diễn dướidạng số và sau đó sẽ được kết hợp lại với nhau
Lựa chọn: với mỗi trường hợp cụ thể hệ thống sẽ chọn ra một phươngpháp tư vấn phù hợp trong số các phương pháp tư vấn trên
Trộn lẫn: kết quả tư vấn của các phương pháp sẽ được trộn với nhau
và đưa ra cùng lúc
Sau khi đã giới thiệu ba phương pháp có thể sử dụng cho một hệ thống
tư vấn, ở phần tiếp theo đây và những chương còn lại của đồ án, em sẽ trình
Trang 20bày sự lựa chọn phương pháp tư vấn cho hệ tư vấn bài viết trên forum vànhững nội dung liên quan đến phương pháp tư vấn này.
1.2.3 Phương pháp tư vấn bài viết dựa trên nội dung
Một hệ tư vấn bài viết cho người dùng trên forum sẽ cung cấp cho mỗingười dùng một danh sách các bài viết theo thứ tự nhất định mà người dùng
có thể bình luận vào những bài viết này Đồ án này chọn forum là đối tượng
để tư vấn vì mặc dù có thời gian tồn tại khá lâu đời những vai trò của forumtrong hệ thống các website vẫn rất quan trọng Đây là một nguồn thông tinhữu ích để khai phá, tìm kiếm thông tin về mọi lĩnh vực Ở Việt Nam, sốlượng các forum vô cùng lớn, mỗi một forum lại có số lượng người dùng khálớn; điều này chứng tỏ vai trò quan trọng của forum Bên cạnh đó, một số cácứng dụng trên hệ thống web 2.0 hiện nay như blogs, mạng xã hội, ứng dụngchia sẻ video,…vẫn kế thừa một số đặc điểm của forum Do đó những kinhnghiệm được tạo ra khi xây dựng phương pháp tư vấn cho forum có thể đượcứng dụng cho các phương pháp tư vấn cho các loại hình trang web khác cóliên quan
Một hệ thống tư vấn cho người dùng trên một forum thì sẽ có hai loạiđối tượng thể tư vấn cho người dùng Loại tư vấn thứ nhất là tư vấn nhữngbình luận hay mà người dùng có thể cảm thấy thích thú và thể hiện quan điểmbằng các hành động như cảm ơn, trích dẫn để bình luận lại , đối tượng tư vấncủa loại tư vấn này là những bình luận trong các bài viết Loại tư vấn thứ hai
là tư vấn những bài viết mới mà người dùng có thể thích để xem và bình luậnvào bài viết đó, đối tượng của loại hình tư vấn này là những bài viết đượcđăng bới những người dùng khác Có thể nói đây là hai hành dộng chính củamỗi người dùng mà có thể tư vấn được
Với nội dung của đồ án này là xây dựng một hệ thống tư vấn bài viếtcho người dùng, tức là thực hiện loại hình tư vấn thứ hai – tư vấn những bài
Trang 21viết mới người dùng có thể thích để xem và bình luận vào bài viết đó Vì đốitượng tư vấn của loại hình tư vấn này là những bài viết có nội dung cụ thể rõràng nên em sẽ lựa chọn phương pháp lọc theo nội dung Hệ thống sẽ sử dụngnội dung của những bài viết đã được người dùng bình luận trước đó để xâydựng nên những vector đặc trưng cho mỗi bài viết đó và xây dựng nên vectorbiểu diễn mối quan tâm của người dùng Sau đó với những bài viết mới hệthống cũng sẽ biểu diễn những bài viết đó thành một vector đặc trưng và đem
so sánh với vector của người dùng để đưa ra được bài viết có độ tương đồngcao nhất với sở thích của người dùng
Trang 22CHƯƠNG 2: PHƯƠNG PHÁP PHÂN TÍCH BÀI VIẾT, TƯ VẤN TRẢ
LỜI DỰA TRÊN NỘI DUNG
Nội dung của chương này là đi tìm hiểu cách một hệ thống tư vấn đưa
ra tư vấn bằng phương pháp lọc dựa theo nội dung Hay nói cách khác là tìmhiểu xem tại sao từ nội dung các văn bản mà hệ thống có thể suy đoán ra sởthích của người dùng để tư vấn Bố cục của phần này gồm bốn mảng lớn là:
Nguyên tắc chung của một hệ thống tư vấn theo nội dung
Phương pháp biểu diễn nội dung văn bản sang dạng không gianvector
Phương pháp so sánh các vector đặc trưng để đưa ra tư vấn
Cách sử dụng phương pháp biểu diễn văn bản dưới dạng không gianvector để tư vấn bài viết dựa trên nội dung
2.1 Nguyên tắc chung
Để có thể tư vấn một bài viết dựa trên nội dung, cần phải xác định xem
hệ thống sẽ tư vấn cho ai? Từng người trong số có những sở thích (hay mốiquan tâm) đến những chủ đề nào? Những chủ đề đó đã nằm trong những bàiviết nào? Một bài viết mới có nói về chủ đề mà người dùng cụ thể nào đó ưathích không? Để làm được điều này, cần phải giải quyết hai vấn đề đó là: hiểuđược bài toán đặt ra và đưa ra được phương pháp giải quyết cho bài toán đó
2.1.1 Bài toán tư vấn bài viết dựa trên nội dung
Bài toán tư vấn bài viết dựa trên có thể được phát biểu như sau: Mỗimột forum là một cộng đồng trên mạng, nó là một tập hợp của ba phần tửchính là: người dùng, bài viết và bài bình luận Trong đó:
+ Tập các bài viết là một đối tượng có dạng như một văn bản dạng ký
tự và nói về một số chủ đề nhất định, chúng được chia vào các box hoặc các
Trang 23subforum khác nhau của forum Đặc điểm của những box này là nó chứanhững bài viết có chủ đề tương tự nhau
+ Mỗi một bài viết lại có những bình luận được viết bởi nhiều ngườidùng khác nhau trên forum, những bình luận này thể hiện quan điểm củangười dùng này với bài viết được đăng hoặc với người đăng bài viết
+ Tập người sử dụng, những người dùng có thể thực hiện một số hànhđộng như: đăng bài viết, xem bài viết của những người dùng khác, bình luậnvào bài viết của chính họ hoặc của người khác
Nhiệm vụ của hệ tư vấn bài viết theo nội dung là từ những thông tintrên phát hiện ra được mối quan tâm của mỗi người dùng Từ đó, với mỗingười dùng, khi có một tập các bài viết mới hệ thống sẽ đưa ra được nhữngbài viết mà người dùng có thể sẽ quan tâm
2.1.2 Hướng giải quyết
Mỗi một người dùng có thể vào một hay nhiều box khác nhau củaforum, nhưng thông thường họ chỉ vào một vài box để đọc những bài viếttrong box đó Để thể hiện quan điểm (đồng ý hay phản đối) với một bài viết,một người dùng có thể bình luận vào bài viết đó, nên mỗi người dùng sẽ cómột tập các bài viết mà họ đã thể hiện sự quan tâm (đọc, bình luận, đăng bàiviết) của mình
Mặt khác mỗi người dùng lại chỉ quan tâm tới một số chủ đề nhất định
Do đó, để giải quyết bài toán tư vấn bài viết theo nội dung này, cần phải đixác định được những chủ đề mà người dùng quan tâm từ những bài viết mà
họ đã đọc, đã đăng hoặc đã bình luận Tuy nhiên vì việc quan sát việc ngườidùng có vào xem bài viết hay không là khá khó khăn, và thậm chí là khôngthể đối với một số forum, do vậy việc xác định chủ đề người dùng quan tâmchỉ dựa vào hai thông tin là bài viết người dùng đăng và bài viết mà ngườidùng bình luận
Trang 24Để có thể suy ra mối quan tâm của người dùng dựa trên các bài viết, em
sẽ đi xây dựng các vector biểu diễn nội dung của các bài viết (hay gọi tắt làvector đặc trưng) bằng cách sử dụng phương pháp mô hình không gian vector(Vector Space Model - VSM) Những vector đặc trưng này là những vector kchiều có trọng số, số chiều của vector là số đặc trưng của mọt bài viết đượcxác định tùy theo phương pháp biểu diễn
Sau khi đã có những vector đặc trưng của các bài viết, với mỗi ngườidùng em sẽ đi xây dựng một vector biểu diễn sự quan tâm của người dùngbằng cách lấy trung bình các vector đặc trưng của những bài viết mà ngườidùng đã thể hiện sự quan tâm
Cuối cùng để có thể tư vấn cho người dùng những bài viết mà họ nênđọc từ một tập bài viết mới, em sẽ so sánh độ tương đồng của vector biểu diễnmối quan tâm của người dùng với vector đặc trưng của từng bài viết mới, vàsắp xếp độ tương đồng đó theo chiều giảm dần để đưa ra tư vấn cho ngườidùng Để so sánh độ tương đồng giữa hai vector có thể sử dụng một số biệnpháp so sánh thông dụng như: cosine similarity, rocchio classfier, SVM, …
Tóm lại, các bước làm cụ thể của phương pháp tư vấn theo nội dung là:
Bước 1: Biểu diễn nội dung tất cả các bài viết thành dạng vector đặc
trưng
Bước 2: Xây dựng vector biểu thị mối quan tâm của người dùng từ tập
bài viết mà người dùng đã bình luận hoặc đã đăng
Bước 3: Tính độ tương đồng giữa vector đặc trưng của những văn bản
mới với vector biểu diễn mối quan tâm của người dùng
Bước 4: Sắp xếp độ tương đồng theo thứ tự giảm dần để đưa ra tư vấn.
Nội dung những phần còn lại của chương sẽ trình bày kỹ hơn về những
kỹ thuật biểu diễn nội dung văn bản thành vector, những phương pháp so sánh
Trang 25độ tương đồng giữa hai vector, và cách kết hợp các phương pháp này lại đểxây dựng hệ thống tư vấn bài viết theo nội dung.
2.2 Khảo sát các phương pháp phân tích câu hỏi cho các loại câu hỏi khác nhau
Trong hội nghị TREC, các câu hỏi được chia thành một số loại sau: câuhỏi đơn giản (factual-base question), câu hỏi định nghĩa (definition question),câu hỏi danh sách (list question), câu hỏi phức tạp (complex question),….Mỗi loại câu hỏi có những đặc trưng riêng và hướng tiếp cận khác nhau
2.2.1 Câu hỏi đơn giản (factual-base)
Câu hỏi factual-base là những câu hỏi về các sự vật, sự kiện đơn lẻ, cócâu trả lời là những đoạn văn bản ngắn nằm sẵn trong tài liệu Kiến trúc thôngthường để xử lý loại câu hỏi này như sau (Hình 3): Câu hỏi đầu vào đượcphân lớp theo loại ngữ nghĩa của câu trả lời và biến đổi sang dạng truy vấn.Câu truy vấn được sử dụng để tìm kiếm các tài liệu có liên quan đến câu hỏi,loại câu hỏi được sử dụng trong phần trích xuất câu trả lời nhằm thu hẹpkhông gian tìm kiếm và kiểm tra câu trả lời có chính xác hay không [35]
Hình 2.1 Kiến trúc cho xử lý các câu hỏi factual-base
Trang 26Như vậy, hai công việc chính của pha xử lý câu hỏi với loại câu hỏi này
là xác định loại câu hỏi và tạo truy vấn cho hệ IR (information retrieval) tríchchọn tài liệu liên quan
Xác định loại câu hỏi
Xác định loại câu hỏi có ý nghĩa rất quan trọng trong phân tích các câuhỏi factual base, đặc biệt là việc phân loại câu hỏi theo loại ngữ nghĩa của câutrả lời (như mục 2.3 đã trình bày) Có nhiều cách để xác định loại câu hỏinhư: xây dựng bộ phân lớp câu hỏi sử dụng học máy thống kê, xác định câuhỏi sử dụng các kỹ thuật của xử lý ngôn ngữ tự nhiên, xác định loại câu hỏidựa vào so khớp với các mẫu quan hệ có sẵn Nội dung chi tiết của cácphương pháp này được trình bày ở chương 3
Tạo truy vấn từ câu hỏi
Vấn đề của tạo truy vấn là lựa chọn các từ khóa trong câu hỏi và kết hợpchúng để tạo ra câu truy vấn không quá chung chung, cũng không quá chi tiết.Chiến lược được sử dụng để trích ra các từ khóa quan trọng là sử dụng độ ưutiên: Độ ưu tiên cao nhất được gán cho các từ trong dấu nháy kép hoặc nháyđơn, tiếp đến là các cụm danh từ, danh từ, động từ, tính từ, trạng từ Các từdừng, giới từ, trợ động từ được bỏ qua
Nhiều hệ thống Q&A có độ hồi tưởng (tỉ lệ câu trả lời đưa ra trên câu hỏiđầu vào) rất thấp Một số nguyên nhân chính bao gồm: module phân tích câuhỏi không nhận diện được câu hỏi thuộc loại nào hoặc không tìm được cácmẫu khớp với câu hỏi, module trích chọn thông tin (IR) không tìm ra đượccác tài liệu có chứa câu trả lời, module trích xuất câu trả lời không thể tìm racâu trả lời thỏa đáng cho câu hỏi Vì vậy với module trích chọn thông tintrong hệ thống Q&A, độ hồi tưởng là quan trọng hơn so với độ chính xác bởicác module sau có thể lọc ra các tài liệu không liên quan, nhưng không thể
Trang 27tìm ra được câu trả lời nếu các tài liệu chứa câu trả lời không được trả về từ
IR [34]
Các nghiên cứu trước đây nhằm làm tăng độ hồi tưởng của IR đều tậptrung vào việc thu nhỏ sự khác biệt về mặt hình thái, từ vựng và ngữ nghĩagiữa các từ xuất hiện trong truy vấn và trong tài liệu chứa câu trả lời
Về mặt hình thái, có hai cách được sử dụng [9,34]:
Áp dụng kĩ thuật stemming cho tập dữ liệu được đánh chỉ mục và các từtrong truy vấn (stemming là chuyển tất cả các dạng biến thể của một từ thành
từ gốc, ví dụ “expand”, “expanded”, “expansion”, “expandable”… đều đượcchuyển thành “expand”)
Đánh chỉ mục cho các từ trong tài liệu mà không sử dụng stemming Sửdụng kĩ thuật mở rộng hình thái (morphological expansion – ví dụ từ
“expands” được mở rộng thành {“expands”,“expand”, “expanded”,
“expansion”, “expandable”, … } ) cho các từ khóa trong câu hỏi khi tạo truyvấn
Về mặt từ vựng và ngữ nghĩa, phương pháp hay được sử dụng đó là: các
từ trong truy vấn được mở rộng bởi tập các từ đồng nghĩa, các khái niệm cónghĩa khái quát hơn hoặc chuyên môn hơn, chi tiết hơn hoặc bởi các từ liênquan Phương pháp này đòi hỏi phải có các nguồn tri thức về ngôn ngữ, từvựng như Wordnet hoặc Ontology
Moldovan trong [29] đã chỉ ra rằng từ trọng tâm của câu hỏi (questionfocus – xem trong phần 3.2) thường không xuất hiện trong tài liệu chứa câuhỏi Với các câu hỏi có từ trọng tâm là “tỉnh thành”, “thành phố”, “đất nước”,
“ngày tháng”… thì câu trả lời sẽ chứa các thể hiện cụ thể của các từ này (ví
dụ với “đất nước” thì sẽ là “Việt Nam”, “Trung Quốc”… chứ không nhất thiếtphải là “đất nước Việt Nam”) Vì vậy các từ trọng tâm của câu hỏi thườngkhông được sử dụng để làm từ khóa tạo truy vấn
Trang 282.2.2 Câu hỏi định nghĩa (definition question)
Câu hỏi định nghĩa hỏi về định nghĩa hoặc mô tả về một điều, một kháiniệm gì đó Các câu hỏi thường gặp có dạng như “Máy tìm kiếm là gì”, “Địnhnghĩa khai phá dữ liệu”, “Bush là ai ?”…
Câu trả lời cho loại câu hỏi này rất đa dạng, rất nhiều đoạn văn bản ngắn
có thể coi là câu trả lời chấp nhận được Ví dụ với câu hỏi “Who is George
W Bush ?” thì các câu trả lời có thể là:
“… George W Bush, the 43rd President of the United States…”
“George W Bush defeated Democratic incumbent Ann Richards tobecome the 46th
Governor of the State of Texas…”
What <be> a <Q> ? <Q> là gì?
Who <be> <Q> ? <Q> là ai?
Mẫu trảlời
<Q>, the <A> <Q> - <A>
<Q> (a <A>) <Q> - một loại
<A>
<Q> is a|the <A> <Q> là <A> …
Ưu điểm: Có độ chính xác khá cao
Nhược điểm: Các mẫu khó có thể bao quát được hết các trường hợp đadạng của câu hỏi và câu trả lời