Tải bản đầy đủ (.doc) (65 trang)

Đồ án tốt nghiệp xếp hạng lại kết quả trả về từ máy tìm kiếm

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 (1.82 MB, 65 trang )

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: . . . . . . . .Nguyễn Anh Tuấn . . . . . . . . . . . . . . . . . . .
Điện thoại liên lạc: 0975038269 Email:
Lớp: HTTT – k51 Hệ đào tạo: Đại học chính quy
Đồ án tốt nghiệp được thực hiện tại: Bộ môn Hệ thống thông tin
Thời gian làm ĐATN: Từ ngày 14/02/2011 đến 26/05/2011
2. Mục đích nội dung của ĐATN:
Đồ án nhằm nghiên cứu xây dựng thử nghiệm hệ thống tìm kiếm nâng cao có ứng dụng các kỹ
thuật xếp hạng lại kết quả tìm kiếm.
3. Các nhiệm vụ cụ thể của ĐATN:
• Tìm hiểu kiến trúc tổng thể của một hệ thống tìm kiếm.
• Nghiên cứu, tìm hiểu bộ tìm kiếm của máy tìm kiếm mã nguồn mở Nutch
• Phân tích, thiết kế, cài đặt một hệ thống tìm kiếm dựa trên Nutch có tích hợp chức
năng xếp hạng lại kết quả tìm kiếm
4. Lời cam đoan của sinh viên:
Tôi – Nguyễn Anh Tuấ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 PGS.TS. Nguyễn Kim Anh.
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 26 tháng 5 năm 2011
Tác giả ĐATN
Nguyễn Anh Tuấ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 5 năm 2011
Giáo viên hướng dẫn
PGS.TS. Nguyễn Kim Anh
Sinh viên thực hiện: Nguyễn Anh Tuấn SHSV: 20063482 Khóa 51 Lớp HTTT 1
TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
Trong các máy tìm kiếm truyền thống, việc xếp hạng kết quả tìm kiếm được dựa trên


sự so khớp và tần suất xuất hiện của từ khóa của truy vấn trong các tài liệu. Với một truy vấn
mập mờ, đa nghĩa, máy tìm kiếm có thể trả về tập kết quả không như mong đợi của người
dùng. Kỹ thuật xếp hạng lại kết quả tìm kiếm được ứng dụng nhằm giải quyết khó khăn đó của
các máy tìm kiếm. Trong khuôn khổ đồ án, 2 kỹ thuật xếp hạng lại được tiến hành nghiên cứu
và cài đặt là kỹ thuật xếp hạng lại dựa trên ngữ cảnh truy vấn và kỹ thuật xếp hạng lại dựa trên
phản hồi người dùng.
Dưới đây là nội dung tóm tắt của đồ án:
MỞ ĐẦU: Trình bày tóm tắt về nhiệm vụ của đồ án, tóm tắt các nội dung được thực
hiện trong đồ án.
PHẦN 1: ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP. Phần này giới thiệu về bài
toán xếp hạng kết quả tìm kiếm cũng như xếp hạng lại kết quả tìm kiếm, đề xuất phương pháp
giải quyết, trình bày về các lý thuyết liên quan.
PHẦN 2: PHÂN TÍCH, THIẾT KẾ VÀ TRIỂN KHAI HỆ THỐNG. Phần này đi sâu
trình bày chi tiết các kết quả phân tích thiết kế hệ thống, đưa ra các chức năng được xây dựng
và cài đặt. Cuối cùng là thử nghiệm, kết quả cài đặt cùng đánh giá ưu, nhược điểm và khả
năng ứng dụng của hệ thống.
PHẦN 3: KẾT LUẬN: Tổng kết các kết quả đạt được trong đồ án và một số hạn chế
cần khắc phục, đề xuất hướng nghiên cứu tiếp theo.
Sinh viên thực hiện: Nguyễn Anh Tuấn SHSV: 20063482 Khóa 51 Lớp HTTT 2
ABSTRACT OF THESIS
In traditional search engines, the ranking of search results is based on the match and
frequencies of query’s terms in documents. If the input is an abstract and fuzzy query, the
search engine may return a results set which is not what users desire. That problem can be
solved by re-ranking search results algorithms. In this thesis, two re-ranking algorithms are
researched and implemented: re-ranking algorithm based on query context and re-ranking
algorithm based on user feedbacks.
The summary of the contents is listed below:
OPENING: Presenting the thesis’s tasks and content in summary
SECTION 1: INTRODUCTION AND ORIENTING SOLUTIONS. This section
introduces the ranking search results and re-ranking search results problems, and also proposes

