Tải bản đầy đủ (.pdf) (68 trang)

Nghiên cứu giải thuật naїve bayes trong bài toán phân loại văn bản

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (40.01 MB, 68 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-----------------------------------------

TRẦN HOÀNG HIỆP

NGHIÊN CỨU GIẢI THUẬT NAÏVE
BAYES TRONG BÀI TOÁN PHÂN LOẠI
VĂN BẢN
Chuyên ngành Công nghệ thông tin
LUẬN VĂN THẠC SĨ KHOA HỌC
CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC

GS.TS. Nguyễn Thanh Thuỷ

Hà Nội 2012


MỤC LỤC
Trang
DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT............................................................. III
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ ........................................................................... IV
LỜI MỞ ĐẦU ......................................................................................................................1
CHƯƠNG 1. TỔNG QUAN VỀ BÀI TOÁN PHÂN LOẠI VĂN BẢN.............................2
1.1. SỰ CẦN THIẾT CỦA VIỆC PHÂN LOẠI VĂN BẢN ................................................................ 2
1.1.1. Phân loại văn bản cùng với các ứng dụng ................................................................................. 2
1.1.2. Nội dung văn bản thành phần chủ chốt để xác định văn bản...................................................... 3
1.2. BÀI TOÁN PHÂN LOẠI VĂN BẢN ............................................................................................ 4
1.2.1. Định nghĩa............................................................................................................................... 4


1.2.2. Phát biểu bài toán .................................................................................................................... 4
1.2.3. Phân loại.................................................................................................................................. 5
1.3. TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU ..................................................................................... 5
1.3.1. Sự cần thiết xây dựng hệ thống có khả tự “học”........................................................................ 6
1.3.2. Khai phá dữ liệu, một lớp của hệ thống tự “học”....................................................................... 7
1.3.3. Phương pháp gần đúng để giải quyết bài toán phân loại văn bản ............................................. 10

CHƯƠNG 2. GIẢI THUẬT NAÏVE BAYES VỚI BÀI TOÁN PHÂN LOẠI
VĂN BẢN...........................................................................................................................16
2.1. PHÂN BỐ MULTINOMIAL....................................................................................................... 16
2.2. CÔNG THỨC XÁC SUẤT BAYES ............................................................................................ 17
2.2.1. Phát biểu định lý.................................................................................................................... 17
2.2.2. Các dạng khác của định lý Bayes ........................................................................................... 17
2.2.3. Định lý Bayes với hàm mật độ xác suất .................................................................................. 18
2.3. PHƯƠNG PHÁP NAIVE BAYES GIẢI BÀI TOÁN PHÂN LOẠI VĂN BẢN ......................... 18
2.4. MỘT SỐ HEURISTIC PHÁT TRIỂN CHO MULTINOMIAL NAIVE BAYES...................... 20
2.4.1. Thực hiện một số cải thiện để nâng cao hiệu quả của thuật toán. ............................................. 21
2.4.2. Sơ đồ cho giải thuật mới cho giải thuật TWCNB: ................................................................... 27

CHƯƠNG 3. GIẢI THUẬT SVM TRONG BÀI TOÁN PHÂN LOẠI VĂN BẢN.........28
3.1. PHÂN TÁCH TUYẾN TÍNH KHÔNG GIAN DỮ LIỆU........................................................... 28
3.2. LÝ THUYẾT VỀ TỐI ƯU PHI TUYẾN..................................................................................... 29
3.2.1. Điều kiện Karush-Kuhn-Tucker (KKT) .................................................................................. 30

i


3.2.2. Lý thuyết đối ngẫu (Duality) .................................................................................................. 32
3.2.3. Giải bài toán đối ngẫu bằng phương pháp giảm đạo hàm ........................................................ 34
3.3. GIẢI THUẬT SVM (SUPPORT VECTOR MACHINE) ........................................................... 35

3.3.1. Giai đoạn huấn luyện SVM .................................................................................................... 35
3.3.2. Giai đoạn nhận dạng .............................................................................................................. 38
3.4. SVM VỚI CÁC TẬP MẪU KHÔNG PHÂN TÁCH TUYẾN TÍNH ......................................... 39
3.4.1. Gần tuyến tính, sử dụng lề mềm – Soft margin ....................................................................... 39
3.4.2. Phi tuyến – Sử dụng hàm nhân. .............................................................................................. 41
3.4.3. SVM cho vấn đề nhận dạng đa lớp ......................................................................................... 45
3.5. KỸ THUẬT THỰC HIỆN SVM ................................................................................................. 47
3.5.1. Gom cụm (Chunking) ............................................................................................................ 49
3.5.2. Phân rã (Decomposition)........................................................................................................ 50
3.5.3. Cực tiểu tuần tự (Sequential Minimal Optimization - SMO).................................................... 51
3.5.4. Đánh giá giải thuật SMO........................................................................................................ 53

CHƯƠNG 4. KẾT QUẢ THỬ NGHIỆM .........................................................................54
4.1. Các bộ dữ liệu được sử dụng trong quá trình thử nghiệm.......................................................... 54
4.1.1. Bộ dữ liệu 20 newsgroups ...................................................................................................... 54
4.1.2. Bộ dữ liệu WebKB ................................................................................................................ 55
4.1.3. Bộ dữ liệu Reuters-21578....................................................................................................... 57
4.2. Cài đặt của 02 giải thuật.............................................................................................................. 59
4.2.1. Cài đặt cho giải thuật TWCNB............................................................................................... 59
4.2.2. Cài đặt cho giải thuật SVM .................................................................................................... 59
4.3. Đánh giá kết quả thử nghiệm ...................................................................................................... 60
4.3.1. Phương pháp đánh giá kết quả thử nghiệm ............................................................................. 60
4.3.2. Kết quả thực hiện và đánh giá ................................................................................................ 61

KẾT LUẬN VÀ KIẾN NGHỊ............................................................................................62
TÀI LIỆU THAM KHẢO .................................................................................................63

ii



DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT
KÝ TỰ VIẾT TẮT
TC
IR
ML
SVM
KKT
WCNB
MNB
CNB
TWCNB

Ý NGHĨA
Text Classification, Text Categorization – phân loại văn bản
Information Retriveal
Machine Learning
Support Vector Machine
Điều kiện Karush-Kuhn-Tucker
Weight-normalized Complement Naive Bayes
Multinomial Naive Bayes
Complement Naive Bayes
Transformed Weignt-normalized Complement Naive Bayes

iii


DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1. Các bài viết trên trang web được sắp xếp theo mục .............................................................. 2
Hình 2. Tháp mô tả quá trình đúc rút tri thức từ dữ liệu.................................................................... 8
Hình 3. Phân bố xác xuất văn bản với xuất hiện của từ ................................................................... 24

Hình 4. Phân bố khi d = 1............................................................................................................... 25
Hình 5. Phân bố xác xuất suất hiện với số lần xuất hiện của từ khi độ dài văn bản khác nhau ........ 26
Hình 6. Lát cắt phân loại được tạo bởi siêu phẳng trong không gian phân loại được biểu diễn thông
qua vector w và b ............................................................................................................................ 29
Hình 7. Hàm f(x) đạt cực đại tại x0

S.......................................................................................... 29

Hình 8. Ý nghĩa hình học của điều kiện KKT................................................................................... 31
Hình 9. Lựa chọn đường thẳng cho d lớn ........................................................................................ 37
Hình 10. Tập mẫu gần phân tách tuyến tính (không thể phân tách tuyến tính được)......................... 39
Hình 11. Phân tách phi tuyến nhưng chuyển đổi không gian để trở về tuyến tính............................. 42
Hình 12. Thể hiện của không gian cũ trong không gian mới............................................................ 42
Hình 13. Phân hoạch phi tuyến có nhiễu......................................................................................... 44
Hình 14. Chuyển thành siêu phẳng với hàm Gaussian RBF............................................................. 45
Hình 15. One-vs-rest với 4 lớp........................................................................................................ 46
Hình 16. Các phân loại với SVM (1,4) ............................................................................................ 47
Hình 17. One-vs-one với 4 lớp ........................................................................................................ 47
Hình 18. Quá trình gom cụm để xây dựng siêu phẳng ..................................................................... 50
Hình 19. Các trường hợp có thể xảy ra với u1 và u2 ......................................................................... 52
Hình 20. Các trường hợp đạt cực trị của hàm ................................................................................. 53
Hình 21. Cây thư mục của dữ liệu WebKb....................................................................................... 56

iv


Luận văn tốt nghiệp

Nghiên cứu giải thuật NB trong bài toán TC


LỜI MỞ ĐẦU
Sự phát triển của khoa học công nghệ, đặc biệt là mạng truyền thông, không
chỉ đáp ứng nhu cầu thông tin hàng ngày, mà còn tạo ra những dịch vụ trợ giúp cho
mọi người. Việc người dùng trên mạng truyền thông trong đổi thông tin qua những
tin nhắn, email, diễn đàn (forum), … ngày càng trở nên phổ biến. Cùng với sự phát
triển của dịch vụ gửi các thông tin qua các dịch vụ, cũng ngày càng xuất hiện của
những tin nhắn, thư rác với vô vàn loại nội dung khác nhau nhưng đa phần đều gây
phiền nhiễu cho người dùng khi phải nhận được những thông tin này. Để hỗ trợ
người sử dụng tự động phân loại các tin nhắn, email như vậy, hiện có rất nhiều
phần mềm cũng như dịch vụ hỗ trợ, các chương trình hiện tại thường sử dụng
những từ khoá, blacklist để phân loại, những cách làm này có hiệu quả, nhưng
không triệt để. Vì vậy cần đưa ra giải pháp phân loại các tin nhắn, email như vậy
dựa trên nội dung văn bản. Chính lý do trên, luận văn sẽ tập trung tìm hiểu về bài
toán phân loại văn bản (Text Categorization).
Với Luận văn này, em tập trung nghiên cứu sâu vào bài toán cùng với 02
phương pháp để thực hiện phân loại văn bản đó là Naïve Bayes, và Support Vector
Machine (SVM). Thực hiện phân loại trên các tập dữ liệu mẫu, và đánh giá kết quả
thu được.
Các nội dung cơ bản thực hiện trong quá trình nghiên cứu:
● Nghiên cứu giải thuật SVM nói chung và áp dụng cho bài toán phân loại
văn bản nói riêng.
● Tìm hiểu các cải tiến của giải thuật Naïve Bayes, cho kết quả phân loại
tốt gần với giải thuật SVM
Phương pháp thực hiện:
● Xây dựng chương trình mô phỏng giải thuật.
● Thực hiện kiểm nghiệm trên các bộ dữ liệu mẫu.

Trang 1



Luận văn tốt nghiệp

Nghiên cứu giải thuật NB trong bài toán TC

CHƯƠNG 1. TỔNG QUAN VỀ BÀI TOÁN
PHÂN LOẠI VĂN BẢN
1.1. SỰ CẦN THIẾT CỦA VIỆC PHÂN LOẠI VĂN BẢN
1.1.1. Phân loại văn bản cùng với các ứng dụng
Quá trình phân loại văn bản nhằm mục đích xác định một văn bản (document)
cho trước thuộc lớp ngữ nghĩa được xác định trước. Với mục đích ấy, việc phân
loại văn bản được áp dụng rất nhiều trong cuộc sống hiện tại, ứng dụng cụ thể nhất
đó là sắp xếp lại tập các văn bản, thành các nhóm để có thể thuận lợi cho việc tra
cứu, tìm kiếm. Đơn giản như khi vào thư viện, người đọc có thể xác định được
nhanh chóng quyển sách mình muốn tìm dựa vào các phân loại sách trong thư viện.
Một trang web tin tức với các bài viết được sắp xếp theo nội dung sẽ giúp người
đọc thuận tiện cho chuyên mục mình thích, cũng như giúp họ có thể nhanh chóng
tìm đến những bài báo với nội dung mong muốn.

Hình 1. Các bài viết trên trang web được sắp xếp theo mục

Việc thực hiện phân loại ngoài mục đích trên còn có thể giúp những người làm
việc nhiều với các hệ thống email, tin nhắn có thể phân loại các thông tin mình
nhận được thành các nhóm một cách tự động từ đó có thể dễ dàng tìm được những
thông tin quan trọng. Những mail gửi đến có thể được phân loại thành những mail
Trang 2


Luận văn tốt nghiệp

Nghiên cứu giải thuật NB trong bài toán TC


được ưa thích nhất, ưa thích ít hơn, kém ưa thích hoặc các thư làm phiền. Hơn thế
nữa, một ứng dụng cũng được sử dụng tương đối nhiều của phân loại văn bản. Đó
là thực hiện phân loạinhững email, tin nhắn nhận được là các email spam, tin nhắn
rác. Email spam ở đây chính là những email với nội dung xấu, không lành mạnh,
hoặc những email lừa đảo, hay đơn giản là những email quảng cáo sản phẩm gây
phiền nhiễu cho người dùng. Với những nội dung tương tự những tin nhắn rác được
gửi qua đường SMS đến người dùng cũng gây phiền nhiễu không kém, cũng có thể
được phân loại nhờ áp dụng việc phân loại văn bản.
1.1.2. Nội dung văn bản thành phần chủ chốt để xác định văn bản
Khi tiếp xúc với một văn bản, để xác định được sơ lược nội dung trong thời
gian ngắn, chúng ta thường tìm hiểu tiêu đề của văn bản. Cách làm này tỏ ra khá
hiệu quả với người, vì việc này có thể giúp chúng ta phân loại văn bản một cách
nhanh chóng hơn mà không cần thiết phải đọc hết nội dung của văn bản. Trong
trường hợp đoạn văn bản không có tiêu đề hoặc chỉ là trích dẫn, chúng ta sẽ sử
dụng ý chính của văn bản thông qua câu chốt, thường nằm ở đầu hay cuối đoạn
văn.
Nhưng đối với cách phương pháp phân tích tự động bằng máy tính cách làm
này trở nên kém hiệu quả và không chính xác, bởi những câu tiêu đề của văn bản
được tóm tắt sơ lược theo ý hiểu của con người, vì vậy để phân tích được kỹ, chính
xác nội dung đòi hỏi phải có một lượng tri thức lớn. Ví dụ như bài báo với tiêu đề
“10 phòng VIP 5 sao ‘khủng’ nhất thế giới”, một tiêu đề khá phổ biến, thường gặp
trên các báo mạng, tiêu đề đưa ra những từ ‘VIP’, ‘khủng’ là những từ có ý nghĩa
đặc biệt, đòi hỏi chương trình phân tích tự động phải có tri thức riêng mới có thể
xác định được ngữ nghĩa. Tương tự, với những câu chốt của văn bản, để xác định
được chính xác câu chốt của văn bản cũng đòi hỏi một lượng tri thức riêng. Bên
cạnh đó, khi phân tích phục vụ cho bài toán phân loại văn bản với mục đích phân
loại các SPAM email (email rác) cũng gặp rất nhiều trường hợp phần tiêu đề của
văn bản không thể hiện nội dung của văn bản, mà mang một nghĩa hoàn toàn khác,
nhằm đánh lừa người dùng email, hay các chương trình phân loại.

Từ đó ta thấy rõ ràng rằng, để xây dựng một hệ thống phân loại văn bản một
cách tự động, ít phải tác động từ phía con người, cần dựa trên việc phân tích nội
dung toàn bộ văn bản, việc phân tích như vậy sẽ làm tăng được độ chính xác của
quá trình phân loại văn bản cũng như tăng cường tri thức của hệ thống phân loại, hỗ
trợ cho các phân loại say này.

Trang 3


Luận văn tốt nghiệp

Nghiên cứu giải thuật NB trong bài toán TC

1.2. BÀI TOÁN PHÂN LOẠI VĂN BẢN
1.2.1. Định nghĩa
Phân loại văn bản (Text Classification, hay còn có tên khác là Text
Categorization hoặc Topic spotting ở đây được viết tắt là TC) là hệ thộng tự động
phân loại và gán cho văn bản một tên lớp (Categorization, Class, hoặc Topic) đã
được định nghĩa từ trước.
Xây dựng một hệ thống phân loại văn bản là sự kết hợp của hệ thống trích rút
thống tin (Information Retriveal – viết tắt IR) và hệ thống học máy (Machine
Learning – viết tắt ML).
1.2.2. Phát biểu bài toán
Để tiện trong quá trình thực hiện trình bày các thuật toán cũng như phương
pháp giải bài toán, trong phần này luận văn đưa ra một cách phát biểu bài toán.
Phân loại văn bản thực tế là xây dựng hàm phân loại  như sau:

Trong đó:
● D(Documents) là tập hợp các văn bản cần được phân loại,
(với n là số lượng văn bản).

● C (Categories) là tập hợp các lớp chứa các văn bản

là không gian kết hợp mỗi văn bản di với một lớp các văn bản cj có
thể viết là

.

Hàm sẽ thực hiện:

Một số điều cần lưu ý với bài toán:
● Việc phân loại văn bản thực hiện dựa trên nội dung của văn bản (text
only), mà không dựa trên những thông tin thêm như tên văn bản hoặc các
metadata để thực hiện phân loại.
● Việc phân loại văn bản trong thực tế cũng là một vấn đề có tính chủ quan.
Với cùng một văn bản có thể có những kiến khác nhau về phân loại vào
Trang 4


Luận văn tốt nghiệp

Nghiên cứu giải thuật NB trong bài toán TC

một lớp nào đó. Vì vậy, việc xây dựng hệ thống phân loại sẽ được xây
dựng là một hệ thống học có giám sát (Supervised Learning) trong lĩnh vực
học máy hay có thể nói là các văn bản sẽ được phân loại dựa trên một
lượng các văn bản đã được phân loại sẵn.
1.2.3. Phân loại
Với một văn bản bất kỳ, mỗi khi được phân loại vào các lớp, văn bản sẽ được
gán nhãn (label). Việc thực hiện phân loại có thể là đơn nhãn (single-label tức là
mỗi văn bản chỉ thuộc vào một lớp nào đó) hoặc đa nhãn (multi-label tức là mỗi

văn bản di có thể thuộc vào một hoặc nhiều lớp khác nhau).
Với bài toán TC đơn nhãn ta có thể đưa ra khẳng định mỗi văn bản có duy nhất
một lớp cj sao cho
có một tham số:

. Vì vậy ta có thể viết lại hàm  trở thành hàm

Bài toán TC nhị phân (binary TC) là một bài toán đơn nhãn đặc biệt, ở đây mỗi
văn bản
được phân loại thuộc lớp c hay không. Vì vậy ta có thể viết lại hàm 
trở thành:

Đối với bài toán TC đa nhãn có thể được coi như một tập hợp |C| các bài toán
TC nhị phân mỗi hàm sẽ thực hiện phân loại có thuộc lớp ci hay không:

1.3. TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
Khả năng xây dựng một máy có khả năng “học” từ những kinh nghiệm đã là
một đề tài tranh luận giữa các nhà khoa học. Nhờ xuất hiện máy tính điện tử, việc
xây dựng những cỗ máy có khả năng “học” đã được hỗ trợ rất nhiều và đem lại
nhiều kết quả mới. Những kết quả này đã thể hiện được rằng có thể thiết kế được
những máy có thể thể hiện một cấp độ nào đó của khả năng “học”, nhưng những
định nghĩa rõ ràng về danh giới của việc thể hiện này vẫn còn đang được làm rõ.
Trang 5


Luận văn tốt nghiệp

Nghiên cứu giải thuật NB trong bài toán TC

Việc xây dựng những hệ thống có khả năng “học” là vô cùng quan trọng, bởi

có những vấn đề phức tạp không thể giải quyết được bằng những kĩ thuật lập trình
cổ điển, cũng như không có mô hình toán học nào sẵn có có thể thể hiện được. Một
ví dụ điển hình cho vấn đề này là xây dựng một chương trình máy tính có thể nhận
dạng được chữ viết tay. Xây dựng một mô hình toán học để kiểm tra tính toán đưa
ra các kết quả nhận dạng các chữ viết tay như vậy là vô cùng phức tạp. Tuy vậy,
các mẫu viết sẵn, “mẫu” có thể dễ dàng xây dựng. Chính vì vậy, một cách đơn giản
và tự nhiên, ta sẽ, thay vì xây dựng một mô hình tính toán phức tạp, xây dựng một
phương pháp “huấn luyện” để máy tinh có thể nhận dạng được chữ viết tay từ
những mẫu được đưa ra sẵn, đó cũng chính là cách con người thực hiện việc “học”
đọc chữ viết. Trong phần nội dung của luận văn này sẽ sử dụng hướng tiếp cận này
để giải bài toán đã được đưa ra.
1.3.1. Sự cần thiết xây dựng hệ thống có khả tự “học”
Khi sử dụng máy tính để giải quyết một vấn đề, công việc của người xây dựng
hệ thống máy tính chính là tạo ra một hướng dẫn bao gồm một chuỗi các thao tác
cụ thể để máy tính có thể làm theo trong một khoảng thời gian nhất định để đưa ra
được kết quả đầu ra từ một đầu tập các yếu tố đầu vào được mô tả một cách rõ
ràng.
Bằng cách đó, việc tính toán của máy tính các trở nên tốt hơn, giải quyết được
những bài toán ngày càng phức tạp hơn, nhưng vẫn còn một lượng rất lớn các bài
toán, vấn đề hiện tại vẫn chưa thể tìm được một phương pháp tính toán, cũng như
phương pháp tính toán hiện tại còn tốn rất nhiều tài nguyên cũng như thời gian tính
toán quá lớn. Điển hình cho các bài toán như vậy là việc mô phỏng hiện tượng xảy
ra của các phản ứng hoá học mà độ chính xác của phản ứng từ các chất tham gia
chưa được biết, một ví dụ khác đó là phân loại các protein dựa trên các chuỗi DNA
cấu tạo nên…
Những tính toán này hiện chưa thể thực hiện bằng các phương pháp tính toán,
lập trình cổ điển, vì vậy các lập trình viên, kỹ sư hệ thống không thể đưa ra một
cách chính xác hệ thống có thể xác định kết quả ra đúng từ việc tính toán các kết
quả đầu vào. Có một hướng tiếp cận khác nhằm giải quyết các vấn đề trên, đó là
thực hiện học các cặp dữ liệu input/output từ các ví dụ có sẵn, hệt như cách dậy

một đứa trẻ có thể nhận ra những chiếc xe thể thao một các đơn giản thông qua cho
chúng nhìn thấy một loạt các ví dụ về các xe thể thao (đơn giản hơn rất nhiều so với
việc đưa ra mô tả chính xác về một chiếc xe thể thao). Hướng tiếp cận để xây dựng
nên các chương trình, hệ thống tính toán này được gọi là phương pháp “học”
(learning methodology), trong một số trường hợp các ví dụ được đưa theo cặp
Trang 6


Luận văn tốt nghiệp

Nghiên cứu giải thuật NB trong bài toán TC

input/output được gọi là học có giám sát (supervised learning). Các bộ dữ liệu
input/output được gọi là dữ liệu huấn luyện (training data).
Các cặp dữ liệu input/output thường được thể hiện bởi một hàm quan hệ cho
phép xác định kết quả output dữ liệu input, nhưng trong thực tế rất ít trường hợp có
thể xác định được rõ hàm nhờ các cặp dữ liệu input/output, bởi các cặp dữ liệu thu
thập được này còn bị ảnh hưởng bởi nhiễu, làm tròn,… khiến các kết quả thu được
không còn chính xác vì vậy ảnh hưởng đến việc xác định đúng được hàm cho phép
tính toán được kết quả output từ input. Vì vậy cần có những phương pháp cho phép
xác định hàm đúng từ các bộ kết quả input/output, các phương pháp, thuật toán
được dùng cho phép tính toán đó được gọi là các giải thuật học. Các giải thuật này
thực tế là giải thuật tìm kiếm cho phép chọn được một hàm phù hợp nhất trong
không gian của các hàm ánh xạ từ không gian input đến không gian output. Với
một không gian tìm kiếm lớn như vậy, chúng ta sẽ giảm bớt không gian tìm kiếm
bằng cách chọn một lớp các hàm cụ thể có thể thích hợp nhất với hàm đích, lớp
hàm này được gọi là giả thuyết (hypothese). Ví dụ, Cây Quyết Định (Decision
Tree) là một giả thuyết cho rằng hàm tìm kiếm nằm trong lớp hàm có thể được biểu
diễn bằng cây nhị phân với các hàm quyết định tại các nhánh và kết quả đầu ra từ
kết quả đầu vào được thể hiện ở các nút lá. Vì vậy, ta có thể coi như việc lựa chọn

giả thuyết sẽ mang tính quyết định rất nhiều đến chiến lược học. Bên cạnh đó, thuật
toán được dùng để tìm kiếm hàm đích từ các dữ liệu huấn luyện dựa trên giả thuyết
đã được lựa chọn từ trước chính là nhân tố quan trọng thứ hai. Thuật toán này còn
được gọi là giải thuật học.
1.3.2. Khai phá dữ liệu, một lớp của hệ thống tự “học”
a) Khai phá dữ liệu
Với sự phát triển của hệ thống công nghệ thông tin, người dùng, cũng như các
doanh nghiệp, đều lưu trữ một lượng lớn dữ liệu trong suốt quá trình hoạt động
kinh doanh, quản lý,… Những dữ liệu này ngày một phát triển theo thời gian, khiến
việc tìm kiếm, sử dụng dữ liệu này vào mục đích giúp ích cho các hoạt động trong
tương lai trở nên khó khăn. Vì vậy ngày càng nhiều đơn vị có nhu cầu cần xây
dựng một phương pháp hiệu quả để có thể khai thác dữ liệu để xác định mối quan
hệ giữa các dữ liệu, tác động qua lại giữa dữ liệu, quy luật trong tập dữ liệu, thông
tin có ích, và cao hơn nữa là các tri thức… Quá trình đó có thể gọi là “khai phá dữ
liệu” (data mining), được thể hiện như hình dưới đây:

