Tải bản đầy đủ (.docx) (52 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Ở CÔNG NGHỆ WEB

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 (657.69 KB, 52 trang )

1

TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA 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Ở
CÔNG NGHỆ WEB
Chuyên ngành : Công nghệ thông tin
Mã ngành
: D480201
NGƯỜI HƯỚNG DẪN: TS. HÀ MẠNH ĐÀO

HÀ NỘI - 2016

1


2

LỜI CAM ĐOAN
Tôi xin cam đoan đây là sản phẩm nghiên cứu của bản thân, được xuất
phát từ yêu cầu bài toán phát sinh trong công việc để hình thành hướng
nghiên cứu được thực hiện dưới sự hướng dẫn của giáo viên hướng dẫn
TS.Hà Mạnh Đào. Mọi sự tham khảo sử dụng trong đồ án đều được trích dẫn
cá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ép
không hợp lệ, vi phạm quy chế của nhà trường, tôi xin hoàn toàn chịu trách
nhiệm.
Hà Nội, ngày tháng 9 năm 2016


Người cam đoan


3

LỜI CẢM ƠN
Để có thể hoàn thành được đồ án này, em xin chân thành cảm ơn các
thầy cô trong khoa Công nghệ thông tin – Trường Đại học Tài nguyên và Môi
trườ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 đồ án
nà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 em
mộ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ình
làm đồ án này.
Hà Nội, tháng 06 năm 2016
Nguyễn Thị Kiều Trang


4

MỤC LỤC


5

DANH MỤC CÁC TỪ VIẾT TẮT
Từ viết tắt

CF
CBF

Từ đầy đủ
Collaborative Filtering
Content-Based Filtering

CBR
LDA

Conten-Based Recommandation
Latent Dirichlet Allocation

LSA
MAP
pLSA

Latent Semantic Analysis
Mean Average Precision
Probabilistic Latent Semantic Analysis

SVM
TF-IDF

Support Vector Machine
Term Frequently – Invert Document Frequently

VSM

Vector Space Model



6

DANH MỤC HÌNH VẼ
Hình 2.1. Kiến trúc cho xử lý các câu hỏi factual-base
Hình 2.2. Xác định loại câu hỏi sử dụng kĩ thuật xử lý ngôn ngữ tự nhiên
Hình 2.3. Ánh xạ từ trọng tâm vào Wordnet
Hình 2.3. Mô hình Snowball
Hình 3.2. Biểu đồ Use-case tổng quát
Hình 3.3. Biểu đồ phân rã chức năng Quản trị Users
Hình 3.4. Biểu đồ phân rã chức năng Đặt câu hỏi
Hình 3.5. Biểu đồ phân rã chức năng trả lời câu hỏi
Hình 3.6. Biểu đồ tuần tự đăng ký User
Hình 3.7. Biểu đồ tuần tự đặt câu hỏi
Hình 3.8. Biểu đồ tuần tự trả lời câu hỏi
Hình 3.9. Giao diện chính chương trình
Hình 3.10. Giao diện viết bài/đặt câu hỏi
Hình 3.11. Giao diện tư vấn/trả lời bài viết


7

LỜI MỞ ĐẦU
Ngày nay, với sự phổ biến của mạng Internet và máy tính cá nhân, hệ
thống các trang web đã trở thành một công cụ hữu hiệu để thu thập thông tin.
Có rất nhiều nguồn thông tin trên hệ thống những trang web này như: các
website, blog, mạng xã hội, các forum… Sự kiện quan trọng nhất trong qua
trình phát triển của hệ thống web là sự ra đời của hệ thống web2.0. Đây là hệ
thống web mà những nội dung được tạo ra bởi người dùng chính là điểm đặc

sắc nhất của nó. Tuy nhiên, sự bùng nổ của nguồn thông tin được tạo ra bởi
người dùng đã đặt ra thách thức với việc tìm kiếm và thu thập những thông tin
có ích trên hệ thống Web. Bởi có hàng tỷ người dùng sử dụng internet mỗi
ngày, lượng thông tin mà họ tạo ra là vô cùng lớn từ những đoạn status, tweet
trê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ông
tin là việc tư vấn nội dung cần thiết cho người dùng internet. Nhiệm vụ của
việ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ương
pháp tư vấn hiệu quả. Một số phương pháp đã được tìm ra và cho kết quả tốt
như: phương pháp lọc cộng tác, phương pháp lọc theo nội dung, phương pháp
lọ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ại
chư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 dung
trên forum, trong khi đó các forum hiện nay và trước đây là một trong những
nguồn thông tin quan trọng và phổ biến của hệ thống website. Ứng dụng
nhữ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
viế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.


8

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ấn
thí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ấn
luyện bộ dữ liệu, cuối cùng là tính toán và đánh giá độ chính xác của phương
phá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ết

cho 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ên
forum: nội dung của chương này là đưa ra cái nhìn sơ qua về các thành phần
trong 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ên
diễ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


9

CHƯƠ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ói
forum là một bảng tin, hay một bảng các thông báo. Trong khi đó có người lại
cho 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ảo
luậ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 (hay
cò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ều
chủ đề 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 thread

mớ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ện
nay đều yêu cầu người dùng đăng nhập trước khi tạo thread hoặc viết bình
luậ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ý forum
hay không. Người dùng có thể bình luận vào các thread ở những thời điểm
khá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 danh sá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ửi
nhữ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ộ


10

thread và các phản hồi của bài viết. Do đó người dùng có thể bỏ lỡ những
-

phả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ên internet. Tuy
nhiên wiki cho phép người dùng có thể sửa nội dung (kể cả nội dung của
người khác viết). Trong khi đó những thao tác trên nội dung của forum đượ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ảo luận của
hai hay nhiều người về một chủ đề nào đó. Tuy nhiên, forum khác phò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ười
dù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
đó 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ười
dùng.


11

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ài
viế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ười
dù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ủa
forum. 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áo
nà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ều
ngườ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ủa
ngườ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.
Nộ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 linh
hoạt hơn.


12

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ười
dù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ười
dù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ết
bì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 A
hơ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
có 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 A trướ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ích
củ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 để


13

đánh giá được sở thích của người dùng, rồi từ đó sử dụng sở thích đó để so
sá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ột
chủ đề. Điều này được dùng để đánh giá được mức độ tương đồng về sở thích
hoặ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âm
củ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 cho
nhiều loại ứng dụng khác nhau như tư vấn phim, âm nhạc, tin tức, sách, bài
báo nghiên cứu, … Hệ thống tư vấn có thể thay thế cho các thuật toán tìm
kiế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
phải tự tìm bằng tay. Đã có nhiều hệ thống tư vấn ra đời để ứng dụng cho
nhiều loại hình website khác nhau như:
, hệ tư vấn bản tin cho người dùng Google 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ên
nộ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ững
phần tử trước đây được lựa chọn hay được người dùng đánh giá điểm cho


14

phần tử đó) cũng như là những quyết định tương tự với người dùng này
nhưng được thực hiện bởi những người dùng khác. Phương pháp lọc theo nội

dung 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 ra
mộ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ột
phươ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ân
tích lượng lớn những thông tin có liên quan đến những hoạt động, mối quan
tâ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ột
sản phẩm nào đó có nghĩa là họ có tương đồng về sở thích.
Hơn thế nữa phương pháp lọc công tác không dựa trên nội dung của
thô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ói
phươ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ặp
phả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ủa


15

việ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ũng

như đố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ập
cá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ượng
ngườ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ựng
nê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ủa
phương pháp này sẽ tư vấn những đối tượng có những điểm tương tự với
những đối tượng mà người dùng đã thích trước đó hay đang thử nghiệm hiện
tạ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 đối
tượ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
nguồ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 đối
tượng thành một vector có trọng số từ thông tin của đối tượng đó (thông tin
bao gồm những thuộc tính, đặc điểm của đối tượng). Sau đó, hệ thống sẽ tạo
cho 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ác
phần tử. Để có thể tính toán được vector nội dung của người dùng từ các
vector đặc trưng của các đối tượng có thể sử dụng nhiều thuật toán khác nhau
như: bộ phân loại Bayesian, cây quyết định, mạng nơron nhân tạo. Tuy nhiên



16

cá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 quan
tâm của người dùng từ những hành động của người dùng có liên quan đến
một kiểu nội dung nào đó và sử dụng những thông tin đó cho những kiểu nội
dung khác. Nếu hệ thống chỉ có thể tư vấn những nội dung có cùng kiểu với
nhữ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ững
kiểu thông tin khác. Ví dụ: một hệ thống mà có người dùng đã bình luận
nhữ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ười
dùng đó những đối tượng khác như các video, các thảo luận từ những nguồn
khá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ọc
khá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ững
nhược điểm riêng của nó. Để hạn chế những nhược điểm này, hệ tư vấn kết
hợp hai phương pháp này và một số phương pháp khác nữa đã được ra đời.
Mộ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 trong
nhiều trường hợp sẽ hiệu quả hơn và có độ chính xác cao hơn. Để có thể kết
hợ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ằng
hai 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ương
phá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 ra
vớ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.



17

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áp
lọ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ương
pháp tư vấn khác như: tư vấn dựa trên tri thức, demographic... Mỗi một
phươ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ương
phá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ưới dạ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ương phá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
bà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ỗi
ngườ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 forum
trong hệ thống các website vẫn rất quan trọng. Đây là một nguồn thông tin

hữ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ụng


18

chia sẻ video,…vẫn kế thừa một số đặc điểm của forum. Do đó những kinh
nghiệ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ững
bình luận hay mà người dùng có thể cảm thấy thích thú và thể hiện quan điểm
bằ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ấn
củ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ận
và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ủa
mỗ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ết
cho 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
viết mới người dùng có thể thích để xem và bình luận vào bài viết đó. Vì đối
tượ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ụng
nội dung của những bài viết đã được người dùng bình luận trước đó để xây
dựng nên những vector đặc trưng cho mỗi bài viết đó và xây dựng nên vector
biể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 đồng
cao nhất với sở thích của người dùng.


19

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
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ìm
hiể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 gian vector.
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 gian vector để
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ối
quan tâm) đến những chủ đề nào? Những chủ đề đó đã nằm trong những bài
viế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 đó ưa
thí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ỗi
mộ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
subforum khác nhau của forum. Đặc điểm của những box này là nó chứa
những bài viết có chủ đề tương tự nhau.


