Luận văn 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

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 toán phân lớp văn bản Web và thực nghiệm trong máy tìm kiếm VietSeek Khóa luận tốt nghiệp đại học Đặng Thanh Hải 4 hàng xem hoặc tải về, sau khi phân lớp chúng ta sẽ biết khách hàng hay tập trung vào nội dung gì, từ đó chúng ta sẽ bổ sung thêm nhiều các tài liệu về các nội dung mà khách hàng quan tâm. Từ những nhu cầu thực tế trên, phân lớp và tìm kiếm trang Web vẫn là bài toán hay, có tính thời sự cao, cần được phát triển và nghiên cứu hiện nay. Đề tài khóa luận tốt nghiệp ‘Thuật toán phân lớp văn bản Web và thực nghiệm trong máy tìm kiếm VietSeek (Vinahoo)’ cũng không nằm ngoài mục đích trên. Ngoài phần mở đầu và phần kết luận, nội dung của khóa luận được tổ chức thành 4 chương với nội dung chính như sau: Chương 1, với tên gọi Máy tìm kiếm VietSeek, nhằm mục đích giới thiệu một cách chi tiết cấu trúc cũng như cơ chế hoạt động của các máy tìm kiếm VietSeek. Ngoài ra, phần đầu của chương còn giới thiệu tổng quát về cấu trúc chung của các máy tìm kiếm đang được sử dụng rộng rãi hiện nay. Chương 2 có tên gọi là Khai phá dữ liệu Web trong máy tìm kiếm. Nội dung chính của chương trình bày các kỹ thuật cơ bản liên quan dến bài toán khai phá dữ liệu Web trong máy tìm kiếm. Chương 3, tích hợp giải pháp phân lớp trang văn bản vào máy tìm kiếm VietSeek, giới thiệu các thuật toán điển hình được áp dụng để giải quyết bài toán phân lớp văn bản. Trong đó đặc biệt tập trung vào giải pháp phân lớp theo phương pháp Bayes thứ nhất. Các công thức đề xuất (3.15) và (3.16), cùng với quá trình chứng minh tính đúng đắn của chúng được trình bày một cách chi tiết trong chương này. Đi kèm với giải pháp phân lớp Bayes là các đề xuất nhằm giải quyết vấn đề tính ngưỡng cho các lớp. Phần cuối của chương giới thiệu quá trình tích hợp giải pháp phân lớp trang văn bản vào máy tìm kiếm VietSeek. Chương 4 với tựa đề Kết qủa thực nghiệm và đánh giá sẽ giới thiệu các kết quả thực nghiệm thu được khi tiến hành tích hợp giải pháp phân lớp văn bản Web vào máy tìm kiếm VietSeek. Sau đó đưa ra các đánh giá về các công thức đề xuất dựa trên kết quả thực nghiệm.