methods to solve with those problems.
SECTION 2: ANALYSISING, DESIGNING AND DEPLOYMENT THE SYSTEM.
This section reports the result of analyzing and designing the system. It presents details of all
modules which are implemented. The results of the system implement and testing are also
included here. At the end of this section is the system’s advantages and disadvantages
evaluating.
SECTION 3: CONCLUSIONS. This section shows achieved results and also the
remain problems which need to be solved in the future. This section also proposes further
researching in the coming time.
Sinh viên thực hiện: Nguyễn Anh Tuấn SHSV: 20063482 Khóa 51 Lớp HTTT 3
LỜI CẢM ƠN
Em xin chân thành cảm ơn tập thể các thầy cô trường Đại Học Đại Học Bách Khoa Hà
Nội trong suốt 5 năm học vừa qua đã trang bị cho em nhiều kiến thức quý báu, rất cần thiết
cho việc hoàn thành đồ án tốt nghiệp này. Các thầy cô luôn là tấm gương mẫu mực về tác
phong nghiên cứu khoa học để em noi theo.
Em xin gửi lời cảm ơn chân thành và sâu sắc tới PGS.TS Nguyễn Kim Anh, người đã
cho em những lời khuyên bổ ích về chuyên môn trong suốt quá trình nghiên cứu cũng như tận
tình hướng dẫn em từ những ngày đầu nhận đề tài và chỉ bảo cho em trong suốt quá trình làm
đồ án này.
Xin gửi lời cảm ơn tới các bạn lớp HTTT - K51 đã động viên tôi trong những lúc khó
khăn và luôn nhiệt tình trao đổi tài liệu, kiến thức chuyên môn cũng như kinh nghiệm làm đồ
án.
Cuối cùng, em muốn gửi lời cảm ơn sâu sắc đến cha mẹ và tất cả bạn bè, những người
luôn kịp thời động viên và giúp đŒ em vượt qua những khó khăn trong cuộc sống.
Sinh viên thực hiện: Nguyễn Anh Tuấn SHSV: 20063482 Khóa 51 Lớp HTTT 4
MỤC LỤC
DANH MỤC HÌNH ẢNH 8
THUẬT NGỮ VÀ TỪ VIẾT TẮT 12
LỜI MỞ ĐẦU 13
PHẦN 1: ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP 14

I.Bài toán truy hồi thông tin và các khái niệm liên quan: 14
1.1.Định nghĩa về truy hồi thông tin: 14
1.2.Các khái niệm cơ bản của truy hồi thông tin: 14
II.Tổng quan về máy tìm kiếm: 15
2.1.Định nghĩa máy tìm kiếm: 15
2.2. Kiến trúc cơ bản của một máy tìm kiếm: 15
III.Bài toán xếp hạng lại kết quả tìm kiếm của máy tìm kiếm: 16
3.1.Tính điểm trong thư viện tìm kiếm Lucene: 16
3.1.1.Standard Boolean Model (SBM): 16
3.1.2.Vector Space Model (VSM): 18
3.1.3.Ứng dụng SBM và VSM trong Lucene: 19
3.2.Xếp hạng lại kết quả tìm kiếm: 21
3.2.1.Phát biểu bài toán: 21
3.2.2.Hai hướng tiếp cận xếp hạng lại kết quả tìm kiếm: 21
IV.Các kỹ thuật xếp hạng lại kết quả tìm kiếm: 22
4.1.Khái niệm Query Log: 22
4.2.Hướng tiếp cận hướng ngữ cảnh truy vấn – Thuật toán Q-rank: 23
4.2.1.Cơ sở lý thuyết: 23
4.2.2.Các bước của thuật toán: 24
4.3.Hướng tiếp cận hướng phản hồi người dùng – Thuật toán Page Rank Reviser:. .25
4.3.1.Thuật toán I-SPY: 25
4.3.2. Thuật toán Page Rank Reviser (P2R): 26
Sinh viên thực hiện: Nguyễn Anh Tuấn SHSV: 20063482 Khóa 51 Lớp HTTT 5
PHẦN 2: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 32
I.Mô tả chung hệ thống: 32
II.Phân tích hệ thống: 33
2.1.Biểu đồ phân rã chức năng: 33
2.2.Mô hình hoạt động của chức năng tìm kiếm và xếp hạng kết quả: 34
2.3.Phân tích hệ thống về mặt cơ sở dữ liệu: 35
III.Thiết kế hệ thống: 38

3.1.Module xếp hạng lại kết quả tìm kiếm hướng ngữ cảnh truy vấn: 38
3.2.Module xếp hạng lại kết quả tìm kiếm hướng phản hồi người dùng: 40
3.2.1.Thuật toán P2R pha 1 – Giải thuật OFSD: 41
3.2.2.Thuật toán P2R pha 2 – Xếp hạng lại kết quả tìm kiếm: 47
3.3.Một số module phụ: 51
3.3.1.Module tách từ tiếng Việt: 51
3.3.2.Module lưu trữ dữ liệu: 53
IV.Cài đặt và đánh giá hệ thống: 54
4.1.Môi trường và công cụ cài đặt: 54
4.2.Dữ liệu phục vụ thử nghiệm: 54
4.3.Giao diện chương trình: 55
4.3.1.Giao diện trang chủ: 55
4.3.2.Giao diện kết quả tìm kiếm: 57
4.4.Thử nghiệm: 61
4.4.1.Các tham số của thuật toán Q-rank: 61
4.4.2.Các tham số thuật toán P2R: 61
4.5.Đánh giá: 62
PHẦN 3: KẾT LUẬN 63
I.Kết luận: 63
II.Kết quả nghiên cứu: 63
III.Kết quả phát triển ứng dụng 64
Sinh viên thực hiện: Nguyễn Anh Tuấn SHSV: 20063482 Khóa 51 Lớp HTTT 6
IV.Hướng phát triển: 64
TÀI LIỆU THAM KHẢO 65
Sinh viên thực hiện: Nguyễn Anh Tuấn SHSV: 20063482 Khóa 51 Lớp HTTT 7
DANH MỤC HÌNH ẢNH
DANH MỤC HÌNH ẢNH 8
THUẬT NGỮ VÀ TỪ VIẾT TẮT 12
LỜI MỞ ĐẦU 13
PHẦN 1: ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP 14