20

+ 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ười
dùng khác nhau trên forum, những bình luận này thể hiện quan điểm của
ngườ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ận
và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 tin
trên phát hiện ra được mối quan tâm của mỗi người dùng. Từ đó, với mỗi
ngườ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ững
bà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ủa
forum, nhưng thông thường họ chỉ vào một vài box để đọc những bài viết
trong 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ài
viế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 đi

xá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ười
dùng có vào xem bài viết hay không là khá khó khăn, và thậm chí là không
thể đối với một số forum, do vậy việc xác định chủ đề người dùng quan tâm
chỉ 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ười
dùng bình luận.
Để 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


21

(Vector Space Model - VSM). Những vector đặc trưng này là những vector k
chiều có trọng số, số chiều của vector là số đặc trưng của mọt bài viết được
xá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ười
dùng em sẽ đi xây dựng một vector biểu diễn sự quan tâm của người dùng
bằng cách lấy trung bình các vector đặc trưng của những bài viết mà người
dù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ễn
mố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ười
dùng. Để so sánh độ tương đồng giữa hai vector có thể sử dụng một số biện
phá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
độ 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âu
hỏi đơn giản (factual-base question), câu hỏi định nghĩa (definition question),


22

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ông
thường để xử lý loại câu hỏi này như sau (Hình 3): Câu hỏi đầu vào được
phâ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ẹp
khô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
Như 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ích

