1
Trường Đại học Bách Khoa Hà Nội
Viện Công Nghệ Thông Tin và Truyền Thông
BÁO CÁO BÀI TẬP LỚN
XỬ LÝ NGÔN NGỮ TỰ NHIÊN
Đề tài: Tìm hiểu cấu trúc hệ thống tìm kiếm thông tin Google hiện tại và các kỹ thuật
xử lý trong tìm kiếm thông tin của Google
Giáo viên hướng dẫn: PGS. Lê Thanh Hương
Nhóm sinh viên thực hiện:
Ngô Ngọc Đức 20080738
Bùi Tuấn Điệp 20080663
Nguyễn Huy Dưỡng 20080575
Nguyễn Văn Dương 20086082
Nguyễn Văn Kiên 20081453
Hà Nội – 04/2012
Mục Lục
2
A.Mở đầu
Trong thời đại ngày nay, thông tin là nhu cầu thiết yếu đối với mọi người
trên mọi lĩnh vực. Mỗi phút trôi qua hàng triệu triệu trang web được đẩy lên nhằm
làm giàu nguồn tài nguyên vô tận này. Tuy nhiên tồn tại một nghịch lý là dù được
ví như thư viện toàn cầu, internet vẫn không thoả mãn nhu cầu thông tin của con
người. Xung quanh vấn đề này có nhiều nguyên nhân nhưng quan trọng nhất là sự
thông hiểu giữa con người và công cụ tìm kiếm trên mạng – search engine – chưa
đạt đến mức có thể giao tiếp tốt với nhau.
Nếu ta hiểu cách thức search engine tổ chức thông tin, thực thi một câu truy vấn và
đặc trưng của ngôn ngữ mà search engine sẽ tiếp cận thì ta có thể tối ưu hoá cơ hội
nhận được các thông tin hữu ích.
3
B.Tổng quan về hệ thống Search Engine
I.Các bộ phận cấu thành hệ thống search engine
1.Bộ thu thập thông tin
Robot là một chương trình tự động duyệt qua các cấu trúc siêu liên kết để thu
thập tài liệu & một cách đệ quy nó nhận về tất cả tài liệu có liên kết với tài liệu
này.
Robot được biết đến dưới nhiều tên gọi khác nhau : spider, web wanderer hoặc
web worm,… Những tên gọi này đôi khi gây nhầm lẫn, như từ ‘spider’, ‘wanderer’
làm người ta nghĩ rằng robot tự nó di chuyển và từ ‘worm’ làm người ta liên tưởng
đến virus. Về bản chất robot chỉ là một chương trình duyệt và thu thập thông tin từ
các site theo đúng giao thức web. Những trình duyệt thông thường không được
xem là robot do thiếu tính chủ động, chúng chỉ duyệt web khi có sự tác động của
con người.
2.Bộ lập chỉ mục
Hệ thống lập chỉ mục hay còn gọi là hệ thống phân tích và xử lý dữ liệu, thực
hiện việc phân tích, trích chọn những thông tin cần thiết (thường là các từ đơn , từ
ghép , cụm từ quan trọng) từ những dữ liệu mà robot thu thập được và tổ chức
thành cơ sở dữ liệu riêng để có thể tìm kiếm trên đó một cách nhanh chóng, hiệu
quả. Hệ thống chỉ mục là danh sách các từ khoá, chỉ rõ các từ khoá nào xuất hiện ở
trang nào, địa chỉ nào.
3.Bộ tìm kiếm thông tin
Bộ tìm kiếm thông tin là một thành phần xử lý các truy vấn từ phía người sử
dụng (user), tiếp nhận các yêu cầu tìm kiếm (câu truy vấn query),phân tích từ, tìm
kiếm trong Cơ sở dữ liệu chỉ mục, so khớp các từ khóa, lấy về kết quả phù hợp, sau
đó trả lại những kết quả đó cho người sử dụng thông qua giao diện GUI.
4
Nói chung, bộ tìm kiếm thông tin hoạt động độc lập với các thành phần
khác, song lại phụ thuộc với nhau về mặt dữ liệu.
II.Nguyên lý hoạt động của Search Engine
1.Search Engine điều khiển robot đi thu thập thông tin trên mạng thông qua
các siêu liên kết Hyperlink.
2.Robots phát hiện ra website mới, nó gửi tài liệu webpage về cho server
chính để tạo CSDL chỉ mục phục vụ cho nhu cầu tìm kiếm thông tin. (*Robots
phải liên tục cập nhật dữ liệu trên mạng, mật độ cập nhật phụ thuộc vào từng hệ
thống tìm kiếm (Search engine)).
3.Search engine nhận yêu cầu truy vấn từ User, nó sẽ tiến hành phân tích,
tìm trong CSDL chỉ mục và trả về những tài liệu thỏa yêu cầu.
5
C.Ranking
I.Ranking là gì?
Trong lĩnh vực tìm kiếm, ranking là kỹ thuật đánh giá giá trị từng kết quả
trong tập trả về mỗi khi người dùng truy vấn. Bằng cách thức cho điểm, danh sách
kết quả sẽ được sắp xếp theo thứ tự trước sau tương ứng với số điểm.
Với việc bùng nổ dữ liệu trên internet, việc đánh giá xem một trang web nào là
chất lượng với một từ khóa thực sự khó khăn. Do đó tầm quan trọng của ranking
trong tìm kiếm ngày càng cao. Nó đòi hỏi phải kết hợp nhiều thuật toán để cho ra
được kết quả tốt nhất mà người dùng mong muốn.
II.Các kỹ thuật sử dụng trong ranking
Google cho biết họ sử dụng kết quả của hơn 200 phương pháp khác nhau để đánh
giá toàn thể cấu trúc Web và xác định những trang nào là quan trọng nhất.
Sau đây là một số thuật toán cơ bản trong Ranking:
1. Đánh giá bằng thống kê.
Thuật toán dựa vào những yếu tố sau để cho điểm một từ khoá trong một trang
Web:
• Số lần xuất hiện của từ khoá trong bài viết. Ví dụ: từ "Việt Nam" xuất hiện
hai lần trong bài viết A và 3 lần trong bài viết B. Như vậy bài viết B sẽ có
điểm cao hơn khi truy vấn bằng từ khoá "Việt Nam".
• Tỉ lệ tần suất xuất hiện từ khoá với độ dài của bài viết. Ví dụ: từ khoá "Việt
Nam" xuất hiện hai lần trong bài viết A và 3 lần trong bài viết B. Nhưng nếu
bài viết A dài 1 trang và bài viết B dài 2 trang thì trong trường hợp này, bài
viết A sẽ có điểm số cao hơn bài viết B ứng với từ khóa "Việt Nam".
Thuật toán chỉ mang tính chất thống kê và tương đối. Trong một môi trường thực,
không phải bất cứ bài viết nào có sự xuất hiện và tần suất xuất hiện cao của từ khoá
cũng là thứ mà người tìm kiếm cần. Rất nhiều trang có từ khoá xuất hiện cao thực
chất chỉ là nội dung rác.
6
2.Đánh giá theo địa chỉ của trang.
Đây là một cách đánh giá độ quan trọng của từ khóa với mỗi trang Web và
thường có trọng số khá cao. Thay vì từ khóa nằm trong bài viết thì nó lại nằm trong
đường dẫn URL hay tên miền của trang Web (domain name).
3. Đánh giá bằng từ khoá quan trọng.
Web Page là tài liệu có định dạng hiển thị. Thông dụng nhất là chuẩn
HTML. Dựa vào cấu trúc định dạng đó, thuật toán cho điểm cao hơn với từ khóa
nằm trong các thẻ đặc biệt. Cách thông thường nhất mà Search Engine hay áp dụng
chính là cho điểm cao với từ khoá nằm trong anchor text(liên kết), các thẻ tiêu đề,
meta keyword, H1, H2, H3, H4, H5, H6 hoặc từ khoá được in đậm, viết hoa.
Chúng ta đã biết một bài văn thường bao gồm ba phần: mở bài, thân bài và kết
luận. Trong đó, phần mở bài gần như một tóm tắt hoặc giới thiệu nội dung cho cả
bài viết. Nếu chúng ta xác định được đâu là mở bài và cho điểm cao hơn với những
từ khóa nằm trong đó thì kết quả search chính xác hơn rất nhiều. Mặt khác, với một
từ "Việt Nam", nếu xuất hiện ở đầu bài viết, giữa hay cuối bài viết thì nó cũng có
những trọng lượng khác nhau.
Trong một bài viết, các từ khóa có độ quan trọng khác nhau còn tùy thuộc vào vị
trí hoặc ngữ cảnh. Ví dụ, các danh từ riêng sẽ ít xuất hiện hơn trong một bài viết
nhưng nó mang lại thông tin nhất định cho bài viết. Chẳng hạn, nếu ta thấy từ "Việt
Nam", ta biết ngay bài viết sẽ nói vấn đề gì đó về Việt Nam. Nhưng với từ "làm
việc", chúng ta không thể đưa ra kết luận gì bởi đây là một động từ chung chung.
Các danh từ thường có độ quan trọng hơn động từ, tính từ và trạng từ là thành phần
kém quan trọng nhất. Ngoài ra, từ viết tắt, từ đồng nghĩa sẽ giúp nội dung có
điểm đánh giá cao hơn. Ví dụ, bài viết chứa cả cụm từ "Hà Nội" và "Thăng Long"
sẽ có điểm cao hơn so với bài viết chỉ chứa từ "Hà Nội". Trường hợp khác, bài viết
chứa cả cụm từ "công nghệ thông tin" và "cntt" sẽ có điểm cao hơn bài viết chỉ
chứa cụm từ "công nghệ thông tin". Kết hợp với từ điển, phân tích ngữ nghĩa sẽ
giúp phân tích sâu hơn về cấu trúc, tóm tắt hay gạn lọc lại những ý chính của bài
viết.
4.Đánh giá bởi các từ gần nhau.
Thuật toán cho phép tính toán độ gần nhau giữa các từ khoá. Các Search
Engine cho phép người tìm kiếm chỉ định độ gần nhau của các từ bằng câu lệnh
7
tìm kiếm dạng "ca sỹ mỹ tâm"~5. Lệnh search này sẽ trả về tập bài viết có các từ
"ca", "sỹ", "mỹ", "tâm" và khoảng cách giữa các từ thường không quá năm từ. Đây
là thuật toán khá hay và tương đối dễ cài đặt. Thuật toán này có thể kết hợp với các
phương thức phân tích cao cấp để xác định vấn đề quan trọng trong bài viết nhằm
tăng điểm cao hơn cho các câu hoặc cụm từ giá trị trong nội dung.
5. Đánh giá theo ngày tháng.
Thông thường, người tìm kiếm có xu hướng tìm kiếm những vấn đề hay sự
kiện mới xảy ra. Chẳng hạn, với từ khoá "Ronaldo", người ta sẽ quan tâm đến
những vấn đề như Ronaldo gần đây cặp kè với ai, đá cho đội nào hay mức lương
bao nhiêu? Phương thức ranking này là dễ, rẻ nhất và khá hiệu quả. Nếu ta quan sát
kết quả Google ở nhiều thời điểm khác nhau với một từ khóa ta sẽ thấy thứ hạng
trả về của kết quả thay đổi. Nhưng phương thức xác định thời gian của nội dung
không hề đơn giản. Nếu chỉ căn cứ vào thời gian Crawler (máy quét) lấy về thì
không chính xác tuyệt đối. Ví dụ, một bài viết xuất hiện trên trang Web A đã lâu
nhưng được trang Web B copy lại nội dung. Như vậy, thời gian mà Crawler lấy về
chỉ mang tính tương đối. Trường hợp khác, bài viết đề cập tới chiến tranh Việt
Nam hay những sự kiện từ thập niên 50 được đăng tải, chúng ta không thể căn cứ
vào thời gian cập nhật để xác định thời gian của nội dung.
6. Đánh giá theo độ nổi tiếng của trang.
"PageRank của Google đánh giá độ quan trọng của một trang web dựa trên
phương pháp xử lí gọi là thuật toán phân tích liên kết (Link Analysis Algorithm).
Phương pháp này đánh giá độ quan trọng của một trang Web dựa trên những liên
kết trên Internet. Và Google cho biết: "trang nào được chúng tôi đánh giá quan
trọng sẽ được ưu tiên hiện trước trong danh sách kết quả tìm kiếm. Chúng tôi luôn
tìm cách đánh giá một cách hữu hiệu nhất để tăng chất lượng kết quả tìm kiếm và
tạo ra một sản phẩm có ích, và công nghệ PageRank của chúng tôi sử dụng tính
cộng đồng trên Internet để xác định độ quan trọng của một trang web."
Đây là một phương thức hay và có hiệu quả.Nhưng tại thời điểm hiện nay, số
lượng trang web ngày càng bùng nổ theo cấp số nhân Hiện tại, chất lượng Page
Rank đã giảm nhiều so với thời kỳ đầu.
8
7. Đánh giá theo truy vấn vùng.
Cùng một từ khóa tìm kiếm, kết quả trả về cho người Mỹ sẽ khác với kết
quả trả về cho người Việt. Ngoài việc ưu tiên những nội dung tiếng Việt lên đầu,
Search Engine còn cần phải loại bỏ các kết quả không phù hợp với văn hóa và xã
hội Việt Nam.
Tính toàn cầu của Internet cũng cần phải thỏa mãn tính bản địa khi truy vấn đến từ
nhiều nơi khác nhau. Local Ranking là phương pháp căn cứ vào dải ip truy cập của
người dùng rồi đánh giá lại tập nội dung, cho điểm những kết quả phù hợp hơn với
người dùng đến từ nước, vùng, khu vực đó.
8.Đánh giá bởi con người và trình duyệt.
Phương pháp thống kê nhờ theo dõi hành vi người dùng để đưa ra đánh giá
về chất lượng của một trang Web. Phương thức này chỉ có thể triển khai khi một
Search Engine có số lượng người dùng lớn như Google hoặc Yahoo. Một phương
pháp khác là nhờ vào kiểm soát trình duyệt (Google và Microsoft).Hiệu quả của
phương pháp này rất lớn nếu được triển khai tốt. Tuy nhiên, nó vi phạm đến một số
vấn đề riêng tư và bảo mật của người dùng Search Engine.
III.PageRank:
1.PageRank là gì?
PageRank là một thuật toán được sử dụng trong công cụ tìm kiếm Google,
được phát triển tại Đại học Stanford bởi Larry Page và Sergey Brin trong nghiên
cứu của họ “The Anatomy of a Large-Scale Hypertextual Web Search Engine”.
Thuật toán dựa trên 1 giả thuyết phổ biến trong giới hàn lâm, đó là tầm quan trọng
của một bài báo được quyết định bởi số các trích dẫn từ bài báo đó của các bài báo
khác. Brin và Page đã đơn giản giả thuyết này để dùng cho trang Web: “Tầm quan
trọng của một trang Web được quyết định bởi số lượng các hyperlink trỏ đến nó từ
các trang Web khác”.
Chỉ số PageRank của một trang web là kết quả bầu chọn của tất cả các trang web
khác trên toàn thế giới cho website đó về mức độ quan trọng của trang. Mỗi 1 liên
kết ngược là 1 phiếu bầu. Các phiếu bầu này có mức độ ảnh hưởng khác nhau, sự
9
khác nhau đó phụ thuộc vào chất lượng ( hay tính quan trọng ) của mỗi trang đặt
liên kết ngược.
Một trang được liên kết đến bởi các trang có PageRank cao sẽ nhận được
PageRank cao. Nếu 1 trang web không có liên kết nào đến thì sẽ không có phiếu
bầu nào.
Chỉ số PageRank này cho biết trang web có quan trọng hay không theo cách nhìn
nhận của Google. Website nào có chỉ số PageRank cao chứng tỏ website đó có chất
lượng cao và quan trọng. Vì thế, khi tìm kiếm, Google sẽ ưu tiên cho các site có
PageRank cao.
Tất nhiên khi tìm kiếm không phải cứ website có PageRank cao là sẽ được xếp ở
trang đầu tiên, điều này còn phụ thuộc vào việc bạn muốn tìm kiếm gì và nhiều yếu
tố khác. Google kết hợp PageRank với một số heuristics khác để cho ra kết quả
phù hợp nhất.
2.Công thức thuật toán PageRank.
Giá trị PageRank của trang P
i
được tính như sau:
10
Trong đó:
P
1
,P
2
,…,P
n
là các trang cần tính PageRank.
M(P
i
) là tập các trang có link trỏ tới trang P
i.
L(P
j
) là số các link đi ra từ trang P
j
.
N là tổng số trang.
Tham số giảm sóc d có giá trị xấp xỉ 0.85
3.Ý nghĩa thuật toán.
Trên quan điểm của Search Engine, định nghĩa thuật toán PageRank cho ta
thấy có 2 yếu tố ảnh hưởng đến vị trí của trang web trên Google. Đó là:
• Số lượng các link đi đến ( incoming links): Thông thường thì càng nhiều
link đi đến càng tốt.
• Số lượng các link đi ra của các trang web trỏ tới ( outgoing links): Càng ít
càng tốt.
Có thể thấy thuật toán PageRank không liên quan gì đến các câu truy vấn tìm kiếm.
Nó chỉ đơn thuần là một phần của thuật toán xếp hạng của Google.
Có lẽ cách tốt nhất để xem xét PageRank là coi nó như là 1 yếu tố bổ sung, được
xử lý trên các kết quả tìm kiếm của Google sau khi tất cả các tính toán khác đã
hoàn tất.
Thuật toán tìm kiếm của Google trước tiên sẽ tiến hành tìm kiếm trên các trang mà
nó đã đánh chỉ mục, sau đó sẽ tính toán PageRank trên các trang kết quả tìm kiếm
để đưa ra danh sách kết quả có sắp xếp cuối cùng.
4. PageRank được tính toán như thế nào.
PageRank có thể được tính toán bằng phương pháp lặp hoặc dùng đại số:
a.Phương pháp lặp:
Tại t=0 Giả sử phân bố xác suất ban đầu là:
11
Tại mỗi bước, ta tính theo công thức:
,
Hoặc công thức :
(*)
Trong đó
là một ma trận N*1 gồm toàn các số 1
Ma trận được định nghĩa như sau:
M
ij
=1/L(p
j
) nếu trang j có link tới trang i
M
ij
=0 trường hợp còn lại
Thuật toán kết thúc khi:
b.Phương pháp đại số
Cho (Khi trạng thái ổn định) Phương trình (*) trở thành:
. (**)
Do đó ta tính được R như sau:
,
Với là ma trận đơn vị cấp n.
12
c.Phương pháp “Power Method”
Chuỗi Markov
• Chuỗi Markov là một quá trình ngẫu nhiên thời gian rời rạc với tính chất
Markov thông qua một tập các trạng thái.
• Tuân theo một ma trận xác suất chuyển đổi:
P
ij
= Xác suất chuyển đến trạng thái j khi ở trạng thái i.
∑
j
P
ij
= 1
• Chú ý: Trạng thái tiếp theo của chuỗi chỉ phụ thuộc vào trạng thái hiện thời
của chuỗi.
Phương pháp Power Method
Áp dụng tính PageRank
Ta có:
Phương trình (**) trở thành:
.
Bây giờ để tính R ta dùng hàm: PowerMethod( ,v
0
, )
Trong đó:
13
Ma trận xác suất chuyển đổi M được định nghĩa như sau:
M
ij
=0 Nếu trang i không có link đến trang j
M
ij
=1/L(i) Nếu trang I có link đến trang j
M
ii
=0 trong mọi trường hợp
M
ij
=1/n j=1 n Nếu trang i không có link đến trang nào
E là ma trận chỉ chứa 1
5.Kết luận.
Thuật toán PageRank trên thực tế rất đơn giản. Nhưng khi một phép tính đơn
giản được thực hiện hàng nghìn ( hoặc hàng tỉ) lần thì thuật toán trở lên rất phức
tạp.
PageRank chỉ là 1 phần trong chiến lược sắp xếp thứ tự kết quả tìm kiếm của
Google. Nhưng nó là một tiêu chí không thể thiếu trong việc sắp xếp thứ tự dữ liệu.
14
IV. Google Panda Algorithm
Tháng 11-2011 Google chính thức thay đổi thuật toán Ranking của mình lấy
tên là Panda. Đây là một sự thay đổi mạnh mẽ của Google. Thuật toán Panda có tư
tưởng chủ đạo là “ Content is King”. Nó loại bỏ hoặc giảm chỉ số xếp hạng của các
trang web có nội dung kém chất lượng, sao chép nội dung, và các trang web có nội
dung chủ yếu được sưu tập từ các trang khác, tăng chỉ số xếp hạng của các trang có
nội dung nguồn chất chất lượng
Thuật toán Panda cố gắng xác định nguồn gốc, tác giả của nội dung và tăng thứ
hạng cho trang đó, đồng thời hạ thứ hạng của tất cả các trang có nội dung trùng lặp
với nội dung trên.
Thuật toán Panda
Google tung ra Google Panda để thay thế cho Google Cafein. Nó là tập hợp của
các thuật toán phức tạp. Với tầm nhìn rõ ràng của Google Panda là loại bỏ những
nội dung rác, nội dung copy, loại bỏ những website có thương hiệu kém…Google
Panda là bộ lọc quan trọng để cải tiến các kết quả tìm kiếm mới của Google .
Sau đây là những tiêu chí chính trong thuật toán Google Panda:
“Content is king”
Coi trọng dữ liệu mới. Coi trọng dữ liệu text.Chính tả và ngữ pháp là quan
trọng
Tỉ lệ các bài viết có nội dung trùng lặp. Điều này có thể áp dụng cho từng
trang riêng lẻ, cho cả trang web hoặc cả hai
Thời gian khách truy cập trên website
Nếu người dùng tìm thấy những nội dung hữu ích và đáp ứng đúng nhu cầu
của họ, khả năng họ ở lại trên website để tìm những thông tin liên quan là rất
cao. Do đó các trang web mà người dùng giành nhiều thời gian để đọc và
tìm những bài viết trên website sẽ được Google đánh giá cao.
Tỷ lệ Bounce Rate
15
Thuật toán Google đưa ra là khi một website người dùng thường xuyên truy
cập sẽ là website có giá trị.
Tỷ lệ khách hàng quay trở lại
Một cách tuyệt vời để biết được trang web đang có thứ hạng cao trên bảng
tìm kiếm của Google có hữu ích hay không chính là tỷ lệ khách hàng quay
trở lại website. Google tin rằng chỉ có chất lượng website mới khiến người
dùng quay trở lại website thường xuyên hơn.
Mạng xã hội
Mục đích của Google Panda là để giúp chọn lọc ra các website hoạt động
thực sự bởi con người chứ không phải máy móc (Auto post). Do đó những
mạng xã hội là tiêu chí đánh giá khá quan trọng khi tại đây những yếu tố
tương tác rất mạnh chỉ có con người mới có thể làm được như trên Facbook,
Youtube, Twister…
Lượng nội dung gốc trên site hoặc mỗi trang.
Số lượng các link trỏ đến trang web.
Số lượng các từ không tự nhiên trên trang
Tỷ lệ người dùng kích qua các trang kết quả của Google (cho trang hoặc
site)
Tỷ lệ nội dung không trung thực (như nhau trên tất cả các trang).
Số lượng các quảng cáo trên trang web
16
D. Tài liệu tham khảo
1. />2. />3.
4. />5. />6. />7. -
muenchen.de/konferenzen/Jass05/courses/6/Papers/07.pdf
17