Nội dung chính của khóa luận trình bày cấu trúc cũng như mô hình hoạt động của modul đánh chỉ mục trong máy tìm kiếm VietSeek, các kỹ thuật cơ bản và các thuật toán thông dụng liên quan
Trang 1LỜI CẢM ƠN
Em xin bày tỏ lòng kính trọng và biết ơn sâu sắc tới thầy giáo tiến sĩ Hà Quang Thụy và thầy Nguyễn Trí Thành, khoa Công nghệ, ĐHQG Hà nội đã hướng dẫn và động viên em rất nhiều trong quá trình làm luận văn
Em xin cảm ơn các Thầy Cô trong khoa Công nghệ, Đại học Quốc Gia Hà Nội, và nhóm Xemina "Máy tìm kiếm VietSeek" thuộc bộ môn Các Hệ thống Thông tin, khoa Công nghệ, những người đã giúp đỡ cho em trong suốt quá trình học tập và nghiên cứu
Cuối cùng, em xin bày tỏ lòng biết ơn tới gia đình và các bạn bè đã giúp đỡ, động viên em rất nhiều trong suốt quá trình học tập
Hà Nội ngày 28/05/2003
Sinh viên
Đặng Thanh Hải
Trang 2Thuật toán phân lớp văn bản Web và thực nghiệm trong máy tìm kiếm VietSeek
Khóa luận tốt nghiệp đại học Đặng Thanh Hải 2
TÓM TẮT NỘI DUNG
Do kích thước khổng lồ của dữ liệu Web, việc xây dựng cũng như tích hợp các yếu tố khai phá dữ liệu Web vào công cụ tìm kiếm trên mạng Internet đang thu hút được sự quan tâm rất lớn của rất nhiều nhà nghiên cứu Khóa luận đề cập tới vấn đề cải tiến chất lượng và tốc độ của máy tìm kiếm bằng việc nghiên cứu bài toán phân lớp trong máy tìm kiếm
Nội dung chính của khóa luận trình bày cấu trúc cũng như mô hình hoạt động của modul đánh chỉ mục trong máy tìm kiếm VietSeek, các kỹ thuật cơ bản và các thuật toán thông dụng liên quan đến quá trình khai phá dữ liệu Web trong máy tìm kiếm, mà cụ thể là bài toán phân lớp trang văn bản Web Đặc biệt khóa luận tập trung vào giải pháp phân lớp theo phương pháp Bayes thứ nhất Xuất phát từ công thức (3.8) [1], khóa luận đề xuất các công thức (3.15), (3.16) và chứng minh tính đúng đắn của chúng, với giả thiết về tính độc lập của các biến cố Đi kèm với giải pháp phân lớp Bayes là các đề xuất nhằm giải quyết vấn đề tính ngưỡng cho các lớp
Khóa luận đã tích hợp thành công các đề xuất này vào máy tìm kiếm VietSeek
và thu được kết quả rất khả quan
Trang 3PHẦN MỞ ĐẦU
Ngày nay sự phát triển vượt bậc của công nghệ thông tin, đặc biệt là sự ra đời
và phát triển như vũ bão của mạng Internet đã tạo ra một cuộc cách mạng trong mọi lĩnh vực đời sống xã hội Có thể nói rằng Internet là một thế giới ảo với vô vàn các thông tin về mọi mặt của đời sống kinh tế, chính trị, xã hội được trình bày dưới dạng văn bản, hình ảnh, âm thanh,
Internet luôn biến đổi không ngừng cả về kích thước lẫn nội dung Đến nay không có một ai biết được chính xác kích thước của Internet là bao nhiêu, có bao nhiêu Website và bao nhiêu trang Web Bên cạnh đó, thông tin trong chính các trang Web cũng được cập nhật liên tục Theo kết quả nghiên cứu , hơn 500.000 trang Web trong hơn 4 tháng thì 23% các trang thay đổi hàng ngày, và khoảng hơn 10 ngày thì 50% các trang trong tên miền đó biến mất, nghĩa là địa chỉ URL của nó không còn tồn tại nữa [2]
Một điều thực tế là khối lượng dữ liệu tăng lên gấp nhiều lần, nhưng tỷ lệ các thông tin có ích so với khối lượng dữ liệu đó lại giảm đi rất nhiều Theo thống kê, 99% của thông tin Web là vô ích với 99% người dùng Web [2] Rõ ràng với một khối lượng khổng lồ dữ liệu được lưu trữ trên Internet thì vấn đề tìm kiếm thông tin có ích đang trở thành một vấn đề nghiên cứu có tính thời sự cao Người dùng không thể tự tìm kiếm địa chỉ trang Web chứa thông tin mà mình cần, do vậy đòi hỏi cần phải có một trình tiện ích quản lý nội dung của các trang Web và cho phép tìm thấy các địa chỉ trang Web có nội dung giống với yêu cầu của người tìm kiếm Hiện nay, trên thế giới
có một số máy tìm kiếm thông dụng như Yahoo, Google, Alvista, đã được xây dựng
và triển khai nhằm đáp ứng nhu cầu tìm kiếm thông tin của người dùng
Mặc dù đã đáp ứng ứng được phần lớn nhu cầu tìm kiếm thông tin của người dùng, tuy nhiên hầu hết các máy hiện nay mới chỉ hỗ trợ việc tìm kiếm theo từ khóa,
mà chưa xét đến vấn đề ngữ nghĩa của các từ cần tìm kiếm Với việc tìm kiếm bằng cách đối sánh các từ khóa, kết quả tìm kiếm có thể không bao gồm tất cả các tài liệu như ý muốn của người dùng (do vấn đề từ đồng nghĩa) Thậm chí các tài liệu tìm thấy
có thể không liên quan đến yêu cầu của người dùng (do vấn đề từ đa nghĩa)
Mặc khác các máy tìm kiếm thông dụng hiện nay đều chưa có chức năng lưu trữ và phân tích tiểu sử của người dùng, để từ đó có khả năng hỗ trợ tốt hơn với từng
lớp người dùng Cụ thể, giả sử chúng ta có các trang Web về các vấn đề Tin học, Thể thao, Kinh tể-Xã hội và Xây dựng Căn cứ vào nội dung của các tài liệu mà khách
Trang 4Thuật toán phân lớp văn bản Web và thực nghiệm trong máy tìm kiếm VietSeek
Khóa luận tốt nghiệp đại học Đặng Thanh Hải 4
hàng xem hoặc tải về, sau khi phân lớp chúng ta sẽ biết khách hàng hay tập trung vào nội dung gì, từ đó chúng ta sẽ bổ sung thêm nhiều các tài liệu về các nội dung mà khách hàng quan tâm
Từ những nhu cầu thực tế trên, phân lớp và tìm kiếm trang Web vẫn là bài toán hay, có tính thời sự cao, cần được phát triển và nghiên cứu hiện nay
Đề tài khóa luận tốt nghiệp ‘Thuật toán phân lớp văn bản Web và thực
nghiệm trong máy tìm kiếm VietSeek (Vinahoo)’ cũng không nằm ngoài mục đích
trên
Ngoài phần mở đầu và phần kết luận, nội dung của khóa luận được tổ chức thành 4 chương với nội dung chính như sau:
Chương 1, với tên gọi Máy tìm kiếm VietSeek, nhằm mục đích giới thiệu một
cách chi tiết cấu trúc cũng như cơ chế hoạt động của các máy tìm kiếm VietSeek Ngoài ra, phần đầu của chương còn giới thiệu tổng quát về cấu trúc chung của các máy tìm kiếm đang được sử dụng rộng rãi hiện nay
Chương 2 có tên gọi là Khai phá dữ liệu Web trong máy tìm kiếm Nội dung
chính của chương trình bày các kỹ thuật cơ bản liên quan dến bài toán khai phá dữ liệu Web trong máy tìm kiếm
Chương 3, tích hợp giải pháp phân lớp trang văn bản vào máy tìm kiếm
VietSeek, giới thiệu các thuật toán điển hình được áp dụng để giải quyết bài toán phân
lớp văn bản Trong đó đặc biệt tập trung vào giải pháp phân lớp theo phương pháp Bayes thứ nhất Các công thức đề xuất (3.15) và (3.16), cùng với quá trình chứng minh tính đúng đắn của chúng được trình bày một cách chi tiết trong chương này Đi kèm với giải pháp phân lớp Bayes là các đề xuất nhằm giải quyết vấn đề tính ngưỡng cho các lớp Phần cuối của chương giới thiệu quá trình tích hợp giải pháp phân lớp trang văn bản vào máy tìm kiếm VietSeek
Chương 4 với tựa đề Kết qủa thực nghiệm và đánh giá sẽ giới thiệu các kết
quả thực nghiệm thu được khi tiến hành tích hợp giải pháp phân lớp văn bản Web vào máy tìm kiếm VietSeek Sau đó đưa ra các đánh giá về các công thức đề xuất dựa trên kết quả thực nghiệm
Trang 5Chương 1 MÁY TÌM KIẾM VIETSEEK
1.1 Giới thiệu máy tìm kiếm VietSeek
Hiện nay, trên thế giới có một số máy tìm kiếm thông dụng như Yahoo, Google, Alvista, đã được xây dựng và triển khai nhằm đáp ứng nhu cầu tìm kiếm thông tin ngày càng lớn của người dùng
Máy tìm kiếm là một hệ thống được xây dựng có khả năng tiếp nhận các yêu cầu tìm kiếm từ phía người dùng (thường là một tập các từ khoá), phân tích nội dung câu truy vấn và tiến hành tìm kiếm trong cơ sở dữ liệu đã được xây dựng sẵn từ trước Kết quả trả về cho người sử dụng bởi máy tìm kiếm là tập hợp các trang Web liên quan hoặc có chứa các từ khóa xuất hiện trong câu truy vấn
Đối với các máy tìm kiếm, vấn đề biểu diễn dữ liệu là rất quan trọng Biểu diễn các trang Web như thế nào để vừa có khả năng lưu trữ được một số lượng khổng
lồ các trang Web, vừa cho phép máy tìm kiếm thực hiện việc tìm kiếm nhanh chóng
và chính xác
Cấu trúc điển hình của một máy tìm kiếm được mô tả như trong hình (1.0 ) Trong thực tế thì mỗi máy tìm kiếm lại có các sửa đổi riêng theo cách riêng, tuy nhiên
về cơ bản vẫn dựa trên các bộ phận được mô tả trong hình (1.0 )
Kho trang web
Bé t×m duyÖt
Hình 1.0 Mô hình cấu trúc hoạt động của máy tìm kiếm
Trang 6Thuật toán phân lớp văn bản Web và thực nghiệm trong máy tìm kiếm VietSeek
Khóa luận tốt nghiệp đại học Đặng Thanh Hải 6
Bộ dò tìm trang Web (Crawler): Hầu hết các máy tìm kiếm hoạt động dựa
vào các bộ dò tìm trang Web, là các chương trình có kích thước nhỏ đảm nhận chức năng cung cấp dữ liệu (các trang web) cho máy tìm kiếm hoạt động Bộ dò tìm trang Web thực hiện công việc duyệt web Hoạt động của nó tương tự như hoạt động của con người khi truy cập web là dựa vào các mối liên kết để đi từ trang web này tới trang web khác
Modul đánh chỉ mục (Indexer) thực hiện việc khảo sát tất cả các từ khóa
trong từng trang web có trong kho trang Web, và ghi lại các địa chỉ URL của các trang web có chứa mỗi từ Kết quả sinh ra một bảng chỉ mục rất lớn gọi là chỉ mục ngược Nhờ có bảng chỉ mục này, máy tìm kiếm cung cấp tất cả các địa chỉ URL của các trang web khi có yêu cầu: Khi cho một từ khóa bất kỳ thì qua bảng chỉ mục, máy tìm kiếm
sẽ nhận được tất cả các địa chỉ URL của các trang web có chứa từ khóa đó
Bộ phân tích tập (Collection Analysis Module) hoạt động dựa vào thuộc
tính của bộ truy vấn (Query Engine) Ví dụ nếu bộ truy vấn chỉ đòi hỏi việc tìm kiếm
hạn chế trong một số Website đặc biệt, hoặc giới hạn trong một tên miền thì công việc
sẽ nhanh và hiệu quả hơn nếu tồn tại một bảng chỉ mục các Website mà trong đó mỗi tên miền được gắn với một danh sách các trang Web thuộc miền đó Công việc như thế được thực hiện bởi bộ phân tích tập
Bộ truy vấn chịu trách nhiệm nhận các yêu cầu của người sử dụng Bộ phận
này hoạt động thường xuyên dựa vào bảng chỉ mục và thỉnh thoảng dựa vào kho trang Web Do số lượng các trang web là rất lớn, và trong thực tế thì người sử dụng chỉ đưa
vào khoảng một hoặc vài từ khoá, cho nên tập kết quả thường rất lớn Vì vậy bộ xếp
hạng (Rangking) có chức năng sắp xếp kết quả thành một danh sách các trang web
theo thứ tự giảm dần về độ liên quan (theo máy tìm kiếm) tới vấn đề mà người sử dụng đang quan tâm, và sau đó hiển thị danh sách kết quả tìm được cho người sử dụng
VietSeek là một trong số ít các máy tìm kiếm tiếng Việt đã được xây dựng và đưa vào sử dụng hiện nay (như PanVietNam của NetNam, HoaTieu của Vương Quang Khải) VietSeek được phát triển dựa trên ASPSeek, là một phần mềm mã nguồn mở, bởi nhóm Vinahoo (ban đầu do Bùi Quang Minh thực hiện ) trong khuôn khổ của đề tài QG-02-02 và công ty TTVNOnline [7] Là một máy tìm kiếm trên Internet với tất
cả các đặc tính mong muốn từ phía người dùng, VietSeek được viết bằng ngôn ngữ C++, sử dụng thư viện STL, và kết hợp giữa hệ quản trị cơ sở dữ liệu MySQL và các file nhị phân cho mục đích lưu trữ VietSeek bao gồm ba modul chính: modul đánh chỉ
Trang 7mục (indexer), modul tìm kiếm chạy ngầm (search deamon), và modul CGI chạy ở phía người dùng
bởi nội dung file cấu hình “vinaseek.conf”
• Modul tìm kiếm
Modul tìm kiếm chạy ngầm để lắng nghe và trả lời các câu truy vấn đến từ
modul đầu cuối “s.cgi” Modul phía người dùng (s.cgi) nhận kết quả tìm kiếm, định
dạng và hiện thị kết quả tìm kiếm dưới dạng trang Web
Hình 1.1 Giao diện một trang kết quả tìm kiếm của máy tìm kiếm Vietseek
Trang 8Thuật toán phân lớp văn bản Web và thực nghiệm trong máy tìm kiếm VietSeek
Khóa luận tốt nghiệp đại học Đặng Thanh Hải 8
1.2 Một số tính chất của máy tìm kiếm VietSeek
VietSeek được tối ưu hóa để có thể làm việc với nhiều Website, và có thể tiến hành tìm kiếm trên hàng triệu trang Web Người sử dụng có thể yêu cầu VietSeek tìm kiếm các từ, cụm từ, sử dụng các ký tự đại diện cũng như các phép toán Logic Dưới đây là một số tính năng của máy tìm kiếm VietSeek:
Khả năng đánh chỉ mục và tìm kiếm trên hàng triệu trang tài liệu
Kết quả tìm kiếm trả về rất tốt, được sắp xếp theo độ liên quan đến câu truy vấn
Khả năng tìm kiếm nâng cao
Người sử dụng có thể yêu cầu máy tìm kiếm VietSeek tìm kiếm không chỉ một
từ mà có thể là một cụm từ Để tìm kiếm một cụm từ, người dùng chỉ cần thêm dấu mở
ngoặc và đóng ngoặc vào cụm từ đó Ví dụ, ‘many years ago’ Nếu người dùng biết
chính xác cụm từ cần tìm, nhưng lại quên một từ trong cụm từ đó thì có thể sử dụng
dấu (*) để thay thế cụm từ đó Bởi vậy câu truy vấn sẽ là: “many * ago”
Người dùng có thể sử dụng biểu thức tìm kiếm logic để yêu cầu tìm kiếm Biểu thức logic có thể được kết hợp dựa trên các phép toán logic như AND, OR, và các dấu ngoặc Ví dụ, (some OR any) AND (days OR months OR years)
Người dùng cũng có thể loại trừ các từ không muốn xuất hiện trong kết quả tìm kiếm bằng cách đặt dấu “-“ trước các từ đó.Với câu truy vấn dạng này, các trang Web chứa các từ đó sẽ bị loại bỏ khỏi kết quả tìm kiếm Ví dụ:
search engine –prorietary
Đặc tính tìm kiếm theo khuôn mẫu cho phép tìm các tài liệu chứa các từ phù hợp với khuôn mẫu được xác định trước Ký tự “?” đại diện cho một ký tự bất kỳ, ký
tự “*” đại diện cho một chuỗi các ký tự bất kỳ Ví dụ, để tìm kiếm tất cả các tài liệu có chứa các từ bắt đầu bằng ‘provider’ ta đánh:
VietSeek cho phép người dùng giới hạn việc tìm kiếm trong một vài site cụ thể Ví dụ để tìm kiếm tất cả các tài liệu có chứa từ ‘bubble’ trong site www.mysite.org người dùng đánh câu truy vấn:
bubble site: www.mysite.org
bubble site: mysite.org
Trang 9bubble –site: mysite.org site: www.fotech.edu.vnn.vn
Cuối cùng người sử dụng có thể tiến hành tìm kiếm tất cả các trang Web chứa các liên kết tới các trang Web đặc biệt khác Ví dụ:
link: www.aspseek.org
Hỗ trợ các giao thức HTTP,HTTPS,HTTP proxy, FTP proxy
Hỗ trợ hai loại tài liệu full text và html
Sử dụng đa tuyến
Modul đánh chỉ mục tải về các tài liệu từ nhiều Website và modul tìm kiếm có khả năng xử lý nhiều câu truy vấn đồng thời Đặc điểm này sẽ giúp chúng ta cải thiện tốc độ của modul đánh chỉ mục vì trong trường hợp sử dụng chỉ một luồng, phần lớn thời gian được dành cho việc chờ dữ liệu từ mạng
Nhân tố làm chậm tốc độ của modul đánh chỉ mục chính là việc phải tìm các máy chủ phục vụ tên miền nhiều lần Để tránh điều này, quá trình tìm kiếm không đồng bộ ( việc tìm kiếm DNS được thực hiện bởi một số tiến trình riêng biệt được xác định trước ) và bộ nhớ đệm chứa các ánh xạ từ tên máy sang địa chỉ IP được triển khai trong máy tìm kiếm VietSeek
Hỗ trợ việc đoán nhận mã chữ cái
Một số máy chủ bị hỏng hoặc do cấu hình sai sẽ không cho máy khách biết bộ
mã chữ cái của tài liệu mà chúng cung cấp Nếu người quản trị hệ thống tìm kiếm VietSeek đang đánh chỉ mục các máy chủ này, hay sử dụng VietSeek để đánh chỉ mục
Trang 10Thuật toán phân lớp văn bản Web và thực nghiệm trong máy tìm kiếm VietSeek
Khóa luận tốt nghiệp đại học Đặng Thanh Hải 10
các máy chủ FTP (giao thức FTP không cho biết thông tin về bộ mã chữ cái), bộ đoán nhận mã chữ cái có thể được sử dụng để giải quyết điều này Bộ đoán nhận sẽ sử dụng
các bảng chứa tần số các từ ( được gọi là ‘langmaps’ ) để tìm ra tập chữ cái đúng
Hỗ trợ việc sử dụng “robots” của các máy chủ phục vụ Web
Máy tìm kiếm VietSeek sẽ tiến hành kiểm tra một file đặc biệt trong thư mục
gốc của mày chủ phục vụ Web có tên là “robots.txt” Nội dung của file “robots.txt”
thông báo cho máy tìm kiếm VietSeek không được thăm một tập hợp các trang Web
cụ thể trên máy chủ này File “robots.txt” sử dụng giao thức “Robots Exclusion Protocol”, giao thức này cho phép người quản trị Website có thể xác định máy tìm kiếm nào không được thăm phần nào của site Giao thức “Robots Exclusion Protocol” được miêu tả như sau:
Có thể điều khiển việc sử dụng độ rộng băng thông mạng
Nhà quản trị hệ thống VietSeek có thể điều khiển độ rộng băng thông mạng để modul đánh chỉ mục sử dụng Chính xác nhà quản trị máy tìm kiếm VietSeek có thể giới hạn độ rộng băng thông (số byte trên một giây ) được sử dụng bởi modul đánh chỉ mục trong một ngày xác định
Hỗ trợ chế độ đánh chỉ mục không đồng bộ theo thời gian thực
Một số máy tìm kiếm yêu cầu việc tìm kiếm phải dừng lại trong suốt thời gian cập nhật cơ sở dữ liệu VietSeek không yêu cầu điều này bằng cách hỗ trợ chế độ thời
Trang 11gian thực cho modul đánh chỉ mục Trong chế độ thời gian thực chúng ta sử dụng một
cơ sở dữ liệu giống hệt cơ sở dữ liệu ban đầu để lưu trữ nỗi dung đã được đánh chỉ số ngược của các trang Web Tính năng này sẽ rất có ích khi tiến hành xây dựng một máy tìm kiếm chuyên biệt cho các trang Web có nội dung thay đổi liên tục ví dụ như các trang tin trực tuyến Chú ý rằng số lượng tài liệu trong cơ sở dữ liệu thời gian thực bị giới hạn vào khoảng 1000 tài liệu Nếu có càng nhiều tài liệu trong cơ sở dữ liệu thời gian thực thì tốc độ index vào cơ sở dữ liệu chính sẽ càng bị chậm
Sắp xếp kết quả trả về theo độ liên qua hoặc theo ngày tháng
Các máy tìm kiếm thường trả về các kết quả liên quan nhất trước tiên Nhưng nếu muốn tìm kiếm các trang mới nhất, người dùng có thể yêu cầu VietSeek sắp xếp kết quả trả về theo thời gian thay đổi gần đây nhất, do đó các trang Web bị thay đổi gần đây nhất sẽ được trình bày đầu tiên
Chắt lọc nội dung và tô sáng các từ trong câu truy vấn khi trình bày kết quả tìm
kiếm
Với VietSeek người dùng có thể tùy biến độ dài nội dung tổng quát cho các tài liệu Mỗi tài liệu tìm thấy đều được đi kèm với một liên kết tới cơ sở dữ liệu của VietSeek VietSeek lưu trữ một bản sao được nén của các tài liệu đã được xử lý, do đó người dùng có thể xem toàn bộ nội dung của trang Web cả trong trường hợp các trang Web đó đã bị loại bỏ khỏi Website
Khả năng nhóm các kết quả theo site
Hỗ trợ các trang Web nhân bản (clone- origin)
Hỗ trợ tìm kiếm tiếng Việt
Tính năng này được phát triển bởi Bùi Quang Minh, bằng việc cài đặt thêm một số thuật toán nhận dạng các chuẩn tiếng Việt và chuyển tất cả các chuẩn đó về cùng chuẩn UNICODE
1.3 Cấu trúc máy tìm kiếm VietSeek
Như đã trình bày ở trên, vấn đề biểu diễn dữ liệu trong máy tìm kiếm là rất quan trọng Biểu diễn các trang Web như thế nào để vừa có khả năng lưu trữ được một
số lượng khổng lồ các trang Web, vừa cho phép máy tìm kiếm thực hiện việc tìm
Trang 12Thuật toán phân lớp văn bản Web và thực nghiệm trong máy tìm kiếm VietSeek
Khóa luận tốt nghiệp đại học Đặng Thanh Hải 12
kiếm nhanh chóng và chính xác Đối với máy tìm kiếm VietSeek, dữ liệu được tổ chức, lưu trữ trong cơ sở dữ liệu MySQL và hệ thống file nhị phân xác định
1.3.1 Cơ sở dữ liệu sử dụng trong máy tìm kiếm VietSeek
• Bảng wordurl: chứa các thông tin về mỗi từ khóa
Tên trường Miêu tả
word bản thân các từ khóa,không phải từ dừng
word_id Số định danh của từ(khóa chính)
urls Thông tin về các site và các url mà từ khóa này xuất hiện.Trường này sẽ
rỗng nếu như kích thước của nó lớn hơn 1000 byte, trong trường hợp này
thông tin sẽ được lưu trữ trong các file nhị phân
urlcount Số lượng các url có chứa từ khóa này
totalcount Tổng số lần xuất hiện của từ khóa này trong tất cả các tài liệu mà nó xuất
hiện
Trong đó trường wordurl.urls và wordurl1.urls có cấu trúc dữ liệu như sau:
Địa chỉ tương đối Độ dài Miêu tả
0 4 Địa chỉ tương đối của vùng thông tin URL cho site thứ nhất
4 4 Số định danh của site thứ nhất có chứa từ khóa này
8 4 Địa chỉ tương đối của vùng thông tin URL cho site thứ hai
12 4 Số định danh của site thứ hai có chứa từ khóa này
(N-1)*8 4 Địa chỉ tương đối của vùng thông tin URL cho site thứ N
(N-1)*8+4 4 Số định danh của site thứ N có chứ từ khóa này
(N-1)*8+12 4 Địa chỉ tương đối của cuối vùng thông tin URL cho site thứ N VÙNG THÔNG TIN URL
6+(N-1)*2 2 Vị trí của lần xuất hiện thứ N
Lặp lại các thông tin như trên cho các URL khác có chứa từ khóa này của site thứ nhất
Trang 13Tên trường Miêu tả
url_id Số định danh của URL
site_id Số định danh của site
deleted =1 nếu máy chủ trả về lỗi 404 và tùy chọn “deleteBad” được thiết lập,
hoặc có thể do file “robots.txt” không cho phép được đánh chỉ số trang Web này
url Nội dung của chính URL
next_index_time Thời điểm tiếp theo cần index, tính theo giây
status =Trạng thái HTTP trả về bởi máy chủ hoặc
=0 nếu trang Web này chưa được đánh chỉ số crc chuỗi đại diện MD5 của tài liệu
last_modified tiêu đề chứa thông tin về lần thay đổi nội dung gần đây
nhất(Last_Modified) được trả về từ máy chủ phục vụ Web etag tiêu đề “Etag” được trả về bởi máy chủ
last_index_time thời điểm tiến hành đánh chỉ số cuối cùng
referre Số định danh của URL tham chiếu đầu tiên đến trang Web này
hops độ sâu của URL trong cây siêu liên kết
redir =URLID mới nếu trang Web này bị chuyển hướng nếu không sẽ bằng 0
origin =URLID của trang Web ban đầu nếu trang Web này là một bản sao
=0 nếu trang Web này không phải là bản sao
• Bảng urlwordNN (với NN là các số 00,01, 15)
Bảng này chứa thông tin về các URL đang được đánh chỉ số Số NN của bảng chính là URL_ID mod 16
url_id Số định danh của URL
deleted =1 nếu máy chủ trả về lỗi 404 và tùy chọn “deleteBad” được thiết lập,
hoặc có thể do file “robots.txt” không cho phép được đánh chỉ số trang Web này
wordcount Số lượng các từ khác nhau trong nội dung đã được đánh chỉ số của URL
totalcount Tổng tất cả các từ trong nội dung đã được đánh chỉ số của URL
content-type Tiêu đề “Content-Type” được trả về bởi máy chủ
charset Bộ chữ cái được sử dụng trong nội dung tài liệu, thông tin này được lấy
từ thẻ META title 128 ký tự đầu tiên trong tiêu đề của trang Web
txt 255 ký tự đầu tiên,không tính các thẻ HTML, trong nội dung của trang
Web docsize Kích thước của tài liệu
description 100 ký tự đầu tiên trong phần mô tả trang Web
words Nội dung được nén của các URL
hrefs Danh sách đã sắp xếp của các liên kết (URLID) tìm thấy trong phần đã
được đánh chỉ số của trang Web này
Trang 14Thuật toán phân lớp văn bản Web và thực nghiệm trong máy tìm kiếm VietSeek
Khóa luận tốt nghiệp đại học Đặng Thanh Hải 14
1.3.2 Hệ thống file nhị phân được sử dụng trong máy tìm kiếm VietSeek
Hệ thống file tạm, delta
Để nâng cao tốc độ của quá trình xây dựng cơ sở dữ liệu chỉ mục ngược cho tất cả các từ khóa trong toàn bộ các trang Web đã được phân tích bởi bộ dò tìm, máy
tìm kiếm VietSeek sử dụng hệ thống gồm 100 file nhị phân delta để lưu trữ nội dung
đã được phân tích của các trang Web trong mỗi lần thực thi modul đánh chỉ mục
Một trăm file delta (d00,,d99) trong thư mục ‘usr/local/aspseek/var/aspseek12’
được dùng để thu thập các thông tin về các URL mới hoặc bị thay đổi cho các từ khóa
Sau khi tải một Url về, nội dung của nó sẽ được lưu vào 100 file ‘delta’ Chúng ta xem nội dung của 100 file ‘delta’ như là nội dung mới cần được trộn với nội dung cũ trong trường ‘wordurl.urls’ Để xây dựng chỉ số ngược chúng ta sẽ dùng nội dung của 100 file ‘delta’ để cập nhật nội dung trường ‘urls’ của bảng ‘wordurl’ cho các từ xuất hiện trong 100 file ‘delta’ File ‘delta’ thứ i sẽ chứa các từ khóa thỏa mãn điều kiện
‘(word_ID mod 100)=i’ Các file delta có cấu trúc như sau:
Địa chỉ tương đối Độ dài Miêu tả
có giá trị “word_id %100” bằng chỉ số của file
dung xác định bởi Url_id
Hệ thống file lưu trữ chỉ mục ngược
Với cơ sở dữ liệu chỉ mục ngược của các từ khóa được lưu trữ trong cơ sở dữ liệu MySQL, quá trình tìm kiếm sẽ được thực hiện một cách nhanh chóng Tuy nhiên, kích thước của cơ sở dữ liệu chỉ mục ngược thường rất lớn và vượt quá khả năng lưu
Trang 15trữ của hệ quản trị cơ sở dữ liệu MySQL Để giải quyết khó khăn này, máy tìm kiếm VietSeek sử dụng thêm hệ thống file nhị phân để lưu trữ cơ sở dữ liệu chỉ mục ngược Với việc sử dụng thêm hệ thống file nhị phân này, máy tìm kiếm VietSeek sẽ có khả năng lưu trữ cơ sở dữ liệu chỉ mục ngược có kích thước không giới hạn
Cách thức lưu trữ dữ liệu chỉ số ngược trong máy tìm kiếm VietSeek được
điều khiển bởi giá trị tham số CompactStorage Tùy thuộc vào giá trị của tham số CompactStorage, chúng ta có hai cơ chế lưu trữ như sau:
1 Cơ chế lưu trữ thông thường
Cơ chế này được sử dụng khi giá trị tham số CompactStorage bằng 0 Với cơ chế này, nếu kích thước dữ liệu chỉ số ngược (nội dung trường urlword.urls) tương ứng với một từ khóa (word_id) nào đó lớn hơn 10000 byte, thì nó sẽ được lưu trong một file nhị phân có tên trùng với ‘word_id’ của từ khóa đó,và được đặt trong thư mục
‘/usr/local/aspseek/var/aspseek12/wNN, với NN=’word_id’ % 100
2 Cơ chế lưu trữ CompactStorage
Được sử dụng khi giá trị tham số CompactStorage bằng 1 Thay vì lưu trữ nội dung chỉ số ngược (trường “urlword.urls”) của các từ khóa trong một file nhị phân
riêng biệt, modul đánh chỉ mục sẽ kết hợp nội dung tất cả các file nhị phân có trong
thư mục ‘/usr/local/aspseek/var/aspseek12/wNN’ vào ba file nhị phân đặc biệt có tên
là ‘ind’, ‘urls’ và ‘sites’ Cấu trúc của ban file nhị phân này được mô tả như hình (1.2):
• File ‘ind’: dùng để lưu cấu trúc dữ liệu “WordInd” như sau:
• File ‘sites’: dùng để lưu trữ cấu trúc dữ liệu “SiteInd” như sau:
struct{ ULONG m_siteID;
ULONG m_offset;
}SiteInd;
Trang 16Thuật toán phân lớp văn bản Web và thực nghiệm trong máy tìm kiếm VietSeek
Khóa luận tốt nghiệp đại học Đặng Thanh Hải 16
• File ‘urls’: dùng để lưu trữ vùng thông tin về Url trong nội dung của trường
‘urlword.urls’ cho tất cả các từ khóa, word_id của tất cả các từ khóa này lập thành một cấp số cộng với công sai là d=100 File ‘urls’ có cấu trúc như sau: (Giả sử file
nằm trong thư mục “ /wNN”)
Địa chỉ tương đối Độ dài Miêu tả
8+(N-1)*2 2 Vị trí lần xuấ hiện cuối cùng của từ
Lặp lại các thông tin như trên cho các Url_ID trong cùng một Site(Site_id1) có chứa từ
Site_id Offset Site_id Offset Site_id Offset Site_id Offset
Thông tin về vùng Site của từ có Thông tin về vùng Site của từ có
Biểu diễn cho từ có word id = NN Biểu diễn cho từ có word id =NN+100
Hình 1.2 Mối quan hệ giữa ba file nhị phân trong cơ chế CompactStorage
Trang 17 File nhị phân ’ /dev/zero’
Trong quá trình đánh chỉ số các trang Web, máy tìm kiếm VietSeek thường
xuyên thêm mới các Url vào bảng ‘urlword’ và ‘urlwordNN”, hoặc xóa các Url sẵn có
trong hai bảng đó (chỉ có trong quá trình đánh chỉ mục theo cơ chế ‘CompactStorage’)
Do vậy miền không gian các ‘Url_id’ hiện được sử dụng trong bảng ‘urlword’ sẽ
không liên tục Thông thường khi thêm mới một Url, máy tìm kiếm VietSeek sử dụng
cơ chế tự động tăng khóa của hệ quản trị cơ sở dữ liệu MySQL Nếu số lượng các
trang Web cần đánh chỉ số là rất lớn (khoảng vài triệu trang) thì việc sử dụng cơ chế tự
động tăng khóa của hệ quản trị cơ sở dữ liệu MySQL sẽ không hợp lý, gây ra sữ lãng
phí về tài nguyên ‘url_id’ dùng để cấp cho các trang Web Trong nhiều trường hợp, có
thể không chèn được các trang Web mới vào cơ sở dữ liệu
VietSeek giải quyết vấn đề trên bằng cách lưu lại tất cả các ulr_id bị đánh dấu
xóa hoặc bị xóa khỏi bảng urlword(urlwordsNN) trong file nhị phân ‘./dev/zero’ File
‘./dev/zero’ chứa cấu trúc ULONG(4 byte) Mỗi bít trong một ULONG được đánh chỉ
số theo thứ tự tăng dần từ phải qua trái Chỉ số của tất cả các bít trong file nhị phân
này tăng liên tục từ trái sang phải trên tất cả các ULONG(4 byte) Cấu trúc và chức
năng quản lý tài nguyên urlID của file ’./dev/zero’ theo thứ tự được thể hiện thông qua
}
Trong cấu trúc m_chunks[DELMAP_SIZE] được mô tả trong hình (1.3), mỗi
bít được gán một chỉ số theo một qui tắc thống nhất, bít có chỉ số thứ ‘i’ sẽ đại diện
cho ‘Url_id = i’ theo qui tắc sau: Url_id = i sẽ bị đánh dấu xóa trong bảng ‘urlword’
và bảng urlwordsNN tương ứng nếu giá trị của bít thứ ‘i’ bằng 1
Trang 18Thuật toán phân lớp văn bản Web và thực nghiệm trong máy tìm kiếm VietSeek
Khóa luận tốt nghiệp đại học Đặng Thanh Hải 18
Lớp CDelMapReuse
Lớp CDelMapReuse được thiết kế để tối ưu việc sử dụng không gian “Url_id”
để cấp phát cho các trang Web mới Bằng cách lưu lại và cập nhật giá trị Url_id nhỏ
nhất đã bị xóa trong file nhị phân “./dev/zero”, VietSeek sẽ sử dụng Url_id nhỏ nhất
này làm khóa định danh cho các trang Web được chèn mới, thay vì sử dụng khóa tự sinh ra do hệ quản trị cơ sở dữ liệu MySQL
class CDelMapReuse
{
public:
int m_file; //< chỉ số mô tả file “ /dev/zero”
Hình 1.3 Cấu trúc biến thành viên DelMap::m chunks
Bít 31 Bit 0 Bít 63 Bit 32
215 ULONG (15=DEL_CHUNK_SHIFT –3 –2)
Bít 2*(1<<DEL_CHUNK_SHIFT)
Bít 2*(1<<DEL_CHUNK_SHIFT)+31
Trang 19long m_length; //< Kích thước dữ liệu trong file “ /dev/zero”
ULONG* m_map;//<Bộ đệm chứa nội dung của file
ULONG m_urlID; //< Miền [ 0, m_urlID) không có Url_id nào bị
pthread_mutex_t m_mutex; //<mutex dùng để đồng bộ hóa các thao
tác trên bộ đệm ULONG Get(); ///<Lấy giá trị Url_id nhỏ nhất đã bị xóa, hoặc bị
đánh dấu xóa void Put(ULONG urlID); ///<Thiết lập giá trị bít tương ứng với
}
1.3.3 Bộ dò tìm trang Web (Crawler) trong máy tìm kiếm VietSeek
Bộ dò tìm trang Web là một chượng trình có nhiệm vụ dò tìm và tải về các trang Web mà nó bắt gặp trong quá trình hoạt động Ban đầu, bộ dò tìm trang Web sẽ
tải về nội dung của một địa chỉ Url ban đầu (Url hạt nhân), phân tích nội dung Url này
qua đó tìm ra tất cả các siêu liên kết trỏ tới các trang Web khác Tất cả các siêu liên kết tìm thấy này sẽ được lưu trữ trong một hàng đợi theo một chiến lược nhất định Sau khi phân tích xong nội dung một Url, bộ dò tìm trang Web sẽ tiến hành lấy địa chỉ Url đầu tiên trong hàng đợi ra để tiếp tục hoạt động Quá trình này sẽ được thực hiện cho tới khi thỏa mãn một điều kiện cụ thể nào đó hoặc hàng đợi rỗng, tức là không có địa chỉ Url nào để tải về Như vậy có thể kết luận rằng bộ dò tìm trang Web là một chương trình duyệt cây Website theo chiều rộng
Trong máy tìm kiếm VietSeek, bộ dò tìm trang Web có các đặc điểm sau:
Danh sách các Url hạt nhân được lấy từ lệnh ‘Server’ trong quá trình tải file cấu hình ‘vinahoo.conf’
Sử dụng hàng đợi (m_queue) có cấu trúc CSitesQueue
Mỗi urlID trong hàng đợi được gắn với hai trọng số đánh giá: độ sâu của trang Web trong cây Website và giá trị thời gian đánh chỉ mục tiếp theo
(next_index_time)
Sơ đồ tổng quát quá trình hoạt động của bộ dò tìm trong máy tìm kiếm VietSeek được trình như hình (1.4):
Trang 20Thuật toán phân lớp văn bản Web và thực nghiệm trong máy tìm kiếm VietSeek
Khóa luận tốt nghiệp đại học Đặng Thanh Hải 20
• Hàng đợi m_queue Hàng đợi m_queue được khởi tạo với tư cách là một biến thành viên của lớp ‘CMySQLDatabaseI’ Nó là một thể hiện của lớp CSiteQueues và có thể được mô tả bằng hình (1.5): m_first m_last
1 100
m_first m_last
1 100
m_first m_last
1 100
UrlLink Site_id Site_id Site id CSiteUrl
m_first
m_last
Hàng đợi các Url thuộc Site_id
m_first m_last
Hình 1.5 Cấu trúc hàng đợi m_queue
Url id
Url id
url hạt nhân
Tải nội dung
file cấu hình
‘vinahoo.conf’
Lưu vào hàng đợi và cơ sở
dữ liệu
Lấy thông tin về tài liệu tiếp theo cần đánh chỉ mục
Tải trang Web về và tạo chỉ số xuôi và lưu
vào 100 file tạm deta
d/sách
hàng đợi m_queue
Hình 1.4 Sơ đồ tổng quát quá trình hoạt động của VietSeek Crawler
Trang 21• Chiến lược dò tìm trang Web trong máy tìm kiếm VietSeek
Bộ dò tìm trang Web trong máy tìm kiếm VietSeek có hai chiến lược hoạt
động dựa trên nguyên tắc lưu trữ các urlID trong hàng đợi ‘ m_queue’
1 Chiến lược thứ nhất
Bộ dò tìm tiến hành dò tìm các trang Web theo độ ưu tiên về giá trị thời gian
đánh chỉ mục tiếp theo (next_index_time) Với chiến lược này, các urlID trong hàng đợi m_queue được sắp xếp theo thứ tự tăng dần của giá trị next_index_time Tại một thời điểm nào đấy, máy tìm kiếm VietSeek sẽ chọn urlID có giá trị next_index_time bé nhất trong tất cả các urlID, đang cần được đánh chỉ mục, là trang Web tiếp theo sẽ
được đánh chỉ mục Đặc trưng của chiến lược phần này có thể được mô tả thông qua
sơ đồ thuật toán lấy urlID tiếp theo từ hàng đợi m_queue để tiến hành đánh chỉ mục
trong hình (1.6)
2 Chiến lược thứ hai
Bộ dò tìm tiến hành dò tìm các trang Web trước tiên theo độ ưu tiên về độ sâu trang Web và sau đó theo độ ưu tiên về giá trị thời gian đánh chỉ mục tiếp theo
(next_index_time) Trong chiến lược này, các urlID trong hàng đợi m_queue được sắp
xếp theo thứ tự tăng dần của giá trị độ sâu trong cây Website Trong cùng một độ sâu,
các urlID lại được sắp xếp theo thứ tự tăng dần của giá trị next_index_time Tại một thời điểm nào đấy, máy tìm kiếm VietSeek sẽ chọn urlID có giá trị next_index_time bé nhất trong tất cả các urlID thuộc về độ sâu thấp nhất, đang cần được đánh chỉ mục, là
trang Web tiếp theo sẽ được đánh chỉ mục Đặc trưng của chiến lược thứ hai này phần
nào có thể được mô tả thông qua sơ đồ thuật toán lấy urlID tiếp theo từ hàng đợi
m_queue để tiến hành đánh chỉ mục trong hình 1.7
1.4 Mô hình hoạt động của máy tìm kiếm VietSeek
1.4.1 Modul đánh chỉ mục các trang Web
Trang 22Thuật toán phân lớp văn bản Web và thực nghiệm trong máy tìm kiếm VietSeek
Khóa luận tốt nghiệp đại học Đặng Thanh Hải 22
Tải file cấu hình
1.Khởi tạo biến “Hrefs”
2.Khởi tạo biến “ServerD”
1.Khởi tạo biến “resolverList”
2 Tạo cơ sở dữ liệu nếu chưa tồn tại
3 Lưu nội dung “Hrefs” vào CSDL, hàng đợi
Hàng đợi rỗng?
Lấy thông tin tài
liệu tiếp theo để
đánh chỉ số
Tìm thông tin
về Server chứa tài liệu này
Nội dung mới khác n/d cũ
thông tin
về tài liệu
1.Xóa nội dung tài liệu trong file delta 2.Đánh dấu xóa url
DomainName Resolving
Tải nội dung mới của tài liệu
IP
Phân tích nội dung mới
Đọc và phân tích nội dung cũ từ CSDL
Lưu nội dung mới vào CSDL
<Một số điều kiện>
cũ vào nội dung mới và lưu vào file delta
Lưu các siêu liên kết tìm thấy vào file nhị phân
010101 File nhị phân
Database url
Database
Database nội dung
url_id
Internet
Request content
siêu liên kết
Từ vựng
Y
Y N
Trang 23BEGIN
Số lượng các Site chưa được kết nối trong hàng đợi < numthreads *4
1.Lấy ra tất cả các url trong bảng “urlword” thỏa mãn điều kiện : m_maxtime < ”next_index_time” <= now(), sắp xếp theo thứ
tự tăng dần của “next_index_time” và lưu một số lượng nhất định các Url đầu tiên vào hàng đợi CSQLDatabaseI::m_queue 2.Cập nhật giá trị CSQLDatabaseI::m_maxtime
3.numr <= Số lượng các Url được thêm mới vào hàng đợi CSQLDatabaseI::m_queue
Trang 24Thuật toán phân lớp văn bản Web và thực nghiệm trong máy tìm kiếm VietSeek
Khóa luận tốt nghiệp đại học Đặng Thanh Hải Hình 1.7 Chiến lược lấy urlID tiếp theothứ hai để tiến hành đánh chỉ mục 24
BEGIN
(Số lượng các Site chưa được kết nối trong hàng đợi < numthreads *4) AND (m_maxhops < 65536)
1.maxtime <= giá trị “next_index_time” lớn nhất trong tất cả các trang Web có cùng độ sâu bằng m_maxhops, xuất hiện trong hàng đợi
Y
maxtime < now
1.Lọc ra các Url thỏa mãn điều kiện maxtime<“next_index_time”<=now() và
hops=m_maxhops
2.Sắp xếp theo thứ tự tăng dần của “next_index_time”
3.Lưu một số lượng nhất định các Url đầu tiên vào hàng đợi
Trang 25Chương 2 KHAI PHÁ DỮ LIỆU WEB TRONG
MÁY TÌM KIẾM
2.1 Quá trình khai phá dữ liệu Web
Hệ thống các Website trên Internet được xem như là một trung tâm dịch vụ thông tin toàn cầu rộng lớn, phân tán một cách rỗng rãi, về mọi mặt của đời sống xã hội như tin tức, quảng cáo, thông tin khách hàng, quản lý tài chính, giáo dục, chính phủ, thương mại điện tử, và nhiều dịch vụ thông tin khác Ngoài ra, nội dung các trang Web cũng bao hàm một tập hợp phong phú, luôn biến đổi không ngừng các siêu liên kết, các truy xuất trang Web và các thông tin sử dụng trang Web Chính những thông
tin này là nguồn tài nguyên phong phú cho quá trình khai phá dữ liệu (data mining)
Tuy nhiên, dựa trên các đặc điểm được trình bày sau đây, chúng ta thấy rằng hệ thống các Website còn ẩn chứa rất nhiều thách thức cho quá trình khai phá tri thức:
Hệ thống trang Web dường như quá lớn để phục vụ một cách có hiệu quả quá
trình xây dựng kho dữ liệu (data warehouse), cũng như quá trình khai phá dữ liệu
(data mining)
Các CSDL truyền thống thường có kích thước không lớn lắm và được lưu trữ tập trung ở một nơi Trong khi đó kích thước Web rất lớn, tới hàng terabytes và thay đổi liên tục, không những thế còn phân tán trên rất nhiều máy tính khắp nơi trên thế giới Một vài nghiên cứu về kích thước của Web đã đưa ra các số liệu như sau: Hiện nay trên Internet có khoảng hơn một tỷ các trang Web được cung cấp cho người sử dụng., giả sử kích thước trung bình của mỗi trang là 5-10Kb thì tổng kích thước của nó
ít nhất là khoảng 10 terabyte[2] Còn tỷ lệ tăng của các trang Web thì thật sự gây ấn tượng Hai năm gần đây số các trang Web tăng gấp đôi và còng tiếp tục tăng trong hai năm tới Nhiều tổ chức và xã hội đặt hầu hết những thông tin công cộng của họ lên
Web Như vậy việc xây dựng một kho dữ liệu (datawarehouse) để lưu trữ, sao chép
hay tích hợp các dữ liệu trên Web là gần như không thể
Độ phức tạp của trang Web lớn hơn rất nhiều so với những tài liệu văn bản
truyền thống khác
Các dữ liệu trong các CSDL truyền thống thì thường là loại dữ liệu đồng nhất (về ngôn ngữ, định dạng,…), còn dữ liệu Web thì hoàn toàn không đồng nhất Ví dụ về
Trang 26Thuật toán phân lớp văn bản Web và thực nghiệm trong máy tìm kiếm VietSeek
Khóa luận tốt nghiệp đại học Đặng Thanh Hải 26
ngôn ngữ dữ liệu Web bao gồm rất nhiều loại ngôn ngữ khác nhau (Cả ngôn ngữ diễn
tả nội dung lẫn ngôn ngữ lập trình), nhiều loại định dạng khác nhau (Text, HTML, PDF, hình ảnh âm thanh,…), nhiều loại từ vựng khác nhau (Địa chỉ Email, các liên kết (links), các mã nén (zipcode), số điện thoại)
Nói cách khác, trang Web thiếu một cấu trúc thống nhất Chúng được coi như một thư viện kỹ thuật số rộng lớn, tuy nhiên con số khổng lồ các tài liệu trong thư viện thì không được sắp xếp tuân theo một tiêu chuẩn đặc biệt nào, không theo phạm trù, tiêu đề, tác giả, số trang hay nội dung, Điều này là một thử thách rất lớn cho việc tìm kiếm thông tin cần thiết trong một thư viện như thế
Web là một nguồn tài nguyên thông tin có độ thay đổi cao
Web không chỉ có thay đổi về độ lớn mà thông tin trong chính các trang Web cũng được cập nhật liên tục Theo kết quả nghiên cứu , hơn 500.000 trang Web trong hơn 4 tháng thì 23% các trang thay đổi hàng ngày, và khoảng hơn 10 ngày thì 50% các trang trong tên miền đó biến mất, nghĩa là địa chỉ URL của nó không còn tồn tại nữa[2] Tin tức, thị trường chứng khoán, các công ty quản cáo và trung tâm phục vụ Web thường xuyên cập nhật trang Web của họ Thêm vào đó sự kết nối thông tin và sự truy cập bản ghi cũng được cập nhật
Web phục vụ một cộng đồng người dùng rộng lớn và đa dạng
Internet hiện nay được nối với khoảng 50 triệu trạm làm việc, và cộng đồng người dùng vẫn đang nhanh chóng lan rộng[2] Mỗi người dùng có nền tảng kiến thức, mối quan tâm, sở thích khác nhau Nhưng hầu hết người dùng không có kiến thức tốt
về cấu trúc mạng thông tin, hoặc không ý thức được công sức của quá trình tìm kiếm, rất dễ bị "lạc" khi đang "mò mẫm"trong "bóng tối" của mạng hoặc dễ cảm thấy chán khi tiến hành tìm kiếm mà chỉ nhận những mảng thông tin không mấy hữu ích
Chỉ một phần rất nhỏ của thông tin trên Web là thực sự hữu ích
Theo thống kê, 99% của thông tin Web là vô ích với 99% người dùng Web[2] mặc dù điều này có thể không chính xác, nhưng có một sự thật là mỗi người dùng nhất định chỉ quan tâm đến một phần nhỏ lượng thông tin trên Web, trong khi phần còn lại chứa những thông tin không phù hợp với nhu cầu của người dùng lại có thể xuất hiện
Trang 27trong kết quả tìm kiếm Vậy thì ta cần phải khai phá Web như thế nào để nhận được trang web chất lượng cao nhất theo tiêu chuẩn của người dùng?
Tất cả những thách thức trên đã thúc đẩy lĩnh vực khai phá dữ liệu Web (web mining) phát triển một cách mãnh mẽ trong những năm gần đây
Hiện nay có rất nhiều máy tìm kiếm dựa trên quá trình đánh chỉ mục các trang Web, chúng được xây dựng và lưu trữ cơ sở dữ liệu chỉ mục ngược của tất cả các từ khóa nhằm mục đích xác định tập hợp các trang Web có chứa các từ khóa nhất định Với những máy tìm kiếm như thế, một người dùng có kinh nghiệm trong quá trình tìm kiếm có thể nhanh chóng tìm thấy các tài liệu mong muốn bằng cách cung cấp một tập hợp các từ khóa hoặc cụm từ khóa Mặc dù vậy, các máy tìm kiếm dựa trên từ khóa vẫn còn một vài thiếu sót Thứ nhất, một chủ đề có thể bao gồm hàng trăm ngàn tài liệu Do đó, một số lượng rất lớn các tài liệu có thể được trả về bởi máy tìm kiếm, tuy nhiên phần lớn các tài liệu đó có thể liên quan rất ít hay thậm chí không liên quan đến yêu cầu của người dùng Thứ hai, có thể có nhiều tài liệu thực sự liên quan đến yêu cầu tìm kiếm của người dùng nhưng lại không được trả về bởi máy tìm kiếm, bởi vì các tài liệu đó không chứa các từ khóa tìm kiếm Điều này cho thấy rằng, các máy tìm kiếm hiện tại chưa đáp ứng đầy đủ cho quá trình khai phá dữ liệu Web
2.2 Các nội dung liên quan đến khai phá dữ liệu Web
2.2.1 Khai phá nội dung trang Web
(Web Content mining)
Quá trình khai phá nội dung trang Web liên quan đến các vấn đề như khai phá chính bản thân nội dung của trang web (text mining) mà không tính đến các siêu liên kết, nghiên cứu và xây dựng hệ thống tìm kiếm trang web theo yêu cầu người dùng Ngoài ra, một công việc không kém phần quan trọng của quá trình khai phá nội dung trang web là tính hạng các trang web trả về theo kết quả tìm kiếm
2.2.2 Khai phá cấu trúc của hệ thống các trang web
(web structure mining)
Là quá trình khám phá ra các thông tin có ích từ cấu trúc siêu liên kết trong hệ thống các trang web
2.2.3 Khai phá quá trình sử dụng Web
(WebUusage Mining)
Trang 28Thuật toán phân lớp văn bản Web và thực nghiệm trong máy tìm kiếm VietSeek
Khóa luận tốt nghiệp đại học Đặng Thanh Hải 28
Quá trình này chủ yếu có chức năng lưu trữ và phân tích tiểu sử của người dùng, để từ đó có khả năng hỗ trợ tốt hơn với từng loại người dùng
2.3 Cơ sở dữ liệu Fulltext
2.3.1 Giới thiệu về cơ sở dữ liệu Fulltext
Cơ sỡ dữ liệu Fulltext là cơ sở dữ liệu phi cấu trúc mà dữ liệu chứa trong đó bao gồm các nội dung text và các thuộc tính về tài liệu văn bản của nội dung đó Dữ liệu trong cơ sở dữ liệu Fulltext thường được tổ chức thành hai phần: phần cơ sở dữ liệu thông thường quản lý thuộc tính của tài liệu, và phần tập hợp nội dung của các tài liệu được quản lý Chúng ta có thể hình dung một cơ sở dữ liệu Fulltext được tổ chức như hình (2.2)[6]:
Web Mining
Web Content Mining
Web Structure Mining
Web Usage Mining
Text Mining Information
Retrieval System
Hình 2.1 Các nội dung chính của quá trình khai phá dữ liệu Web
Cơ sở dữ liệu Fulltext
CSDL về thuộc tính tài liệu Tập hợp nội dung các tài liệu
Hình 2.2 Mô hình tổ chức cơ sở dữ liệu Fulltext
Trang 29Trong trường hợp phổ biến, nội dung tài liệu được lưu trữ gián tiếp trong cơ sở
dữ liệu theo nghĩa hệ thống chỉ quản lý các con trỏ(địa chỉ) trỏ tới các địa chỉ chứa nội dung tài liệu (một ví dụ dễ thấy nhất là mạng Internet, các trang Web thường lưu giữ các địa chỉ tới nơi có lưu nội dung cụ thể) Còn các con trỏ (địa chỉ) và các thuộc tính khác về nó được lưu trữ trực tiếp trong cơ sở dữ liệu bằng hệ quản trị cơ sở dữ liệu có cấu trúc Nội dung của dữ liệu Fulltext (văn bản) không có cấu trúc nội tại, được coi như là một dãy các từ, các dấu ngăn cách Ngữ nghĩa của văn bản được quyết định dựa trên ngữ nghĩa của các từ mang nghĩa có trong văn bản (các từ này được gọi là từ khóa) và cách bố trí các từ khóa đó trong văn bản Do không có cấu trúc nên bài toán
“tổ chức theo cấu trúc hoàn toàn” các từ khóa trong văn bản là không thích hợp do tính quá phức tạp khi thực hiện điều đó Do đó phổ biến hiện hơn người ta sử dụng các phương pháp biểu diễn ngữ nghĩa văn bản thông qua tập các từ khóa có trong văn bản
đó Phần lớn tri thức của loài người được lưu trữ bằng cơ sở dữ liệu Fulltext như sách báo, tạp chí, bài viết Ngày nay do sự phát triển như vũ bào của công nghệ thông tin
và mạng Internet, cơ sở dữ liệu nói chung và cơ sở dữ liệu Fulltext nói riêng đang tăng lên với một tốc độ rất nhanh, vượt ra khỏi sự kiểm soát của con người Việc nghiên cứu các phương pháp tổ chức, lưu trữ và biểu diễn cơ sở dữ liệu Fulltext (trang văn bản) đã, đang ,và sẽ là một lĩnh vực có tính thời sự nhằm mục đích nâng cao khả năng khai phá tri thức để từ đó đáp ứng được tốt hơn nhu cầu thực tiễn của con người
2.3.2 Quá trình xử lý từ vựng
Là quá trình cần được thực hiện trước khi tiến hành đánh chỉ mục các tài liệu hay trước quá trình chuyển tài liệu sang một mô hình biểu diễn nào đó, nhằm mục đích thu được tất cả các từ đơn cũng như các cụm từ có mặt trong tài liệu Ngoài ra quá trình này cũng nhằm loại bỏ các siêu dữ liệu và các thành phần có cấu trúc hoặc có chuẩn biểu diễn Mặc dù đây là một vấn đề dễ hiểu, tuy nhiên trong thực tế chúng ta lại gặp rất nhiều khó khăn khi tiến hành phân tích từ vựng đối với các trang văn bản có định dạng PS, PDF, ,và một số lượng lớn các định dạng văn bản không được công bố Thông thường các thẻ gắn với trang HTML có thể được khai thác để ánh xạ tài liệu vào một biểu diễn bán cấu trúc bằng việc để ý tới sự xuất hiện của các từ trong các thành phần đặc biệt của tài liệu Phương pháp biểu diễn này cho phép trả lời các câu
hỏi phức tạp của người dùng như “Tìm các tài liệu có chứa từ dân số trong phần đầu
và từ gia đình trong câu tiêu đề?” Quá trình xây dựng biểu diễn bán cấu trúc từ trang
tài liệu HTML về mặt lý thuyết là rất đơn giản, vì các thẻ HTML sẽ cung cấp tất cả các
Trang 30Thuật toán phân lớp văn bản Web và thực nghiệm trong máy tìm kiếm VietSeek
Khóa luận tốt nghiệp đại học Đặng Thanh Hải 30
thông tin có cấu trúc Tuy nhiên, chúng ta phải chú ý rằng mặc dù cấu trúc ngữ pháp của HTML đã được định nghĩa một cách rõ ràng, tuy nhiên hầu hết các trình duyệt Web đều không kiểm tra tính đúng đắn về mặt cấu trúc một cách chặt chẽ Do đó bộ phân tích từ vựng phải có khả năng bỏ qua các lỗi cấu trúc và phục hồi lại các thông tin có ích Sau khi đã thu được tất cả các từ vựng có mặt trong tài liệu, chúng ta có thể tiến hành chắt lọc nội dung tài liệu và giảm kích thước bộ từ vựng bằng các cách sau:
Loại bỏ các dấu câu, các ký tự đặc biệt
Chuyển tất cả các ký tự in hoa về dạng chữ thường
Loại bỏ các từ phát sinh, chỉ lưu từ gốc trong số chúng vào bộ từ vựng , ví dụ
như: fish, fishes, fisher và fishers
Với mỗi từ khóa, chúng ta sẽ lưu lại các từ phát sinh từ nó nhằm nâng cao khả
năng tìm kiếm Ví dụ: fish ==>(fisher, fishes,fishing)
Loại bỏ các từ dừng như các giới từ, trạng từ, liên từ
Sau quá trình này, một bộ từ điển các từ khóa sẽ được tạo ra và có cấu trúc như hình (2.3)
Máy tính
Security Sách
Trang 312.3.3 Mô hình không gian vector
Các trang tài liệu văn bản có thể được biểu diễn một cách đơn giản trong không gian vector nhiều chiều, trong đó mỗi từ vựng được gắn với một thành phần của
vector Cụ thể, mỗi tài liệu d có thể được biểu diễn như là một chuỗi các từ khóa:
)|
| , , 2 ,
1
d = , trong đó |d| là độ dài của tài liệu và ωi là một từ khóa thứ i trong bộ từ vựng Một biểu diễn vector của d khi đó sẽ được định nghĩa như là một
vector x ∈R|V | , trong đó mỗi thành phần xj biểu diễn sự liên quan về mặt
thống kê tới sự xuất hiện của từ khóa thứ j trong tài liệu Mô hình biểu diễn vector đơn
giản nhất là mô hình lôgic 0-1, ví dụ xj∈{ }0 , 1 sẽ cho chúng ta biết từ khóa thứ j có
xuất hiện trong tài liệu hay không
Mô hình biểu diễn vector thường được đề cập như là cái túi chứa từ khóa (bag
of words) nhằm nhấn mạnh rằng vector biểu diễn tài liệu không phụ thuộc vào thứ tự
các từ khóa trong tài liệu Mặc dù đây là một phương pháp đơn giản, không chặt chẽ đối với cơ sở lý thuyết thông tin, nhưng nhiều hệ thống phân loại và tìm kiếm văn bản trong thực tế đã hoạt động tương đối tốt với mô hình vector Chú ý rằng, số lượng các
từ khóa trong tập tất cả các tài liệu thường lớn hơn rất nhiều so với số lượng các từ
khác nhau trong một tài liệu cụ thể, |V|>>|d|, bởi vậy biểu diễn vector của tài liệu có xu
hướng phân bố rất loãng trong không gian |V| chiều Đặc tính này có thể được khai thác triệt để cho việc lưu trữ lẫn thiết kế thuật toán
Mô hình vector Boolean có thể được mở rộng bằng việc xem xét các trọng số
có giá trị cụ thể đi kèm với mỗi từ khóa trong tài liệu Lúc này xj∈N chính là số
lần xuất hiện của từ khóa thứ j trong tài liệu tương ứng đang xét Ngoài ra xj có thể
được nhân với một hằng số 1/|d| để xây dựng vector tần số xuất hiện (TF) của tất cả từ
khóa trong tài liệu
Có một lược đồ đánh trọng số quan trọng khác nhằm kết hợp tần số xuất hiện của các từ khóa (trong một tài liệu nhất định) với số đo độ quan trọng của từ khóa,
được gọi là IDF(Inverse Document Frequency)[3] Với một tập hợp các tài liệu cho
trước, IDF sẽ giảm khi số lượng các tài liệu có chứa từ khóa tăng lên Do vậy các từ ít xuất hiện trong tập hợp tài liệu cho trước này sẽ được đánh trọng số cao
Trang 32Thuật toán phân lớp văn bản Web và thực nghiệm trong máy tìm kiếm VietSeek
Khóa luận tốt nghiệp đại học Đặng Thanh Hải 32
Giả sử D = { d1,d2, ,dn} là tập hợp các trang văn bản cho trước, nij
là số lần xuất hiện của từ khóa ω j trong tài liệu di và nj là số tài liệu có chứa từ khóa ω j ít nhất một lần Khi đó[3]:
n
n IDF
d
n TF
j i ij
hoặc là[3]:
IDF
IDF TF
TF x
k di
k
j ik
di k
ij
ωω
2.3.4 Độ gần nhau giữa các tài liệu
Chúng ta có thể định nghĩa độ gần nhau của hai tài liệu d và d’ như là một hàm s(d, d’) ∈R Hàm này sẽ cho phép chúng ta đánh giá độ tương tự của tài liệu so với câu truy v vấn.Với mô hình không gian vector chúng ta sẽ có kết quả như sau[3]:
'
* '
*
'
* '
.
'
* )'
, cos(
)' ,
(
. x x x
x
x
x x
x
x x x
x d
d
Trong đó X, X’ là hai biểu diễn vector tương ứng của các tài liệu d và d’
Trang 332.3.5 Vấn đề từ đồng nghĩa và đa ngôn ngữ trong mô hình vector
Giải pháp cho vấn đề từ đồng nghĩa và đa ngôn ngữ trong bài toán khai phá dữ liệu Fulltext được thực hiện bằng cách liệt kê danh sách các từ đồng nghĩa đối với mỗi
từ khóa trong bộ từ điển Các từ đồng nghĩa được gắn với một trọng số thể hiện sự tương quan về mặt ngữ nghĩa giữa chúng với nhau Cụ thể, trong một nhóm các từ đồng nghĩa, mặc dù cùng biểu đạt một nội dung nhưng vì một số từ có thể được sử dụng nhiều hơn các từ khác trong nhóm, do đó vai trò ngữ nghĩa của các từ có thể sẽ
khác nhau Ví dụ: trong nhóm từ đồng nghĩa (du lịch, du ngoạn, du hành) thì từ du lịch
được sử dụng nhiều hơn các từ còn lại Sau khi đã phân tích như trên ta có thể biểu diễn hệ số của các từ trong nhóm từ đồng nghĩa trên như sau:
mà còn được tìm kiếm trên tất cả các từ đồng nghĩa với nó trong bảng từ đồng nghĩa
Ngoài ra, cách tính các thành phần của vector biểu diễn tài liệu trong bài toán
sử dụng từ đồng nghĩa cũng khác so với cách tính trong bài toán thông thường, và được tính theo cách sau:
Giả sử trong một nhóm từ đồng nghĩa gồm :
Từ thứ nhất với hệ số là H1
Từ thứ hai với hệ số là H2
Từ thứ n với hệ số là Hn
Trang 34Thuật toán phân lớp văn bản Web và thực nghiệm trong máy tìm kiếm VietSeek
Khóa luận tốt nghiệp đại học Đặng Thanh Hải 34
Khi đó độ sai khác về nghĩa của từ thứ i so với từ thứ j trong nhóm trên được tính theo công thức sau:
Aij = 1 - |Hi-Hj|/ Hj
Lúc này tài liệu d sẽ được biểu diễn bằng vector V(d) = (v 1 , v 2 , v 3 , , v m),
trong đó vi được tính bằng tần suất của từ khoá i trong tài liệu d + ∑ (tần suất của từ đồng nghĩa với từ i) * hệ số (của từ đó so với từ i)
Với cách biểu diễn này, những từ không xuất hiện trong tài liệu vẫn có thể gián tiếp được xem là một thành phần của tài liệu thông qua tất cả các từ đồng nghĩa với nó xuất hiện trong tài liệu
2.3.6 Chuỗi các từ khóa
Ngoài việc sử dụng các từ khóa, chúng ta có thể sử dụng các chuỗi từ, đựoc
gọi là n-grams, để xây dựng vector biểu diễn cho tài liệu, ví dụ như “machine learning”, “world wide web” Trong quá trình xây dựng chuỗi các từ, chúng ta sẽ loại
bỏ tất cả các từ dừng (stop-word) xuất hiện trong chuỗi đó Điều này có nghĩa là nội
dung các chuỗi từ thu được không chứa bất cứ từ dừng nào.Ví dụ chuỗi từ “Word for Window” hoặc “winners will be posted at the end of each two-week period” sẽ được thay bằng các chuỗi từ tương ứng như sau: ”Word Window” và “winners posted end two-week period”[1] Nếu số lần xuất hiện của một chuỗi các từ trong một tài liệu bé
hơn một số cho trước, chuỗi từ đó cũng sẽ bị loại bỏ Bằng việc sử dụng chuỗi các từ khóa để xây dựng biểu diễn vector của tài liệu, chúng ta có thể thu được nhiều tính chất liên quan đến sự kết hợp giữa các từ với nhau Quá trình xây dựng vector biểu diễn tài liệu có sử dụng chuỗi các từ khóa được thực hiện từ dưới lên, trong đó các
chuỗi gồm ‘i’ từ ở bước thứ ‘i’ được xây dựng dựa trên các chuỗi có ‘i-1’ từ ở bước
trước đó Quá trình này được mô tả bởi thuật toán sau[1]:
Input:
MinNGramOcc– Số lần xuất hiện nhỏ nhất của các chuỗi từ, N-Grams, trong
tập các chuỗi từ kết quả (LargeNGramSet)
MaxNGramSize – kích thước tối đa của các chuỗi từ (N-Gram)
StopWordSet – tập hợp các từ dừng của một ngôn ngữ xác định
Trang 35DocVec – vector biểu diễn tất cả các tài liệu
SymVec– vector biểu diễn nội dung các tài liệu trong DocVec
Biến phụ:
Sym – các từ khóa trong tài liệu
CandNGramMap – ánh xạ từ một chuỗi các từ, N-Gram, vào số lần xuất hiện
của nó trong tài liệu
NGramQueue – hàng đợi chứa “NGramSize” từ cuối cùng (không tính từ
(1).LargeNGramSet := tất cả các từ đơn khác từ dừng trong DocVec
và số lần xuất hiện >= MinNGramOcc;
(2).For NGramSize=2 to MaxNGramSize do{
Trang 36Thuật toán phân lớp văn bản Web và thực nghiệm trong máy tìm kiếm VietSeek
Khóa luận tốt nghiệp đại học Đặng Thanh Hải 36
2.4 Cơ sở dữ liệu hypertext
2.4.1 Giới thiệu về cơ sở dữ liệu hypertext
Hypertext là thuật ngữ được Theodore Nelson đưa ra lần đầu tiên vào năm
1965 tại Hội thảo của Hội toán học Mỹ ACM lần thứ 20[6] Theo Nelson thì Hypertext
là các tài liệu dạng chữ viết không liên tục Chúng được phân nhánh và cho phép người đọc có thể chọn cách đọc theo ý muốn của mình, tốt nhất là nên đọc nó trên các màn hình có khả năng tương tác
Sáng kiến tạo ra một tập hợp các văn bản cùng với con trỏ trỏ tới các văn bản khác nhằm phản ánh mối liên quan giữa các trang văn bản với nhau thực sự là một giải pháp sáng tạo để tổ chức thông tin Với người viết cách này cho phép người dùng có thể thoải mái loại bỏ những băn khoăn về thứ tự trình bày những vấn đề liên quan đến nhau để tập trung vào hoàn thành các vấn đề nhỏ, và sau đó có thể sử dụng các liên kết
để chỉ cho người đọc thấy được các vấn đề nhỏ đó có mối quan hệ với nhau như thế nào So sánh với cách đọc tuyến tính, thì Hyperlext đã cung cấp cho chúng ta một giao diện để có thể tiếp xúc với nội dung thông tin hiệu quả hơn rất nhiều Một cơ sở dữ liệu Hypertext bao gồm hai thành phần chính sau:
Trang 37Hình 2.4 Đồ thị mô tả cây Website
Tài liệu Hypertext: là một tài liệu Text đơn nằm trong một cơ sở dữ liệu
Hypertext Nếu chúng ta tưởng tượng cơ sở dữ liệu Hypertext như một đồ thị thì một tài liệu Text đơn là một nút trong đồ thị[6]
Siêu liên kết (Hyperlink): là một sự kết nối giữa các tài liệu Hypertext với
nhau Các siêu liên kết đóng vai trò là các cung trong đồ thị có hướng[6]
2.4.2 Phương pháp biểu diễn trang Web theo mô hình vector
Xuất pháp từ mục tiêu sử dụng phương pháp biểu diễn trang Web bằng vector, cùng với quan điểm sử dụng các thông tin về liên kết nhằm tăng độ chính xác tìm kiếm cũng như phân lớp các trang Web, chúng ta có bốn cách biểu diễn các trang Web như sau:
Hình 2.5 Mô hình minh họa cho các phương pháp biểu diễn trang Web
Trang đang xét (A)
a, b,
b
Trang 38Thuật toán phân lớp văn bản Web và thực nghiệm trong máy tìm kiếm VietSeek
Khóa luận tốt nghiệp đại học Đặng Thanh Hải 38
Cách biểu diễn thứ nhất:
Cách này không quan tâm đến bất cứ một liên kết nào cũng như bất cứ một trang láng giềng nào mà chỉ đơn giản biểu diễn nội dung của chính trang Web đó Đây chính là phương pháp biểu diễn vector cho tài liệu Fulltext đã được đề cập ở trên
Cách biểu diễn thứ hai
Cách đơn giản nhất để sử dụng thông tin về các liên kết trong trang Web là kết hợp trang web đó với tất cả các trang láng giềng của nó để tạo ra một siêu trang
(super-document) Nếu sử dụng phương pháp này ta sẽ có vector biểu diễn cho trang
web A như sau:
a b c d e f g
2 3 3 1 1 1 1
Điểm yếu của phương pháp này là làm loãng đi nội dung của trang A, và có thể tạo thêm nhiễu cho việc phân lớp Cách biểu diễn này là sự lựa chọn rất tốt trong trường hợp cần biểu diễn một tập các trang Web có cùng một chủ đề
Cách biểu diễn thứ ba
Cấu trúc của vector biểu diễn được chia làm hai phần, phần thứ nhất dùng để biểu diễn các từ xuất hiện trong bản thân trang A, còn phần thứ hai được dùng để biểu diễn các từ xuất hiện trong tất cả các trang láng giềng của A Cách biểu diễn này tránh được khả năng các trang láng giềng có thể làm loãng nội dung của trang A Theo cách này, trang web A sẽ có vector biểu diễn như sau:
a b c d e f g a b c d e f g
1 2 2 0 0 0 0 1 1 1 1 1 1 1
Trang 39 Cách biểu diễn thứ tư
Chúng ta xây dựng một vector biểu diễn có cấu trúc theo các bước sau:
•Xác định bậc cao nhất d của các trang web trong tập tài liệu Hypertext
•Xây dựng một vector cấu trúc với d+1 thành phần như sau:
∗Phần đầu biểu diễn cho chính tài liệu A
∗Các phần từ 2 đến d+1 biểu diễn các tài liệu láng giềng của A, mỗi tài liệu được biểu diễn bởi một phần
Phương pháp biểu diễn này có hai khó khăn chính sau:
∗Kích thước của vector thường là rất lớn
∗Mỗi trang web có thể có nhiều vector biểu diễn nếu chúng ta hoán đổi thứ tự các phần từ 2 cho đến d+1
2.4.3 Khai thác các siêu liên kết
Chúng ta có thể tận dụng cấu trúc liên kết giữa các trang Web với nhau để thu được các thông tin có ích về tài liệu, mặc dù bản các thông tin này không xuất hiện trong bản thân tài liệu đó Ví dụ như đoạn văn bản có chứa các siêu liên kết thường mô
tả một cách tổng quát nhất nội dung của trang Web được trỏ tới bởi siêu liên kết này
Mặc dù chúng ta không cần đọc nội dung của trang Web đích v, nhưng chúng ta có thể
biết được nội dung tổng quát của trang Web này thông qua các đoạn văn bản chứa siêu
liên kết tới v trong tất cả các trang Web w là cha của trang Web v Ví dụ: trong bài
toán tìm kiếm, đoạn văn bản chứa các siêu liên kết này đã được phân tích và khai thác
một cách triệt để nhằm đánh giá trang Web đích
Học quan hệ
Học quan hệ là một phương pháp tiếp cận thích hợp cho việc khai thác thông tin có ích từ các cấu trúc siêu liên kết Với phương pháp này, dữ liệu được xem như tồn tại trong một mối quan hệ nào đó, và thuật toán học có thể khai thác tối đa quan hệ giữa các đối tượng Đối với tập dữ liệu Web, ngoài các quan hệ được mã hóa dưới dạng cấu trúc siêu liên kết giữa các trang Web còn có các quan hệ cục bộ thể hiện tính bán cấu trúc của tài liệu Web thông qua các thẻ HTML đặc trưng Năm 1990, Quinlan