I.Bài toán truy hồi thông tin và các khái niệm liên quan: 14
1.1.Định nghĩa về truy hồi thông tin: 14
1.2.Các khái niệm cơ bản của truy hồi thông tin: 14
II.Tổng quan về máy tìm kiếm: 15
2.1.Định nghĩa máy tìm kiếm: 15
2.2. Kiến trúc cơ bản của một máy tìm kiếm: 15
III.Bài toán xếp hạng lại kết quả tìm kiếm của máy tìm kiếm: 16
3.1.Tính điểm trong thư viện tìm kiếm Lucene: 16
3.1.1.Standard Boolean Model (SBM): 16
3.1.2.Vector Space Model (VSM): 18
Hình 1 – Vector tài liệu và truy vấn 18
3.1.3.Ứng dụng SBM và VSM trong Lucene: 19
Hình 2 – Ứng dụng VSM và SBM trong Lucene 19
3.2.Xếp hạng lại kết quả tìm kiếm: 21
3.2.1.Phát biểu bài toán: 21
3.2.2.Hai hướng tiếp cận xếp hạng lại kết quả tìm kiếm: 21
IV.Các kỹ thuật xếp hạng lại kết quả tìm kiếm: 22
4.1.Khái niệm Query Log: 22
4.2.Hướng tiếp cận hướng ngữ cảnh truy vấn – Thuật toán Q-rank: 23
4.2.1.Cơ sở lý thuyết: 23
Hình 3 – Hai kịch bản tìm kiếm phổ biến 23
Sinh viên thực hiện: Nguyễn Anh Tuấn SHSV: 20063482 Khóa 51 Lớp HTTT 8
4.2.2.Các bước của thuật toán: 24
4.3.Hướng tiếp cận hướng phản hồi người dùng – Thuật toán Page Rank Reviser:. .25
4.3.1.Thuật toán I-SPY: 25
Hình 4 – Ma trận truy vấn 26
4.3.2. Thuật toán Page Rank Reviser (P2R): 26
Hình 5 – Ma trận cụm từ thường xuyên 26
PHẦN 2: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 32
I.Mô tả chung hệ thống: 32

Hình 6 – Mô tả hệ thống 32
II.Phân tích hệ thống: 33
2.1.Biểu đồ phân rã chức năng: 33
Hình 7 – Mô hình phân rã chức năng 33
2.2.Mô hình hoạt động của chức năng tìm kiếm và xếp hạng kết quả: 34
Hình 8 – Mô hình hoạt động của chức năng tìm kiếm và xếp hạng kết quả 34
2.3.Phân tích hệ thống về mặt cơ sở dữ liệu: 35
III.Thiết kế hệ thống: 38
3.1.Module xếp hạng lại kết quả tìm kiếm hướng ngữ cảnh truy vấn: 38
Hình 9 – Xếp hạng lại kết quả tìm kiếm hướng ngữ cảnh truy vấn 38
3.2.Module xếp hạng lại kết quả tìm kiếm hướng phản hồi người dùng: 40
Hình 10 – Xếp hạng lại kết quả tìm kiếm hướng phản hồi người dùng 40
3.2.1.Thuật toán P2R pha 1 – Giải thuật OFSD: 41
Hình 11 – Giải thuật OFSD 41
3.2.2.Thuật toán P2R pha 2 – Xếp hạng lại kết quả tìm kiếm: 47
Hình 12 – Pha 2 giải thuật P2R 47
3.3.Một số module phụ: 51
3.3.1.Module tách từ tiếng Việt: 51
Sinh viên thực hiện: Nguyễn Anh Tuấn SHSV: 20063482 Khóa 51 Lớp HTTT 9
Hình 13 – Quy trình tách từ của vnTokenizer 51
3.3.2.Module lưu trữ dữ liệu: 53
Hình 14 – Module lưu trữ dữ liệu 53
IV.Cài đặt và đánh giá hệ thống: 54
4.1.Môi trường và công cụ cài đặt: 54
4.2.Dữ liệu phục vụ thử nghiệm: 54
4.3.Giao diện chương trình: 55
4.3.1.Giao diện trang chủ: 55
Hình 15 – Giao diện trang chủ 55
Hình 16 – Giao diện trang about 56
Hình 17 – Giao diện trang help 56

4.3.2.Giao diện kết quả tìm kiếm: 57
Hình 18 – Giao diện kết quả tìm kiếm cơ bản 57
Hình 19 – Tính điểm của máy tìm kiếm với tài liệu 58
Hình 20 – Dữ liệu của tài liệu cached trên hệ thống 58
Hình 21 – Giao diện kết quả tìm kiếm nâng cao 59
Hình 22 – Các cụm từ thường xuyên của OFSD 60
4.4.Thử nghiệm: 61
4.4.1.Các tham số của thuật toán Q-rank: 61
4.4.2.Các tham số thuật toán P2R: 61
4.5.Đánh giá: 62
PHẦN 3: KẾT LUẬN 63
I.Kết luận: 63
II.Kết quả nghiên cứu: 63
III.Kết quả phát triển ứng dụng 64
IV.Hướng phát triển: 64
Sinh viên thực hiện: Nguyễn Anh Tuấn SHSV: 20063482 Khóa 51 Lớp HTTT 10
TÀI LIỆU THAM KHẢO 65
Sinh viên thực hiện: Nguyễn Anh Tuấn SHSV: 20063482 Khóa 51 Lớp HTTT 11
THUẬT NGỮ VÀ TỪ VIẾT TẮT
Từ viết tắt Từ viết đầy đủ
ĐATN Đồ án tốt nghiệp
SE Search engine
OFSD Online frequent sequence discovery
P2R Page rank reviser
VSM Vector space model
SBM Standard boolean model
Sinh viên thực hiện: Nguyễn Anh Tuấn SHSV: 20063482 Khóa 51 Lớp HTTT 12
LỜI MỞ ĐẦU
Bài toán truy hồi thông tin (information retrieval) là một trong những bài toán cơ bản
luôn được thực hiện và đòi hỏi giải quyết của con người. Tri thức của con người rất bao la,

