1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

78 485 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 78
Dung lượng 0,97 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

LỜ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 2

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

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 3

PHẦ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 4

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

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 5

Chươ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 6

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

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 7

mụ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 8

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

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 9

bubble –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 10

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

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 11

gian 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 12

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

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 13

Tê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 14

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

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 15

trữ 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 16

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

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 18

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

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 19

long 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 20

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

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 22

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

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 23

BEGIN

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 24

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

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 25

Chươ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 26

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

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 27

trong 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 28

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

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 29

Trong 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 30

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

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 31

2.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 xR|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 xjN 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 32

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

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 dinj 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 33

2.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 34

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

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 35

DocVec – 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 36

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

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 37

Hì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 38

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

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

Ngày đăng: 16/08/2014, 10:20

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Dunja Mladenic. Machine learning on non-homogenous, distributed text data,Doctoral Dissertation. 1998 Sách, tạp chí
Tiêu đề: c. Machine learning on non-homogenous, distributed text data
[4]. Paolo Boldi, Bruno Cdenotti, Massimo Santini, Sebastinao Virga. UbiCrawler: A scalable fully distributed web crawler. Jan. 27, 2003 Sách, tạp chí
Tiêu đề: UbiCrawler: A scalable fully distributed web crawler
Tác giả: Paolo Boldi, Bruno Cdenotti, Massimo Santini, Sebastinao Virga
Năm: 2003
[5]. Sergey Brin and Lawrence Page. The Anatomy of a Large-Scale Hypertextual Web Search Engine. 1998 Sách, tạp chí
Tiêu đề: The Anatomy of a Large-Scale Hypertextual Web Search Engine
Tác giả: Sergey Brin, Lawrence Page
Năm: 1998
[6]. Sen Slattery (2002). Hypertext Classification. Doctoral dissertation (CMU-CS- 02-142). School of Computer Science. Carnegie Mellon University Sách, tạp chí
Tiêu đề: Hypertext Classification
Tác giả: Sen Slattery
Năm: 2002
[7]. Bùi Quang Minh (2002). Máy tìm kiếm VietSeek. Báo cáo kết quả nghiên cứu thuộc Đề tài khoa học đặc biệt cấp ĐHQGHN mã số QG-02-02 Sách, tạp chí
Tiêu đề: Máy tìm kiếm VietSeek
Tác giả: Bùi Quang Minh
Năm: 2002
[8]. Đặng Tiểu Hùng. Phương pháp biểu diễn ngữ nghĩa lân cận siêu liên kết cho máy tìm kiếm VietSeek. Luận văn thạc sỹ Công nghệ thông tin- Đại học Quốc gia Hà Nội, 2004 Sách, tạp chí
Tiêu đề: Phương pháp biểu diễn ngữ nghĩa lân cận siêu liên kết cho máy tìm kiếm VietSeek
[10]. Phạm Thanh Nam, Bùi Quang Minh, Hà Quang Thụy. Giải pháp tìm kiếm trang Web tương tự trong máy tìm kiếm VietSeek. Tạp chí Tin học và Điều khiển học (nhận đăng 1-2004) Sách, tạp chí
Tiêu đề: Giải pháp tìm kiếm trang Web tương tự trong máy tìm kiếm VietSeek
[11]. Phạm Thanh Nam. Một số giải pháp cho bài toán tìm kiếm trong cơ sở dữ liệu Hypertext. Luận văn thạc sỹ Công nghệ thông tin- Đại học Quốc gia Hà Nội Sách, tạp chí
Tiêu đề: Một số giải pháp cho bài toán tìm kiếm trong cơ sở dữ liệu Hypertext
Tác giả: Phạm Thanh Nam
Nhà XB: Luận văn thạc sỹ Công nghệ thông tin- Đại học Quốc gia Hà Nội
[2]. Micheline Kamber, Jiawei Han: Data Mining, Concepts and Techniques Khác
[3]. Pierre Baldi, Paolo Fransconi, Padhraic Smyth. Modeling the Internet and the Web, Probabilistic Methods and Algorithms 2003 Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.0.  Mô hình cấu trúc hoạt động của máy tìm kiếm - 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
Hình 1.0. Mô hình cấu trúc hoạt động của máy tìm kiếm (Trang 5)
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 - 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
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 7)
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 - 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
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 (Trang 13)
Hình 1.2. Mối quan hệ giữa ba file nhị phân trong cơ chế CompactStorage - 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
Hình 1.2. Mối quan hệ giữa ba file nhị phân trong cơ chế CompactStorage (Trang 16)
Hình 1.3. Cấu trúc biến thành viên DelMap::m chunks - 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
Hình 1.3. Cấu trúc biến thành viên DelMap::m chunks (Trang 18)
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) - 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
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) (Trang 21)
Hình 2.1. Các nội dung chính của quá trình khai phá dữ liệu Web - 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
Hình 2.1. Các nội dung chính của quá trình khai phá dữ liệu Web (Trang 28)
Hình 2.2. Mô hình tổ chức cơ sở dữ liệu Fulltext - 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
Hình 2.2. Mô hình tổ chức cơ sở dữ liệu Fulltext (Trang 28)
Hình 2.5. Mô hình minh họa cho các phương pháp biểu diễn trang Web - 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
Hình 2.5. Mô hình minh họa cho các phương pháp biểu diễn trang Web (Trang 37)
Hình 2.4. Đồ thị mô tả cây Website - 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
Hình 2.4. Đồ thị mô tả cây Website (Trang 37)
Hình 3.1. Mối quan hệ giữa các siêu phẳng phân cách - 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
Hình 3.1. Mối quan hệ giữa các siêu phẳng phân cách (Trang 44)
Hình 3.2. Biên giới của siêu phẳng phân cách - 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
Hình 3.2. Biên giới của siêu phẳng phân cách (Trang 45)
Hình 3.4. Cây quyết định - 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
Hình 3.4. Cây quyết định (Trang 51)
Hình 4.7. Mô hình ứng dụng hệ thống VietSeek - 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
Hình 4.7. Mô hình ứng dụng hệ thống VietSeek (Trang 69)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w