Trang 7


Luận văn tốt nghiệp

Nghiên cứu giải thuật NB trong bài toán TC

Hình 2. Tháp mô tả quá trình đúc rút tri thức từ dữ liệu

Ta có thể thấy, việc thực hiện trích rút thông tin của “khai phá dữ liệu” được
thực hiện qua các tầng với hình tháp nhọn tại đỉnh:
● Data (tầng dưới cùng) đây là tầng dưới cùng, là các dữ liệu ghi lại các
hoạt động, các sự kiện thực tế của doanh nghiệp, người dùng.
● Information (tầng tiếp theo) là tầng tiếp theo, là các dữ liệu được sắp xếp

lại, chuẩn hoá lại, phân loại nhằm mục đích nào đó.
● Knowledge (tầng tri thức) tầng tri thức thể hiện những kinh nghiệm, được
đúc rút từ tầng information, được xây dựng bằng cách tính toán những dữ
liệu ở tầng dưới.
● Wisdom: tầng cao nhất, thể hiện những khẳng định luôn đúng, với mục
đích đưa ra những dự đoán, những quyết định trong tương lai.
Từ đó khai phá dữ liệu có thể được mô tả như sau:
Khai phá dữ liệu là một tập các kỹ thuật được sử dụng để tự động khai thác và
tìm ra các mối quan hệ tương hỗ của dữ liệu từ một tập dữ liệu rất lớn và phức tạp,
tìm ra những mẫu tiềm ẩn trong tập dữ liệu đó
b) Phân biệt công cụ truy vấn và công cụ khai phá dữ liệu
Chúng ta thường hay nhầm lẫn giữa công cụ truy vấn (Querry Tool) và khai
phá dữ liệu (Data Mining). Sở dĩ có điều này là do cả hai công cụ này đều rút ra dữ
liệu từ cơ sở dữ liệu, song chúng lại có sự khác biệt rất rõ ràng. Chúng ta xét ví dụ
sau để phân biệt sự khác nhau giữa 2 công cụ này:

