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ữ.
50 trang |
Chia sẻ: lvbuiluyen | Lượt xem: 1997 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Phân lớp tài liệu Web độc lập ngôn ngữ, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠ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
i
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ữ.
ii
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
iii
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
iv
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
v
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
vi
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
1
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ộ
2
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.
3
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
4
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.
5
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