thông tin con người muốn tìm kiếm cũng rất đa dạng, vì vậy công việc truy hồi thông tin phải
được hệ thống hóa theo những quy trình nhất định để làm giảm thời gian và công sức tìm
kiếm. Trước đây, nơi lưu giữ tri thức chủ yếu là thư viện, và các thông tin chủ yếu nằm trên
sách, báo… Nhưng từ giữa thế kỷ 20, khi kỷ nguyên công nghệ thông tin của con người bắt
đầu bước vào giai đoạn phát triển, người ta đã quan tâm chú trọng việc giải quyết bài toán truy
hồi thông tin trên nền tảng máy tính. Ngày nay, khi mà thời đại của World Wide Web thống trị
hệ thống thông tin toàn cầu, thì Internet đã trở thành kho dữ liệu khổng lồ và tìm kiếm thông
tin trên Internet cũng trở thành một nhu cầu thường nhật không thể thiếu của mọi người. Để
đáp ứng nhu cầu đó, những máy tìm kiếm (search engine) trên Internet được xây dựng, tiêu
biểu là Google, Bing, Yahoo search…
Tuy nhiên các máy tìm kiếm nêu trên chủ yếu phục vụ cho ngôn ngữ tiếng Anh, còn
ngôn ngữ tiếng Việt vẫn thiếu những máy tìm kiếm hiệu quả, hỗ trợ các tính năng nâng cao và
phù hợp với đặc điểm ngôn ngữ bản địa. Đây là một vấn đề khá hóc búa và liên quan đến rất
nhiều lĩnh vực bao gồm cả các bài toán truy hồi thông tin lẫn xử lý ngôn ngữ tiếng Việt. Trong
khuôn khổ một đồ án tốt nghiệp của sinh viên, em không thể xây dựng được một máy tìm
kiếm giống như mong muốn, vì vậy được sự gợi ý và hướng dẫn của PGS.TS Nguyễn Kim
Anh, em đã chọn thực hiện đề tài “Xếp hạng lại kết quả trả về từ máy tìm kiếm” cho đồ án
tốt nghiệp của mình.
Với mục tiêu nghiên cứu, tìm hiểu và xây dựng chương trình minh họa, báo cáo đồ án
ngoài được chia làm 3 phần chính:
• Phần 1: Đặt vấn đề và định hướng giải pháp
• Phần 2: Triển khai và đánh giá kết quả
• Phần 3: Kết luận
Sinh viên thực hiện: Nguyễn Anh Tuấn SHSV: 20063482 Khóa 51 Lớp HTTT 13
PHẦN 1: ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP
I.Bài toán truy hồi thông tin và các khái niệm liên quan:
1.1.Định nghĩa về truy hồi thông tin:
Theo Wikipedia: “Truy hồi thông tin là ngành khoa học chuyên về tìm kiếm các
thông tin trên các tài liệu, tìm kiếm các tài liệu, tìm kiếm các siêu dữ liệu mô tả tài
liệu, hoặc tìm kiếm trong cơ sở dữ liệu (bao gồm cả Internet) các đoạn văn bản, âm