pdf78 trang | Chia sẻ: maiphuongtl | Lượt xem: 2113 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Luận văn 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, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
c thẻ HTML đặc trưng. Năm 1990, Quinlan 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 40 đã đưa ra thuật toán dựa trên lý thuyết logic vị từ cấp một (FOIL) để giải quyết bài toá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 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 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 toá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ụ để đoá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 toá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 toán thông dụng được áp dụng hiệu quả trong bài toá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 toán Naive Bayes. Ngoài ra còn đề xuất các thuật toán ước lượng và làm mịn giá trị ngưỡng cho các lớp trong bài toá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 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 42 3.2. Thuật toá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 toá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 toá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 toá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 toá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 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 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 toán lặp đơn giản sau có thể tạo ra siêu phẳng phân cách[3]. ™ Thuật toá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 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 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 toá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 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 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 toá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 toá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 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 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 toá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 toá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 toá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 toán tối ưu (3.6) thì ⎟⎠ ⎞⎜⎝ ⎛ += = = ∑ posxwnegxwowixiyin i w .. 2 1, 1 &&&r&& α là nghiệm của bài toán (3.4). Mặt khác bài toán tối ưu (3.6) là bài toá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 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 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 toá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 toá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 toá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 toá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 toán này thành một số bài toá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 toá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 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 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 toá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á ; Thoá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á;Thoá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 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 49 Thuật toá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 toá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 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 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 Đoà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 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 51 Sử dụng thuật toá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 toá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 toá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 toá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 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 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 toà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 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 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 hoàn toà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 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 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 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 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 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 56 các lớp hoàn toà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 toán sau: Thuật toá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 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 57 3.5.2. Kết hợp thuật toán học máy EM và Naive Bayes Miền ứng dụng của bài toá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 toá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 toá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 toán sau: Thuật toá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 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 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 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 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. Ngoà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 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 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. Ngoà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. Ngoà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 thành công vào máy tìm kiếm VietSeek, cần phải bổ sung các bảng cơ sở dữ liệu và các modul thích hợp. 3.7.1. Bổ sung cơ sở dữ liệu Sau đây là các bảng cơ sở dữ liệu được bổ sung vào cơ sở dữ liệu ban đầu của máy tìm VietSeek nhằm mục đích phục vụ cho quá trình tích hợp bộ phân lớp trang văn bản Web vào máy tìm kiếm VietSeek. Dữ liệu có nhãn cho trước Tập kiểm tra Tập huấn luyện Xây dựng bộ phân lớp Ước lượng độ chính xác Hình 3.5.Chiến lược Holdout ước lượng độ chính xác bộ phân lớp Thuật toán phân lớp văn bản Web và thực nghiệm trong máy tìm kiếm VietSeek Khóa luận tốt nghiệp đại học Đặng Thanh Hải 61 • Bảng category Chứa thông tin về tất cả các lớp (ngữ nghĩa) của một ứng dụng cụ thể nào đó. Trường Ý nghĩa cat_id Số định danh của lớp name Tên lớp prob Xác suất không điều kiện của lớp theshold Ngưỡng xác suất đề một tài liệu được phân vào lớp này. • Bảng urlsample Chứa thông tin về tất cả các tài liệu trong tập dữ liệu huấn luyện Trường Ý nghĩa url_id Số định danh của trang văn bản Web vector Vector biểu diễn nội dung của trang Web cat Số định danh xác định lớp của tài liệu • Bảng urlcate Chứa kết quả của quá trình phân lớp trên tất cả các trang Web đã được đánh chỉ mục. Trường Ý nghĩa url_id Số định danh của trang văn bản Web cat_id Số định danh của lớp được gán cho trang văn bản bởi bộ phân lớp CatUrlPro Giá trị xác suất P(C | doc) UrlCatPro Giá trị xác suất P(doc | C) • Bảng newurls Chứa tất cả các trang Web đã được đánh chỉ mục. Trường Ý nghĩa url_id Số định danh của trang văn bản Web vector Vector biểu diễn nội dung của trang Web 3.7.2. Giới thiệu các môđun bổ sung Mã chương trình cụ thể tích hợp trong một số modul chính của máy tìm kiếm VietSeek được trình bày ở phần phụ lục. Khóa luận đã tiến hành tích hợp bộ phân lớp Naive Bayes vào những nơi cần thiết và thích hợp trong mã chương trình của máy tìm kiếm VietSeek, nhưng chủ yếu là vào các modul sau: ™ Modul CUrlContent::Save ™ Modul truy cập cơ sở dữ liệu CSQLDatabaseI 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 62 Ngoài ra, do quá trình tính toán trong bộ phân lớp Naive Bayes yêu cầu độ chính xác rất cao, nên khóa luận đã phải xây dựng thành công bộ xử lý số thực lớn. Bộ xử số thực lớn được đặt trong hai file ‘bignum.h’ và ‘scibignum.h’. 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 63 Chương 4. KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ 4.1. Kết quả thực nghiệm Sử dụng tập dữ huấn luyện ban đầu gồm 2435 trang Web lấy từ trang chủ thuộc 6 lĩnh vực chính (Vi tính, Thể thao, Pháp luật, Sức khỏe, Văn hóa, Xã hội), sau đó tiến hành phân lớp lại dữ liệu mẫu trên lần lượt bằng các bộ phân lớp Naive Bayes dựa trên công thức (3.8), (3.15) và (3.16), khóa luận thu được kết quả trong hai trường hợp có sử dụng ngưỡng và không sử dụng ngưỡng như sau: (R-Là nhãn thực của các tài liệu Web;P-Là nhãn được gán bởi bộ phân lớp cho các tài liệu Web): 4.1.1. Kết quả trong trường hợp không sử dụng ngưỡng: Trong trường hợp phân lớp không sử dụng ngưỡng, tài liệu d sẽ được phân vào lớp c nếu như { }CicdicPMaxdcP ∈∀= ),|()|( . Sau đây là các kết quả thu được khi tiến hành phân lớp bằng các công thức khác nhau. ™ Sử dụng công thức thức (3.8) R P Vitính Thể thao Pháp luật Sứckhỏe Văn hóa Xãhội Recall Vi tính 340 1 6 5 96.59% Thể thao 495 5 99% Phápluật 1 173 0% sức khỏe 1 386 22 94.38% Văn hóa 500 100% Xã hội 1 499 99.8% Precision 100% 99.40% 0% 100% 93.63% 73.71% Bảng 4.1. Kết quả khi sử dụng công thức (3.8) và không sử dụng ngưỡng 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 64 ™ Sử dụng công thức đề xuất thứ nhất (3.15) R P Vitính Thể thao Pháp luật Sứckhỏe Văn hóa Xãhội Recall Vi tính 336 1 6 9 95.45% Thể thao 495 5 99% Phápluật 1 173 0% sức khỏe 1 385 22 1 94.13% Văn hóa 500 100% Xã hội 1 499 99.8% Precision 100% 99.4% 0% 100% 93.63% 73.17% ™ Sử dụng công thức đề xuất thứ hai (3.16) R P Vitính Thể thao Pháp luật Sứckhỏe Văn hóa Xãhội Recall Vi tính 350 1 1 99.43% Thể thao 491 9 98.2% Phápluật 150 1 23 86.21% sức khỏe 405 4 99.02% Văn hóa 500 100% Xã hội 1 499 99.8% Precision 100% 99.59% 100% 100% 97.28% 95.41% Bảng 4.2. Kết quả khi sử dụng công thức (3.15) và không sử dụng ngưỡng Bảng 4.3. Kết quả khi sử dụng công thức (3.16) và không sử dụng ngưỡng 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 65 ™ Nhận xét: Trong trường hợp sử dụng bộ phân lớp được xây dựng dựa trên công thức (3.8) và (3.15), kết quả thu được rất tốt (độ hồi tưởng và độ chình xác), ngoại trừ việc phân lớp sai hoàn toàn đối với lớp PhápLuật. Tuy nhiên điều này đã được khắc phục khi sử dụng bộ phân lớp dựa trên công thức đề xuất (3.16). Ngoài ra kết quả thu cũng tốt hơn trong trường hợp sử dụng bộ phân lớp dựa trên công thức (3.8) và công thức (3.15). 4.1.2. Kết quả trong trường hợp sử dụng ngưỡng theo thuật toán đề xuất: Trong trường hợp phân lớp có sử dụng ngưỡng, mỗi lớp c sẽ được gắn một giá trị ngưỡng thc được tạo ra bởi thuật toán đề xuất, ước lượng giá trị ban đầu của ngưỡng. Tài liệu d sẽ được gán vào lớp c nếu như thdcP c≥)|( . Sau đây là kết quả khi tiến hành phân lớp bằng các công thức khác nhau: ™ Sử dụng công thức (3.8) R P Vitính Thể thao Pháp luật Sứckhỏe Văn hóa Xãhội Recall Vi tính 351 12 88 77.83% Thể thao 499 9 98.23% Phápluật 173 174 49.86% sức khỏe 4 408 175 69.51% Văn hóa 10 4 499 64 86.48% Xã hội 3 1 499 99.2% Precision 100% 94.51% 100% 98.79% 100% 49.54% ™ ™ Bảng 4.4. Kết quả khi sử dụng công thức (3.8) và sử dụng ngưỡng theo thuật toán đề xuất 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 66 ™ Sử dụng công thức đề xuất thứ nhất (3.15) R P Vitính Thể thao Pháp luật Sứckhỏe Văn hóa Xãhội Recall Vi tính 351 10 85 78.7% Thể thao 499 7 98.62% Phápluật 173 174 49.86% sức khỏe 5 408 240 62.48% Văn hóa 10 4 499 80 84.15% Xã hội 3 1 499 99.2% Precision 100% 94.69% 100% 98.79% 100% 45.99% ™ Sử dụng công thức đề xuất thứ hai (3.16) R P Vitính Thểthao Pháp luật Sứckhỏe Văn hóa Xãhội Recall Vi tính 351 21 23 88.86% Thể thao 1 499 3 3 98.62% Phápluật 173 88 66.28% sức khỏe 2 408 4 98.55% Văn hóa 3 2 499 7 97.65% Xã hội 3 499 99.4% Precision 99.72% 94.51% 100% 99.51% 99.4% 79.97% Bảng 4.5. Kết quả khi sử dụng công thức (3.15) và sử dụng ngưỡng theo thuật toán đề xuất Bảng 4.6. Kết quả khi sử dụng công thức (3.16) và sử dụng ngưỡng theo thuật toán đề xuất 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 67 ™ Nhận xét Nếu tiến hành phân lớp có sử dụng ngưỡng, được tạo ra bởi thuật toán đề xuất [Ước lượng giá trị ban đầu cho các ngưỡng], thì kết quả thu được (độ chính xác và độ hồi tưởng) đều tương đối tốt với cả ba bộ phân lớp dựa trên công thức (3.8), (3.15) và công thức (3.16). Điều này chứng tỏ rằng giá trị ngưỡng của các lớp được tạo ra bởi thuật toán đề xuất là tương đối tốt. Ngoài ra, dựa trên các bảng (4.4), (4.5) và (4.6) có thể thấy rằng bộ phân lớp dựa trên công thức đề xuất (3.16) có số lần phân lớp sai bé hơn rất nhiều so với bộ phân lớp dựa trên công thức (3.8) và công thức (3.16). Sau đây là các biểu đồ so sánh kết quả thu được của ba bộ phân lớp dựa trên các công thức (3.8), (3.15) và (3.16) được xây dựng từ kết quả thực nghiệm: 95.41 73 17 73.71 97.28 93 63 100100 0 99 4 99.59 100 100 90 80 70 Vi tính Thể thao Pháp luật Sức khỏe Văn hóa Xã hội công thức (3.8) công thức (3.15) công thức (3.16) Biểu đồ 4.1. Độ chính xác trong trường hợp không sử dụng ngưỡng Precision (%) 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 68 10099.43 96.59 99.8 86.21 100 90 80 70 98.2 99 Thể thao 0 Pháp luật Văn hóa Xã hội công thức (3.8) công thức (3.15) công thức (3 16) Biểu đồ 4.2. Độ hồi tưởng trong trường hợp không sử dụng ngưỡng 95.45 Vi tính 94 38 99.02 94 13 Sức khỏe Recall (%) 79 97 45 99 49 54 99.4 99 51 100 94 51 10099 72100100 90 80 40 94.69 94.51 Thể thao Pháp luật Văn hóa Xã hội công thức (3.8) công thức (3.15) công thức (3 16) Biểu đồ 4.3. Độ chính xác trong trường hợp sử dụng ngưỡng đề xuất Vi tính 98.79 Sức khỏe Precision (%) 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 69 4.2. Đánh giá và khả năng ứng dụng Dựa trên các kết quả thực nghiệm ở trên, có thể khẳng định rằng công thức đề xuất (3.16) là tốt nhất so với hai công thức (3.8) và (3.15) trên tập dữ liệu đã cho. Hệ thống xây dựng trong khóa luận có khả năng áp dụng vào thực tế với vai trò như là một cổng thông tin, có khả năng lọc (phân loại) và phân phối các tài liệu Web đặc thù cho từng bộ phận chuyên môn trong một hệ thống nghiệp vụ lớn. Khóa luận xin phép được đưa ra một mô hình ứng dụng cho toàn Đại học Quốc Gia như hình (4.7). Ngoài ra hệ thống này là cơ sở cho việc nghiên cứu và xây dựng máy tìm kiếm tài liệu Web theo ngữ nghĩa. VietSeek Đại học Đại học Khoa học tự nhiên Khoa Công nghệ Khoa Luật Internet Url Url liên quan đến công nghệ Url liên quan đến pháp luật Url liên quan đến khoa học tự nhiên Hình 4.7. Mô hình ứng dụng hệ thống VietSeek Thuật toán phân lớp văn bản Web và thực nghiệm trong máy tìm kiếm VietSeek Khóa luận tốt nghiệp đại học Đặng Thanh Hải 70 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN TRONG TƯƠNG LAI Qua quá trình tự tìm hiểu và nghiên cứu, cộng với sự giúp đỡ nhiệt tình của các thầy cô giáo cũng như của bạn bè, khóa luận đã đạt được một số kết quả bước đầu như sau: ™ Trình bày mô hình hoạt động tổng quát của các máy tìm kiếm nói chung và máy tìm kiếm VietSeek nói riêng. Trình bày chi tiết quá trình hoạt động của modul đánh chỉ mục của máy tìm kiếm VietSeek để từ đó làm cơ sở cho việc cải tiến và tích hợp các yếu tố khai phá dữ liệu Web. ™ Trình bày khái quát các kỹ thuật cơ bản liên quan đến quá trình khai phá dữ liệu FullText cũng như quá trình khai phá dữ liệu Web, đặc biệt là các thuật toán (K-NN, SVM, Cây quyết định, Naive Bayes) được áp dụng nhằm giải quyết bài toán phân lớp trang văn bản. ™ Khóa luận đã đề xuất các công thức phân lớp trang tài liệu văn bản dựa trên thuật toán Bayes và chứng minh tính đúng dắn của chúng. Ngoài ra, khóa luận đã đề xuất thuật toán ước lượng và làm mịn giá trị ngưỡng cho các lớp dựa trên cơ sở lý thuyết xác suất. ™ Tích hợp 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, và bước đầu cho kết quả đáng tin cậy. Do thời gian không cho phép, kiến thức còn hạn chế và việc tích hợp các giải pháp khai phá web vào máy tìm kiếm là một bài toán lớn cho nên các môđun được xây dựng trong khóa luận còn cần phải phát triển thêm. Việc đánh giá hiệu quả của thuật toán làm mịn giá trị ngưỡng của các lớp phải được tiến hành trên một lượng dữ liệu lớn, do vậy hiện tại khóa luận chưa thể đưa ra được đánh giá chính xác về thuật toán đề xuất này. Trong tương lai, khóa luận cần phải được hoàn thiện theo các hướng sau đây: ™ Tích hợp quá trình xử lý ngôn ngữ tự nhiên vào bộ phân lớp. Cụ thể, ở mức đơn giản có thể áp dụng quá trình chuyển các từ phát sinh về từ gốc ban đầu (loại bỏ các tiền tố, hậu tố,......), còn ở mức cao hơn, đề cập tới bài toán phát hiện luật liên quan đến cấu trúc cũng như ngữ nghĩa trong một ngôn ngữ nhất định. ™ Xây dựng VietSeek trở thành một máy tìm kiếm theo nội dung bằng cách nghiên cứu quá trình tìm kiếm trong máy tìm kiếm VietSeek và các kỹ thuật 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 71 liên quan đến bài toán xây dựng hệ thống tìm kiếm thông tin thông minh (Intelligent Information System). 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 72 PHỤ LỤC Sau đây là mã chương trình cụ thể của bộ phân lớp Naive Bayes được tích hợp vào máy tìm kiếm VietSeek : CUrlContent::Save() { .......................... if((classifing/*&&changed*/)||(InitThreshold))//<ReIndex and ReClassify { CCategory*Cate=Classifier; hash_map Cat_Value; char* Mot=new char[2]; Mot[0]='1'; Mot[1]=0; char* one=new char[2]; one[0]='0'; one[1]=0; SciBigNum DocProb(one); //SciBigNum Min(Mot); while(Cate->next) { pvector=vector; char *CProbS=new char[22]; //CProbS=gcvt(Cate->prob,20,CProbS); CProbS=gcvt(Cate->prob,20,CProbS); SciBigNum CProb(CProbS); Cat_Value[Cate->cat_id].DocCatProb=Mot; for(int i=0;i<ewords-words;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 73 double base=(double)FindWordClassParam(*(ULONG*)pvector,Cate); double oldbase=base; //base=(double)base/(1-(double)base); double exp=(double)(*(pvector+2))/(double)totalword;//TF double formular=pow(base, exp); //formular=(double) formular*(1-(double)oldbase); char* formularS=new char[22]; gcvt(formular,20,formularS); SciBigNum temp(formularS); Cat_Value[Cate->cat_id].DocCatProb=Cat_Value[Cate- >cat_id].DocCatProb*temp; pvector+=3; delete formularS; temp.~SciBigNum(); } Cat_Value[Cate->cat_id].catp=Cate; Cat_Value[Cate->cat_id].catevalue=Cat_Value[Cate- >cat_id].DocCatProb*CProb; if(strcmp(DocProb.value,one)==0) { DocProb=Cat_Value[Cate->cat_id].catevalue; } else { DocProb=DocProb+Cat_Value[Cate->cat_id].catevalue; } delete CProbS; CProb.~SciBigNum(); 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 74 Cate=Cate->next; } //int Predicted; char* threshold=NULL; int IsLabel; for(hash_map::iterator it=Cat_Value.begin();it!=Cat_Value.end();it++) { ((*it).second).catevalue=((*it).second).catevalue/DocProb; threshold=m_cache->m_database->GetThreshW((*it).first); SciBigNum ThreshBig(threshold); if(threshold) delete threshold; //if(answ) delete answ; if(InitThreshold) { int SampleOfClass=m_cache->m_database->IsSampleOfClass ( m_url.m_urlID, (*it).first ); if(SampleOfClass)// Actual belong to this class { if((strcmp(ThreshBig.value,Mot)==0)||(ThreshBig> ((*it).second).catevalue)) { char* min=(((*it).second).catevalue).Reverse(); m_cache->m_database->UpdateThreshold( min, (*it).first ); if(min) delete min; } } 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 75 //if(answ) delete answ; } else //Classifing { if((((*it).second).catevalue >(ThreshBig)) &&(strcmp(ThreshBig.value,Mot)!=0)) { IsLabel=1; logger.log(CAT_ALL, L_INFO, "<CLASS_ID:%d,DOC_ID:%lu >\n", (*it).first, m_url.m_urlID); const char* Cat_Doc=(Cat_Value[(*it).first].catevalue).Reverse() const char* Doc_Cat=(Cat_Value[(*it).first].DocCatProb). Reverse() m_cache->m_database->InsertRCate(m_url.m_urlID,(*it).first, Cat_Doc,Doc_Cat); if(Cat_Doc) delete Cat_Doc; if(Doc_Cat) delete Doc_Cat; } } ThreshBig.~SciBigNum(); }//end of for loop if(!IsLabel) { int AnotherCat=m_cache->m_database->GetAnotherCat(); const char* ACat_Doc=(Cat_Value[AnotherCat].catevalue).Reverse(); const char* ADoc_Cat=(Cat_Value[AnotherCat].DocCatProb).Reverse(); m_cache->m_database->InsertRCate(m_url.m_urlID,AnotherCat, ACat_Doc, ADoc_Cat); 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 76 if(ACat_Doc) delete ACat_Doc; if(ADoc_Cat) delete ADoc_Cat; } if(vector&&classifing) { char* bufnew=NULL; CSQLParam pnew; pnew.AddParam(&(m_url.m_urlID)); ULONG wordCount=ewords-words; ULONG vsize=(ewords-words)*3*sizeof(WORD); if ( vsize >= 20000) { bufnew = new char[sizeof(wordCount) + vsize]; } else { bufnew = (char*)alloca(sizeof(wordCount) + vsize); } memcpy(bufnew, (char*)&wordCount, sizeof(wordCount)); memcpy(bufnew+sizeof(wordCount), (char*)vector, vsize); pnew.AddParamEsc((char*)bufnew, vsize+ sizeof(wordCount)); CSQLQuery *sqlquery1 = m_cache->m_database->m_sqlquery ->InsertUrlNew(&pnew); m_cache->m_database->sql_real_query(sqlquery1); if(vsize>=20000) delete bufnew; } for(hash_map::iterator it=Cat_Value.begin(); 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 77 it!=Cat_Value.end();it++) { ((*it).second).catevalue.~SciBigNum(); } Cat_Value.clear(); delete one; delete Mot; //Max.~SciBigNum(); DocProb.~SciBigNum(); }// ................................................. }//<END OF FUNCTION 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 78 TÀI LIỆU THAM KHẢO [1]. Dunja Mladenic. Machine learning on non-homogenous, distributed text data,Doctoral Dissertation. 1998 [2]. Micheline Kamber, Jiawei Han: Data Mining, Concepts and Techniques [3]. Pierre Baldi, Paolo Fransconi, Padhraic Smyth. Modeling the Internet and the Web, Probabilistic Methods and Algorithms 2003 [4]. Paolo Boldi, Bruno Cdenotti, Massimo Santini, Sebastinao Virga. UbiCrawler: A scalable fully distributed web crawler. Jan. 27, 2003 [5]. Sergey Brin and Lawrence Page. The Anatomy of a Large-Scale Hypertextual Web Search Engine. 1998 [6]. Sen Slattery (2002). Hypertext Classification. Doctoral dissertation (CMU-CS- 02-142). School of Computer Science. Carnegie Mellon University. [7]. Bùi Quang Minh (2002). Máy tìm kiếm VietSeek. Báo cáo kết quả nghiên cứu thuộc Đề tài khoa học đặc biệt cấp ĐHQGHN mã số QG-02-02. [8]. Đặng Tiểu Hùng. Phương pháp biểu diễn ngữ nghĩa lân cận siêu liên kết cho máy tìm kiếm VietSeek. Luận văn thạc sỹ Công nghệ thông tin- Đại học Quốc gia Hà Nội, 2004. [9]. Nguyen Ngoc Minh, Nguyen Tri Thanh, Ha Quanh Thuy, Luong Song Van, Nguyen Thi Van. A Knowledge Discovery Model in Full-text Databases. Proceedings of the First Workshop of International Joint Research: “Parallel Computing, Data Mining and Optical Networds”. March 7, 2001, Japan Advanced Institute of Science and Technology (JAIST), Tatsunokuchi, Japan, 59-68 [10]. Phạm Thanh Nam, Bùi Quang Minh, Hà Quang Thụy. Giải pháp tìm kiếm trang Web tương tự trong máy tìm kiếm VietSeek. Tạp chí Tin học và Điều khiển học (nhận đăng 1-2004). [11]. Phạm Thanh Nam. Một số giải pháp cho bài toán tìm kiếm trong cơ sở dữ liệu Hypertext. Luận văn thạc sỹ Công nghệ thông tin- Đại học Quốc gia Hà Nội. [12]. [13].

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