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.. Thuật toán này có thể kết hợp với các phương thức phân tí
Trang 1Trườ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 Ử LÝ NGÔN NGỮ TỰ NHIÊN Ữ TỰ NHIÊN Ự 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
Trang 2M c L c ục Lục ục Lục
A.Mở đầu 2
B.Tổng quan về hệ thống Search Engine 3
I.Các bộ phận cấu thành hệ thống search engine 3
1.Bộ thu thập thông tin 3
2.Bộ lập chỉ mục 3
3.Bộ tìm kiếm thông tin 3
II.Nguyên lý hoạt động của Search Engine 4
C.Ranking 5
I.Ranking là gì? 5
II.Các kỹ thuật sử dụng trong ranking 5
1 Đánh giá bằng thống kê 5
2.Đánh giá theo địa chỉ của trang 6
3 Đánh giá bằng từ khoá quan trọng 6
4.Đánh giá bởi các từ gần nhau 7
5 Đánh giá theo ngày tháng 7
6 Đánh giá theo độ nổi tiếng của trang 7
7 Đánh giá theo truy vấn vùng 8
8.Đánh giá bởi con người và trình duyệt 8
III.PageRank: 8
1.PageRank là gì? 8
2.Công thức thuật toán PageRank 9
3.Ý nghĩa thuật toán 10
4 PageRank được tính toán như thế nào 10
5.Kết luận 13
IV Google Panda Algorithm 14
D Tài liệu tham khảo 16
Trang 3A.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
Trang 4B.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
Trang 5Nó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
Trang 6I.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
Trang 72.Đá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
Trang 8tì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
Trang 97 Đá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ự
Trang 10khá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 Pi được tính như sau:
Trang 11Trong đó:
P1,P2,…,Pn là các trang cần tính PageRank
M(Pi) là tập các trang có link trỏ tới trang Pi
L(Pj) là số các link đi ra từ trang Pj
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à:
Trang 12Tạ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:
Mij=1/L(pj) nếu trang j có link tới trang i
Mij=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
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:
Pij = Xác suất chuyển đến trạng thái j khi ở trạng thái i