Trang 8


Luận văn tốt nghiệp

Nghiên cứu giải thuật NB trong bài toán TC

● Với công cụ hỏi - đáp, người sử dụng chỉ có thể đặt ra truy vấn có dạng
như: “Khối lượng hàng hoá bán được ở miền Bắc hơn khối lượng hàng hoá
ở miền Nam là bao nhiêu?”. Từ đó tự suy luận ra khối lượng hàng hoá bán
ra phụ thuộc vào sự biến động của thị trường.
● Với khai phá dữ liệu có thể giải quyết những mục đích cơ bản và rộng lớn
hơn. Đối với câu hỏi như trên, thay vì chỉ ra mối quan hệ giữa lượng hàng
hoá bán ra ở 2 địa điểm, nó còn có thể cho ta biết các nhân tố có ý nghĩa

nhất liên quan đến nguyên nhân khối lượng hàng hoá bán ra thấp, trung
bình hay cao và các nhân tố đó hoàn toàn ta chưa biết trước. Người sử dụng
có thể đưa ra các câu hỏi yêu cầu để quá trình khai phá dữ liệu phát hiện ra
những nhân tố ảnh hưởng đến khối lượng hàng bán được. Nó không cần sự
chỉ dẫn nào của người sử dụng, mà sẽ tự khám phá ra các mối quan hệ, các
mẫu tiềm ẩn mà những mẫu, mối quan hệ này không phải dễ dàng thấy
được.
c) Phân lớp và phân đoạn dữ liệu
Sự khác nhau của các phương pháp khai phá dữ liệu đó là việc xây dựng mô
hình để biểu diễn dữ liệu và các giải thuật tác động trên dữ liệu. Về các giải thuật
thì thông dụng nhất là các thuật toán học máy (bao gồm cây quyết định, mạng
nơron, các thuật toán học không giám sát...) và các thuật toán di truyền. Các thuật
toán này chủ yếu là các thuật toán phân đoạn và phân lớp dữ liệu.
● Phân lớp dữ liệu:
Con người thường có ý tưởng phân sự vật thành các nhóm khác nhau, ví dụ
sinh vật thì được phân chia thực vật và động vật. Người thì được chia thành
người già, trẻ em, thanh niên...
Phân lớp dữ liệu là chia một tập dữ liệu vào các lớp khác nhau. Chẳng hạn
ta có một tập các trang HTML chứa các thông tin và có các lớp thông tin là
kinh tế, văn hóa, khoa học, xã hội, thể thao. Việc xem một trang HTML
thuộc lĩnh vực nào trong các lĩnh vực trên chính là phân lớp dữ liệu.
Các thuật toán trong phân lớp dữ liệu thường là các thuật toán học có giám
sát.
● Phân cụm dữ liệu:
Rất nhiều người nhầm lẫn phân đoạn dữ liệu và phân lớp dữ liệu, bởi vì
phân đoạn dữ liệu rất giống với phân lớp dữ liệu. Phân đoạn dữ liệu là việc
nhóm các dữ liệu giống nhau thành một nhóm. Giống nhau ở đây được quy
định bởi một tập các thuộc tính được xét, số các nhóm có thể không biết
trước, khác với giải thuật phân lớp, số lớp là hoàn toàn xác định trước.
Trang 9



