CHƯƠNG II PHÂN LỚP VĂN BẢN VỚI NẠVE BAYES2.1 Giới thiệu về phân lớp Nạve Bayes Phân lớp Nạve Bayes giả định rằng sự hiện diệ hoặc vắng mặt của một đặc tính là độc lập với sự hiện diện và
Trang 1Đại học Quốc Gia Thành phố Hồ Chí Minh
Đại học Cơng Nghệ Thơng Tin
TIỂU LUẬN CƠNG NGHỆ TRI THỨC VÀ
ỨNG DỤNG
Đề tài:
Phân lớp văn bản với Nạve Bayes và ứng dụng trong xây dựng bộ lọc mail rác
GVHD: GS TSKH Hồng Văn Kiếm HVTH: Trần Cảnh Khánh CH1301093
Tháng 10 năm 2014
MỤC LỤC
Trang 2CHƯƠNG I KHÁI QUÁT VỀ PHÂN LỚP VĂN BẢN 3
1.1 Khái niệm về phân lớp – phân loại văn bản (Document /categorization classification) 3
1.1.1 Phân lớp văn bản dựa trên cách tiếp cận hệ chuyên gia 3
1.1.2 Phân lớp văn bản dựa trên cách tiếp cận máy học 3
CHƯƠNG II PHÂN LỚP VĂN BẢN VỚI NẠVE BAYES 5
2.1 Giới thiệu về phân lớp Nạve Bayes 5
2.2 Mơ hình xác suất Nạve Bayes 5
2.2.1 Các mơ hình tham số ước lượng và sự kiện 7
2.2.2 Điều chỉnh mẫu 8
2.3 Mơ hình Nạve Bayes cho phân lớp văn bản 8
CHƯƠNG III XÂY DỰNG BỘ LỌC THƯ RÁC NẠVE BAYES 10
3.1 Xử lý 10
3.2 Phương thức thực hiện 10
3.3 Chương trình trình lọc thư rác 12
TÀI LIỆU THAM KHẢO 14
Trang 3CHƯƠNG I KHÁI QUÁT VỀ PHÂN LỚP VĂN BẢN
1.1 Khái niệm về phân lớp – phân loại văn bản (Document /categorization classification)
Phân loại văn bản là công việc phân tích nội dung của văn bản và sau đó ra quyết định (hay dự đoán) văn bản này thuộc nhóm nào trong các nhóm văn bản đã cho trước Văn bản được phân loại có thể thuộc một nhóm,nhiều nhóm, hoặc không thuộc nhóm văn bản
mà ta đã định nghĩa trước.
Có hai cách tiếp cận bài toán phân loại văn bản:
1.1.1 Phân lớp văn bản dựa trên cách tiếp cận hệ chuyên gia.
Theo cách tiếp cận này, việc phân lớp văn bản tự động được điều khiển bằng tay bởi các chuyên gia tri thức và hệ chuyên gia có khả năng đưa ra quyết định phân lớp Hệ chuyên gia bao gồm một tập các luật logic định nghĩa bằng tay, cho mỗi loại, có dạng:
If (DNF formula) then (category)
Công thức DNF (“Disjunctive Normal Form”) là hợp của các mệnh đề liên kết, tài liệu được phân lớp vào category nếu nó thỏa mãn công thức, nghĩa là, nếu nó thỏa mãn ít nhất một mệnh đề trong công thức
Điều trở ngại của cách tiếp cận này là hạn chế trong quá trình thu nhận tri thức từ tài liệu của các hệ thống chuyên gia Nghĩa là, các luật phải được định nghĩa bằng tay bởi kỹ sư tri thức với sự giúp đỡ của chuyên gia về lĩnh vực được nêu trong tài liệu Nếu tập hợp của các loại được cập nhật, thì hai nhà chuyên gia phải can thiệp lại, và nếu phân lớp được chuyển hoàn toàn sang một phạm vi khác, một chuyên gia về lĩnh vực này cần thiết phải can thiệp vào và công việc phải được bắt đầu lại từ tập tài liệu hỗn tạp ban đầu
1.1.2 Phân lớp văn bản dựa trên cách tiếp cận máy học.
Theo cách tiếp cận này, một quá trình xử lý quy nạp chung (cũng được gọi là quá trình học) xây dựng tự động một phân lớp cho một loại ci bằng quan sát các đặc trưng của tập
Trang 4hợp các tài liệu đã được phân bằng tay vào ci hay c i bởi chuyên gia về lĩnh vực này; từ
đó, quá trình qui nạp thu lượm các đặc trưng để phân lớp một tài liệu mới (không nhìn thấy) vào ci Trong kỹ thuật máy học, bài toán phân lớp là hoạt động học có giám sát, quá trình học được “giám sát” bởi tri thức của các phân lớp và của các mẫu huấn luyện thuộc
chúng.
(Học có giám sát là một kĩ thuật của ngành học máy để xây dựng một hàm (function) từ
dữ liệu huấn luyện Dữ liệu huấn luyện bao gồm các cặp gồm đối tượng đầu vào (thường dạng vec-tơ), và đầu ra mong muốn Đầu ra của một hàm có thể là một giá trị liên tục (gọi là hồi qui), hay có thể là dự đoán một nhãn phân loại cho một đối tượng đầu vào (gọi
là phân loại) Nhiệm vụ của chương trình học có giám sát là dự đoán giá trị của hàm cho một đối tượng bất kì là đầu vào hợp lệ, sau khi đã xem xét một số ví dụ huấn luyện (nghĩa
là, các cặp đầu vào và đầu ra tương ứng) Để đạt được điều này, chương trình học phải tổng quát hóa từ các dữ liệu sẵn có để dự đoán được những tình huống chưa gặp phải theo một cách "hợp lí")
Trang 5CHƯƠNG II PHÂN LỚP VĂN BẢN VỚI NẠVE BAYES
2.1 Giới thiệu về phân lớp Nạve Bayes
Phân lớp Nạve Bayes giả định rằng sự hiện diệ hoặc vắng mặt của một đặc tính là độc lập với sự hiện diện và vắng mặt của các đặc tính khác, mà được quy định bởi các tham
số phân lớp, ví dụ: một loại trái cây được phân lớp là trái táo nếu nĩ màu đỏ, trịn, cĩ đường kính 3 decimet Một phân lớp Nạve Bayes xem xét các đặc tính này tham gia một cách độc lập để xác định xác suất mà loại trái cây này là quả táo, bất kể sự hiện diện hay vắng mặt của các đặc tính khác
Đối với một số mơ hình xác suất, phân lớp Nạve Bayes cĩ thể được huân luyện một cách hiệu quả trong mơi trường học cĩ giám sát Trong nhiều ứng dụng thực tế, ước lượng thâm số cho mơ hình Nạve Bayes sử dụng phương pháp hợp lý cực đại, nghĩa là khi sử dụng mơ hình Nạve Bayes ta phải chấp nhậ xác suất Bayes Mặc dù sử dụng các giả định tương đối đơn giản, nhưng phân lơp Nạve Bayes cĩ thể áp dụng rất tốt trong nhiều trường hợp phức tạp trong thế giới thực
Một ưu điểm của mơ hình Nạve Bayes là chỉ cần sử dụng khối lượng nhỏ dữ liệu huấn luyện để ước lượng các tham số cần thiết để phân lớp Bởi vì các biến độc lập được giả định, chỉ cĩ sự thay đổi các biến cho mỗi lớp cần được xác định chứ khơng phải trên tồn
bộ hiệp phương sai.
2.2 Mơ hình xác suất Nạve Bayes
Mơ hình xác suất cho một phân lớp là mơ hình cĩ điều kiện: p (C|F1,F2, ,Fn) thơng qua các lớp phụ thuộc vào biến C với một số lượng nhỏ các kết quả hoặc các lớp, cĩ điều kiện trên nhiều tham số đặc tính từ F1 tới Fn Vấn đề là khi số lượng n đặc tính là rất lớn hoặc khi một đặc tính cĩ quá nhiều giá trị thì việc dựa vào mơ hình xác suất là khơng khả thi
Do đĩ, phải tái cấu trúc lại mơ hình để dễ xử lý hơn Định lý Bayes liên quan đến xác suất cĩ điều kiện và xác suất biên của các sự kiện ngẫu nhiên C và F:
Trang 6) Pr(
) Pr(
)
| Pr(
)
| Pr(
F
C C F F
Trong đó, P(C) là xác suất ưu tiên của giả thuyết C; P(F) là xác suất ưu tiên của dữ liệu huấn luyện F; P(C|F) là xác suất ưu tiên với F cho trước; P(F|C) là xác suất ưu tiên của F với C cho trước Sử dụng định lý Bayes cho tham số đặc tính Fn, ta có thể viết lại như sau:
(2) Trong thực tế ta chỉ cần quan tâm tới tử số, vì mẫu số không phụ thuộc vào C và các giá trị của đặc tính Fi cho trước, do đó mẫu số có giá trị không đổi, tử số tương đương với mô hình xác suất (1) có thể viêt lại bằng các sử dụng phương pháp lặp của định nghĩa xác suất có điều kiện như sau:
p(C,F1, ,Fn) = p(C)p(F1|C)p(F2|C,F1),p(F3|C,F1,F2) p(Fn|C,F1,F2, ,Fn-1) (3) Điều này nghĩa là đặc tính Fi độc lập có điều kiện với thuộc tính Fj với j ≠ i và p(Fi|C,Fj) = p(Fi|C), mô hình (1) có thể được diễn giải như sau:
∏
=
=
i i
F F
C
p( , 1, , ) ( ) ( 1 | ) ( ) ( 2 | ), ( ) ( | ) (4)
Điều này nghĩa là theo các giả định độc lập ở trên, phân phối có điều kiện thông qua biến phân lớp C có thể được thể hiện như sau:
∏
=
i i
Z F F
C
p
1
1, , ) 1 ( ) ( | ) ,
Trong đó Z là một yếu tố tỷ lệ chỉ phụ thuộc vào F1,F2,…,Fn, là một hằng số nếu các biến đặc tính đã xác định giá trị Sự phân lớp tương ứng với mô hình này là một hàm phân lớp được định nghĩa như sau:
Trang 7=
=
=
=
i
i i c
f f classify
1
1, , ) argmax ( ) ( | )
2.2.1 Các mơ hình tham số ước lượng và sự kiện
Tất cả các tham số của mơ hình (như độ ưu tiên của lớp và sự phân phối xác suất của các đặc tính) cĩ thể xấp xỉ với tần số tương đối của tập huấn luyện Đây là những ước tính khả năng tối đa của xác suất Độ ưu tiên của một lớp cĩ thể được tính bằng các giả sử các lớp cĩ xác suất ngang nhau (ví dụ: độ ưu tiên = 1/số lượng các lơp), hoặc bằng các tính ước lượng độ ưu tiên của lớp từ tập huấn luyện (ví dụ: độ ưu tiên của một lớp cụ thể = số mẫu trong lớp / tổng số mẫu) Để ước lượng các tham số cho sự phân phối của một đặc tính, ta phải giả định sự phân phối hoặc phát sinh các mơ hình phi tham số cĩ các đặc tính
từ tập huấn luyện
Các giả định về sự phân phối của các thuộc tính được gọi là mơ hình sự kiện của phân lớp Nạve Bayes Đối với các đặc tính rời rạc thường gặp phải trong phân loại văn bản (bao gồm lọc thư rác) mơ hình đa thức và Bernoulli thường được sử dụng Trong khi đĩ nếu làm việc với dữ liệu liên tục, một giả thiết điển hình là các giá trị liên tục kết hợp với mỗi lớp được phân phối theo các phân phối Gaussian
Ví dụ, giả sử dữ liệu huấn luyện cĩ một thuộc tính liên tục x Trước tiên cần phân đoạn
dữ liệu của lớp, sau đĩ tính tốn gia trị trung bình và phương sai của x trong mỗi lớp Cho µc là giá trị trung bình của x trong lớp c Sau đĩ, mật độ xác suất của các giá trị của một lớp cho trước P(x = v | c) cĩ thể được tính bằng cách đưa v vào phương trình cho một phân phối Gaussian bằng µc và σc2 .
2
2
2
) ( 2
1 )
|
c
v
c
e c
v x
µ
πσ
−
−
=
=
Trang 8Một kỹ thuật phổ biến khác để xử lý các giá trị liên tục là sử dụng phương pháp chia khoảng rời rạc hĩa các giá trị của đặc tính, để cĩ được một tập mới của các đặc tính được phân phối theo mơ hình Bernoulli Tĩm lại, phương pháp phân phối là lựa chọn tốt nhất nếu dữ liệu huấn luyện là nhỏ, hoặc nếu xác định được dữ liệu phân phối chính xác Phương pháp rời rạc hĩa cĩ xu hướng làm tốt hơn nếu dữ liệu huấn luyện lớn bởi vì nĩ sẽ được học để phù hợp với việc phân phối dữ liệu lớn
2.2.2 Điều chỉnh mẫu
Nếu một lớp và giá trị của đặc tính chưa từng xuất hiện cùng nhau trong dữ liệu huấn luyện thì tần số dựa vào ước lượng xác suất sẽ bằng 0 Đây là một vấn đề bởi vì nĩ sẽ xĩa sạch tất các thơng tin trong các xác suất khác khi được nhân với nĩ Do đĩ, nĩ thường được kết hợp với việc điều chỉnh mẫu nhỏ, gọi là Pseudocount, trong tất cả các ước lượng xác suất như vậy sẽ khơng cĩ xác suất nào cĩ giá trị là 0
2.3 Mơ hình Nạve Bayes cho phân lớp văn bản
Xét đến vấn đề phân loại văn bản theo nội dung, văn bản được rút từ lớp các văn bản được mơ hình hĩa thành tập các từ trong đĩ xác suất (khơng phụ thuộc) của từ thứ i của một văn bản cho trước xuất hiện trong một văn bản thuộc lớp C cĩ thể được viết như sau p(wi | C) (Đơn giản, chúng ta giả định xác suất một từ trong văn bản là khơng phụ thuộc vào chiều dài của văn bản hoặc tất cả các vằn bản đều cĩ cùng độ dài) Khi đĩ xác suất của một vằn bản cho trước D trong một lớp cho trước C là:
∏
=
i
i C w p C
D
Sử dụng kết quả của định lý Bayes, và giả định rằng chỉ cĩ 2 lớp, S và ⌐S (ví dụ spam và non spam), ta cĩ thể viết như sau:
¬
=
i
S w p
S w
p S
p
S
p D
S p
D S
p
)
| (
)
| ( )
( )
| (
)
| (
Trang 9Như vậy tỷ lệ xác suất p(S |D) / p(¬S | D) có thể được thể hiện bằng một loạt các tỷ lệ có khả năng Xác suất thực sự của p(S | D) có thể được tính bằng log(p(S| D) / p(¬S | D)) dựa trên cơ sở p(S | D) + p(¬S | D) = 1 Áp dụng cho tất cả các tỷ lệ, ta có
∑ ¬
¬
=
i
S w p
S w
p S
p
S
p D
S p
D S
p
)
| (
)
| ( ln )
( ln )
| (
)
| ( ln
Cuối cùng các văn bản có thể được phân loại như sau: nó được phân loại là spam nếu
0 )
|
(
)
|
(
¬S D
p
D
S
p
và ngược lại là non-spam
Trang 10CHƯƠNG III XÂY DỰNG BỘ LỌC THƯ RÁC NẠVE BAYES
3.1 Xử lý
Đối với một từ cụ thể sẽ cĩ một xác suất cụ thể xuất hiện trong mail rác hoặc mail hợp lệ Ví dụ hầu hết người sử dụng mail đều thấy từ “Viagra” xuất hiện trong mail rác
mà rất hiếm khi xuất hiện trong mail hợp lệ Bộ lọc sẽ khơng biết xác suất trước, mà phải trải qua quá trình huấn luyện Đối với tất cả các từ trong quá trình huấn luyện email, bộ lọc sẽ điều chỉnh xác suất của mỗi từ xuất hiện trong mail rác và mail hợp lệ vào cơ sở dữ liệu của nĩ
Sau khi huấn luyện, xác suất của từ được sử dụng để tính xác suất mà một email với một tập từ cụ thể thuộc về một trong hai loại Mỗi từ trong email sẽ gĩp phần vào xác suất spam của email hoặc chỉ những từ được quan tâm nhất Sự gĩp phần này được gọi là xác suất sau và nĩ được tính bởi định lý Bayes Sau đĩ, xác suất spam của email sẽ được tính trên tất các các từ trong email, và nếu tỷ lệ tổng vượt quá một ngưỡng nhất định (ví dụ 95%), bộ lọc sẽ đánh dấu đĩ là mail rác
Quá trình huấn luyện ban đầu cĩ thể được tinh chế khi cĩ xác nhận về sự đánh giá sai của
bộ lọc Điều này cho phép bộ lọc tự động thích ứng với mơi trường phát triển của mail rác
3.2 Phương thức thực hiện
Để đánh giá 1 email ta phải chuyển mỗi một email sang một vector x = (x1, x2,…
xn) với x1, x2,…xn là giá trị các thuộc tính X1, X2…Xn trong khơng gian vector đặc trưng
X Mỗi thuộc tính được thể hiện bởi một token đơn Theo phương pháp đơn giản nhất ta
cĩ thể lập ra một từ điển chứa các token Sau đĩ với mỗi token trong email nếu nĩ xuất hiện trong từ điển thì giá trị thuộc tính sẽ là 1, ngược lại thì là 0 Tuy nhiên trên thực tế, tập huấn luyện của ta khơng thường là một bộ từ điển như vậy Thay vào đĩ tập huấn luyện lúc này sẽ gồm cĩ 2 kho ngữ liệu Kho ngữ liệu Spam sẽ chứa một list các email đã
Trang 11được xác định là spam trước đó, và tương tự với kho ngữ liệu Non-spam sẽ chứa các email hợp lệ
Như vậy nếu ta vẫn để giá trị các thuộc tính là 0 hoặc 1 thì sẽ rất khó đánh giá được 1 email là spam hay không Đặc biệt nếu email nhận được là dài, khi đó nếu ta vẫn sử dụng giá trị thuộc tính là 0 hoặc 1 thì sự xuất hiện của 1 token 100 lần cũng tương đương với việc xuất hiện chỉ 1 lần
Để khắc phục vấn đề này giá trị thuộc tính bây giờ ta sẽ thay bằng xác suất spam của token đó Xác suất này tương đương với xác suất spam của 1 email chỉ chứa token đó và
là email spam Việc tính xác suất này thì có nhiều phương pháp Ta có thể tính dựa trên
số lần xuất hiện của token này trong mỗi kho ngữ liệu học ban đầu Ví dụ một token w có
số lần xuất hiện trong kho ngữ liệu spam là s và non-spam là n, số email tổng cộng ở kho spam và non-spam tương ứng là Ns và Nn thì xác suất spam của token w này sẽ là : P(X=w | C=spam) = (s/Ns)/(s/Ns+n/Nn)
Tuy nhiên nhược điểm của phương pháp này khả năng spam của một token xuất hiện 100 lần ở 100 email khác nhau là bằng với khả năng spam của một token xuất hiện 100 lần chỉ ở trong 1 email
Thay vào việc tính xác suất này dựa theo số lần xuất hiện của token trong từng kho ngữ liệu ta có thể dựa vào số email chứa token trong từng kho ngữ liệu Ví dụ một token w có
số email chứa nó trong kho ngữ liệu spam và non-spam là ns và nn thì xác suất spam của token w này sẽ là :
P(X=w | C=spam) = (s/Ns)/(ns/Ns+nn/Nn)
Nhược điểm của phương pháp này là khả năng spam của một token xuất hiện 1 lần trong
1 email là bằng với khả năng spam của một token xuất hiện 100 lần trong 1 email
Vì vậy chúng ta sử dụng cách thứ ba là tổng hợp của hai cách trên :
P(X=w | C=spam) = ((s*ns)/Ns)/((ns*s)/Ns+(nn*n)/Nn))
Trang 12Còn đối với các token chỉ xuất hiện trong kho ngữ liệu này mà không xuất hiện trong kho ngữ liệu kia thì không thể kết luận một token chỉ xuât hiện ở kho ngữ liệu spam thì không bao giờ xuất hiện trong kho ngữ liệu non-spam và ngược lại Cách thích hợp thì ta sẽ gán cho chúng một giá trị phù hợp Với những token chỉ xuất hiện trong kho ngữ liệu spam thì ta gán xác suất spam cho nó là giá trị N gần với 1 ( chẳng hạn 0,9999) và ngược lại thì gán xác suất spam là giá trị M gần với 0 ( chẳng hạn 0,0001)
Như vậy ta có công thức tính xác suất spam của token dựa trên số lần xuất hiện và số email chứa nó là :
P = Max ( M, Min ( N, ((ns*s)/Ns)/((ns*s)/Ns+(nn*n)/Nn) ) )
ns: số email chứa token trong kho spam
nn: số email chứa token trong kho non-spam
s: số lần token xuất hiện trong kho spam
n: số lần token xuất hiện trong kho non-spam
Ns: tổng số email trong kho spam
Nn: tổng số email trong kho non-spam
3.3 Chương trình trình lọc thư rác
Trước tiên, nhập dữ liệu huấn luyện, chọn file dữ liệu mail hợp lệ trong phần Good mail (ví dụ chọn file good.txt trong Training data), sau đó chọn file dữ liệu spam trong phần Spam mail(ví dụ file spam.txt trong training data), sau đó nhấn load để có được dữ liệu huấn luyện