chọ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âu
hỏ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âu
trả lời (như mục 2.3 đã trình bày). Có nhiều cách để xác định loại câu hỏi


23

như: 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âu
hỏ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ỏi
dự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ác
phươ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ợp
chú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 độ ưu
tiê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âu
hỏ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ác
mẫu khớp với câu hỏi, module trích chọn thông tin (IR) không tìm ra được
cá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 ra
câu trả lời thỏa đáng cho câu hỏi. Vì vậy với module trích chọn thông tin
trong hệ thống Q&A, độ hồi tưởng là quan trọng hơn so với độ chính xác bởi
các module sau có thể lọc ra các tài liệu không liên quan, nhưng không thể
tì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ập
trung vào việc thu nhỏ sự khác biệt về mặt hình thái, từ vựng và ngữ nghĩa
giữ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 được
chuyển thành “expand”).


24

Đá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 truy
vấ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ên
quan. 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 (question
focus – xem trong phần 3.2) thường không xuất hiện trong tài liệu chứa câu
hỏ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ết
phả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ường
không được sử dụng để làm từ khóa tạo truy vấn.
2.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ái
niệm gì đó. Các câu hỏi thường gặp có dạng như “Máy tìm kiếm là gì”, “Định
nghĩ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 to
become the 46th
Governor of the State of Texas…”
……


25

Với loại câu hỏi định nghĩa, phương pháp thường hay được sử dụng là so
khớp mẫu
(pattern matching) [17].
Ví dụ về các mẫu câu hỏi và mẫu câu trả lời
Mẫu câu
hỏi
Mẫu trả
lời

What <be> a <Q> ?
Who <be> <Q> ?
<Q>, the <A>
<Q> (a <A>)
<Q> is a|the <A>


<Q> là gì?
<Q> là ai?....
<Q> - <A>
<Q> - một loại
<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 đa
dạng của câu hỏi và câu trả lời.
2.2.3. Câu hỏi phức tạp, có ràng buộc về thời gian
Phương pháp trình bày trong phần 2.2.1 có thể trả lời được các câu hỏi
đơn giản factual base có từ ngữ diễn đạt thời gian đơn giản như: “Hồ Chí
Minh sinh năm nào” hoặc “Ai là thủ tướng Việt Nam năm 2009 ?”. Tuy nhiên
nhiều câu hỏi phức tạp đòi hỏi phải phát hiện ra các thuộc tính về thời gian
hoặc thứ tự diễn ra của sự kiện. Ví dụ “Ai là tổng bí thư Đảng Cộng Sản Việt
Nam trong chiến thắng lịch sử Điện Biên Phủ”.
Câu hỏi liên quan đến thời gian được chia làm 4 loại [33]:
Loại 1: Câu hỏi về một sự kiện đơn lẻ, không có biểu đạt về thời gian
(temporal expressions)
“Đại học Công Nghệ thành lập khi nào ?”.
Loại 2: Câu hỏi về một sự kiện đơn lẻ, có biểu đạt về thời gian
“Đội tuyển nào của Đại học công nghệ tham dự cuộc thi ACM quốc tế
năm 2009” Ràng buộc thời gian: năm 2009.
Loại 3: Câu hỏi có nhiều sự kiện, có biểu đạt về thời gian
“Việt Nam đạt được những thành tựu gì sau khi chính sách mở cửa năm
1987 được thông qua ? ”
Tín hiệu thời gian: sau khi
Ràng buộc thời gian: năm 1987



×