Luận văn tốt nghiệp

Nghiên cứu giải thuật NB trong bài toán TC

Ví dụ: khi xét đến các thực thể là các loại quả. Có một tập các quả, ta
không biết tên của chúng, tập các thuộc tính được xét ở đây là màu sắc
(vàng, trắng, xanh, đỏ), mùi (thơm, không thơm), vị (ngọt, chua, chát), kích
thước (lớn, bé). Sự giống nhau ở đây chính là sự bằng nhau giữa các trị của
cùng một thuộc tính, hai quả có số các thuộc tính bằng nhau càng nhiều thì
sự giống nhau càng lớn. Các thuật toán phân đoạn dữ liệu thường là các
thuật toán học không giám sát.
1.3.3. Phương pháp gần đúng để giải quyết bài toán phân loại văn bản
Như đã thấy việc giải bài toán phân loại văn bản cần phải sử dụng các giải
thuật học máy để thực hiện trích rút thông tin từ những dữ liệu ban đầu, quá trình
này chính là quá trình khai phá dữ liệu. Sau đây luận văn sẽ giới thiệu kỹ hơn về
khai phá dữ liệu và những giải thuật áp dụng trong quá trình khai phá tri thức có thể
được áp dụng vào bài toán.
Để thực hiện giải bài toán, tức là tìm hàm  thỏa mãn yêu cầu một cách chính
xác là khó khăn và không thể thực hiện được vì việc phân lớp các văn bản còn
nhiều lúc mang cảm tính, ngay cả khi việc xác định 1 văn bản bất kỳ có thuộc một
lớp cho trước nào đó hay không cũng nhiều lúc gây khó khăn cho con người. Chính
vì những lý do trên, để thực hiện giải quyết bài toán phân loại văn bản này, giải
pháp được đưa ra là sử dụng phương pháp giải gần đúng. Thay vì xác định được
chính xác hàm , người ta sẽ thực hiện tìm hàm ’, gần đúng hàm  theo một tỉ lệ
đúng nào đó. Có rất nhiều phương pháp tìm kiếm hàm nhưng trong phạm vi luận
văn phương pháp tìm kiếm được đưa ra để tìm kiếm hàm ’ thông qua phương
pháp Học máy (Machine Learning).
Với phương pháp Học máy, hàm ’ sẽ được xây dựng dưới các mô hình cụ