thanh, hình ảnh hoặc dữ liệu”. Truy hồi thông tin liên quan đến rất nhiều ngành, nhiều
lĩnh vực như toán học, khoa học máy tính, hệ thống thông tin…
1.2.Các khái niệm cơ bản của truy hồi thông tin:
Quá trình truy hồi thông tin bắt đầu khi người dùng nhập một câu truy vấn vào
hệ thống. Hệ thống sẽ trả về các đối tượng thích hợp (ở các mức khác nhau) với câu
truy vấn.
• Truy vấn (query): là một phát biểu công thức về thông tin cần tìm (VD: chuỗi
tìm kiếm trong máy tìm kiếm…).
• Đối tượng (object): thực thể đại diện cho thông tin trong cơ sở dữ liệu (VD: tài
liệu văn bản, hình ảnh, âm thanh…).
• Điểm số (score): Các hệ thống truy hồi thông tin tính toán điểm số cho các đối
tượng dựa trên độ thích hợp với truy vấn, rồi dựa vào điểm số đó để xếp hạng
đối tượng. Các đối tượng có điểm cao nhất sẽ được trả về cho người dùng.
Sinh viên thực hiện: Nguyễn Anh Tuấn SHSV: 20063482 Khóa 51 Lớp HTTT 14
II.Tổng quan về máy tìm kiếm:
2.1.Định nghĩa máy tìm kiếm:
Wikiapedia định nghĩa như sau: “Máy truy tìm hay máy tìm kiếm (Search
Engine), hay còn được gọi với nghĩa rộng hơn là công cụ tìm kiếm (search tool),
nguyên thủy là một phần mềm nhằm tìm ra các trang trên Internet có nội dung theo
yêu cầu người dùng dựa vào các thông tin mà chúng có. Trữ lượng thông tin này của
công cụ tìm kiếm thực chất là một loại cơ sở dữ liệu (database) cực lớn. Việc tìm các
tài liệu sẽ dựa trên các từ khóa (keywords) được người dùng gõ vào và trả về một danh
mục của các trang web có chứa từ khóa mà nó tìm được”.
Salton (1989): “Hệ thống tìm kiếm thông tin xử lý các files lưu trữ và những
yêu cầu về thông tin, xác định và tìm từ các files những thông tin phù hợp với những
yêu cầu về thông tin. Việc tìm kiếm những thông tin đặc thù phụ thuộc vào sự tương tự
giữa các thông tin được lưu trữ và các yêu cầu, được đánh giá bằng cách so sánh các
giá trị của các thuộc tính đối với thông tin được lưu trữ và các yêu cầu về thông tin.”
Định nghĩa của Kowalski (1977): “Máy tìm kiếm là một hệ thống hỗ trợ người
dùng sử dụng tìm kiếm thông tin một cách nhanh chóng và dễ dàng. Thông tin có thể

bao gồm tài liệu, hình ảnh, âm thanh, video và những đối tượng đa phương tiện khác”.
2.2. Kiến trúc cơ bản của một máy tìm kiếm:
Về cơ bản, hệ thống máy tìm kiếm gồm 3 thành phần chính:
• Bộ thu thập thông tin (Crawler): Bộ phận này có nhiệm vụ tự động thu thập,
tải về các files từ các nguồn khác nhau (các trang web trên Internet, các files tài
liệu trong một thư viện số, .v.v.)
• Bộ lập chỉ mục (Indexer): Bộ phận này tiến hành phân tích nội dung các files
được tải về, sau đó thực hiện đánh chỉ mục.
• Bộ tìm kiếm thông tin (Searcher): Chức năng tìm kiếm các tài liệu phù hợp
với yêu cầu của người dùng, việc tìm kiếm dựa trên các từ khóa.
Sinh viên thực hiện: Nguyễn Anh Tuấn SHSV: 20063482 Khóa 51 Lớp HTTT 15
III.Bài toán xếp hạng lại kết quả tìm kiếm của máy tìm kiếm:
Xếp hạng lại kết quả tìm kiếm là một trong những kỹ thuật quan trọng nhằm cải
thiện chất lượng tìm kiếm của các máy tìm kiếm (search engine – SE). Ta sẽ đi nghiên
cứu cách thức tính điểm cho cặp truy vấn – tài liệu của thư viện Lucene, một thư viện
tìm kiếm nổi tiếng để hiểu rõ ưu nhược điểm của các cách tính điểm và xếp hạng
truyền thống.
Cơ chế tính điểm tài liệu trong Lucene là cơ sở để xếp hạng các tài liệu phù hợp
và đưa ra cho người dùng. Lucene sử dụng kết hợp 2 mô hình: Vector Space Model và
Standard Boolean Model để tính điểm tài liệu, xác định độ thích hợp của tài liệu với
truy vấn của người dùng. Có thể nói cơ chế tính điểm chính là nhân tố quyết định chất
lượng máy tìm kiếm, quyết định xem trong các máy tìm kiếm thì máy tìm kiếm nào tốt
nhất.
3.1.Tính điểm trong thư viện tìm kiếm Lucene:
3.1.1.Standard Boolean Model (SBM):
SBM là một mô hình truy hồi thông tin kiểu cổ điển. SBM dựa trên các lý
thuyết về tập hợp và logic và được ứng dụng nhiều trong các máy tìm kiếm. Cơ chế
hoạt động của SBM:
• Chuyển tài liệu (document) và truy vấn (query) thành tập hợp các term:
o Cho T = {t1, t2, , tj, , tm} – tập hữu hạn các term

o D = {D1, , Di, , Dn} – tập hữu hạn các tài liệu, với Di = {t ϵ T | t ϵ tài
liệu i}
o Q = (Wi OR Wk OR ) AND AND (Wj OR Ws ) - biểu thức
logic, với Wi=ti, Wk=tk, Wj=tj, Ws=ts, hoặc Wi=NON ti, Wk=NON tk,
Wj=NON tj, Ws=NON ts
• Khi đó hoạt động truy tìm sẽ được tiến hành theo 2 bước:
o Xây dựng các tập Sj = {Di | Wj ϵ Di}
o Sử dụng các phép toán UNION, INTERSECTION… trên các tập Sj để
tìm ra kết quả
Sinh viên thực hiện: Nguyễn Anh Tuấn SHSV: 20063482 Khóa 51 Lớp HTTT 16
Sinh viên thực hiện: Nguyễn Anh Tuấn SHSV: 20063482 Khóa 51 Lớp HTTT 17
3.1.2.Vector Space Model (VSM):
VSM là mô hình dựa trên nguyên lý chuyển đổi các đoạn văn bản thành các
vector. VSM được ứng dụng nhiều trong lọc thông tin (information filtering), truy hồi
thông tin (information retrieval) và xếp hạng (relevancy ranking). Cơ chế hoạt động
của VSM:

