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

Ứng dụng phân loại văn bản vào lọc thư rác

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 (1.07 MB, 19 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
----------

BÀI TẬP LỚN
XỬ LÝ NGÔN NGỮ TỰ NHIÊN

Đề Tài:
Ứng dụng phân loại văn bản vào lọc thư rác
Giảng viên hướng dẫn :

ThS. Hoàng Anh Việt

Sinh viên thực hiện:

MSSV

Đoàn Văn Đạt

20111370

Hà Nội – 4/2014


IT4875

Nhóm 7
Mục lục

1.


Đặt vấn đề: .........................................................................................................3

2.

Các cách tiếp cận để giải quyết vấn đề : ............................................................5
2.1 Mục đích chính gửi thư rác. ..........................................................................5
2.2 Các đặc tính của thư rác. ...............................................................................5
3.

Tổng quan về bài toán phân loại văn bản ......................................................6
3.1 Định nghĩa phân loại văn bản ......................................................................6
3.2 Tiến trình phân loại văn bản ........................................................................6
3.3 Các bước trong tiến trình phân loại văn bản: ...............................................8
3.4 Các phương pháp phân loại văn bản ............................................................9
3.5 Bài toán phân loại thư rác ..........................................................................10
3.6 Thuật toán phân loại văn bản Naive Bayes ..............................................10

4.

Phân tích thiết kế cách tiếp cận đề xuất : ....................................................12
4.1 Khái niệm “Token”: ...................................................................................12
4.2 Vector thuộc tính : .....................................................................................12
4.3 Cách thực hiện : .........................................................................................13

5.

Kết luận : ..........................................................................................................18

Tài liệu tham khảo: ................................................................................................19


Xử lý ngôn ngữ tự nhiên.

Page 2


IT4875

Nhóm 7

1. Đặt vấn đề:
Thời đại ngày nay là thời đại bùng nổ thông tin, Internet đã trở nên quen
thuộc và không thể thiếu đối với mỗi quốc gia và xã hội. Liên lạc qua Internet đã
trở nên phổ biến, và email là một phương tiện liên lạc có chi phí thấp, nhanh chóng
và hiệu quả nhất trên Internet. Hằng ngày mỗi người sử dụng email đều nhận được
một lượng lớn email, tuy nhiên không phi tất cả các email mà ta nhận được đều
chứa thông tin mà ta quan tâm. Những email mà ta không muốn nhận ấy là email
Spam. Ngược lại, những email không phải là spam gọi là non-spam – email hợp lệ
được người dùng chấp nhận.
Nhiều người trong chúng ta nghĩ rằng spam là một vấn đề mới, nhưng thực
ra nó đã xuất hiện khá lâu – ít nhất là từ năm 1975. Vào lúc khởi thủy, người dùng
hầu hết là các chuyên gia về máy tính, họ có thể gửi hàng tá thậm chí hàng trăm
email đến các nhóm tin (newsgroup) và spam hầu như chỉ liên quan đến các email
gửi đến các nhóm tin Usenet, gây ra tình trạng không thể kiểm soát được các email
nhận. Sau đó các biện pháp trừng trị về mặt xã hội và hành chính đã có tác dụng,
thủ phạm đã bị trừng phạt , công khai hay bí mật, những người này nhanh chóng
được đưa vào một danh sách, và một kỹ thuật lọc spam sớm nhất xuất hiện đó là
”bad sender” – lọc email của những người gởi được xem là xấu.
WWW(World-Wide Web) đã mang thế giới Internet đến nhiều người, và hệ
quả của nó là nhiều người không phải là chuyên gia trong thế giới máy tính cũng
được tiếp xúc nhiều với Internet, nó cho phép truy cập đến những thông tin và dịch

vụ mà trước đây là không được phép. Chỉ trong vòng 2-3 năm chúng ta đã chứng
kiến sự bùng nổ số người sử dụng Internet và tất nhiên là những cơ hội quảng cáo
trên đấy. Và spam đã phát triển một cách nhanh chóng từ đây, những kỹ thuật ngăn
chặn spam trước đây đã không còn thích hợp. Spam thường theo sau những quảng
cáo thương mại chèo kéo khách hàng ( những email quảng cáo thương mại được
gửi mà không có yêu cầu ). Spam đã và đang gây tác hại đến người sử dụng
Internet và tốc độ đường truyền Internet. Với người sử dụng email, spam gây cho
họ cảm giác bực bội và phải mất thời gian và tiền bạc xóa chúng, đôi khi họ có thể
bị mất những email quan trọng chỉ vì xóa nhầm, tốc độ trên mạng xương sống của
Internet (Internet Backbone) cũng bị spam làm cho chậm lại vì số lượng spam
Xử lý ngôn ngữ tự nhiên.

Page 3


IT4875

Nhóm 7

được chuyển đi trên mạng là cực lớn. Theo thống kê của ZDNet ở thời điểm năm
2004, mỗi ngày có khoảng 4 tỷ email spam được phát tán qua Internet, trên 40%
lượng email trên mạng là spam, gần đây đã đạt con số 50% . Cho dù được nhận
diện là “kẻ thù của cộng đồng“(“public enemy”) Internet, nhưng spam đã và đang
mang lại lợi nhuận. Trong số 100.000 email spam phát tán, chỉ cần một email có
phản hồi là đã có thể bù đắp chi phí đầu tư.
Để ngăn chặn spam, nhiều nhà khoa học, các tổ chức, các cá nhân đã nghiên
cứu và phát triển những kỹ thuật phân loại và lọc email, tuy nhiên các spammer –
những người tạo nên spam và phát tán chúng cũng tìm mọi cách vượt qua các bộ
lọc này. Cuộc chiến giữa các spammer và những người chống spam vẫn còn đang
tiếp diễn và dường như không có hồi kết. Thực tế cho thấy, nhu cầu có một phương

pháp và công cụ chống spam hữu hiệu là rất cần thiết.
Xuất phát từ thực trạng đó, nhóm BTL chọn hướng nghiên cứu “Xây dựng
một chương trình lọc thư rác bằng việc ứng dụng phương pháp phân loại văn
bản Naive Bayes” “ với mục đích tìm hiểu, thử nghiệm các phương pháp tiếp cận
cho bài toán phân loại email, từ đó thực hiện phân loại email giúp ngăn chặn email
spam hiệu quả.
Yêu cầu hệ thống:
Yêu cầu đối với một hệ thống phân loại email và ngăn chặn email spam
đương nhiên là phân loại được email là spam hay non-spam, từ đó sẽ có biện pháp
ngăn chặn email spam, hiệu quả phân loại email phải khách quan, tuy nhiên không
thể đánh đổi hiệu quả phân loại email spam cao mà bỏ qua lỗi sai cho rằng email
non-spam là spam, bởi vì cùng với việc tăng khả năng phân loại email spam thì khả
năng xảy ra lỗi nhận nhầm email non-spam thành email spam cũng tăng theo. Do
đó yêu cầu đối với một hệ thống phân loại email spam là phải nhận ra được email
spam càng nhiều càng tốt và giảm thiểu lỗi nhận sai email non-spam là email
spam.

Xử lý ngôn ngữ tự nhiên.

Page 4


IT4875

Nhóm 7

2. Các cách tiếp cận để giải quyết vấn đề :
2.1 Mục đích chính gửi thư rác.

Thư rác được gửi với các mục đích chính như sau:

- Quảng cáo sản phẩm, dịch vụ, … của tổ chức, công ty thương mại
nào đó.
- Lợi dụng sự cả tin của người dùng để lừa gạt họ, như các hình thức
kiếm tiền trực tuyến, …
- Gửi kèm virus trong tập tin kèm theo của thư điện tử, từ đó đưa virus
vào máy nạn nhân và hệ thống mạng mà nạn nhân sử dụng. Sau đó lấy cắp
các thông tin quan trọng của nạn nhân và hệ thống.
- Nói xấu, xuyên tạc ai đó, tuyên truyền những điều sai trái về chính
trị.

2.2 Các đặc tính của thư rác.

Thư rác chứa các đặc tính cơ bản sau:
- Thư rác mang tính tương đối vì thư mang tính cá nhân, có thể một thư
điện tử này là vô bổ với người này nhưng với người khác lại có ích.
Ví dụ một thư điện tử quảng cáo/ rao vặt cho một sản phẩm cụ thể có
thể được một số người quan tâm nhưng những người còn lại xem đó
là rác.
- Tính bất biến trong một thư rác thể hiện ở những từ cụm từ hầu như
không thay đổi trong những lần spam. (Ví dụ: Tên người, tên công ty,
tên sản phẩm, mã sản phẩm, tên website của sản phẩm, địa chỉ lưu trữ/
mua bán sản phẩm, …).
- Nội dung của thư chứa các từ thường xuất hiện trong thư rác (kiếm
tiền, giàu nhanh, chọn nhanh,...).

Xử lý ngôn ngữ tự nhiên.

Page 5



IT4875

Nhóm 7

3. Tổng quan về bài toán phân loại văn bản

3.1 Định nghĩa phân loại văn bản
Có nhiều cách định nghĩa khác nhau về phân loại văn bản nhưng nói một
cách ngắn gọn dễ hiểu: Phân loại văn bản là sự phân loại không cấu trúc các tài
liệu văn bản dựa trên một tập hợp của một hay nhiều loại văn bản đã được định
nghĩa trước. Quá trình này thường được thực thi bằng một hệ thống tự động gán
cho các tài liệu văn bản một loại nào đó.
Trong thực tế ứng dụng quan trọng nhất của phân loại văn bản là giới hạn
phạm vi tìm kiếm thông tin (bởi thay cho việc phải lục soát tất cả các tài liệu họ chỉ
tập trung vào một số loại văn bản có liên quan đến thông tin mà họ cần tìm kiếm).
Phân loại văn bản góp phần quan trọng trong việc tổ chức thông tin và quản lí tài
liệu. Ứng dụng phổ biến nhất của phân loại văn bản là trợ giúp cho việc tìm kiếm
và lọc văn bản do đó tăng tốc độ truy cập thông tin. Phân loại văn bản cũng đóng
vai trò quan trọng trong việc đa dạng hóa và chuyên nghiệp hóa các công việc quản
lí thông tin như là: việc sắp xếp các loại thư điện tử hoặc các file trong các hệ
thống, xác minh chủ đề để trợ giúp cho các tiến trình hoạt động xử lí, tìm kiếm hay
duyệt các cấu trúc, hoặc để tìm kiếm các loại tài liệu mà người dùng quan tâm.
Như vậy làm thế nào để phân loại văn bản? Câu trả lời sẽ được làm rõ khi ta đi sâu
vào tìm hiểu tiến trình phân loại văn bản.
3.2 Tiến trình phân loại văn bản
Vấn đề đặt ra cho các bài toán phân loại văn bản có thể bắt đầu như sau:
Đưa ra một tập tài liệu mẫu D, cần được phân bổ thành một số loại tài liệu
nhất định - mỗi tài liệu đó cần được gán cho một loại văn bản nào đó. Nhiệm vụ
của chúng ta là tìm một hệ thống phân hoạch, mà nó sẽ cung cấp cho ta một nhãn y
phù hợp cho một số tài liệu trong D vừa được đưa vào từ nguồn tài nguyên giống

nhau như các văn bản mẫu. Tổng quát hơn với một hệ thống phân loại điển hình
như mô tả ở sơ đồ sau gồm có các tiến trình.

Xử lý ngôn ngữ tự nhiên.

Page 6


IT4875

Tập dữ
liệu

Nhóm 7

Tiền
xử lí

Chọn
đặc
trưng

Học một bộ
phân loại

Phân
loại

Kết
quả


Trong thực tế khâu tiền xử lí cũng chính là khâu lựa chọn đặc trưng cho các
văn bản (đặc trưng ở đây là các dấu hiệu quan trọng để nhận biết văn bản). Có thể
coi khâu này là tiền đề cần thiết cho việc học một bộ phân loại. Vì thế hiệu quả của
các bộ phân loại văn bản phụ thuộc rất cao vào tập các đặc trưng mà chúng ta sử
dụng. Trong các mô hình phân loại điển hình và phức tạp thường có một số các
phương pháp có sẵn để lựa chọn đặc trưng. Với những phương pháp này, tập hợp
các dữ liệu thô được miêu tả bằng một số các tập hợp đặc trưng. Chúng đặt ra một
vấn đề là làm thế nào để sử dụng những đặc trưng ấy cho phân hoạch tài liệu. Hiện
nay có hai cơ cấu tổ chức để giải quyết các vấn đề đó.
Phương pháp thứ nhất: sử dụng các phương pháp lựa chọn đặc trưng để
chọn ra một đặc trưng tối ưu. Nếu chọn ra được một đặc trưng tối ưu từ bộ dữ liệu
thô ở đầu vào, chúng ta có thể chỉ đơn thuần sử dụng nó để học một bộ phân loại
như hình vẽ. Tuy nhiên, quá trình tối ưu đó không phải đơn giản. Trong trường hợp
này khi sử dụng các đặc trưng khác nhau vẫn có thể sẽ dẫn đến các kết quả tương
tự nhau hoặc là hiệu quả khác nhau. Trong thực tế có rất nhiều những ví dụ như
thế.
Phương pháp thứ hai: sử dụng một tập hợp các đặc trưng phức hợp để đạt
kết quả phân loại cao hơn, đây là một trong những cải tiến quan trọng. Điều đó
nghĩa là ta không chỉ sử dụng một đặc trưng để phân loại các tập tài liệu mà phải
căn cứ vào tất cả các tập đặc trưng khác nhau có trong tập tài liệu. Sau đó phối hợp
các đặc trưng đó để đưa ra một “vector phức hợp” của các không gian đặc trưng
cho các tập đặc trưng vừa chọn được, rồi mới tiến hành phân loại văn bản. Vấn đề
cơ bản nhất của những phương pháp này là phác thảo các đặc trưng. Do đó, việc
học một phương pháp phân loại bao gồm hai công đoạn. Phân hoạch đầu tiên sẽ
được huấn luyện trên tập tài liệu mẫu và sau đó tổ hợp các sắp xếp này được huấn
Xử lý ngôn ngữ tự nhiên.

Page 7



IT4875

Nhóm 7

luyện trên một tập các phê chuẩn ngược lại. Các nghiên cứu gần đây thể hiện rằng
chính sự phối hợp của các phân hoạch được huấn luyện trên các đặc trưng khác
nhau xảy ra như một kết quả có ‎nghĩa đặc biệt đối với sự cải tiến các hiệu quả. Tuy
vậy với một tập dữ liệu đủ lớn thường đòi hỏi phải qua hai chặng đường học tập.
Thêm vào đó sự phối hợp của các phương pháp phân hoạch cũng được thể hiện
như một đặc trưng “lai” giữa nhiều cấu trúc module hoạt động trong các mức ưu
tiên nhỏ hơn.
Chọn đặc
trưng 1

Tập dữ
liệu

.
.

Tiền xử lí

Học một bộ

Phân

phân loại

loại


Kết
quả

.

Chọn
đặc
trưng k

3.3 Các bước trong tiến trình phân loại văn bản:
-

Lựa chọn các đặc trưng văn bản
Biểu diễn văn bản
Học một bộ phân loại văn bản
Tiến hành phân loại văn bản

Trong đó, lựa chọn đặc trưng văn bản là quá trình phân tích văn bản thành các từ
hay cụm từ. Biểu diễn văn bản là cách thể hiện văn bản dưới dạng một vector mà
không gian của nó là tập các đặc trưng đã lựa chọn. Căn cứ vào các đặc trưng đã
chọn có thể học một bộ phân loại văn bản như Naive Bayes hay kNN (k-nearest
neighbor algorithm)… Đầu ra của quá trình này sẽ là một máy dùng để phân loại
các tài liệu cần thiết (tiến hành phân loại văn bản).
Xử lý ngôn ngữ tự nhiên.

Page 8


IT4875


Nhóm 7

3.4 Các phương pháp phân loại văn bản
Trước đây khi văn bản còn lưu trữ trên giấy tờ, để phân loại các loại tài liệu
chúng ta cần một đội ngũ nhân lực khá lớn. Tuy nhiên sự phân loại của con người
cũng chỉ là tương đối, trong khi lượng thông tin tăng lên một cách chóng mặt thì sự
phân loại tài liệu do con người đảm nhiệm chỉ có thể đáp ứng 0.1% lượng thông tin
đó. Còn bây giờ hầu hết các loại văn bản đều được lưu trữ trên một cơ sở dữ liệu
(lưu trữ trên máy tính), vì vậy tự động phân loại thông tin ngày càng đóng vai trò
quan trọng.
Dựa trên các đặc trưng của văn bản đã xuất hiện nhiều chiến lược phân loại
văn bản đã được đề xuất và áp dụng trong các tập tài liệu khác nhau. Hiệu quả của
các phương pháp đó tuy chỉ là tương đối nhưng đã hỗ trợ rất nhiều trong truy cập,
quản lí, lọc thông tin. Các phương pháp phân loại văn bản cho kết quả tốt thường
được sử dụng là:
1
2
3
4
5

Nguyên mẫu (prototype)
Mô hình xác suất Naive Bayes
Phương pháp SVM (Support vectors Machines)
Phương pháp cây quyết định (Dicision Trees- Lewis and Ringuette, 1994)
Phương pháp mạng neuron (Neuron network - Wiener et al., 1995; Schutze
et al., 1995)

Các mô hình xác suất của Naive Bayes

Kĩ thuật phân hoạch của Naive Bayes dựa trên cơ sở định lí Bayes và đặc
biệt phù hợp cho các trường hợp phân loại có kích thước đầu vào là lớn. Mặc dù
Naive Bayes khá đơn giản nhưng nó có khả năng phân loại tốt hơn rất nhiều
phương pháp phân hoạch phức tạp khác. Với mỗi loại văn bản, thuật toán Naive
Bayes tính cho mỗi lớp văn bản một xác suất mà tài liệu cần phân hoạch có thể
thuộc loại đó. Tài liệu đó sẽ được gán cho lớp văn bản nào có xác suất cao nhất.

Xử lý ngôn ngữ tự nhiên.

Page 9


IT4875

Nhóm 7

3.5 Bài toán phân loại thư rác
Phân loại thư rác thực chất là bài toán phân loại văn bản hai lớp, trong đó:
tập tài liệu mẫu ban đầu là các thư rác (spam) và các thư hợp lệ (non-spam), các
văn bản cần phân lớp là các Email được gửi đến client. Kết quả đầu ra của quá
trình phân loại này là hai lớp văn bản: Spam(thư rác), Non-spam (thư hợp lệ). Mô
hình phân loại thư rác tổng quát có thể mô tả như sau:

3.6 Thuật toán phân loại văn bản Naive Bayes
Cơ sở của phương pháp phân loại văn bản Naive Bayes là chủ yếu dựa trên
các giả định của Bayes. Giả thuyết Bayes gán cho mỗi tài liệu văn bản cần phân
loại một giá trị xác suất.
Xác suất P(ck| di) gọi là xác suất mà tài liệu di có khả năng thuộc vào lớp
văn bản ck được tính toán như sau:


P (c k | d i ) 

P (c k ) * P ( d i | c k )
P(d i )

Giả thiết mỗi một email được đại diện bởi một vector thuộc tính đặc trưng
Xử lý ngôn ngữ tự nhiên.

Page 10


IT4875

Nhóm 7

= (x1, x2 ,..., xn ) với x1, x2, …, xn là giá trị của các thuộc tính X1, X2, …, Xn tương
ứng trong không gian vector đặc trưng ⃗
Dựa vào công thức xác suất Bayes và công thức xác suất đầy đủ ta có được
xác suất một email với vector đặc trưng , thuộc về loại c là:

Với C là email được xét, c ϵ {spam, nonspam}
Thực tế thì rất khó tính được xác suất P( ⃗ |C) bởi vì giá trị số lượng của các
vector rất nhiều và nhiều vector hiếm khi hay thậm chí không xuất hiện trong tập
dữ liệu huấn luyện. Phương pháp Naive Bayes giả thiết rằng X 1, X2, …, Xn là
những biến cố độc lập, do đó chúng ta có thể tính được xác suất ở trên như sau:

Với P(Xi|C) và P(C) được tính dựa trên dữ liệu học, việc tính này dựa vào
tập huấn luyện ban đầu.
Từ xác suất này, ta so sánh với một giá trị ngưỡng t mà ta cho là ngưỡng để
phân loại email spam hay không, nếu xác suât này lớn hơn t, ta cho là email đó là

spam, ngược lại ta xem email đó là non-spam.

Xử lý ngôn ngữ tự nhiên.

Page 11


IT4875

Nhóm 7

4. Phân tích thiết kế cách tiếp cận đề xuất :
4.1 Khái niệm “Token”:
Để xem xét nội dung của email chúng tôi dùng khái niệm “token”
Các token có thể xem như là các từ cần xem xét mà ta tách ra từ nội dung
của email. Với các ký tự chữ, ký tự số, ký tự „$‟, ký tự gạch ngang „-‟, ký tự gạch
dưới, ký tự nháy đơn „‟‟ là những ký tự cấu tạo thành token. Còn những ký tự còn
lại như khoảng trắng, ký tự „*‟, ký tự „:‟, … được xem là ký tự để tách từ hay phân
cách các từ. Với những từ tách được mà gồm toàn ký số thì không được xem là
token (VD: “12345”).
Ví dụ ta có các token sau:
“qvp0045”, “ indira”, “mx-05”, “$7500”, “3d0725”, “ platinum”.
Nếu ta có một chuỗi sau: “ thì ta sẽ có các token
tương ứng là: “http”, “www”, “24h”, “com”, “vn”.
4.2 Vector thuộc tính :
) với x1, x2,…,
Ta chuyển mỗi một email sang một vector ⃗ (
xn là các giá trị thuộc tính X1, X2, …, Xn trong không gian vector đặc trưng
.
Các thuộc tính có thể là một token, nhóm các token … Trong trường hợp đơn giản

nhất, mỗi một thuộc tính được thể hiện bởi một token đơn và tất cả các thuộc tính
có giá trị luận lý (Boolean), như vậy Xi = 1 nếu email chứa token, trường hợp
ngược lại Xi=0.
Chúng tôi chọn thuộc tính là token đơn, nhưng thay vì giá trị của các thuộc
tính là giá trị luân lý (boolean), chúng tôi chọn là xác suất spam của mỗi token.
Xác suất spam của mỗi token sẽ có giá trong đoạn [0,1]. Xác suất cho ta nhiều
thông tin hơn so với giá trị luân lý. Ví dụ: xét token “$” xuất hiện trong email, nếu
ta sử dụng giá trị luận lý, ta không đủ cơ sở để nghi ngờ email này là email spam,
và nếu email này khá dài thì càng khó kết luận rằng nó là spam. Tuy nhiên sử dụng
xác suất, ta có thể biết được khả năng email đó là spam là bao nhiêu, điều này hợp
Xử lý ngôn ngữ tự nhiên.

Page 12


IT4875

Nhóm 7

lý hơn là chỉ sử dụng hai giá trị 0 và 1.
Chọn ngưỡng phân loại :
Chúng tôi tiến hành thử nghiệm với giá trị ngưỡng phân loại xác nhận một
email là spam lần lượt là 0.999, 0.9999.
4.3 Cách thực hiện :
Chúng ta sẽ bắt đầu với hai kho ngữ liệu email : kho ngữ liệu email spam và
kho ngữ liệu email non-spam. Số lượng email trong mỗi kho ngữ liệu ban đầu
không hạn chế. Nếu kho ngữ liệu càng lớn thì hiệu quả lọc email sẽ càng cao. Từ
hai kho ngữ liệu này, chúng tôi phân tích và duyệt qua tất cả các token.
Sau đó ta tính xác suất spam của mỗi token đã được phân tích, xác suất
này chính là xác suất một email chỉ chứa token đó và là email spam.

Như vậy mấu chốt ở đây là ta phải tính ra được xác suất spam của mỗi
token. Theo Paulgraham, xác suất spam của mỗi token được tính dựa trên số lần
xuất hiện của mỗi token 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, trong kho ngữ liệu non-spam là n, số
email tổng cộng cả hai kho ngữ liệu spam và non-spam lần lượt là NS và N N ,
thế thì xác suất spam của token w được tính như sau:

Tuy nhiên, vì số lần xuất hiện của một token trong mỗi kho ngữ liệu học có
khả năng vượt quá kích thước của kho ngữ liệu học đó (tổng số email) (s> Ns,
n>Nn) do đó, trong công thức trên, thay
Min( 1,

bằng Min(1,

) và

bằng

)

Do đó công thức 1-1 viết lại như sau:
Xử lý ngôn ngữ tự nhiên.

Page 13


IT4875

Nhóm 7
(


(

)

)
(

)

(

)

(

)

Theo cách trên thì chúng ta đánh giá khả năng spam của một token xuất hiện
trong một kho ngữ liệu học 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 trong một kho ngữ liệu học 100 lần nhưng chỉ trong
một email
Chúng tôi đề xuất một cách tính xác suất spam của token khác như sau: thay
vì dựa vào số lần xuất hiện của token trong từng kho ngữ liệu học, chúng tôi dựa
vào số email chứa token trong từng kho ngữ liệu học. Công thức tính như sau :

Với :
-

ns là số email có chứa token trong kho ngữ liệu email spam

nn là số email có chứa token trong kho ngữ liệu email non - spam
Ns là tổng số email của kho ngữ liệu học spam
Nn là tổng số email của kho ngữ liệu học non-spam

Tuy nhiên, ta nhận thấy rằng công thức trên đã đánh giá khả năng spam của
mỗi token là như nhau với token xuất hiện 1 lần trong 1 email và token xuất hiện
100 lần trong 1 email, bởi vì cả hai trường hợp, ta đều chỉ tính thêm vào số email
chứa token là 1 mà thôi
Chúng ta có thể kết hợp hai cách tính trên, có thể sử dụng được nhiều thông
tin về token hơn. Chúng tôi đề xuất thêm một công thức nữa – được xem là sự kết
hợp giữa hai công thức trên
Xử lý ngôn ngữ tự nhiên.

Page 14


IT4875

Nhóm 7

(

)

(

)

Với
-


ns là số email có chứa token trong kho ngữ liệu email spam
nn là số email có chứa token trong kho ngữ liệu email non- spam
NS là tổng số email của kho ngữ liệu học spam
NN là tổng số email của kho ngữ liệu học non-spam
b là số lần xuất hiện của token trong kho ngữ liệu email spam
g là số lần xuất hiện của token trong kho ngữ liệu email nonspam

Còn đối với các token chỉ xuất hiện ở kho ngữ liệu này mà không xuất hiện
ở kho ngữ liệu kia thì ta không thể kết luận rằng một token chỉ xuất hiện ở kho ngữ
liệu spam thì không bao giờ xuất hiện trong một email non-spam, và ngược lại.
Cách thích hợp ở đây là ta sẽ gán cho chúng một giá trị phù hợp. Như vậy, với
những token chỉ xuất hiện trong kho ngữ liệu email spam thì ta sẽ gán khả năng
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 đã xác định được xác suất spam của một email chỉ chứa một
token nào đó hay xác suất spam của một token như sau:
Tính theo công thức 1-4:

(

Xử lý ngôn ngữ tự nhiên.

(

))

(

)


Page 15


IT4875

Nhóm 7

Công thức 1-5 :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ó
Với :
-

s là số lần xuất hiện của token trong kho ngữ liệu học spam
n là số lần xuất hiện của token trong kho ngữ liệu học non- spam
ns là số email chứa token trong kho ngữ liệu học spam
nN là số email chứa token trong kho ngữ liệu học non-spam
Ns là tổng số email chứa trong kho ngữ liệu học spam
NN là tổng số email chứa trong kho ngữ liệu học non-spam

Công thức tính xác suất spam của một email C là:

|⃗

(

⃗)

(



*

) ∏(
+

)

(

(
) ∏(

|

)
)

(

|

)

Với P (C = spam) = (số thư rác)/ (tổng số thư)
P(C = non-spam) = (số thư không spam )/(tổng số thư )

Ví dụ:
Token:


Xác suất (Probability):

Adventures

0.99

printable

0.99

shorstest

0.047225013

Xác suất P(C = spam) = 0.5 và P(C = non-spam) = 0.5 (chọn theo khả năng
của chương trình)
-> Xác suất tổng hợp của email:

Xử lý ngôn ngữ tự nhiên.

Page 16


IT4875

Nhóm 7

Sau khi có xác suất tổng hợp, chúng tôi so sánh với các giá trị ngưỡng ( đã
nói ở các phần trước) để phân loại email spam hay non-spam, nếu xác suất spam
tổng hợp của email lớn hơn ngưỡng t chúng tôi kết luận email đó là spam, ngược

lại email đó là non-spam.

Xử lý ngôn ngữ tự nhiên.

Page 17


IT4875

Nhóm 7

5. Kết luận :
Nhóm đã tìm hiểu ứng dụng phân loại văn bản vào bài toán phân loại thư rác.
Với việc phân loại thư rác tiếng Anh thì không gặp nhiều khó khăn như phân loại
thư tiếng Việt (việc tách từ tiếng Việt không đơn giản như tiếng Anh, xây dựng
kho ngữ liệu khó hơn)

Xử lý ngôn ngữ tự nhiên.

Page 18


IT4875

Nhóm 7

Tài liệu tham khảo:
P.Graham, A Plan for Spam, />August 2002
P.Graham, Better Bayesian Filtering,
January 2003


Xử lý ngôn ngữ tự nhiên.

Page 19



×