thể như hình cây quyết định, mạng nơ-ron,…. Các mô hình này sẽ được “huấn
luyện” (training) dựa trên các “mẫu” để tăng dần độ chính xác của hàm ’ trong
việc phân loại văn bản.
Cả quá trình thực hiện phân loại văn bản sẽ được thực hiện thông qua 3 pha
sau:
● Đánh chỉ mục văn bản (Document indexing): đây là pha sử dụng các lý
thuyết của IR (trích rút thông tin) sau khi thực hiện pha này các văn bản sẽ
được tách thành các từ và thu gọn lại phục vụ cho các pha sau.
● Học phân loại (Classifier learning): đây là pha sử dụng các lý thuyết của
ML (học máy) ở pha này trước hết các văn bản đã được phân loại sẵn –
mẫu sẽ được đưa vào để bộ phận “học” sẽ thực hiện xây dựng lên một
Trang 10


Luận văn tốt nghiệp

Nghiên cứu giải thuật NB trong bài toán TC

model (mô hình) phân loại. Khi đã xây dựng được model phân loại thì từ
sau các văn bản sẽ được thực hiện phân loại dựa trên mô hình này.
● Đánh giá phân loại (Classifier eveluation): Đây là pha sử dụng cách đánh
giá của phương pháp ML (học máy) dựa trên những kết quả phân loại đã
thực hiện các tỉ lệ để đánh giá độ tốt của model phân loại đã xây dựng lại,
hoặc cũng có thể dựa vào đó để quyết định có cần thiết phải học lại hay
không.
b) Đánh chỉ mục văn bản
Đây là pha đầu tiên khi văn bản được đưa vào hệ thống phân loại, sau đó mỗi
văn bản này sẽ được biểu diễn dưới dạng một vector nhiều chiều, mỗi chiều là 1
trọng số của từng term<w1j, w2j, … ,w|T|j>, với 0 ≤ wij≤ 1.
Để thực hiện được việc này, ta cần phải là 2 bước:

● Bước thứ nhất là định nghĩa một term trong văn bản. Cách đơn giản nhất
có thể là ta sẽ thực hiện coi mỗi từ (words) chính là một term. Nhưng khi
đó ta sẽ thấy rằng có một số từ với số lần xuất hiện trong văn bản lớn
nhưng nó lại không đóng vai trò lắm trong nội dung của văn bản. Do đó
cũng không ảnh hưởng đến việc phân loại cho văn bản. Trong thực tế
những từ như vậy lại rất hay gặp và có khá nhiều trong các văn bản. Vì
vậy, để giảm số lượng term cần xử lý ta sẽ thực hiện loại bỏ các từ như vậy
khi xét đến các term, để làm được cần phải xây dựng một danh sách cho
trước các từ có tính chất trên để so sánh với các từ tách được từ văn bản.
Danh sách này được gọi là stop-list. Khi các từ xuất hiện trong văn bản có
thể xuất hiện dưới dạng khác nhau do thêm vào các tiền tố hoặc các hậu tố.
Trong đa phần các trường hợp như vậy, các tiền tố cũng như hậu tố này dài
và làm tăng kích thước của một term. Vì vậy thay vì lưu trữ từ cụ thể người
ta sẽ tìm cách kiểm tra và tách lấy các steam (từ gốc) của từ đã cho như vậy
ngoài việc giảm nghĩa từ còn có thể giảm được kích thước của vector văn
bản xuống do các từ khác nhau do cùng steam tạo thành có thể được coi
như là một thành phần. Ngoài ra việc định nghĩa term còn có thể được định
nghĩa như những cụm từ ở những lĩnh vực khác nhau khi đó mỗi cụm từ sẽ
mang một ý nghĩa đặc biệt và người ta có thể dựa vào đó để định nghĩa một
term khi đó một term không chỉ là một từ nữa mà là một cụm từ vì vậy có
thể giảm một lượng khá lớn kích thước của vector của mỗi văn bản vào.
● Bước thứ hai là thực hiện tính trọng số của các term. Việc tính trọng số
của các term khá quan trọng, vì nó sẽ giúp cho việc học và phân loại các