Thể hiện tài liệu và truy vấn dưới dạng vector nhiều chiều
d
j
= (w
1,j
, w
2,j
, , w
t,j
)
q = (w
1,q
, w

2,q
, , w
t,q
)
trong đó mỗi chiều là trọng số của một term riêng biệt. Nếu term t xuất hiện
trong tài liệu j thì w
t,j
≠ 0.

Các vấn đề được đặt ra:
Tính trọng số w
t,j
?
Mức độ phù hợp của tài liệu d
j
với truy vấn q ?
 Giải quyết: Mức độ phù hợp của tài liệu d
j
và truy vấn q được dựa trên góc giữa
2 vector d
j
và q
Hình 1 – Vector tài liệu và truy vấn
cos θ =
d2 . q
|| d2 || . || q ||

Tính giá trị w
t,j
Sinh viên thực hiện: Nguyễn Anh Tuấn SHSV: 20063482 Khóa 51 Lớp HTTT 18

o Công thức tf – idf (term frequency-inverse document frequency):
w
t,d
= tf
t,d
. log
|D|
|{d ϵ D | t ϵ d}|
 tf (t, d): số lần xuất hiện của term t trong tài liệu d
 |D| - số lượng tài liệu
 |{d ϵ D | t ϵ d}| - số lượng tài liệu có chứa term t
3.1.3.Ứng dụng SBM và VSM trong Lucene:
Do nhược điểm của VSM cần tính toán phức tạp nên VSM không thích hợp để
xếp hạng số lượng lớn các tài liệu. Còn SBM tuy đơn giản nhưng lại không cho giá trị
cụ thể về mức độ tương thích, mà chỉ chỉ ra tài liệu có thích hợp với truy vấn của người
dùng hay không. Vì vậy Lucene sử dụng SBM để khoanh vùng các tài liệu cần tìm
kiếm, sau đó sử dụng VSM để xếp hạng các tài liệu đó.
Hình 2 – Ứng dụng VSM và SBM trong Lucene
Tuy nhiên, do VSM còn tồn tại cả những nhược điểm khác, vì vậy ngay cả khi
khoanh vùng được tài liệu (sử dụng SBM), trong công thức tính điểm cho tài liệu,
Lucene không chỉ sử dụng đơn thuần công thức của VSM mà còn bổ sung thêm các giá
trị mới để loại bỏ những nhược điểm này.
Công thức tính điểm thực tế của Lucene:
Sinh viên thực hiện: Nguyễn Anh Tuấn SHSV: 20063482 Khóa 51 Lớp HTTT 19
• Một tài liệu có thể chứa một số query term mà không cần chứa toàn bộ query
đó. Các tài liệu chứa nhiều query term sẽ được gia tăng điểm số bằng tham số
coord (q, d).
• Giá trị chuẩn hóa của truy vấn |V(q)| (trong công thức là queryNorm(q)) cũng
được tính trước khi quá trình tìm kiếm bắt đầu. Giá trị này độc lập với các tài
liệu được tính điểm

