Đăng ký Đăng nhập
Trang chủ LUẬN VĂN PHÂN LỚP TÀI LIỆU WEB ĐỘC LẬP NGÔN NGỮ...

Tài liệu LUẬN VĂN PHÂN LỚP TÀI LIỆU WEB ĐỘC LẬP NGÔN NGỮ

.PDF
50
423
87

Mô tả:

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Thị Thuỳ Linh PHÂN LỚP TÀI LIỆU WEB ĐỘC LẬP NGÔN NGỮ KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin Cán bộ hướng dẫn: NCS. Phan Xuân Hiếu Cán bộ đồng hướng dẫn: TS. Hà Quang Thuỵ HÀ NỘI – 2006 LỜI CẢM ƠN Em xin gửi lời cảm ơn chân thành và biết ơn sâu sắc tới Tiến sĩ Hà Quang Thuỵ (Trường Đại học Công Nghệ) và Nghiên cứu sinh Phan Xuân Hiếu (Japan Advanced Institute of Science and Technology) đã chỉ bảo và hướng dẫn tận tình cho tôi trong suốt quá trình nghiên cứu Khoa học và quá trình thực hiện khoá luận này. Em xin gửi lời cảm ơn và biết ơn sâu sắc tới các thày, cô đã dạy dỗ em trong suốt quá trình học tập tại trường Đại học Công Nghệ. Những kiến thức các thày, cô dạy tôi là hành trang để tôi vững bước vào đời. Em cũng xin chân thành cảm ơn các thày, cô, anh, chị trong Bộ môn Các hệ thống thông tin đã tạo điều kiện, giúp đỡ và động viên tinh thần cho em trong quá trình làm khoá luận. Tôi xin gửi lời cảm ơn tới các bạn sinh viên trong nhóm seminar “Khai phá dữ liệu và khám phá tri thức” đã ủng hộ và khuyến khích tôi trong quá trình nghiên cứu và làm khoá luận này. Và cuối cùng, con xin gửi lời cảm ơn và biết ơn vô hạn tới bố, mẹ, cảm ơn em trai tôi, những người thân yêu của tôi, đã nuôi nấng, dạy dỗ và luôn động viên, làm chỗ dựa tinh thần cho tôi trong cuộc sống cũng như trong học tập và làm việc. Xin chân thành cảm ơn! Hà Nội, ngày 25 tháng 05 năm 2006 Sinh viên Nguyễn Thị Thuỳ Linh TÓM TẮT NỘI DUNG Phân lớp văn bản là một trong những bài toán cơ bản và quan trọng nhất của lĩnh vực xử lý ngôn ngữ tự nhiên. Nó có ứng dụng rất nhiều trong các bài toán thực tế ví dụ như: ứng dụng lọc nội dung văn bản (lọc thư rác, lọc trang web có nội dung phản động, trang web có nội dung không lành mạnh,…), bài toán phân lớp văn bản sau tìm kiếm,… Hiện nay có rất nhiều bộ phân lớp đạt được độ chính xác cao (đều xấp xỉ 90%), tuy nhiên các bộ phân lớp này hầu hết chỉ áp dụng cho một ngôn ngữ cụ thể. Thực tế cho thấy, đối với bài toán lọc nội dung trang Web thì một vấn đề đặt ra là phải xử lý trên nhiều ngôn ngữ khác nhau. Một trong hướng nghiên cứu phân lớp văn bản được quan tâm gần đây là phân lớp đa ngôn ngữ [7]. Khoá luận này nghiên cứu và đề xuất một phương pháp phân lớp nội dung Web độc lập ngôn ngữ. Phương pháp này cho phép tích hợp thêm các ngôn ngữ mới vào bộ phân lớp và giải quyết vấn đề bùng nổ đặc trưng thông qua hướng tiếp cận entropy cực đại và sử dụng chiến lược tối ưu hoá hàm nhiều biến rất hiệu quả. Các kết quả thực nghiệm cho thấy hướng tiếp cận của khoá luận rất khả quan, cụ thể, khi huấn luyện riêng biệt trên từng ngôn ngữ đều nhận được kết quả rất cao (Anh trên 98%, Việt trên 91%), còn khi có sự kết hợp của hai ngôn ngữ kết quả đạt được cũng rất khả quan (Anh-Việt xấp xỉ 95%). Đặc biệt khi cho mô hình kiểm tra trên một tập dữ liệu hoàn toàn mới kết quả cũng rất khả quan (độ chính xác Anh-Việt xấp xỉ 84%). Bên cạnh đó, khoá luận cũng đã phân tích các vấn đề cơ bản của bài toán phân lớp văn bản độc lập ngôn ngữ đó là sự nhập nhằng ngôn ngữ và sự bùng nổ đặc trưng, sau đó đã đưa ra các phương pháp khắc phục khá hiệu quả. Một đề xuất mới mà khoá luận đưa ra là mô hình dựa trên cây phân lớp thông minh. Đề xuất này có nhiều triển vọng cho các ứng dụng nhỏ cần phân loại văn bản và nhận diện được ngôn ngữ. i MỤC LỤC LỜI CẢM ƠN.................................................................................................................. i TÓM TẮT NỘI DUNG................................................................................................... i MỤC LỤC ...................................................................................................................... ii BẢNG KÍ HIỆU VIẾT TẮT ......................................................................................... iv DANH MỤC BẢNG SỐ LIỆU.......................................................................................v DANH MỤC HÌNH ẢNH............................................................................................. vi MỞ ĐẦU .........................................................................................................................1 CHƯƠNG 1. KHÁI QUÁT VỀ PHÂN LỚP VĂN BẢN ĐỘC LẬP NGÔN NGỮ ......3 1.1. Bài toán phân lớp văn bản ...................................................................................3 1.1.1. Tổng quan......................................................................................................3 1.2. Phân lớp văn bản độc lập ngôn ngữ .....................................................................4 1.2.1. Đặt vấn đề......................................................................................................4 1.2.2. Phân lớp văn bản độc lập ngôn ngữ ..............................................................5 1.2.3. Ý nghĩa và ứng dụng .....................................................................................5 CHƯƠNG 2. CÁC MÔ HÌNH VÀ THUẬT TOÁN PHÂN LỚP VĂN BẢN...............7 2.1. Giới thiệu.............................................................................................................7 2.2. Mô hình Maximum Entropy................................................................................7 2.2.1. Giới thiệu.......................................................................................................7 2.2.2. Xây dựng mô hình .........................................................................................9 2.3. Tổng kết chương.................................................................................................16 CHƯƠNG 3. PHÂN LỚP TÀI LIỆU WEB ĐỘC LẬP NGÔN NGỮ VỚI MÔ HÌNH ENTROPY CỰC ĐẠI ...................................................................................................17 3.1 Giới thiệu ............................................................................................................17 3.2. Bài toán phân lớp văn bản độc lập ngôn ngữ ....................................................17 3.2.1. Vấn đề nhập nhằng ngôn ngữ......................................................................17 3.2.2. Vấn đề bùng nổ đặc trưng ...........................................................................18 3.3. Quy trình xây dựng bộ phân lớp........................................................................19 3.3.1. Tiền xử lý dữ liệu ........................................................................................19 3.3.2. Xây dựng đặc trưng .....................................................................................20 3.3.3. Lựa chọn đặc trưng......................................................................................21 3.3.4. Huấn luyện mô hình ....................................................................................23 3.3.5. Phân lớp văn bản mới ..................................................................................23 3.4. Đánh giá độ chính xác của bộ phân lớp ............................................................24 ii 3.4.1. Các độ đo.....................................................................................................24 3.4.2. Áp dụng phương pháp ước lượng chéo trên k tập con ................................25 3.5. Xây dựng bộ phân lớp trên cây phân lớp thông minh .......................................25 3.5.1. Bản chất bài toán .........................................................................................26 3.5.2. Phân lớp cho văn bản mới ...........................................................................26 3.5.3. Thảo luận .....................................................................................................27 3.6. Tổng kết chương................................................................................................27 CHƯƠNG 4. KẾT QUẢ THỬ NGHIỆM VÀ ĐÁNH GIÁ .........................................28 4.1. Môi trường thử nghiệm ......................................................................................28 4.1.1. Môi trường phần cứng .................................................................................28 4.1.2. Công cụ phần mềm......................................................................................28 4.2. Dữ liệu kiểm thử.................................................................................................29 4.2.1. Tiền xử lý dữ liệu ........................................................................................29 4.2.2. Cây phân lớp................................................................................................30 4.3. Kết quả thử nghiệm ............................................................................................31 4.3.1. Quá trình huấn luyện ...................................................................................31 4.3.2. Lần lặp cho độ chính xác cao nhất ..............................................................34 4.3.3. Kết quả kiểm tra trên dữ liệu mới ...............................................................35 4.4. Tổng kết chương.................................................................................................36 KẾT LUẬN ...................................................................................................................37 PHỤ LỤC. DANH SÁCH STOP-WORD ....................................................................38 TÀI LIỆU THAM KHẢO .............................................................................................41 iii BẢNG KÍ HIỆU VIẾT TẮT Kí hiệu Diễn giải GIS Generalized Interative Scaling HTML Hyper Text Markup Language IDF Inverse Document Frequency IIS Improved Iterative Scaling kNN K Nearest Neighbours L-BFGS Limited-memory Broyden-Fletcher-Goldfarb-Shannon MaxEnt Maximum Entropy NCR Numeric Character References TF Term Frequency UTF Unicode Transformation Formats iv DANH MỤC BẢNG SỐ LIỆU Bảng 1. Cây phân lớp thông minh tổng quát.................................................................26 Bảng 2. Bảng ví dụ cho cây phân lớp thông minh ........................................................26 Bảng 3. Cấu hình hệ thống chạy thử nghiệm ................................................................28 Bảng 4. Danh sách phần mềm sử dụng để thử nghiệm .................................................28 Bảng 5. Danh sách công cụ sử dụng để thử nghiệm .....................................................29 Bảng 6. Cây phân lớp thông tin.....................................................................................31 Bảng 7. Tập dữ liệu huấn luyện của cả 3 mô hình ........................................................31 Bảng 8. Độ chính xác 10 lần huấn luyện của tiếng Anh ...............................................32 Bảng 9. Độ chính xác 10 lần huấn luyện của tiếng Việt ...............................................32 Bảng 10. Độ chính xác 10 lần huấn luyện kết hợp Anh-Việt........................................32 v DANH MỤC HÌNH ẢNH Hình 1. Tập ràng buộc C ...............................................................................................12 Hình 2. Mô tả các bước xây dựng bộ phân lớp .............................................................19 Hình 3. Trang tin tức tiếng Việt VnExpress.net............................................................29 Hình 4. Trang tin tức tiếng Anh BBC News .................................................................30 Hình 5. Độ chính xác của 3 bộ phân lớp trong 10 lần huấn luyện ................................33 Hình 6. Sự phụ thuộc độ chính xác theo bước lặp của cả 3 mô hình ............................34 Hình 7. Kết quả kiểm tra bộ dữ liệu độc lập Anh-Việt .................................................35 vi MỞ ĐẦU Hiện nay, nhờ khả năng cho phép mã hoá được phần lớn các ngôn ngữ thông dụng trên toàn thế giới của bảng mã Unicode, khoảng cách giữa các quốc gia, dân tộc do hạn chế về ngôn ngữ gây ra đang dần được xoá đi. Theo thống kê [20] hiện nay đã có 141 ngôn ngữ được sử dụng trên Internet và xu hướng tất yếu là sẽ ngày càng xuất hiện thêm nhiều ngôn ngữ trên Internet. Bộ phân lớp văn bản đã có hiện nay mới chỉ dừng ở mức phân lớp cho các văn bản cùng trên một ngôn ngữ. Nếu với 141 ngôn ngữ chúng ta xây dựng 141 bộ phân lớp thì quả thật tốn kém. Hơn thế nữa các trang web thương mại, web có nội dung không lành mạnh hiện nay thể hiện và ẩn náu dưới nhiều hình thức đa dạng (nhiều ngôn ngữ cùng xuất hiện trong một trang web) với mục đích đi qua bộ lọc trong máy tìm kiếm, chúng gây rất nhiều phiền toái cho người dùng. Vì vậy, bài toán phân lớp văn bản độc lập ngôn ngữ được đặt ra nhằm mục đích xây dựng một bộ phân lớp duy nhất cho nhiều ngôn ngữ. Ý thức được vấn đề đó, khóa luận này tập trung xây dựng một bộ phân lớp tài liệu web độc lập ngôn ngữ dựa trên việc áp dụng nguyên lý entropy cực đại. Đây là phương pháp có khả năng tích hợp mạnh hàng nghìn hàng triệu đặc trưng quan trọng. Qua kết quả thực nghiệm, với tập dữ liệu lên tới 12.000 trang Web bao gồm hai ngôn ngữ Anh và Việt, kết quả cho thấy rất khả quan. Mục tiêu mà khoá luận hướng tới: 9 Xây dựng bộ phân lớp duy nhất cho nhiều ngôn ngữ dựa trên mô hình entropy cực đại. 9 Không cần sử dụng một bộ phân nhận dạng ngôn ngữ nào khác. 9 Thử nghiệm và đánh giá, và vạch ra hướng phát triển tiếp theo. Cấu trúc của luận văn được tổ chức như sau: 9 Chương 1: Giới thiệu tóm tắt bài toán phân lớp văn bản, đặt vấn đề và phát biểu bài toán phân lớp văn bản độc lập ngôn ngữ. 9 Chương 2: Trình bày cụ thể hơn về bài toán phân lớp, đề cập đến các vấn đề cơ bản của nguyên lý entropy cực đại theo hướng áp dụng vào bài toán phân lớp văn bản. 9 Chương 3: Phát biểu bài toán phân lớp văn bản độc lập ngôn ngữ, phân tích các vấn đề cần giải quyết đối với bài toán và các bước xây dựng bộ 1 phân lớp trên cơ sở áp dụng mô hình entropy cực đại. Đưa ra một đề xuất mới có thể áp dụng và các ứng dụng vừa và nhỏ. 9 Chương 4: Trình bày những kết quả đánh giá thử nghiệm của khoá luận áp dụng cho bài toán cây phân lớp tin tức với hai ngôn ngữ Anh và Việt. Cuối cùng là kết luận lại những điểm chính, những đóng góp chính của luận văn, đồng thời chỉ ra những điểm cần khắc phục và vạch ra hướng cải tiến nhằm hướng tới xây dựng một hệ ứng dụng thực trên môi trường Internet. 2 Chương 1 KHÁI QUÁT VỀ PHÂN LỚP VĂN BẢN ĐỘC LẬP NGÔN NGỮ Bài toán phân lớp độc lập ngôn ngữ là một bài toán con, phát triển trên nền của bài toán phân lớp văn bản. Trước khi trình bày về bài toán chính, chương này trình bày một cách sơ lược lịch sử cũng như ứng dụng của bài toán phân lớp văn bản. 1.1. Bài toán phân lớp văn bản 1.1.1. Tổng quan Phân lớp văn bản được coi là quá trình phân loại một văn bản bất kì vào một hay nhiều lớp cho trước. Theo phương pháp học máy (machine learning), quá trình này gồm hai bước. Ở bước thứ nhất, một mô hình phân lớp (classfication model) được xây dựng dựa trên tri thức kinh nghiệm. Ở đây, tri thức kinh nghiệm chính là một tập dữ liệu huấn luyện (training dataset) được cung cấp bởi con người bao gồm một tập văn bản và phân lớp tương ứng của chúng. Bước này còn gọi là bước xây dựng huấn luyện (training process) hay ước lượng mô hình phân lớp. Ở bước thứ hai, mô hình phân lớp xây dựng ở bước đầu sẽ được sử dụng để phân lớp cho những văn bản (chưa được phân loại) trong tương lai. Bước đầu tiên được xem như là việc học có giám sát mà chúng ta có thể sử dụng rất nhiều các kĩ thuật học máy đã có như: Naïve Bayes, k láng giếng gần nhất (kNN), cây quyết định (Decision Tree),… Mục tiêu của bài toán phân lớp là nhằm xây dựng mô hình có khả năng gán nhãn cho một văn bản bất kì với độ chính xác cao nhất có thể. Nhu cầu có một bộ phân lớp hiệu quả đã xuất hiện ngay từ thủa ban đầu của thời kì bùng nổ thông tin trên Internet. Vì thế bài toán phân lớp văn bản không phải là một khái niệm mới mẻ. Tuy nhiên, hiện nay càng ngày hệ thống máy tính có khả năng xử lý càng mạnh, lượng thông tin trên Internet biến đổi không ngừng cả về chất lượng và số lượng. Nên bài toán phân lớp văn bản vẫn luôn là một vấn đề thời sự [7]. Đồng hành với lịch sử đó cho đến nay đã có rất nhiều các công cụ, bộ phân lớp ra đời, có thể là bộ phân lớp với từng ứng dụng cụ thể, hay bộ phân lớp cho một bài toán nhưng áp dụng những kĩ thuật học máy khác nhau. Ứng dụng lớn nhất của bài toán phân lớp văn bản là áp dụng vào bài toán phân loại hay lọc nội dung. Trong bài toán lọc nội dung: một văn bản được phân loại vào 3 nhóm: có ích hoặc không có ích. Sau đó lấy tất cả những văn bản thuộc nhóm có ích, nhóm còn lại bị loại bỏ. Các ứng dụng cụ thể như: lọc thư rác, lọc trang web phản động,… Một ứng dụng khác của bài toán phân lớp là xây dựng bộ phân lớp sau tìm kiếm, ứng dụng này rất hữu ích vì nó định vị nội dung thông tin cần tìm kiếm nhanh và dễ dàng hơn. Tóm lại, với tất cả ý nghĩa thực tế trên, một lần nữa có thể khẳng định rằng trong thời đại Internet được coi là một phần không thể thiếu trong cuộc sống, phân lớp văn bản luôn là vấn đề đáng được quan tâm để có thể phát triển và xây dựng được những công cụ ngày càng hữu dụng hơn. 1.2. Phân lớp văn bản độc lập ngôn ngữ 1.2.1. Đặt vấn đề Nếu thường xuyên theo dõi các trang tin của các hãng tin lớn, chúng ta dễ dàng nhận thấy chúng được thể hiện trên nhiều ngôn ngữ. Trên BBC hiện nay có tới 33 ngôn ngữ, CNN có 5 ngôn ngữ,… Hoặc khi chúng ta nhập câu truy vấn trong một hệ thống tìm kiếm trực tuyến (Google, Yahoo) để tìm kiếm thông tin mà ta quan tâm, kết quả trả về là một danh sách các địa chỉ trang web chứa từ khoá cần tìm và chúng hiển thị dưới nhiều ngôn ngữ khác nhau. Như vậy có thể thấy rằng khá nhiều ngôn ngữ đã được đưa lên Internet. Hiện nay theo thống kê [20] đã có tới 141 ngôn ngữ được mã hoá và được sử dụng trên Internet, và theo xu thế này thì sẽ còn có nhiều hơn nữa các ngôn ngữ được mã hoá và đưa vào sử dụng. Trong giai đoạn nền kinh tế hội nhập này, không chỉ các hãng tin lớn mà cả các tập đoàn xuyên quốc gia cũng xây dựng trang web của mình trên nhiều ngôn ngữ khác nhau. Bên cạnh đó còn có các quốc gia muốn giới thiệu về nền văn hoá, lịch sử nước mình bằng việc xây dựng các trang web trên Internet nhằm giao lưu văn hoá và thu hút khách du lịch. Hơn thế nữa, hiện nay thư rác, các trang web thương mại, trang web phản động, trang web có nội dung không lành mạnh,… ngày càng xuất hiện dưới nhiều hình thức phong phú hơn. Chúng không chỉ được biểu diến một ngôn ngữ mà còn bởi đồng thời nhiều ngôn ngữ nhằm đi qua bộ lọc thư rác, hay các bộ lọc nội dung của máy tìm kiếm. Vì thế, việc xây dựng bộ phân lớp văn bản tự động cho nhiều ngôn ngữ là rất cần thiết. 4 Chúng ta có thể xây dựng một bộ phân lớp như vậy bằng cách sử dụng một bộ nhận dạng ngôn ngữ cho văn bản rồi mới tiến hành phân lớp. Đây là một phương pháp hay, tuy nhiên khó khăn gặp khi phân lớp các tài liệu có nhiều ngôn ngữ xuất hiện đồng thời. Hướng đến việc xây dựng công cụ áp dụng cho các ứng dụng vừa và nhỏ, trong khoá luận này, chúng tôi đề xuất tiếp cận cho bài toán phân lớp văn bản trên nhiều ngôn ngữ theo hướng không phụ thuộc ngôn ngữ (độc lập) sử dụng mô hình entropy cực đại. 1.2.2. Phân lớp văn bản độc lập ngôn ngữ Phân lớp văn bản độc lập ngôn ngữ là một bài toán phân lớp văn bản, cho phép sắp xếp một văn bản vào một lớp bất kì mà không cần quan tâm đến ngôn ngữ trên văn bản đó. Điều đó cũng có nghĩa là các văn bản trên những ngôn ngữ khác nhau được coi là bình đẳng. Ý nghĩa của chữ “độc lập” là như vậy. Trong [7], Fuchen đề xuất ý tưởng sử dụng mô hình ngôn ngữ N-gram giải quyết các bài toán xử lý ngôn ngữ tự nhiên độc lập ngôn ngữ. Mô hình N-gram là một mô hình thống kê thuần tuý, nếu xét trên một tập dữ liệu lớn thì nó sẽ gặp phải vấn đề bùng nổ đặc trưng, là một trong thách thức với bài toán phân xử lý ngôn ngữ tự nhiên độc lập ngôn ngữ nói chung và bài toán phân lớp văn bản độc lập ngôn ngữ nói riêng. Bản chất các ngôn ngữ trong tự nhiên tồn tại sự nhập nhằng: Có nhiều từ mượn, từ dùng chung giữa các ngôn ngữ với nhau. Sự nhập nhằng này rõ ràng sẽ ảnh hưởng đến độ chính xác bộ phân lớp của chúng ta một mức độ nhất định. Bên cạnh đó, một vấn đề cốt lõi cần phải giải quyết khi muốn xây dựng bộ phân lớp cho văn bản độc lập ngôn ngữ là sự bùng nổ đặc trưng. Cả hai vấn đề này sẽ được phân tích và được đưa ra cách giải quyết trong Chương 3. Trong khoá luận này, chúng tôi sử dụng kĩ thuật học máy entropy cực đại để xây dựng mô hình phân lớp . Entropy cực đại là một phương pháp cho phép khả năng tích hợp mạnh nhiều đặc trưng, có thể là hàng nghìn hàng triệu đặc trưng. Qua thử nghiệm đã cho thấy kết quả rất khả quan. Độ chính xác trong quá trình huấn luyện của bộ phân lớp của hai ngôn ngữ Anh – Việt xấp xỉ 95%, trong khi bộ phân lớp của tiếng Anh là 98% và của tiếng Việt là trên 91%. 1.2.3. Ý nghĩa và ứng dụng Phân lớp tài liệu Web độc lập ngôn ngữ là bài toán có ý nghĩa và ứng dụng thực tiễn cao. Nó cho phép áp dụng vào các bài toán như: 5 - Bài toán lọc nội dung: lọc thư rác, lọc web phản động, web không lành mạnh,… Hiện nay, bất kì ai sử dụng email cũng đối mặt với nạn thư rác được viết bằng đủ mọi thứ tiếng Anh, Pháp, Nga, Nhật, Hàn,… Chúng vào hòm thư của chúng ta và gây nhiều phiền toái nên việc ngăn chặn chúng là rất cần thiết. Bên cạnh đó, trên Internet hiện nay xuất hiện ngày càng nhiều các trang Web không lành mạnh có ảnh hưởng xấu tới các em thiếu niên, học sinh. Web không lành mạnh ở đây không chỉ có sex mà còn có thể có nội dung về “chế tạo hoặc sử dụng vũ khí mang tính bạo lực” hay “web hướng dẫn về tự tử tập thể” (như ở Nhật),… Bảo vệ các em thiếu niên trước những thông tin không lành mạnh như vậy là điều rất cần thiết. - Sử dụng làm bộ phân lớp cho các hãng tin, tổ chức xuyên quốc gia, thậm chí là các trang web giới thiệu về mình của các quốc gia trên toàn thế giới. - Một ứng dụng cũng rất hữu ích là làm công cụ phân lớp cho các thư viện sách lớn, thay thế cho công việc của một thủ thư. Ở đây, mô hình được xây dựng bằng cách đọc các tóm tắt trên mỗi quyển sách và sau đó tiến hành phân lớp. Xếp mỗi quyển sách vào một trong cách lĩnh vực: Toán học, Vật lý, Hoá học, Văn học,… một cách chính xác; khi đó người thủ thư sẽ dễ dàng sắp xếp các quyển sách vào các khu vực với lĩnh vực tương ứng mà không phải đọc và phân tích tóm tắt của quyển sách. - Hiện nay, chúng tôi đang đề xuất ứng dụng nghiên cứu của khoá luận vào dự án “Nghiên cứu, phát triển hệ thống lọc nội dung hỗ trợ quản lý và đảm bảo an toàn – an ninh thông tin trên mạng Internet”. Tuy nhiên, cần phải khẳng định lại rằng, ứng dụng lớn nhất của bài toán phân lớp văn bản độc lập ngôn ngữ là ứng dụng lọc thư rác, web phản động,… Ngoài ra với tuỳ những đặc điểm của các ứng dụng khác mà ta xây dựng bộ phân lớp cho phù hợp. 6 Chương 2 CÁC MÔ HÌNH VÀ THUẬT TOÁN PHÂN LỚP VĂN BẢN 2.1. Giới thiệu Như đã đề cập ở chương 1, hiện nay đã có rất nhiều kĩ thuật học máy được áp dụng để giải quyết bài toán phân lớp [7]. Điển hình là các phương pháp như: • Naive Bayes: phân lớp Naïve Bayes sinh ra từ luật Bayes. Nó đòi hỏi giả thiết độc lập giữa các cứ liệu quan sát được từ dữ liệu mẫu. Kĩ thuật này được ứng dụng nhiều trong các bài toán phân loại văn bản, và bài toán word sense disambiguation. • Cây quyết định thống kê: Thuật toán phân hoạch đệ quy cho phép cây quyết định thống kê học trong tập dữ liệu huấn luyện. Nhược điểm chính của cây quyết định là sự phân mảnh dữ liệu do bị phân hoạch dữ liệu mẫu trong quá trình học. Vì vậy chúng phải sử dụng các kĩ thuật phân cụm (clustering) và làm trơn (smoothing). Vấn đề lớn nhất với bài toán phân lớp văn bản là ở chỗ tích hợp được các quan sát từ dữ liệu mẫu vào mô hình càng nhiều càng tốt, và phải có thuật toán học tối ưu. So với các mô hình khác, mô hình phân loại dựa trên nguyên lý entropy cực đại có thế mạnh là khả năng học và nhớ đến hàng trăm nghìn đặc trưng, thậm chí hàng triệu đặc trưng từ dữ liệu mẫu nhờ vào một chiến lược tối ưu hoá hàm nhiều biến rất hiệu quả. Khả năng này rất phù hợp với bài toán phân lớp văn bản và đặc biệt là bài toán phân lớp văn bản độc lập ngôn ngữ khi mà lượng đặc trưng là rất lớn. 2.2. Mô hình Maximum Entropy Mô hình entropy cực đại [4][11][12][14][15][16][17] là mô hình dựa trên xác suất có điều kiện cho phép tích hợp các thuộc tính đa dạng từ dữ liệu mẫu nhằm hỗ trợ quá trình phân lớp. 2.2.1. Giới thiệu Trước khi trình bày về mô hình entropy cực đại, chúng ta cùng xem xét một ví dụ đơn giản sau. Xét một quá trình ngẫu nhiên: gieo con súc sắc, đồng chất, cân đối. Quan sát 1.000 lần thử, thống kê xác suất xuất hiện của từng mặt ta có nhận xét: 7 6 ∑ p (i ) = 1 (1) i =1 p(i) là xác suất xuất hiện của mặt có i chấm. Dễ dàng nhận thấy có rất nhiều nghiệm thoả mãn phương trình (1), ví dụ với p (1) = 1 và tất cả các mặt khác có xác suất bằng 0 nghĩa là mặt xuất hiện luôn là mặt 1. Tuy nhiên, ta biết rằng trong thực tế quá trình sinh các mặt là ngẫu nhiên nên phân phối giống với phân phối thực nhất là: xác suất xuất hiện cho từng mặt là bằng nhau, hay nói khác phân phối xác suất ở đây là phân phối đều: p (1) = p ( 2 ) = p ( 3) = p ( 4 ) = p ( 5 ) = p ( 6 ) = 1/ 6 Giả sử, vì một lý do sản xuất nào đó, con súc sắc bị lệnh về hai mặt 1 và 4. Trong 1000 lần gieo thử, ta quan sát thấy rằng số lần xuất hiện mặt 1 và mặt 4 chiếm 50% số lần tung: p (1) + p ( 4 ) = 1/ 2 (2) Vì phân phối xác suất cho các mặt vẫn tuân theo phương trình (1) nên ta có: p ( 2 ) + p ( 3) + p ( 5 ) + p ( 6 ) = 1/ 2 (3) Rõ ràng có rất nhiều phân phối thoả mãn cho cả phương trình (2) và (3), ví dụ với p (1) = 1/ 3, p ( 4 ) = 1/ 6 và p ( 2 ) = 1/ 8 , các mặt 3, 5, 6 có xác suất xuất hiện là 0. Tuy nhiên, lại một lần nữa ta thấy rằng, phân phối giống với phân phối thực nhất là: p (1) = p ( 4 ) = 1/ 4 p ( 2 ) = p ( 3) = p ( 5 ) = p ( 6 ) = 1/ 8 Dữ liệu trong thế giới thực là vô hạn, khó đoán nhận, ta mong muốn xây dựng được một mô hình mà ước lượng được gần đúng với phân phối thực thông qua một tập dữ liệu mẫu. Qua ví dụ vừa nêu trên chúng ta có nhận xét rằng: trong tập dữ liệu mẫu mà ta có được, mô hình có phân phối đều nhất thì sẽ gần giống với phân phối thực nhất. Vì vậy, vấn đề đặt ra là: làm thế nào để tìm được một mô hình như vậy? Phương pháp entropy cực đại cho phép tìm ra được mô hình này. Tư tưởng chủ đạo của nguyên lý entropy cực đại rất đơn giản: ta phải xác định môt phân phối mô hình sao cho phân phối đó tuân theo mọi giả thiết đã quan sát từ 8 thực nghiệm, ngoài ra không cho thêm bất kì giả thiết nào khác. Điều này có nghĩa là phân phối mô hình phải thoả mãn các ràng buộc quan sát từ thực nghiệm, và phải gần nhất với phân phối đều. Entropy là độ đo về tính đồng đều hay tính ko chắc chắn của một phân phối xác suất. Một phân phối xác suất có entropy càng cao thì phân phối của nó càng đều. Độ đo Entropy điều kiện của một phân phối xác suất trên một chuối các trạng thái với điều kiện biết từ một chuỗi dữ liệu quan sát được tính như sau: H ( p ) ≡ −∑ p% ( x ) p ( y | x ) log p ( y | x ) x, y 2.2.2. Xây dựng mô hình Xem xét bài toán phân lớp, với Y là tập các lớp, X là tập các thông tin ngữ cảnh, là những thông tin quan trọng cần cho việc phân lớp văn bản vào lớp Y một cách chính xác. Nhiệm vụ trong bài toán phân lớp là xây dựng một mô hình thống kê mà dự đoán chính xác lớp của văn bản bất kì. Mô hình như vậy chính là phương pháp ước lượng xác suất có điều kiện p( y | x ) . Mô hình entropy cực đại cung cấp một phương pháp đơn giản để ước lượng xác suất có điều kiện p ( y | x ) thông qua việc thống kê các thuộc tính quan trọng quan sát được từ tập dữ liệu huấn luyện. 2.2.2.1. Tập dữ liệu huấn luyện Như các phương pháp học máy khác, để làm bài toán phân lớp trước tiên phải xây dựng tập dữ liệu huấn luyện T = {( x1 , y1 ) ,K, ( xN , y N )} trong đó { x1 ,K , xN } là tập các thông tin ngữ cảnh đã được gán nhãn tương ứng là tập các lớp { y1 ,K , y N } . Với một cặp ( xi , yi ) , phân phối xác suất thực nghiệm của nó được tính bởi: p% ( xi , yi ) = 1 × số lần xuất hiện của ( xi , yi ) trong tập dữ liệu mẫu N Thông thường thì mỗi cặp ( xi , yi ) không thể không xuất hiện trong tập mẫu, mà nó sẽ xuất hiện ít nhất một lần. 9 2.2.2.2. Thống kê, đặc trưng và ràng buộc Những thống kê từ dữ liệu mẫu chính là những viên gạch đầu tiên để xây dựng mô hình. Ví dụ, khi xét bài toán lọc thư rác. Một thư được xếp vào một trong 3 nhóm sau: thư rác (Spam), không phải thư rác (non-Spam), để xem xét (warning). Quan sát từ tập dữ liệu mẫu là 1.000 thư đã được gán nhãn, ta có nhận xét như sau: “nếu thư có chứa cụm từ “sản phẩm mới”, thì xác suất thư đó là thư rác là 80%”. Đây chính là một thống kê. Trong [4] đưa ra cách biểu diễn sự kiện “thư có chứa cụm từ “sản phẩm mới” là thư rác” như sau: ⎧1 if y = Spam and document_has san_pham_moi = true f document_has san_pham_moi , Spam ( x, y ) = ⎨ ⎩0 Gọi hàm f được biểu diễn như trên là hàm đặc trưng hay đặc trưng. Giá trị kì vọng của f đối với phân phối thực nghiệm p% ( x, y ) là giá trị thống kê được một cách chính xác (trong ví dụ trên thì đó là: 0,8): số lần xuất hiện của f trong tập dữ liệu huấn luyện. Nó được biểu diễn như sau: E p% f i = ∑ p% ( x, y ) f i ( x, y ) (4) x, y Bất kì thống kê nào sinh ra từ tập dữ liệu mẫu cũng có thể được biểu diễn một hàm kì vọng của đặc trưng f theo quy tắc như trên. Trong [16] cung cấp một cách có hệ thống cách xây dựng hàm đặc trưng. Thông tin “thư có chứa cụm từ “sản phẩm mới”” được xây dựng thành một mệnh đề thông tin ngữ cảnh: [document_has sản phẩm mới] → {true, false} kí hiệu là cp ( x ) , hàm này là một ánh xạ cặp ( x, y ) một giá trị trong tập {true, false} . Nó có dạng tổng quát như sau: cp ( x ) : X → {true, false} Trong [16] biễu diễn hàm đặc trưng dạng tổng quát: ⎧1 f cp , y ' ( x, y ) = ⎨ ⎩0 nÕu y = y ' vµ cp ( x ) = true ng−îc l¹i 10 Hàm đặc trưng là hàm kiểm tra sự xuất hiện đồng thời của mệnh đề thông tin ngữ cảnh và lớp được dự đoán. Thống kê vừa nêu trong ví dụ ở phần trước là một thông tin quan trọng: xác suất xuất hiện lên tới 80%. Trong quá trình quan sát tập dữ liệu, ta sẽ nhận được rất nhiều thống kê hữu ích. Vì thế, nếu coi đó là một điều kiện mà mô hình phải tuân theo thì sẽ giúp mô hình dự đoán được lớp của văn bản một cách chính xác hơn. Biểu diễn theo toán học, ta có phương trình như sau: E p% fi = E p fi (5) Phương trình này được gọi là ràng buộc, gọi đầy đủ là phương trình ràng buộc, trong đó: E p fi = ∑ p% ( x ) p ( y | x ) f i ( x, y ) (6) x, y E p fi là kì vọng của f đối với mô hình p ( y | x ) Từ (4), (5) và (6) ta có: ∑ p% ( x, y ) f ( x, y ) = ∑ p% ( x ) p ( y | x ) f ( x, y ) i x, y i x, y Thêm một ràng buộc có nghĩa là đã loại bỏ bớt đi những mô hình không tuân theo dữ liệu mẫu, điều này được biễu diễn một cách hình học ở Hình 1. Đến đây, chúng ta thấy được ý nghĩa của việc biễu diễn các cứ liệu thống kê được từ dữ liệu mẫu (chính là E p% fi ), và ý nghĩa của việc ràng buộc mô hình của chúng ta tuân theo những sự kiện đó (chính là E p% f i = E p f i ). 2.2.2.3. Nguyên lý entropy cực đại Giả sử quá trình thống kê từ tập dữ liệu huấn luyện sinh ra n đặc trưng f i , mỗi đặc trưng này sẽ xác định một ràng buộc. Gọi P là không gian của tất cả các phân phối xác suất, C là tập con của P sẽ được mô tả như sau: C ≡ { p ∈ P | E p fi = E p% f i víi i ∈ {1, 2,.., n}} Hình 1 mô tả 4 trường hợp tập C khi có các ràng buộc. P biểu diễn không gian của tất cả các phân phối xác suất. Ở hình (a), không có ràng buộc nào, tất cả các p ∈ P đều thoả mãn. Ở hình (b), C1 cắt bớt đi một phần các mô hình p có thể. Đến hình (c), mô hình của ta chỉ còn nằm trong phần giới hạn bởi C1 và C2: p ∈ C1 ∩ C 2 . Trong 11 hình (d), hai ràng buộc C1 và C3 mâu thuẫn ( C1 ∩ C3 = ∅ ), không có p ∈ P nào thoả mãn cả hai ràng buộc đó. P C1 (a) (b) P P C1 C1 C2 C3 (d) (c) Hình 1. Tập ràng buộc C Nguyên lý entropy cực đại được phát biểu rằng: “Từ tập các phân bố xác suất có thể được là C, sẽ tìm ra được một mô hình p* ∈ C thoả mãn điều kiện làm cực đại độ đo entropy H(p): p* = argmax H ( p ) p∈C Dễ dàng chỉ ra rằng p* luôn luôn xác định và trong bất kì một tập C nào, cũng chỉ có duy nhất một mô hình p* làm cực đại entropy [4]. 2.2.2.4. Dạng tham số Từ nguyên lý entropy cực đại ta có thể phát biểu lại rằng: tư tưởng chủ đạo của entropy cực đại là ta phải xây dựng được một phân phối thoả mãn các ràng buộc và gần nhất với phân phối đều. Vấn đề đặt ra ở đây là làm thế nào để ta tối ưu được 12
- Xem thêm -

Tài liệu liên quan