Trang 11


Luận văn tốt nghiệp

Nghiên cứu giải thuật NB trong bài toán TC


văn bản tốt hơn. Trọng số của term có thể là nhị phân (wkj∈ {0, 1}), hay số

thực (0 ≤ wkj ≤ 1). Việc tính trọng số của từng term có thể đơn giản nếu
trọng số chỉ là 0 hoặc 1 tuỳ thuộc term có xuất hiện trong văn bản hay
không. Với trường hợp trọng số của term là số thực, giá trị này sẽ được tính
tính theo công thứcTF×IDF (với TF là Term Frequence, IDF là Inverse
Document Frequency). Ta có thể hiểu được rất rõ cách tính này nhờ hai đặc
tính sau của tần suất xuất hiện:
◦ Nếu xác suất xuất hiện của term tk trong văn bản dj càng lớn, thì term tk
càng quan trọng trong văn bản dj đối với việc phân loại văn bản này.
◦ Nếu số lượng văn bản mà term tk càng lớn, thì term tk càng kém quan
trọng đối với việc phân loại các văn bản này.
Ngoài các bước trên, khi phân loại văn bản, ta còn thực hiện công việc giảm
không gian (dimensionality reduction). Công việc này thực tế là giảm kích thước
của văn bản (số từ biểu diễn văn bản) cho đến một ngưỡng được xác định từ trước.
Cách thực hiện việc giảm không giản này là thực hiện lựa chọn từ thích hợp: mỗi
term được sẽ được tính điểm bằng cách lưu lại bậc quan hệ giữa từ với lớp cj và chỉ
những từ có điểm cao nhất mới được sử dụng để biểu diễn văn bản.
c) Học phân loại

Bộ phân loại văn bản thực hiện theo phương pháp quy nạp, bằng cách sử dụng
một lượng lớn những văn bản đã được thực hiện phân loại từ trước. Dựa trên một
cách thức nào đó (cách thức này tùy thuộc vào giải thuật học được áp dụng) để lưu
trữ lại những thông tin. Những thông tin này sẽ được thực hiện phân loại những văn
bản sau này (chưa có trong bộ văn bản phân loại mẫu ban đầu).
Để làm được điều này (xây dựng một bộ phân loại văn bản vào các lớp C), ta
sẽ lập một tập Ω các văn bản mà giá trị của hàm (di,cj) đã được xác định cho tất

cả các giá trị (di,cj) ∈ Ω × C. Trong thực nghiệm người ta phân tập Ω ra thành 3 tập


con rời nhau:

Trang 12


Luận văn tốt nghiệp

Nghiên cứu giải thuật NB trong bài toán TC

● Tr – Tập trainning: Đây là tập hợp những văn bản để bộ phận phân loại sẽ
thực hiện học (xây dựng một model phân loại với các tham số cụ thể).
● Va – Tập Validation: Đây là tập hợp các văn bản dùng để tinh chỉnh bộ
phân loại để tránh trường hợp bộ phân loại quá thích nghi với bộ dữ lệu
training. Việc thực hiện chỉnh sửa được thực hiện bằng cách cho bộ phân
loại, để xây dựng được từ tập training phân loại các văn bản trong bộ dữ
liệu Validation, sau đó sẽ chỉnh sửa lại tham số phù hợp để nâng cao kết
quả phân loại này.
● Te – Tập Test: Đây là tập hợp các văn bản dùng để thực hiện đánh giá bộ
phân loại đã xây dựng được từ hai tập dữ liệu trên từ đó biết được chất
lượng phân loại của bộ phân loại xây dựng được.
Ở đây việc thực hiện phân loại (được thực hiện trong quá trình sử dụng các tập
Va và Te) chính là sử dụng các phần nội dung của các văn bản để đưa vào bộ phân
loại rồi nhận kết quả phân loại được thực hiện từ bộ phận này, sau đó thực hiện so
sánh với kết quả được phân loại từ trước rồi đánh giá hoặc kiểm tra tùy từng bộ dữ
liệu cụ thể và mục đích sử dụng của các bộ dữ liệu này.
Với mỗi bộ phân loại áp dụng các giải thuật khác nhau thì việc phân loại cũng
có khác một chút. Có những giải thuật việc đưa ra kết quả phân loại cho từng lớp
sẽ dưới dạng nhị phân (0 – 1, True – False). Nhưng cũng có những bộ phân loại mà
kết quả phân loại này lại được cho dưới dạng những số thực biến thiên trong

khoảng [0, 1] vì vậy để đưa ra kết quả phân loại cuối cùng người ta cũng phải đưa
ra ngưỡng để từ đó chuyển sang kết quả dưới dạng nhị phân. Việc xác định ngưỡng
này cũng là một công việc cũng khá khó khăn và được thực hiện trong quá trình
học của giải thuật.
d) Đánh giá học phân loại
Để đánh giá kết quả của một bộ phân loại khi được xây dựng thành công
người ta thường sử dụng 3 tham số sau:
● Training efficiency được tính bằng khoảng thời gian trung bình để thực
hiện xây dựng bộ phân loại
dựa trên bộ dữ liệu cho trước .
● Classification efficiency được tính bằng khoảng thời gian trung bình để
thực hiện phân loại một văn bản sử dụng bộ phân loại .
● Effectiveness được tính bằng tỉ lệ phân loại đúng trung bình của các bộ
phân loại

.

Trong quá trình nghiên cứu bài toán phân loại văn bản, tham số Effectiveness
là quan trọng nhất, vì đây là tham số để đánh giá độ hiệu quả khi áp dụng từng giải
Trang 13


Luận văn tốt nghiệp

Nghiên cứu giải thuật NB trong bài toán TC

thuật khác nhau vào việc phân loại văn bản. Đối với hai tham số còn lại thì lại phụ
thuộc khá nhiều vào hệ thống phần cứng, phần mềm mà hệ thống phân loại được
cài đặt lên. Nhưng nhìn chung, nếu chúng cùng được cài đặt lên một hệ thống phần
cứng và phần mềm giống nhau thì hai tham số này cũng phụ thuộc vào giải thuật