• Lucene lưu trữ tài liệu dựa trên trường (field based), do đó mỗi query term sẽ
ứng với một trường cụ thể. Các trường này có một giá trị gọi là điểm gia tăng
(boost score) nhằm phân biệt mức độ quan trọng giữa mỗi trường.
score(q,d) = coord(q,d) · queryNorm(q) · ∑ ( tf(t in d) · idf(t)
2
· t.getBoost() · norm(t,d) )
t in q
Với:
• q là truy vấn – query
• d là tài liệu – document
• t là term của query.
• norm(t,d) là norm(field(t) in doc(d)) với field(t) là trường gắn với term t.
Qua công thức tính điểm của Lucene, ta có thể thấy việc tìm kiếm và xếp hạng
các tài liệu thích hợp với truy vấn chỉ thông qua sự so khớp và tần suất xuất hiện của từ
khóa truy vấn trong tài liệu. Đối với các truy vấn rõ ràng và đầy đủ thông tin, Lucene
có thể trả về tập tài liệu tốt, nhưng đối với các truy vấn mập mờ, đa nghĩa, những tài
liệu trả về lại có thể không như mong muốn của người dùng.
Lấy một ví dụ đơn giản, khi người dùng gõ vào máy tìm kiếm truy vấn “tiger”.
Hệ thống sẽ lọc ra các tài liệu chứa từ khóa truy vấn và tài liệu nào có tần suất xuất
hiện từ khóa càng nhiều thì sẽ càng có thứ hạng cao. Tuy nhiên, giả sử mục đích tìm
kiếm của người dùng là về vận động viên Tiger Woods, nhưng các tài liệu thuộc top-
rank được trả về đều là về động vật (tiger – hổ), như vậy có nghĩa là máy tìm kiếm đã
thất bại trong việc trả về tài liệu phù hợp mong muốn của người dùng.
Sinh viên thực hiện: Nguyễn Anh Tuấn SHSV: 20063482 Khóa 51 Lớp HTTT 20
3.2.Xếp hạng lại kết quả tìm kiếm:
3.2.1.Phát biểu bài toán:
Quá trình tìm kiếm trên máy tìm kiếm: Người dùng nhập truy vấn vào giao diện
máy tìm kiếm, máy sẽ đi tìm các tài liệu thích hợp trong kho chỉ mục của mình và xếp
hạng tài liệu dựa trên điểm số rồi trả về cho người dùng.
Vấn đề: liệu tài liệu người dùng mong muốn có ở trong tập tài liệu trên đầu (thứ

hạng cao)? Vì theo những khảo sát từ trước tới nay, người dùng thường chỉ xem 1,2
trang kết quả đầu tiên do máy tìm kiếm trả về (tức là 20 – 30 tài liệu tốp đầu) rồi sẽ
nhập lại truy vấn khác để thực hiện một tìm kiếm mới. Nếu truy vấn người dùng nhập
vào đủ tốt (rõ ràng, chứa đủ thông tin, các từ khóa hợp lý) thì khả năng họ tìm được tài
liệu mong muốn trong 1,2 trang đó là rất cao, nhưng đa phần người dùng thường thiếu
kinh nghiệm và chuyên môn, vậy nên thường phải sau khá nhiều truy vấn họ mới tìm
thấy được tài liệu mình mong muốn.
Xếp hạng lại kết quả tìm kiếm (re-ranking search results) là một bài toán nhằm
cải thiện chất lượng tìm kiếm, đưa những tài liệu mà (có thể) người dùng mong muốn
lên trên đầu. Việc xếp hạng lại này nhằm 2 mục đích:
• Giảm thiểu thời gian tìm kiếm cho người dùng.
• Giảm sức ép lên máy tìm kiếm.
3.2.2.Hai hướng tiếp cận xếp hạng lại kết quả tìm kiếm:
Có rất nhiều kỹ thuật xếp hạng lại kết quả tìm kiếm, và mỗi kỹ thuật lại khai
thác những giá trị khác nhau của quá trình tìm kiếm cùng tài liệu tìm kiếm. Trong đồ
án này, em lựa chọn nghiên cứu và cài đặt 2 thuật toán xếp hạng lại kết quả tìm kiếm
dựa trên 2 hướng tiếp cận:
• Hướng tiếp cận hướng ngữ cảnh truy vấn (query context) – Thuật toán Q-rank.
• Hướng tiếp cận hướng phản hồi người dùng (user feedback) – Thuật toán Page
Rank Reviser.
Đặc điểm chung của 2 thuật toán này là đều khai thác Query Log, tập tri thức
người dùng trong quá khứ để tính điểm và xếp hạng lại các kết quả tìm kiếm.
Sinh viên thực hiện: Nguyễn Anh Tuấn SHSV: 20063482 Khóa 51 Lớp HTTT 21
IV.Các kỹ thuật xếp hạng lại kết quả tìm kiếm:
4.1.Khái niệm Query Log:
Query Log là một tập các bản ghi, mỗi bản ghi gồm các thông tin về các hành vi
tìm kiếm của người dùng. Mỗi thông tin có thể bao gồm câu truy vấn của người dùng,
tập các kết quả cho câu truy vấn đó và tập các liên kết URL trong tập kết quả được
người dùng nhấn.
Một Query Log L điển hình gồm các bản ghi (q

i
, u
i
, t
i
, V
i
,C
i
) với q
i
là chuỗi truy
vấn, u
i
định danh người dùng (mã - không có tên), t
i
là nhãn thời gian, V
i
là tập kết quả
trả về cho câu truy vấn đó và C
i
là tập những tài liệu được nhấn bởi người dùng.
QueryLog là một tập các bản ghi, mỗi bản ghi gồm các thông tin về các hành vi tìm
kiếm của người dùng. Mỗi thông tin có thể bao gồm câu truy vấn của người dùng, tập
các kết quả cho câu truy vấn đó và tập các liên kết URL trong tập kết quả được người
dùng nhấn.
Đặc điểm của Query Log:
• Kích thước của Query Log tăng lên một cách chóng mặt theo thời gian
(mỗi truy vấn do người dùng đưa vào đều được lưu vào Query Log cùng
các thông tin đi kèm).

• Một số truy vấn không có dữ liệu URLClicked, chính là tập liên kết URL
được người dùng nhấn. Những truy vấn này chứa đựng ít thông tin, có
thể được loại bỏ tùy nhu cầu của hệ thống.
Hầu hết các hệ thống tìm kiếm hiện nay đều tích hợp Query Log nhằm phục vụ
nhiều mục đích khác nhau như gợi ý truy vấn, xếp hạng lại kết quả tìm kiếm, khảo sát
ý đồ tìm kiếm của người dùng.
Sinh viên thực hiện: Nguyễn Anh Tuấn SHSV: 20063482 Khóa 51 Lớp HTTT 22
4.2.Hướng tiếp cận hướng ngữ cảnh truy vấn – Thuật toán Q-rank:
4.2.1.Cơ sở lý thuyết:
Có 2 kịch bản tìm kiếm thường được người dùng áp dụng trong quá trình tìm
kiếm. Kịch bản A: người dùng liên tục đệ trình và chỉnh sửa truy vấn cho tới khi tìm
được tài liệu mong muốn. Kịch bản B: người dùng đệ trình một câu truy vấn và thử
từng tài liệu trả về cho tới khi tìm được tài liệu mong muốn. Tài liệu này có thể đã
được trả về trong các câu truy vấn khác có liên quan đến truy vấn đang xét hoặc chứa
truy vấn đang xét. 2 kịch bản này chứng tỏ rằng, các tài liệu mà người dùng mong
muốn không chỉ có sự tương thích với truy vấn mà còn tương thích với cả ngữ cảnh
của truy vấn, bao gồm các truy vấn liên quan đến truy vấn đang xét như các truy vấn kề
trong một phiên tìm kiếm, hoặc các truy vấn chứa truy vấn đang xét là tiền tố.
Hình 3 – Hai kịch bản tìm kiếm phổ biến
Một số khái niệm cơ bản về ngữ cảnh của truy vấn:
• Query extension: phẩn mở rộng của truy vấn – là những tờ mở rộng
thêm ở trong các truy vấn khác có chứa truy vấn đang xét.
• Adjacent query: các truy vấn kề truy vấn đang xét (các truy vấn được sử
dụng trước hoặc sau truy vấn trùng truy vấn đang xét ở trong một phiên
tìm kiếm của người dùng).
• Query context (ngữ cảnh truy vấn): hợp của tập adjacent query và query
extension.
Sinh viên thực hiện: Nguyễn Anh Tuấn SHSV: 20063482 Khóa 51 Lớp HTTT 23
Ý tưởng của thuật toán Q-rank khá đơn giản: tập adjacent query và query
extension thường cung cấp những gợi ý quan trọng về ý đồ tìm kiếm của người dùng.

