Đề tài 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

Tài liệu Đề tài 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: 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 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 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íc...

pdf78 trang | Chia sẻ: hunglv | Lượt xem: 1516 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài 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, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Thuật tố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 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 Thuật tố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 tố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 tố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 tố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. Thuật tố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 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 Thuật tố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 tố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 tố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 ngồi mục đích trên. Ngồ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. Ngồ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 tố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 tốn điển hình được áp dụng để giải quyết bài tố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. Thuật tố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 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ừ khố), 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 Thuật tố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ừ khố, 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ỉ Thuật tố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 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. • Modul đánh chỉ mục Modul này sẽ lần theo các Web site, tải về các trang Web mà nĩ bắt gặp, phân tích và lưu trữ nội dung các trang Web đĩ trong một cấu trúc dữ liệu đặc biệt(một số dữ liệu được lưu trữ trong cơ sỡ dữ liệu MySQL, số cịn lại được lưu trong các file nhị phân được gọi là “file delta” ở thư mục “/usr/local/aspseek/var”). Khi khơng cịn trang Web nào để đánh chỉ số, modul này sẽ sắp xếp các file delta và trộn nội dung trong các file delta vào cơ sỡ dữ liệu MySQL để xây dựng chỉ số ngược. Modul đánh chỉ mục hỗ trợ các giao thức HTTP, HTTPS và cĩ thể phân tích được các tài liệu full text cũng như các tài liệu HTML. Hầu hết các chức năng của modul index đều được điều khiển 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 Thuật tố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 tố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 tố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: provider* 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 Thuật tố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 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ợ các từ dừng ( stopword ) Từ dừng là các từ mà bản thân nĩ khơng cĩ ý nghĩa hồn chỉnh. Ví dụ :’is, are,at,this’. Việc tìm kiếm trên các từ dừng là hồn tồn vơ nghĩa, bởi vậy các từ dừng sẽ bị loại bỏ khỏi câu truy vấn. Các từ dừng cũng bị loại bỏ ra khỏi cơ sở dữ liệu trong suốt quá trình đánh chỉ mục, bởi vậy cơ sỡ dữ liệu sẽ nhỏ hơn và nhanh hơn. Khơng cĩ tập các từ dừng được xây dựng sẵn trong VietSeek, người sử dụng phải xây dựng tập hợp các từ dừng tương ứng với từng ngơn ngữ và lưu vào file. ™ Hỗ trợ việc đố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 Thuật tố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ộ đốn nhận mã chữ cái cĩ thể được sử dụng để giải quyết điều này. Bộ đố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: Ví dụ Ý nghĩa User-agent: * Disallow: Dấu (*) cĩ ý nghĩa “bất cứ máy tìm kiếm nào” User-agent: * Disallow: /cgi-bin/ Disallow: /tmp/ Disallow:/private/ Tất cả các máy tìm kiếm cĩ thể thăm tất cả các thư mục ngoại trừ ba thư mục đề cập ở đây User-agent: BadBot Disallow: / Máy tìm kiếm BadBot khơng được phép thăm bất cứ thư mục nào. User-agent: BadBot Disallow: / User-agent:* Disallow : /private/ Riêng máy tìm kiếm BadBot khơng được phép thăm bất cứ thư mục nào cịn tất cả các máy tìm kiếm cịn lại đều cĩ quyền thăm tất cả các thư mục ngoại trừ thư mục “private” ™ 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 Thuật tố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 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 tồ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 tố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 Thuật tố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 0 4 URLID của site thứ nhất cĩ chứa từ khĩa 4 2 Số lần xuất hiện của từ khĩa trong URLID này 6 2 Vị trí của lần xuất hiện thứ nhất 8 2 Vị trí của lần xuất hiện thứ hai ..... ... ...... 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 ................... .......................... .......................................... Lặp lại các thơng tin trên cho các URL cĩ chứa từ khĩa này của các site tiếp theo • Bảng urlword Chứa thơng tin về tất cả các URL đã hoặc chưa được đánh chỉ số bởi máy tìm kiếm VietSeek, thỏa mãn một điều kiện đặc biệt nào đĩ Thuật tố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 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 Tên trường Miêu tả 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 Thuật tố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 tồ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ả 0 4 Site_id 4 8 Url_id 8 2 Số lượng các từ khác nhau trong Url_id này cĩ giá trị “word_id %100” bằng chỉ số của file 10 4 word_id 14 2 Số lần xuất hiện của từ khĩa này trong nội dung xác định bởi Url_id 16 2 Vị trí thứ nhất của từ ........ ........ ........ 16+(N-1)*2 2 Vị trí cuối cùng của từ ----Lặp lại các thơng tin trên cho các từ khĩa tiếp theo, bắt đầu bằng Word_ID---- ................. .................... .......................... ----------Lặp lại các thơng tin trên cho các URL khác, bắt đầu bằng Site_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 Thuật tố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 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: struct{ ULONG m_offset; ULONG m_siteCount; ULONG m_urlCount; ULONG m_totalCount; }WordInd; • 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; Thuật tố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ả 0 4 Url_id trong Site_id1 4 8 Số lần xuất hiện của từ cĩ “word_id”=NN 8 2 Vị trí lần xuất hiện thứ nhất 10 2 Vị trí lần xuất hiện thứ hai ..... ..... .............. 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ừ khĩa “word_id”=NN .............. ............. ........................... Lặp lại các thơng tin trên cho một Site khác(site_id2) cĩ chứa từ khĩa “word_id”=NN ................. .................... .......................... Lặp lại vùng thơng tin URl trên cho từ khĩa cĩ “word_id”=NN+100 ................ .......................... ..................................... • Mối liên hệ giữa ba file nhị phân: IND 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ĩ word_id = NN word_id = NN+100 SITES Url_id Count 1st position .... n th pos ... Url_id Count 1st pos .... n th pos .... Url_id ..... Thơng tin về vùng Url của từ cĩ Thơng tin về vùng Url của từ cĩ word_id = NN word_id = NN+100 URLS Biểu diễn cho từ cĩ word id = NN Biểu diễn cho từ cĩ word id =NN+100 Offset SiteCount UrlCount TotalCount .... ...... ...... ...... Hình 1.2. Mối quan hệ giữa ba file nhị phân trong cơ chế CompactStorage Thuật tố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 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 lớp CDelMap và CDelMapReuse: Lớp CDelMap class CDelMap { public: ULONG*m_chunks[DELMAP_SIZE];///<Chứanộidungfile“./dev/zero” pthread_mutex_t m_mutex; ///< Mutex để đồng bộ hĩa các thao tác trên m_chunks int m_fd; ///< Số mơ tả file “.../dev/zero” } 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. Thuật tố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 ....... ..................... m_chunks[DELMAP_SIZE] ....... ..................... .... ... ... ... ... .. ... ... ... m_chunks NULL Thuật tố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 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ị xĩa hoặc bị đánh dấu xĩa 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 Url_id bằng 1, cập nhật lại giá trị m_urlID } 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): Thuật tố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 m_current m_currentFail 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 Thuật tố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 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 tố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 tố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 ™ Mơ hình mức cao(Hình 1.8) ™ Mơ hình mức thấp (Hình 1.9) kết quả DS các sites nếu thay đổi Internet Index File cấu hình CSDL lấy 1 URL 2 3 1 4 Hình 1.8. Mơ hình hoạt động mức cao của modul index Thuật tố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> N 1.Kết hợp nội dung 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 Y N 1.Xây dựng dữ liệu chỉ số ngược 2.Tính hạng tất cả Wp END Database Hàng đợi Hình 1.9. Mơ hình hoạt động mức thấp của modul index Hàng đợi Bộ đệm từ vựng ResoverList Thuật tố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 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 Y numr > 0 1.Lọc ra các Url thỏa mãn điều kiện “next_index_time”=maxtime 2.Lưu một số lượng nhất định các Url này vào hàng đợi 3.Cập nhật giá trị CSQLDatabaseI::m_maxtime Y Lấy và trả về Url_id đầu tiên trong hàng đợi CSQLDatabaseI::m_queue END Hình 1.6. Chiến lược lấy urlID tiếp theothứ nhất để tiến hành đánh chỉ mục numthreads Thuật tố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 24 Hình 1.7. Chiến lược lấy urlID tiếp theothứ hai để tiến hành đánh chỉ mục 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 CSQLDatabaseI::m_queue 4.Cập nhật giá trị CSQLDatabaseI::m_maxtime 5. numr <= số lượng các Url được thêm vào hàng đợi Y Lấy và trả về Url_id đầu tiên trong hàng đợi CSQLDatabaseI:: m_queue END 1.Lọc ra các Url thỏa mãn điều kiện “next_index_time”=maxtime và hops = m_maxhops 2.Lưu một số lượng nhất định các Url này vào hàng đợi 3.Cập nhật giá trị CSQLDatabaseI::m_queue numr > 0 Y m_maxhops <=m_maxhops+1 numthreads Thuật tố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 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 tồ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. Ngồ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ì hồn tồn khơng đồng nhất. Ví dụ về Thuật tố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 khố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 Thuật tố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 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. Ngồ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) Thuật tố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 Thuật tố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 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 tốn “tổ chức theo cấu trúc hồn tồ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 lồ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 số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. Ngồ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 Thuật tố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 protected DocID Offset 2 57 3 245 2 78 2 83 1 278 1 319 3 142 3 167 DocID=1 DocID=2 DocID=3 Hình 2.3. Cấu trúc chung của một bộ từ điển từ vựng Thuật tố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 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( ωωω dd = , 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 Rx V ||∈ , trong đĩ mỗi thành phần x j 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ụ { }1,0∈x j 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 lỗ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 tố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 Njx ∈ 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. Ngồi ra x j 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. Thuật tố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ử { }dddD n,.....,2,1= 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 d i và n j 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 j ij log || = = Hàm logarit được sử dụng như là hệ số hãm. Trọng số TF-IDF (Salton et al.1983) của từ khĩa ω j trong tài liệu d i cĩ thể được tính theo cơng thức sau: IDFTFx jijij *= hoặc là[3]: IDF IDF TF TF x kdik j ikdik ij ij maxmax * ∈∈ = ωω 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()',( . xxxx xx xx xxxxdds === Trong đĩ X, X’ là hai biểu diễn vector tương ứng của các tài liệu d và d’ Thuật tố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 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 tố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: Từ ‘du lịch’ cĩ hệ số = 1.0 Từ ‘du ngoạn’ cĩ hệ số = 0.8 Từ ‘du hành’ cĩ hệ số = 0.7 Từ ‘travel’ cĩ hệ số = 1.0 Từ ‘tour’ cĩ hệ số = 0.9 Việc thống kê các từ đồng nghĩa và đánh giá về hệ số của các từ đồng nghĩa trong nhĩm là một việc khá phức tạp địi hỏi phải cĩ một số kiến thức về ngữ nghĩa của từ trong nhiều thứ tiếng. Vì vậy các nhĩm từ đồng nghĩa trong hệ thống cần phải thơng qua sự đánh giá bởi những nhà ngơn ngữ học. Trong hệ thống tìm kiếm, mỗi từ thuộc câu hỏi đưa vào, việc tìm kiếm sẽ được tiến hành khơng chỉ trên các từ được hỏi 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. Ngồ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 tốn sử dụng từ đồng nghĩa cũng khác so với cách tính trong bài tố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 Thuật tố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) = (v1, v2, v3,....., vm), trong đĩ vi được tính bằng tần suất của từ khố 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 Ngồ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 tố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 Thuật tố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 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ừ dừng) Output: LargeNGramSet–tập các chuỗi từ (N-Gram) cĩ số lần xuất hiện >=MinNGramOcc Thuật tốn: (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{ (3). CandNGramMap=[]; (4). For SymVec=DocVec[1] to DocVec[|DocVec|] do{ (5). NGramQueue=[]; (6). For Sym=SymVec[1] to SymVec[|SymVec|] do{ (7). if(TypeOf(Sym)==word){ (8). if(Sym not in StopWordSet){ (9). if(Sym in LargeNGramSet) { (10). if(|NGramQueue|+1==NGramSize){ (11). if(Concatenated(NGramQueue) in LargeNGramSet){ (12). NGramQueue.Push(Sym); Thuật tố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 (13). CandNGramMap[Concatenated(NGramQueue)]++; (14). NGramQueue.Pop(); (15). }else {NGramQueue.Push(Sym);NGramQueue.Pop();} (16). }else {NGramQueue.Push();} (17). }else{NGramQueue=[];}//xem lại (18). } (19) }else {NGramQueue=[];} (20) } (21).LargeNGramSet+={NGram:CandNGramMap[NGram]>=MinNGramOcc}; (22)} (23).return LargeNGramSet; 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 tố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 hồ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: Thuật tố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 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 c, c d, e b, g a, c, f Thuật tố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 lỗ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 lỗ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 Thuật tố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 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 hố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 tố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 tố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, ngồ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 Thuật tố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 40 đã đưa ra thuật tốn dựa trên lý thuyết logic vị từ cấp một (FOIL) để giải quyết bài tốn phân tích và khai thác các mối quan hệ trong tập dữ liệu Web. Ví dụ: nếu nội dung của trang Web A cĩ chứa siêu liên kết trỏ tới trang Web B thì chúng ta sẽ biểu diễn mối quan hệ đĩ bằng vị từ Link_to(A, B). Thuật tố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 41 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 3.1. Bài tốn phân lớp văn bản Phân lớp trang văn bản là quá trình gồm hai bước, với mục đích phân các tài liệu văn bản vào các lớp cố định cĩ sẵn. Trong bước thứ nhất, một mơ hình được xây dựng nhằm miêu tả một tập hợp ban đầu các lớp tài liệu. Mơ hình này được xây dựng bằng cách phân tích nội dung các trang văn bản trong tập dữ liệu huấn luyện. Tập dữ liệu huấn luyện là tập hợp các trang văn bản trong cơ sở dữ liệu đã được gán nhãn từ trước dựa trên sự kết hợp giữa các tri thức chuyên gia với một hay nhiều thuộc tính nào đĩ. Do đĩ giai đoạn thứ nhất thường được đề cập như là việc học cĩ giám sát (Việc học của mơ hình được giám sát thơng qua việc nĩ được cho biết mỗi trang văn bản trong tập huấn luyện thuộc vào lớp nào). Trong bước thứ hai, mơ hình này được sử dụng cho việc phân lớp các trang văn bản chưa được gán nhãn hoặc các tài liệu sẽ xuất hiện trong tương lai. Điều này thực sự rất hữu ích, ví dụ để đốn nội dung của một trang Web, hay quyết định xem nội dung của trang Web đĩ cĩ phù hợp với lĩnh vực của người dùng hay khơng?. Hiện nay cĩ rất nhiều phương pháp được áp dụng vào quá trình phân lớp trang văn bản như [3]: ♦ K người láng giềng gần nhất (K- Nearest Neighbours) ♦ Naive Bayes ♦ Support Vector Machines ♦ Cây quyết định (Decision Tree) ♦ Mang nơron ♦ Phương pháp tìm luất kết hợp Chương này chủ yếu tập trung vào thuật tốn Naive Bayes được áp dụng trong quá trình xây dựng bộ phân lớp trang văn. Phần đầu của chương giới thiệu tổng quát một số thuật tốn thơng dụng được áp dụng hiệu quả trong bài tốn phân lớp trang văn bản. Trong đĩ, đặc biệt tập trung vào việc chứng minh cơng thức phân lớp (3.15) và đề xuất cơng thức phân lớp (3.16) dựa trên thuật tốn Naive Bayes. Ngồi ra cịn đề xuất các thuật tốn ước lượng và làm mịn giá trị ngưỡng cho các lớp trong bài tốn phân lớp. Phần cịn lại của chương đề cập đến các chiến lược đánh giá bộ phân lớp. Thuật tố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 42 3.2. Thuật tốn K người láng giềng gần nhất (K-Nearst Neighbors) Bộ phân lớp dựa trên thuật tốn K người láng giềng gần nhất là một bộ phân lớp dựa trên bộ nhớ, đơn giản vì nĩ được xây dựng bằng cách lưu trữ tất cả các đối tượng trong tập huấn luyện. Để phân lớp cho một điểm dữ liệu mới x, trước hết bộ phân lớp sẽ tính khoảng cách từ điểm x đến tất cả các điểm dữ liệu trong tập huấn luyện. Qua đĩ tìm được tập N(x, D, k) gồm k điểm dữ liệu mẫu cĩ khoảng cách đến x là gần nhất. Ví dụ nếu các dữ liệu mẫu được biểu diễn bởi khơng gian vector thì chúng ta cĩ thể sử dụng khoảng cách Euclian để tính khoảng cách giữa các điểm dữ liệu với nhau. Sau khi xác định được tập N(x, D, k), bộ phân lớp sẽ gán nhãn cho điểm dữ liệu x bằng lớp chiếm đại đa số trong tập N(x, D, k). Mặc dù rất đơn giản, nhưng thuật tốn K người láng giềng gần nhất đã cho kết quả tốt trong nhiều ứng dụng thực tế. Để áp dụng thuật tốn k-NN vào tài liệu văn bản, chúng ta cĩ sử dụng hàm tính trọng số cho mỗi lớp theo biểu thức (3.1). Trong đĩ ),,( kDxcN là tập con chỉ chứa các đối tượng thuộc lớp c của tập ),,( kDxN . )1.3(),cos()|( ),,( xxxcScore kDxNcx ′∑= ∈′ Khi đĩ tài liệu x sẽ được phân vào lớp oc nếu: { }CcxcscoreMaxxocscore ∈= ),|()|( 3.3. Bộ phân lớp sử dụng vector hỗ trợ Máy sử dụng vector hỗ trợ (SVM) được giới thiệu bởi Cortes và Vapnik vào năm 1995[3]. SVM thực sự hiệu quả khi giải quyết vấn đề trên dữ liệu cĩ số chiều lớn, ví dụ như biểu diễn vector của các trang tài liệu văn bản. Ban đầu, SVM chỉ được thiết kế để giải quyết các bài tốn phân lớp cĩ số lớp bằng 2, vấn đề phân lớp nhị phân.Giả sử tập dữ liệu huấn luyện được biểu diễn như sau: { }niiyixD ...1),,( == Trong đĩ mRix ∈ và { }1,1−∈iy sẽ xác định điểm dữ liệu ix là ví dụ dương hay ví dụ âm. Khi đĩ bộ phân cách tuyến tính sẽ là một siêu phẳng được định nghĩa như sau: { }00)(: =+= wxTwxfx Thuật tố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 43 Với mRw ∈ và Rw ∈0 là các hệ số thích nghi, đĩng vai trị như là các tham số biểu diễn mơ hình cho máy phân lớp sử dụng vector hỗ trợ(SVM). Ta cĩ thể định nghĩa một hàm phân lớp nhị phân: )2.3( .0 0)(.1 )( ⎩⎨ ⎧ >= otherwise xfif xh Giai đoạn học của mơ hình này bao gồm việc ước lượng các tham số mRw ∈ và Rw ∈0 từ tập dữ liệu huấn luyện. Một tập dữ liệu huấn luyện được gọi là cĩ thể phân tách tuyến tính nếu tồn tại một siêu phẳng cĩ hàm phân lớp h(x) bền vững với tất cả các nhãn, ví dụ hàm phân lớp đĩ cĩ thể thỏa mãn điều kiện sau đây: niixfiy ..10)(* =∀> . Sử dụng giả thuyết này, Rosenblartt đã chứng minh được rằng thuật tốn lặp đơn giản sau cĩ thể tạo ra siêu phẳng phân cách[3]. ™ Thuật tốn tạo siêu phẳng phân cách: 1. 0←w 2. 00 ←w 3. repeat 4. e ← 0 5. for i ← 1 to n do 6. s ← sgn( )0( wixTwiy + ) 7. if(s < 0) then 8. ixiyww *+← 9. iyww +← 00 10. e ← e+1 11.untill e=0 12.return )0,( ww Thuật tố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 44 Cĩ thể thấy rằng điều kiện đủ để tập dữ liệu huấn luyện D cĩ thể phân cách tuyến tính được là số lượng các đối tượng dữ liệu trong D, n=|D| phải bé hơn hoặc bằng m+1. Điều kiện này thường đúng với bài tốn phân lớp trang văn bản, nơi cĩ số lượng các từ khĩa rất lớn, khoảng vài ngàn từ, và lớn hơn rất nhiều so với số lượng các đối tượng trong tập huấn luyện. Trong hình (3.1), giả sử rằng các dữ liệu mẫu thuộc lớp âm và lớp dương đều tuân theo luật phân bố chuẩn Gaussian với cùng một ma trận tương quan, và được tạo ra với cùng một xác suất. Khi đĩ một siêu phẳng phân cách được gọi là lý tưởng nếu nĩ làm cực tiểu hĩa xác suất phân lớp sai cho một điểm dữ liệu mới. Với giả thuyết ở trên thì siêu phẳng phân cách lý tưởng sẽ trực giao với đoạn thẳng nối tâm của hai vùng cĩ mật độ xác suất lớn nhất. Rõ ràng các siêu phẳng mà chúng ta xây dựng nhằm phân cách các điểm dữ liệu mẫu cĩ thể lệch đi rất nhiều so với siêu phẳng lý tưởng, do đĩ sẽ dẫn tới việc phân lớp khơng tốt trên dữ liệu mới sau này. Độ phức tạp của quá trình xác định siêu phẳng lý tưởng sẽ tăng theo số chiều của khơng gian đầu vào, m. vì với một số lượng các dữ _ _ _ _ _ _ _ _ _ _ _ _ + + + + + + ++ + + + + + + _ Siêu phẳng phân cách lý tưởng Siêu phẳng thực tế Hình 3.1. Mối quan hệ giữa các siêu phẳng phân cách Thuật tố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 45 liệu mẫu cố định, tập hợp các siêu phẳng thực tế sẽ tăng theo hàm mũ với lũy thừa m. Với bài tốn phân lớp trang văn bản, m thường rất lớn, vào khoảng vài ngàn hay thậm chí là hàng triệu từ. Trên cơ sở lý thuyết học theo xác suất được phát triển bởi Vapnik năm 1998, chúng ta cĩ thể định nghĩa một siêu phẳng phân cách lý tưởng bằng hai đặc tính sau: ™ Là duy nhất đối với mỗi tập dữ liệu huấn luyện cĩ thể phân tách tuyến tính. ™ Xác suất phân lớp sai cho các dữ liệu mới của nĩ là bé nhất so với tất cả các siêu phẳng phân cách khác. Biên giới M của bộ phân lớp được định nghĩa là khoảng cách giữa siêu phẳng phân cách và điểm dữ liệu mẫu gần với nĩ nhất. Như vậy siêu phẳng phân cách lý tưởng là siêu phẳng cĩ biên giới M lớn nhất (Hình 3.2). Cĩ thể thấy rằng khoảng cách từ một điểm dữ liệu x đến siêu phẳng được tính theo cơng thức: )0(|||| 1 wxTw w + . Bởi vậy siêu phẳng phân cách lý tưởng cĩ thể được tìm thấy bằng việc giải quyết bài tốn tối ưu cĩ điều kiện sau: + + + + + + + + + + + + + + MwwTx =+ 0 MwwTx −=+ 0 00 =+ wwTx M w 2 |||| 2 = Hình 3.2. Biên giới của siêu phẳng phân cách Thuật tố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 46 MMax ww 0, trong đĩ: )3.3(....1,)0(|||| 1 niMwix Twiyw =≥+ Với mỗi siêu phẳng, bao giờ cũng tồn tại một điểm x’ sao cho: |||| 1 |||| )0(|||| 1 ww ConstwxTwiyw M ⇐=+′= Thay vào (3.3) ta cĩ: wwMin ww rr.2 1 0, với )4.3(....1,1)0( niwixTwiy =≥+ Theo Lemma thì nghiệm w& của bài tốn tối ưu (3.4) bao giờ cũng được biểu diễn tuyến tính theo các vector niix ...1= bằng biểu thức[3]: )5.3(0 1 ≥ = = ∑ iixiyin i w αα r& Trong đĩ iα được gọi là các hệ số quyết định Lagrang. Bài tốn tối ưu đối ngẫu với (3.4) cĩ dạng như sau[3]: ∑+∑∑ === − n i i n j jxixjyiyji n i Max 11 . 12 1 ααα α rr trong đĩ )6.3(0,0 1 ≥= = ∑ iiyin i αα Theo lý thuyết đại số tuyến tính thì bài tốn tối ưu (3.4) và (3.6) là tương đương với nhau. Nĩi cách khác nếu α& là nghiệm của bài tốn tối ưu (3.6) thì ⎟⎠ ⎞⎜⎝ ⎛ += = = ∑ posxwnegxwowixiyin i w .. 2 1, 1 &&&r&& α là nghiệm của bài tốn (3.4). Mặt khác bài tốn tối ưu (3.6) là bài tốn bậc hai (quadratic programming), về nguyên tắc cĩ thể giải được bằng các phương pháp tối ưu chuẩn. Khi đĩ vector α& được gọi là vector hỗ trợ (support vector). Mỗi thành phần iα& được gắn với một điểm dữ liệu mẫu ix , thể hiện độ ảnh hưởng của điểm dữ liệu mẫu này tới kết quả của việc phân lớp sau này. Hàm quyết định phân lớp h(x) cĩ thể được tính bằng biểu thức (3.2) hoặc bằng dạng đối ngẫu tương đương (3.7) : Thuật tố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 47 )7.3( 1 )( ∑ = = n i ixTixiiyxf α Trong trường hợp dữ liệu huấn luyện khơng cĩ khả năng phân cách tuyến tính, phương pháp phân tích này vẫn cĩ khả năng áp dụng bằng cách bổ sung n biến khơng âm iξ , khi đĩ bài tốn tối ưu sẽ được phát biểu lại như sau: ∑ = + n i iC ww wwMin 12 1 0, . ξrr với niiwixTwiy ....1,1)0( =−≥+ ξ và bài tốn đối ngẫu sẽ là: ∑+∑∑ === − n i i n j jxixjyiyji n i Max 11 . 12 1 ααα α rr với điều kiện niCi ...1,0 =≤≤α Việc giải quyết bài tốn tối ưu bậc hai sử dụng các phương pháp chuẩn cĩ độ phức tạp )3(nΟ , với giả thuyết rằng số lượng các vector hỗ trợ tăng tuyến tính với số lượng các đối tượng trong tập dữ liệu huấn luyện. Đây là một vấn đề khĩ khăn của phương pháp SVM. Bộ phân lớp SVM mà chúng ta đang thảo luận chỉ cĩ thể được áp dụng cho các bài tốn phân lớp nhị phân. Với các ứng dụng cĩ số lớp lớn hơn hai, phương pháp tiếp cận truyền thống là tiến hành chuyển bài tốn này thành một số bài tốn phân lớp nhị phân nhỏ hơn, mỗi lớp được biểu diễn bởi một xâu nhị phân. Sau đĩ áp dụng bộ phân lớp SVM nhị phân cho từng nhãn bộ phận. ™ Ví dụ về SVM giải quyết bài tốn cĩ nhiều lớp Tập dữ liệu mẫu huấn luyện: [ ] { }{ }1,12,1,...1),2,1,( −∈== iyiyniiyiyixD A A A D D D D B B B C C C C Lớp Nhãn A B C D (1, 1) (1, -1) (-1, 1) (-1,-1) Hình 3.3. Tập dữ liệu huấn luyện nhiều lớp Thuật tố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 48 3.4. Bộ phân lớp sử dụng cây quyết định Cây quyết định là một cấu trúc cây giống biểu đồ luồng, trong đĩ mỗi nút trong là một bộ kiểm tra giá trị cho một thuộc tính xác định, mỗi nhánh thể hiện một kết quả của quá trình kiểm tra và mỗi lá đại diện cho các lớp hoặc sự phân bố của lớp. Nút trên cùng của cây là nút gốc. Thuật tốn: Decision_Tree[2] Input: samples: tập dữ liệu huấn luyện attributes_list: tập hợp các thuộc tính Output: Cây quyết định (1)Tạo ra một nút N (2)If (tất cả dữ liệu mẫu trong “samples” đều thuộc lớp C) then (3) Nhãn(N) ← C ; Xác định N là nút lá ; Thốt (4)If(attribute_list rỗng) then (5) Nhãn(N) ← Lớp chiếm đại đa số trong “sample”; Xác định N là nút lá;Thốt (6)test_attribute ←thuộc tính trong “attribute_list” cĩ độ đo InformationGain lớn nhất (7)Nhãn(N) ←”test_attribute” (8)For mỗi giá trị ai của thuộc tính “test_attribute” do (9) Xây dựng một nhánh từ nút N (10) si ← tập các dữ liệu thuộc “samples” cĩ giá trị của thuộc tính “test_attribute”=ai (11) If(si rỗng) then (12) Gắn thêm một nút lá cĩ nhãn là lớp chiếm đại đa số trong “samples” vào cây quyết định (13) else (14) Nút M ← Decision_Tree(si, attribute_list-test_attribute); (15) Gắn thêm nút M vào cây. Thuật tố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 49 Thuật tốn trên hoạt động theo chiến lược tham lam, xây dựng cây quyết định theo phương pháp đệ quy từ trên xuống dưới. ™ Độ đo Information Gain Độ đo Information Gain được sử dụng để lựa chọn thuộc tính làm nhãn cho mỗi nút trong thuật tốn xây dựng cây quyết định. Nĩ thể hiện khả năng quyết định tới việc phân lớp của các thuộc tính. Thuộc tính cĩ độ đo Information Gain lớn nhất sẽ được chọn làm thuộc tính phục vụ việc kiểm tra (phân hoạch)dữ liệu tại nút hiện thời. Thuộc tính này sẽ làm cực tiểu hĩa lượng thơng tin cần thiết để cĩ thể phân lớp các dữ liệu huấn luyện trong kết quả của quá trình phân hoạch hiện tại. Phương pháp tiếp cận dựa trên lý thuyết thơng tin này sẽ làm cực tiểu hĩa số lần kiểm tra trung bình cần thiết để phân lớp một đối tượng dữ liệu và đảm bảo rằng cây quyết định đơn giản(khơng nhất thiết phải tối ưu) sẽ được tạo ra. Giả sử S là một tập gồm s đối tượng dữ liệu huấn luyện, C là tập hợp các lớp gồm m phần tử khác nhau. Gọi is là số lượng các dữ liệu mẫu trong S thuộc về lớp iC . Khi đĩ lượng thơng tin trung bình cần thiết để phân lớp một dữ liệu mẫu sẽ được tính theo cơng thức (x.y)[2]: ∑ = −= m i ipipmssisI 1 )(2log),......,2,( Trong đĩ ip là xác suất để một đối tượng dữ liệu mẫu thuộc về lớp iC và được ước lượng bởi sis . Ở đây chúng ta sử dụng hàm logarit theo cơ số 2 là vì thơng tin được mã hĩa bằng dãy các bít. Giả sử thuộc tính A cĩ v giá trị phân biệt, { }vaaa ,....,2,1 , và cĩ thể được sử dụng để phân hoạch S thành v tập con, { }vSSS ,.....,2,1 , trong đĩ iS là tập chứa các dữ liệu mẫu cĩ giá trị của thuộc tính A bằng ia . Nếu A được chọn để kiểm tra việc phân hoạch tập dữ liệu mẫu, thì các tập con này sẽ tương ứng với các nhánh được tạo ra từ nút chứa tập S. Gọi ijs là số lượng các mẫu thuộc tập jS cĩ nhãn là iC .Độ đo Entropy, hay lượng thơng tin trung bình, dựa trên sự phân hoạch bởi thuộc tính A được tính theo cơng thức sau[2]: Thuật tố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 50 ∑ = +++= v j mjsjsIs mjsjsjsAE 1 ),.....,1( ....21)( Đại lượng s mjsjsjs +++ .....21 đĩng vai trị là trọng số của tập con thứ j, chính là số lượng các mẫu trong tập con jS chia cho tổng số các mẫu trong S. Giá trị độ đo Entropy của một thuộc tính càng nhỏ, thì sự phân hoạch tập dữ liệu mẫu theo thuộc tính này càng tốt. Chú ý, với tập con jS cho trước ta cĩ: ∑ = −= m i ijpijpmjsjsjsI 1 )(2log.),.......,2,1( Với || jS ijs ijp = là xác suất để một mẫu trong tập jS thuộc về lớp iC .Khi đĩ độ đo Information Gain của thuộc tính A được tính theo cơng thức sau[2]: Gain(A)= )(),......,2,1( AEmsssI − ™ Ví dụ về cây quyết định Qua quá trình theo dõi việc đi chơi Tennis của một vận động viên, giả sử chúng ta cĩ bảng thống kê như sau (xxx ví dụ phân lớp văn bản: xem luận văn anh Đồn Sơn): Thời tiết Nhiệt độ Độ ẩm(%) Cĩ giĩ? Lớp Cĩ nắng 75 70 đúng Đi chơi Cĩ nắng 80 90 đúng Khơng đi Cĩ nắng 85 85 sai Khơng đi Cĩ nắng 72 95 sai Khơng đi Cĩ nắng 69 70 sai Đi chơi U ám 72 90 đúng Đi chơi U ám 83 78 sai Đi chơi U ám 64 65 đúng Đi chơi U ám 81 75 sai Đi chơi Mưa 71 80 đúng Khơng đi Mưa 65 70 đúng Khơng đi Mưa 75 80 sai Đi chơi Mưa 68 80 sai Đi chơi Mưa 70 96 sai Đi chơi Thuật tố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 51 Sử dụng thuật tốn xây dựng cây quyết định ở trên chúng ta sẽ cĩ cây quyết định như hình (3.4): Để gán nhãn cho một dữ liệu mới, các giá trị thuộc tính của dữ liệu này sẽ được kiểm tra trên cây quyết định(tiến hành duyệt cây quyết định theo chiều sâu dựa trên giá trị các thuộc tính của dữ liệu). Một đường đi trên cây sẽ được xây dựng từ nút gốc cho đến nút lá. Nhãn của nút lá này chính là lớp được gán cho dữ liệu mới. 3.5. Bộ phân lớp dựa trên thuật tốn Naive Bayes Năm 1998, trong luận án tiến sỹ [ Machine learning on non-homogenous, distributed text data ], Dunja Mladenic đã sử dụng cơng thức (3.8) để tiến hành xây dựng bộ phân lớp dựa trên thuật tốn Naive Bayes: )8.3()()|().( )()|().( )|( ∑ ∏ ∏ ∈ ∈= i dj jTF icjPicP dj jTFcjPcP dcP ω ωω ω ωω Trong phần sau, khĩa luận sẽ tập trung vào việc chứng minh cơng thức phân lớp (3.15) và đưa ra cơng thức đề xuất (3.16), được áp dụng để xây dựng bộ phân lớp dựa trên thuật tốn Naive Bayes. Thời tiết Độ ẩm Cĩ giĩ? Đi chơi U ám MưaNắng Khơng đi Đi chơi Đi chơi Khơng đi <=75 >75 sai đúng Hình 3.4. Cây quyết định Thuật tố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 52 Khi muốn gán nhãn cho một tài liệu d nào đĩ, bộ phân lớp sẽ tính xác suất cĩ điều kiện của mỗi một lớp c với điều kiện đã cĩ tài liệu d. Theo lý thuyết xác suất Bayes ta cĩ: )9.3()|( )|().,|( ),|( θ θθθ dP cPcdP dcP = Trong đĩ θ là mơ hình tham số của bộ phân lớp mà chúng ta cần phải xây dựng. Tuy nhiên, sự xuất hiện của θ sẽ được ngầm hiểu trong các cơng thức đề cập sau này. Do tập các lớp C lập thành một hệ đầy đủ về xác suất, nên theo cơng thức tính xác suất tồn phần ta cĩ: )10.3()(*)|()( || 1 ∑ = = C i cPcdPdP ii Một cách trực quan ta cĩ thể biểu diễn tài liệu d bằng một tập hợp các từ khĩa xuất hiện trong tài liệu )||,......,2,1( ωωω d , trong đĩ mỗi từ khĩa ω i được gắn với một trọng số ni là số lần xuất hiện của từ khĩa đĩ trong tài liệu d . Theo quan điểm của lý thuyết xác suất tài liệu d được xem là một sự kiện xác suất (biến cố xác suất) với mỗi từ khĩa và số lần xuất hiện của từ khĩa đĩ là những tính chất của nĩ. Như vậy tài liệu d cĩ thể được thay thế tương đưong bằng một tập hợp các tính chất sau: Gọi W i là biến ngẫu nhiên chỉ số lần xuất hiện của từ khĩa ω i và X là biến ngẫu nhiên chỉ số lượng từ khĩa cần dùng để xây dựng tài liệu. Do đĩ ta cĩ: d ⇔ 2. Số lần xuất hiện của )( 1ω = n1 3.Số lần xuất hiện của )( 2 ω =n2 ......................... .............................. |d|+1.Số lần xuất hiện của )( ||ω d = n d || 1.Số lượng từ khĩa =|d| Thuật tố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 53 )|,....,,|,|()|( ||||2211 cnWnWnWdXPcdP dd ===== Do số lượng từ khĩa cần dùng độc lập xác suất với số lần xuất hiện của tất cả các từ khĩa trong tài liệu cũng như với ngữ nghĩa của tài liệu nên ta cĩ thể viết lại cơng thức trên như sau: )11.3()|,....,,(|).|()|( ||||2211 cnWnWnWPdXPcdP dd ===== Giả sử rằng số lần xuất hiện của các từ khĩa trong tài liệu là độc lập với nhau từng đơi một khi cho biết trước ngữ nghĩa (tên lớp) của các tài liệu. Khi đĩ kết hợp giả thiết này với cơng thức (3.11) chúng ta cĩ: )12.3()|(*...*)|(*)|(*|)|()|( ||||2211 cnWPcnWPcnWPdXPcdP dd ===== Giả thiết rằng xác suất xuất hiện từ khĩa ω i trong một miền ngữ nghĩa cho trước là một hằng số , constciwP =)|( . Giả thiết này thường khơng đúng trong nhiều trường hợp thực tế. Ví dụ: trong một tập hợp S gồm rất nhiều (đủ lớn cho việc thống kê) các tài liệu liên quan đến chủ đề “văn hĩa ẩm thực” cĩ chứa từ khĩa “ăn”. Tuy nhiên cĩ khả năng vào một thời điểm nào đĩ, từ khĩa “ăn” sẽ được thay thế bằng từ đồng nghĩa khác, ví dụ “xơi”, “chén”, “nhậu”. Rõ ràng trong trường hợp này xác suất xuất hiện từ khĩa “ăn” đã thay đổi. Mặc dù vậy sự thay đổi này vơ cùng bé vì mỗi một từ trong số các từ đồng nghĩa đĩ đều cĩ một sắc thái tình cảm riêng, khơng thể tùy tiện thay thế cho nhau được. Như vậy giả thiết trên hồn tồn cĩ thể chấp nhận được. Chúng ta hãy thực hiện lược đồ xác suất S như sau: ♦ Chọn ngẫu nhiên giá trị của |d| ♦ Thực hiện |d| lần một phép thử cĩ đặc điểm như sau: xác suất xuất hiện từ khĩa iω trong miền ngữ nghĩa c cho trước là constciP =)|(ω và xác suất xuất khơng xuất hiện từ khĩa iω trong miền ngữ nghĩa này là )|(1 ciP ω− . Thuật tố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 54 Lược đồ S chính là lược đồ Becnulli, do đĩ theo cơng thức của lược đồ Becnulli ta cĩ: )13.3( || )(1)|(*|)(|)|( || nd PncPCdPcnWP i i i i n i dii − −== ⎥⎦⎤⎢⎣⎡ ωω Kết hợp các cơng thức (3.9), (3.10), (3.12) và (3.13) ta cĩ = −−∏∑ −−∏= ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ ⎟⎠ ⎞⎜⎝ ⎛ ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ ⎟⎠ ⎞⎜⎝ ⎛ ∈ n cP cPd cPCdPdPcP n cP cPd cPCdPdPcP dcP i ik i ki ki ki n i dk i i i n i ddi )|(1 )|(|| )|(1|)(||)(|)( )|(1 )|(|| |(1|)(||)(|)( )|( || || ω ωω ω ωω ω ω )14.3( )|(1 )|(|| )|(1)( )|(1 )|(|| |(1)( n cP cPd cPcP n cP cPd cPcP i k i ki ki kidik i i idi ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ ⎟⎠ ⎞⎜⎝ ⎛ ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ ⎟⎠ ⎞⎜⎝ ⎛ −−∏∑ −−∏= ∈ ∈ ω ωω ω ωω ω ω Chúng ta ánh xạ giá trị in trong miền [ 0, |d|] vào một giá trị tương ứng in′ trong miền [0, 1] theo cơng thức sau: )|(001 0|| 0 dTF d n n i i i ω=−−=′ +⎟⎠ ⎞⎜⎝ ⎛− Thay vào cơng thức (3.14) ta cĩ: )15.3()( )|(1 )|( )|(1)( )( )|(1 )|( )|(1)( )|( ω ω ωω ω ω ωω ω ω i ki ki kidik i i i idi TF cP cP cPcP TF cP cP cPcP dcP k ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ ⎟⎠ ⎞⎜⎝ ⎛ ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ ⎟⎠ ⎞⎜⎝ ⎛ −−∏∑ −−∏= ∈ ∈ Thuật tố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 55 Gọi )( iCF ω là số lượng miền ngữ nghĩa cĩ chứa từ khĩa iω . Cĩ thể nhận thấy rằng, tham số )( iCF ω cũng phần nào ảnh hưởng tới việc quyết định ngữ nghĩa cho tài liệu d của từ khĩa này. Từ cơng thức đề xuất thứ nhất (3.15) kết hợp với trọng số )( iCF ω , khĩa luận đã đề xuất cơng thức thứ hai như sau: )16.3()()( )|(1 )|( )|(1)( )()( )|(1 )|( )|(1)( )|( i i ki ki kidik i i i i idi CFTF cP cP cPcP CFTF cP cP cPcP dcP k ωω ω ωω ωω ω ωω ω ω ⎥⎥ ⎥⎥ ⎥ ⎦ ⎤ ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ ⎟⎠ ⎞⎜⎝ ⎛ ⎢⎢ ⎢⎢ ⎣ ⎡ ⎥⎥ ⎥⎥ ⎥ ⎦ ⎤ ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ ⎟⎠ ⎞⎜⎝ ⎛ ⎢⎢ ⎢⎢ ⎢⎢ ⎣ ⎡ −−∏∑ −−∏ = ∈ ∈ Như vậy bộ phân lớp cĩ thể được biểu diễn bằng một mơ hình θ bao gồm tập hợp các tham số sau đây: )|();( cjPcjcPc ωθθ == . Các tham số của mơ hình cĩ thể được ước lượng dựa trên tập dữ liệu huấn luyện ban đầu gồm n tài liệu theo cơng thức sau: nV n nK N il n cc ii V l ij n cc ii cj c c ∑∑+ ∑+= + += == = : || 1 : || 1 1 θ θ 3.5.1. Ước lượng ngưỡng cho các lớp Sau khi xây dựng được mơ hình tham số cho bộ phân lớp, chúng ta cĩ thể tiến hành phân lớp cho các tài liệu mới thu được. Tài liệu d sẽ được phân vào lớp c nếu như { }CicdicPMaxdcP ∈∀= ),|()|( . Phương pháp này đơn giản, dễ hiểu và phù hợp với suy luận logic của chúng ta. Vì mỗi tài liệu chỉ thuộc về một lớp duy nhất, nên phương pháp này chỉ phù hợp với các ứng dụng cĩ mật độ phân bố tài liệu khơng đều, ♦Nc: là số tài liệu thuộc lớp c ♦|V|: số từ khĩa trong tập dữ liệu huấn luyện ♦K: hằng số tùy chọn Thuật tố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 56 các lớp hồn tồn khơng giao nhau. Trong thực tế do ngơn ngữ tự nhiên thường cĩ tính đa nghĩa, một tài liệu cĩ thể cĩ nhiều ngữ nghĩa khác nhau nên phương pháp này sẽ khơng chính xác. Để khắc phục điều này mỗi lớp c sẽ được gán một giá trị ngưỡng, thc .Tài liệu d sẽ được gán vào lớp c nếu như thdcP c≥)|( . Với phương pháp thứ hai này, điều khĩ khăn nhất là chúng ta phải ước lượng được chính xác giá trị ngưỡng thc . ™ Đề xuất giải pháp ước lượng giá trị ban đầu cho các ngưỡng thc Gọi T là tập các trang văn bản dùng để huấn luyện bộ học, C là tập các lớp cho trước. Quá trình ước lượng giá trị ban đầu cho các ngưỡng được thực hiện theo thuật tốn sau: Thuật tốn: (1). Xây dựng mơ hình tham số θ cho bộ phân lớp (2). For mỗi lớp c ∈ C do (3). { (4). thc← 1; (5). For mỗi tài liệu d ∈ T, cĩ nhãn là c do (6). { (7). Tính giá trị P(c|d) theo cơng thức (3.16); (8). if (P(c|d) < thc ) then thc ← P(c|d); (9). } (10). } Thuật tố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 57 3.5.2. Kết hợp thuật tốn học máy EM và Naive Bayes Miền ứng dụng của bài tốn phân lớp trang văn bản là tập hợp rất lớn các tài liệu khơng nhãn D. Thuật tốn EM được sử dụng để xử lý dữ liệu khơng nhãn, từ đĩ xây dựng được một mơ hình phân lớp cĩ khả năng thích nghi với các dữ liệu khơng nhãn. Cụ thể, bước E bao gồm việc tính tốn xác suất cĩ điều kiện )|( idcP cho mỗi tài liệu id ∈ D . Xác suất này sau đĩ sẽ được sử dụng để ước lượng lại các tham số của mơ hình trong bước M. Trong mơ hình biểu diễn vector, chúng ta sử dụng cơng thức ước lượng lại các tham số như sau: nK dcP dcPnV dcPn i n i iik n i V k iij n i c cj + ∑+ ∑∑+ ∑+ = == = = = )|(1 )|(|| )|(1 1 1 || 1 1 θ θ ™ Đề xuất giải pháp làm mịn giá trị ngưỡng của các lớp Giá trị ngưỡng của các lớp sẽ được thích nghi với dữ liệu khơng cĩ nhãn(dữ liệu trong tương lai) bằng thuật tốn sau: Thuật tốn: (1) For mỗi tài liệu d ∈ Dtest do (2) { (3) Tiến hành phân lớp cho tài liệu d ; (4) Lưu lại các gía trị )|( cdP và )|( dcP ; (5) } (6) For mỗi lớp c ∈ C do (7) { (8) othres ← thc ; (9) tmp ← 0; (10) tmpv ←0; Thuật tố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 58 (11) For (mỗi tài liệu d ∈ Dtest ) AND tài liệu d cĩ nhãn là c do (12) { (13) tmp ← tmp + )|( cdP * )|( dcP ; (14) tmpv ← tmpv + )|( cdP * )|( 2dcP ; (15) } (16) tmpv ← tmp – tmpv; (17) n ← 1; (18) while ((tmp – n*tmpv) > othres) do (19) { (20) thc ← tmp – n*tmpv; (21) n ← n+1; (22) } (23) } 3.6. Các yếu tố đánh giá bộ phân lớp Khả năng sử dụng hàm lý thuyết h(•) để mơ tả hàm phân lớp thật sự f(•) (hàm phân lớp kỳ vọng) cĩ thể được đánh giá bằng việc so sánh giá trị của hàm h(•) và hàm f(•) trên cùng một tập dữ liệu đã biết trước nhãn. Giả sử chúng ta chỉ cĩ hai lớp cho trước và hàm lý thuyết h(•) được mơ tả bằng ma trận sau: Lớp thật sự Lớp được phân _ + - TN FN - FP TP Nếu ứng dụng cĩ các miền ngữ nghĩa phân bố đồng đều nhau(xác suất khơng điều kiện của các lớp tương đương nhau), khi đĩ độ chính xác A(Accuracy) thường được sử dụng để làm tham số đánh giá: Thuật tố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 59 ||D TPTN A test += Nếu các miền ngữ nghĩa khơng cân bằng với nhau, thì độ đo )( precisionρ và )(recallπ sẽ phù hợp hơn. Khơng mất tính tổng quát, cĩ thể giả sử rằng số lượng các dữ liệu thật sự thuộc lớp (+) lớn hơn rất nhiều lần số lượng dữ liệu thuộc lớp (-). Khi đĩ ta cĩ: FNTN TN FPTP TP += += ρ π Trong trường hợp cĩ nhiều lớp, cĩ thể định nghĩa )( precisionρ và )(recallπ một cách độc lập cho từng lớp, đồng thời xem tất cả các lớp cịn lại như là lớp (-). 3.6.1. Các chiến lược đánh giá độ chính xác của bộ phân lớp Việc ước lượng độ chính xác của của bộ phân lớp là một cơng việc quan trọng, qua đĩ cho phép chúng ta đánh giá độ chính xác của bộ phân lớp trong việc gán nhãn cho các dữ liệu trong tương lai, dữ liệu khơng nhãn. Ngồi ra nĩ cịn cho phép chúng ta so sánh giữa các bộ phân lớp với nhau, tìm ra bộ phân lớp tốt nhất để áp dụng vào thực tiễn. Cĩ một số chiến lược hay được sử dụng để ước lượng độ chính xác của bộ phân lớp như chiến lược ước lượng trên hai tập con (holdout) và chiến lược ước lượng chéo trên k tập con, k-fold cross validation. Cả hai chiến lược này đều ước lượng độ chính xác của bộ phân lớp bằng cách phân hoạch ngẫu nhiên tập dữ liệu cĩ nhãn cho trước. ™ Chiến lược ước lượng trên hai tập con (holdout strategy) Trong chiến lược này, tập dữ liệu cĩ nhãn cho trước được phân hoạch thành hai tập con độc lập, tập huấn luyện và tập kiểm tra. Đặc biệt tập huấn luyện cĩ lực Thuật tố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 60 lượng lớn gấp hai lần tập kiểm tra. Tập huấn luyện dùng để xây dựng bộ phân lớp, sau đĩ độ chính xác của bộ phân lớp này sẽ được ước lượng dựa trên tập kiểm tra. Ngồi ra chúng ta cĩ thể tiến hành lặp chiến lược này k lần, khi đĩ trung bình cộng của tất cả các độ chính xác trong mỗi lần lặp sẽ là kết quả cuối cùng. ™ Chiến lược ước lượng chéo trên k tập con (k-fold cross validation strategy) Trong chiến lược này, tập dữ liệu cĩ nhãn ban đầu được phân hoạch thành k tập cĩ lực lượng bằng nhau và loại trừ lẫn nhau từng đơi một, S1,S2, ......,Sk. Quá trình huấn luyện và kiểm tra được tiến hành k lần. Trong lần lặp thứ i, tập con Si sẽ được sử dụng như là tập kiểm tra và tất cả các tập cịn lại sẽ được dùng để xây dựng bộ phân lớp. Độ chính xác của bộ phân lớp sẽ được ước lượng bằng thương của số lần phân lớp đúng chia cho tổng số đối tượng dữ liệu trong tập huấn luyện ban đầu. 3.7. Tích hợp bộ phân lớp Bayes vào máy tìm kiếm VietSeek Qua quá trình nghiên cứu, khĩa luận đã tiến hành xây dựng và ứng dụng thành cơng bộ phân lớp trang văn bản Web đề xuất vào máy tìm kiếm VietSeek, bước đầu cho kết quả rất khả quan. Ngồi ra hệ thống cịn cĩ khả năng tạo dữ liệu huấn luyện ban đầu một các tự động theo hạn chế cụ thể nào đĩ. Để cĩ thể tích hợp bộ phân lớp Bayes

Các file đính kèm theo tài liệu này:

  • pdfK45_Dang_Thanh_Hai_Thesis.pdf
Tài liệu liên quan