được áp dụng vào để phân loại văn bản nên ta cũng chỉ cần chú trọng vào tham số
Effectiveness.
Đối với những ứng dụng của bài toán này, cả ba tham số đều quan trọng, vì
vậy chúng ta cần cân đối giữa các tham số này khi xây dựng ứng dụng. Ví dụ, với
một ứng dụng có tương tác với người dùng thì tham số Classification efficiency khá
quan trọng, nhưng đối với một ứng dụng áp dụng bài toán đa nhãn, với số lượng
các lớp khá lớn (hàng nghìn lớp) thì việc học lúc này lại khá vất vả và tham số
Training efficiency lại được chú tâm hơn. Nhưng dù vậy thì Effectiveness cũng có
xu hướng trở thành yếu tố quan trọng trong việc xây dựng những ứng dụng, và
những ứng dụng người dùng thường được để ý đến những chỉ số Classification
efficiency và Effectiveness.
Đối với bài toán phân loại đơn nhãn, thì chỉ số Effectiveness được tính bằng
accuracy, nó chính bằng phần trăm các văn bản được phân loại đúng (còn error
được tính bằng phần bủ cùa giá trị accuracy này
). Ngược lại, đối với các
bài toán phân loại nhị phân, người ta lại không thể sử dụng accuracy để tính, bởi lẽ
với các ứng dụng của bài toán phân loại nhị phân thì thông thường dữ liệu sẽ không
cân bằng giữa hai lớp và
sẽ có một lớp có số lượng dữ liệu nhiều hơn. Nếu
như vậy ta có thể xây dựng một số bộ phân loại có xu hướng ưu tiên phân loại các
văn bản vào lớp phổ biến hơn khiến cho accuracy tăng lên, những bộ phân loại như
vậy sẽ có accuracy cao nhưng khả năng phân loại không tốt vì chỉ hướng về việc
phân loại cho một lớp, do vậy những ứng dụng trong thực tế sẽ không thể dùng
những bộ phân loại như vậy.
Để đánh giá kết quả phân loại của bộ phân loại nghị phân người ta sử dụng hai
tham số precision viết là ( ) hay viết là ( ) thay cho accuracy, bởi lý do đã
nêu trên. Để hiểu hơn về hai tham số này ta sẽ dựa vào bảng sau:
Được phân loại vào lớp

THUỘC LỚP

True Positive (TP)

THUỘC LỚP
False Negative (FN)

Được phân loại vào lớp

False Positive (FP)

True Negative (TN)

Từ đó, ta có thể đưa ra công thức của precision

Trang 14

và recall

như sau:


Luận văn tốt nghiệp

Nghiên cứu giải thuật NB trong bài toán TC

Với ý nghĩa của từng công thức như sau:
● Precision: tỉ lệ giữa những văn bản được phân loại thuộc về lớp
số những văn bản thực tế thuộc về lớp này.
● Recall: tỉ lệ của những văn bản thuộc về lớp
bản đã được phân loại thuộc về lớp này.


trong

trong số những những văn

Đối với những bài toán phân loại đa nhãn, để tính được effectiveness cho tất
cả các lớp khác nhau người ta cần tổng hợp từ những kết quả phân loại cụ thể cho
từng lớp sau đó tính trung bình bằng một số cách khác nhau. Các cách tính đó cũng
được thể hiện trong bảng sau:
MICROAVERAGING

MACROAVERAGING

Precision
Recall
Hầu hết với các bộ phân loại thường quan tâm đến precision, mà ít để tâm đến
recall (hoặc ngược lại). Nhưng để đánh giá tốt hơn thì ta nên tìm cách kết hợp cả
hai tỉ số này. Cách kết hợp thông thường hay được sử dụng nhất chính là tính
theo công thức:

Trong đó giá trị của
khi
công thức đã cho trở thành
đây chính là trung bình điều hòa của precision và recall.
Trong một số bài toán thì mức độ quan trọng của precision và recall có khác
nhau, ví dụ như đối với bài toán lọc spam, ở đây các văn bản sẽ được phân thành
hai loại spam và không spam, đối với việc phân loại này thì tỉ lệ precision quan
trọng hơn recall nhiều bởi lẽ đối với việc phân loại như vậy thì những văn bản
không spam nhưng bị phân loại thành spam sẽ gây nên những lỗi nghiêm trọng hơn
nhiều so với những văn bản spam nhưng lại bị phân loại thành không spam.


Trang 15


Luận văn tốt nghiệp

Nghiên cứu giải thuật NB trong bài toán TC

CHƯƠNG 2. GIẢI THUẬT NAÏVE BAYES VỚI BÀI TOÁN
PHÂN LOẠI VĂN BẢN
2.1. PHÂN BỐ MULTINOMIAL
Ta đã khá quen thuộc với một phân bố khá nổi tiếng trong lý thuyết xác suất
đó là phân bố nhị phân (binomial distribution), phân bố multinomial được coi là
một mở rộng của phân bố nhị phân.
Phân bố nhị phân là một loại phân bố xác suất của số lần “thành công” trong
tổng số n phép thử Bernoulli độc lập, với tỉ lệ “thành công” ở mỗi lần thử là như
nhau. Với phân bố multinomial, giá trị phân bố Bernoulli là một tập hợp các giá trị,
với mỗi lần thử xác suất xuất hiện của từng giá trị đó sẽ là một xác xuất xác định
(p1, p1, …pk) với với
lập. Ta gọi biến

là số lần của kết quả thứ

thì vector


), trong số n phép thử độc



xuất hiện trong tổng số


phép thử,

chính là một phân bố multinomial với các tham số

, với

.

Công thức tính xác suất của phân bố này là:

Và các số

là các số nguyên dương

Phân bố Multinomial còn một số tham số như:
● Giá trị trung bình:
● Covariance:
Nếu coi mỗi văn bản có độ dài là n từ đơn là một tập hợp gồm n phép thử mỗi
phép thử sẽ tương ứng là một trong số các từ thuộc từ điển cho trước (với xác suất
xuất hiện của từng từ được xác định tương ứng), ta sẽ có được xác suất của văn bản
đã cho tính theo phân bố Multinomial. Đây chính là cách để áp dụng phân bố xác
suất vào một văn bản bất ký được áp dụng vào phương pháp Naive Bayes (sẽ được
trình bầy phía dưới).

Trang 16


Luận văn tốt nghiệp


Nghiên cứu giải thuật NB trong bài toán TC

2.2. CÔNG THỨC XÁC SUẤT BAYES
Định lí Bayes là một định lý khá quan trọng của lí thuyết xác suất. Nó đề cập
đến phân bố xác suất có điều kiện của biến ngẫu nhiên A khi đã xuất hiện biến ngẫu
nhiên B, thông qua một số xác suất khác.

2.2.1. Phát biểu định lý
Định lý Bayes cho phép tính xác suất xảy ra của một sự kiện ngẫu nhiên A khi
biết sự kiện liên quan B đã xảy ra. Xác suất này được ký hiệu là P(A|B), và đọc là
"xác suất của A nếu có B". Đại lượng này được gọi xác suất có điều kiện hay xác
suất hậu nghiệm vì nó được rút ra từ giá trị được cho của B hoặc phụ thuộc vào giá
trị đó.
Theo định lí Bayes, xác suất xảy ra A khi biết B sẽ phụ thuộc vào 3 yếu tố:
● Xác suất xảy ra A của riêng nó, không quan tâm đến B. Kí hiệu là P(A) và
đọc là xác suất của A. Đây được gọi là xác suất biên duyên hay xác suất
tiên nghiệm, nó là "tiên nghiệm" theo nghĩa rằng nó không quan tâm đến
bất kỳ thông tin nào về B.
● Xác suất xảy ra B của riêng nó, không quan tâm đến A. Kí hiệu là P(B) và
đọc là "xác suất của B". Đại lượng này còn gọi là hằng số chuẩn hóa
(normalising constant), vì nó luôn giống nhau, không phụ thuộc vào sự
kiện A đang muốn biết.
● Xác suất xảy ra B khi biết A xảy ra. Kí hiệu là P(B|A) và đọc là "xác suất
của B nếu có A". Đại lượng này gọi là khả năng (likelihood) xảy ra B khi
biết A đã xảy ra. Chú ý không nhầm lẫn giữa khả năng xảy ra A khi biết B
và xác suất xảy ra A khi biết B.
● Khi biết ba đại lượng này, xác suất của A khi biết B cho bởi công thức:

● Từ đó dẫn tới