4.2.2.Các bước của thuật toán:
4.2.2.1.Xây dựng tập ngữ cảnh truy vấn:
Giả sử ta có tập Q là tập truy vấn trích ra từ Query Log tương ứng với một
khoảng thời gian xác định. Truy vấn đang xét là truy vấn q. Ta đi xây dựng 2 tập query
extensions và adjacent query:
Q
adj
(q) = {q
adj
| q
adj
∈ Q
next
(q) ∪ Q
prev
(q)}
Q
ext
(q) = {q
ext
| q." ".q
ext
∈ Q}
Với:
Q
next
(q): tập các truy vấn thường được người dùng sử dụng sau khi nhập q
Q
prev
(q): tập các truy vấn thường được người dùng sử dụng trước khi nhập q

4.2.2.2.Tính lại điểm cho tài liệu:
Giả sử tập D(q) là tập tài liệu (đã xếp hạng) do máy tìm kiếm trả về tương ứng
với truy vấn q. Với mỗi tài liệu d, ta đi tính giá trị RS(d,q) theo công thức sau:
Với:

γ ∈ [0 1] : giá trị điều chỉnh tầm quan trọng giữa Q
ext
và Q
adj

tf (q
i
, d): tần số xuất hiện của truy vấn q
i
trong tài liệu d

D
qi
: tập tài liệu d với d thỏa mãn tf (q
i
, d) > 0
Sinh viên thực hiện: Nguyễn Anh Tuấn SHSV: 20063482 Khóa 51 Lớp HTTT 24

qf (q
i
): tần số xuất hiện của truy vấn q
i
trong query logs

R(d): thứ hạng tài liệu d trong tập D(q)

Sau đó ta tiến hành xếp hạng lại các tài liệu dựa trên giá trị RS giảm dần.
Giá trị tf(q
i
, d) phản ánh mức độ tương thích của truy vấn q
i
với document d và có thể
được tính bằng nhiều công thức:
• Bằng điểm số của máy tìm kiếm cho cặp truy vấn q
i
– tài liệu d.
• Bằng giá trị nhỏ nhất của tf-idf(t,d) với t là từ khóa (term) trong truy vấn q
i
.
• …
Giá trị ln (|D| / |D
qi
|) phản ánh mức độ quan trọng của truy vấn với toàn bộ các tài liệu:
truy vấn càng ít tài liệu tương thích thì mức độ phân biệt càng cao  càng quan trọng.
Giá trị qf(q
i
) / ∑qf(q
i
) phản ánh mức độ quan trọng của truy vấn trong Query Log: truy
vấn càng xuất hiện nhiều càng quan trọng.
Giá trị γ điều chỉnh tầm quan trọng giữa 2 tập Q
adj
và Q
ext
. Dựa trên thực nghiệm và các
hoàn cảnh cụ thể, giá trị này sẽ được điều chỉnh thích hợp.

4.3.Hướng tiếp cận hướng phản hồi người dùng – Thuật toán Page Rank Reviser:
Khi máy tìm kiếm trả về tập kết quả, người dùng sẽ xem lướt qua phần mô tả
của mỗi kết quả và nhấn lên những liên kết đến những tài liệu họ cho là thích hợp. Như
vậy hành động nhấn lên liên kết đó đã bao hàm sự đánh giá sơ bộ của người dùng đối
với tài liệu thông qua đoạn mô tả. Kỹ thuật xếp hạng lại kết quả tìm kiếm dựa trên
phản hồi người dùng khai thác thông tin đánh giá để tiến hành công việc xếp hạng lại.
4.3.1.Thuật toán I-SPY:
Thuật toán dựa trên dữ liệu lưu trữ về các truy vấn được đệ trình cũng như phản
hồi của người dùng trên các tài liệu tìm kiếm được trả về tương ứng với truy vấn. Một
ma trận kết quả (hit-matrix) được sử dụng để lưu trữ số lần người dùng click vào các
url (ứng với các tài liệu) theo từng truy vấn.
Sinh viên thực hiện: Nguyễn Anh Tuấn SHSV: 20063482 Khóa 51 Lớp HTTT 25

×