2.2.2. Các dạng khác của định lý Bayes
Định lý Bayes thường cũng thường được viết dưới dạng

Hay

Trang 17


Luận văn tốt nghiệp

Nghiên cứu giải thuật NB trong bài toán TC

trong đó AC là biến cố bù của biến cố A (thường được gọi là "không A"). Tổng
quát hơn, với {Ai} tạo thành một phân hoạch của không gian các biến cố,

Với phân hoạch {Aj}.
Công thức này còn được biết dưới tên công thức xác suất đầy đủ.

2.2.3. Định lý Bayes với hàm mật độ xác suất
Một dạng của định lý Bayes đối với các phân bố liên tục. Đối với chúng, thay
cho các xác suất trong định lý Bayes, ta dùng mật độ xác suất. Như vậy, ta có các
công thức tương tự định nghĩa xác suất điều kiện

và công thức tương tự công thức xác suất đầy đủ:

Ý nghĩa của các thành phần trong các công thức trên là f(x, y) là mật độ phân
phối của phân phối đồng thời của các biến ngẫu nhiên X và Y, f(x|y) là mật độ phân
phối xác suất hậu nghiệm của X với điều kiện Y=y, f(y|x) = L(x|y) là (một hàm của
x) hàm khả năng của X với điều kiện Y=y, và f(x) và f(y) là các mật độ phân phối
của X và Y tách biệt nhau, với f(x) là mật độ phân phối tiền nghiệm của X.

Điều kiện mặc định trong các công thức là hàm f khả vi và các tích phân công
thức tồn tại.

2.3. PHƯƠNG PHÁP NAIVE BAYES GIẢI BÀI TOÁN PHÂN LOẠI
VĂN BẢN
Xuất phát từ công thức tính xác suất điều kiện của định lý Naive Bayes:

Ý tưởng là sẽ phân loại một thực thể theo lớp có khả năng lớn nhất mà ta thấy
được từ bộ dữ liệu ban đầu. Ta có thể hình dung nếu coi B là các thực thể dữ liệu
cần phân loại, và A là các lớp trong phép phân loại, khi đó ta sẽ tính lần lượt từng
xác suất điều kiện để thuộc vào lớp A khi đã có sự xuất hiện của thực thể B. Sau đó
lớp B sẽ thuộc vào lớp mà có xác suất điều kiện là lớn nhất, khi đó ta có thể có
được công thức để tìm lớp phân loại như sau:

Trang 18


Luận văn tốt nghiệp

Nghiên cứu giải thuật NB trong bài toán TC

Trong đó D là thực thể dữ liệu cần phân loại, còn
là các lớp để phân loại
thực thể dữ liệu này. Ở đây ta thấy rằng do đang xét đến một thực thể dữ liệu cụ thể
nên giá trị
với mọi lớp
là như nhau. Vì vậy, ta có thể bỏ
mà không làm ảnh hưởng đến kết quả phân loại cuối cùng.

ở dưới mẫu


Trong một số trường hợp, vì các lớp khá tương đồng nên ta có thể coi xác suất
tiên nghiệm của các lớp là như nhau vì vậy còn có thể bỏ được thành phần
trong công thức trên. Việc quan trọng trong thuật toán Naive Bayes ở đây là thực
hiện tính những xác suất điều kiện
như thế nào. Và cách tính các xác suất
điều kiện này sẽ phụ thuộc vào từng bài toán cụ thể.
Đối với bài toán phân loại văn bản sử dụng phương pháp xác suất (tức là sử
dụng công thức Naive Bayes) ta có thể coi mỗi văn bản là một tập hợp các từ độc
lập không liên quan đến nhau, hay một “túi” các từ. Như vậy, thứ tự xuất hiện của
các từ trong văn bản bây giờ không còn quan trọng nữa. Văn bản bây giờ trở thành
một tập hợp chứa tất cả các từ trong từ điển, mỗi từ có một xác suất xuất hiện nhất
định (nếu không xuất hiện thì xác suất này bằng 0).
Ta gọi mỗi phần tử
là một lớp để thực hiện phân loại, như vậy
m sẽ là số lượng các lớp. Với mỗi lớp ta sẽ có một vector tham số:

Với n là kích thước của từ điển các từ. Và
Trong đó
là khả năng từ thứ i xuất hiện trong class c. Ta thấy rằng đối với
mỗi lớp, văn bản có thể được coi là một phân bố multinomial của các từ trong từ
điển, từ tương ứng trong văn bản chính là một lần của phép thử và khả năng từ đó
là từ thứ i trong từ điển là . Vì vậy phép phân loại văn bản ở đây có tên gọi là
Multinomial Naive Bayes. Từ đó ta có công thức thể hiện khả năng của mỗi văn
bản d khi biết lớp c như sau:

trong đó fi là tần suất xuất hiện trong văn bản d của từ thứ i trong từ điển (nếu
xác xuất này bằng 0 thì giá trị tương ứng của lũy thừa đó là 1). Như ta đã biết phép
nhân các số nhỏ sẽ tạo ra những số rất nhỏ vì vậy chúng có thể gây ra những sai số
và tạo lỗi trong phép phân loại.

Để tối thiểu lỗi thì phép phân loại văn bản d sẽ thực hiện như sau:

Trang 19


Luận văn tốt nghiệp

Nghiên cứu giải thuật NB trong bài toán TC

Trong đó bc được gọi là ngưỡng của loại văn bản c, wci được gọi là trọng số
của từ i trong văn bản được phân loại thuộc lớp c.
Việc tính được
là khó, bởi ta không thể có hết tất cả các văn bản đê thực
hiện tính tham số này vì vậy ta sử dụng công thức gần đúng dựa vào những dữ liệu
của bộ huấn luyện:

Với:





đây là số lần từ i xuất hiện trong các văn bản của class c
số lần xuất hiện của các từ trong class c.
là hệ số làm trơn của giải thuật, thông thường được gán bằng 1
được gán bằng tổng của các

(

)


Từ công thức tính ở trên ta cũng thấy được rằng
Vậy ta có công thức phân loại với phép phân loại của Naive Bayes:

Nếu coi các lớp là cân bằng thì ta có thể bỏ qua giá trị
thức và công thức trở nên đơn giản hơn nưh sau:

trong công

2.4. MỘT SỐ HEURISTIC ĐỐI VỚI MULTINOMIAL NAIVE BAYES
Giải thuật Naive bayes là một giải thuật cơ sở được sử dụng trong việc phân
loại văn bản bởi đây là một giải thuật khá dễ cài đặt và đạt tốc độ cao khi thực thi.
Các giả thuyết của giải thuật giúp cho ta có thể xây dựng được một bộ phân loại
khá tốt, nhưng chính những thiên kiến đó cũng ảnh hưởng khá lớn đến kết quả phân
loại của những bộ phân loại này. Nhưng bộ phân loại MNB vẫn được sử dụng khá
nhiều bởi tốc độ thực hiện và đơn giản trong cài đặt của nó. Các phương pháp cho
hiệu quả phân loại cao hơn, lại có tốc độ thực thi khá chậm, Hơn nữa khá phức tạp
trong khi cài đặt. Để cải thiện hiệu quả phân loại của bộ phân loại ta thực hiện tìm
những nguyên nhân gây nên kết quả này và tìm cách cải thiện bằng các heuristic
đơn giản để không làm giảm tốc độ xây bộ phân loại, cũng như tốc độ phân loại các
văn bản. Việc cải thiện dựa trên những vấn đề mang tính hệ thống của giải thuật:

Trang 20


×