Tải bản đầy đủ (.docx) (29 trang)

Đồ án Thuật toán Bayes và ứng dụng lọc thư rác ( khoa CNTT)

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 (572.51 KB, 29 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC SƯ PHẠM
KHOA TIN HỌC
---

ĐỒ ÁN MÔN HỌC

ĐỀ TÀI

THUẬT TOÁN BAYES VÀ
ỨNG DỤNG LỌC THƯ RÁC
Sinh viên thực hiện: Bảo Quý Huy
Lớp: 15SPT
Giảng viên hướng dẫn: Trần Uyên Trang

Đà Nẵng – 2018


Đồ án thuật toán

Mục lục
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT................................................................................................... 4
1. Phát biểu định lý Bayes................................................................................................................................... 4
2. Các mô hình xác suất bayes............................................................................................................................ 4
3.Xây dựng một classifier từ mô hình xác suất.................................................................................................... 6
4. Thuật toán phân loại văn bản Naive Bayes classifier.......................................................................................7

CHƯƠNG 2: PHÁT BIỂU VẤN ĐỀ............................................................................................... 11
1. Đặt vấn đề..................................................................................................................................................... 11
2. Bài toán........................................................................................................................................................ 12
3. Dùng luật Bayes tính xác suất....................................................................................................................... 12


4. Huấn luyện cho bộ lọc Bayes........................................................................................................................ 14

CHƯƠNG 3: KẾT QUẢ VÀ ỨNG DỤNG..................................................................................... 15
TÀI LIỆU THAM KHẢO.................................................................................................................. 18
PHỤ LỤC.............................................................................................................................................. 19
I.

DỮ LIỆU BAN ĐẦU............................................................................................................................... 19

II.

CHẠY TẬP HUẤN LUYỆN.................................................................................................................... 20

III.

TIẾN HÀNH KIỂM TRA MAIL SPAM.............................................................................................. 22

IV.

KẾT QUẢ............................................................................................................................................ 26

2


Đồ án thuật toán
MỞ ĐẦU
Thống kê (toán học) là bộ môn học rất quan trọng và có nhiều ứng dụng to lớn
trong thực tế, giúp con người rút ra thông tin từ dữ liệu quan sát, nhằm giải quyết
các bài toán thực tế trong cuộc sống.
Trong đồ án này trình bày về một tiếp cận thống kê trong việc dự đoán sự kiện

dựa vào lý thuyết Bayes. Lý thuyết này nói về việc tính xác suất của sự kiện dựa
vào các kết quả thống kê các sự kiện trong quá khứ. Sau việc tính toán mỗi sự kiện
được gán xác xuất hay điểm (tùy vào mỗi phương pháp đánh giá) ứng với khả năng
có thể xảy ra với sự kiện đó. Và cuối cùng dựa vào ngưỡng để phân loại cho các sự
kiện.
Sau phần lý thuyết chúng ta sẽ tìm hiểu về bài toán thực tế trong ngành công
nghệ thông tin. Bài toán về việc lọc thư rác tự động. Giải quyết bài này là sự kết
hợp từ rất nhiều phương án như DNS Blacklist, kiểm tra người nhận, người gửi,
dùng bộ lọc Bayes, chặn địa chỉ IP, Blacklist/Whitelist,.... Dùng bộ lọc Bayes là
phương án thông minh nó gần gũi với người dùng bởi chính người dùng đã huấn
luyện nó nhận biết thư rác. Đồ án này tập trung vào việc tìm hiểu bộ lọc thư rác
Bayesspam – mã nguồn mở, cài đặt cho hệ thống email có tên là SquirrelMail – mã
nguồn mở đang được dùng cho hệ thống email của các trường đại học. Kết quả cho
thấy bộ lọc có mức độ hoạt động hiệu quả là khác nhau tùy thuộc việc người dùng
huấn luyện cho bộ lọc thông qua các thư điện tử mà họ cho là thư rác nhưng nói
chung bộ lọc đã đem lại hiệu quả khá tốt.

3


Đồ án thuật toán

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1. Phát biểu định lý Bayes

Đị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ênhay 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:

2. Các mô hình xác suất bayes
Tóm lại, các mô hình xác suất cho một classifier là một mô hình có điều kiện đối
với một biến lớp phụ thuộc C với một số lượng nhỏ của các kết quả hay các lớp
học, phụ thuộc vài biến đặc trưng F1 cho tới F n.

4


Đồ án thuật toán

Vấn đề là nếu số các đặc trưngn là lớn hay khi một đặc trưng có thể chiếm một số
lượng lớn các giá trị, sau đó dựa vào một mô hình trên các bảng xác suất là không
thể làm được. Do vậy, chúng ta công thức hóa lại các mô hình để dễ xử lý.
Bằng cách sử dụng định lý Bayes, có được:

Trong thực hành, chỉ cần quan tâm tới tử số của phân số, khi mà mẫu số không phụ
thuộc vào C và các giá trị của các đặc trưng của Fi đã cho, nên mẫu số là hằng thực
sự.


Tử số tương đương với mô hình xác suất có thể được viết lại như sau, sử dụng định
nghĩa của xác suất có điều kiện:

5


Đồ án thuật toán
Bây giờ giả định "naive" giả định có điều kiện độc lập đưa vào: giả định rằng mỗi
đặc trưng Fi có điều kiện độc lập với tất cả các đặc trưng Fjchoj # i. Điều này có
nghĩa là

do đó có thể được thể hiện như:

Điều này có nghĩa là dưới sự độc lập giả định ở trên, các điều kiện phân phối trên
các lớp học biến C có thể được thể hiện:

ở đây Z là một nhân tố xác định tỷ xích phụ thuộc vào F1, F2, .., Fn, chẳng hạn
một hằng số nếu các giá trị của các biến đặc trưng đều được biết.
Nếu có k lớp học và nếu một mô hình cho p(Fi) có thể được thể hiện trong các
thuật ngữ của r tham số, sau đó các mô hình naive Bayes tương ứng có (k- 1) +nrk
tham số. Trong thực tế, thường k = 2 (phân loại nhị phân) và r = 1 (các biến
Bernoulli như là các đặc trưng) được phổ biến, và như vậy tổng số lượng các tham
số của mô hình naive Bayes là2n + 1,ở đây n là số các đặc trưng nhị phân sử dụng
cho các dự đoán.

3.Xây dựng một classifier từ mô hình xác suất
Các thảo luận cho đến nay đã bắt nguồn những mô hình đặc trưng độc lập, có

6



Đồ án thuật toán
nghĩa là, mô hình xác suất naive Bayes. Naive Bayes classifier kết hợp mô hình
này
với một luật quyết định. Là một luật chung để chọn nhiều nhất các giả thuyết có
khả
năng xảy ra, điều này được biết đến như là maximum a posteriori hay luật quyết
định
MAP. Classifier tương ứng là chức năng phân lớp được xác định như sau:

Một chú ý rằng giả định độc lập có thể dẫn đến một số kết quả không mong
muốn trong tính toán sau xác suất. Trong một số trường họp khi có một phụ thuộc
giữa
sự quan sát, xác suất kể trên có thể mâu thuẫn với xác suất tiền đề thứ hai do mọi
xác
suất luôn nhỏ hơn hoặc bằng một.
Mặc dù rằng sự thật có thể áp dụng rộng rãi, giả định độc lập thường không chính
xác, các naive Bayes classifier có vài thuộc tính làm cho nó hữu ích trong thực
hành. Đặc biệt thực hành, sự tách riêng của lớp có điều kiện phân loại đặc trưng có
nghĩa là mỗi phân loại có thể được ước tính độc lập như là một phân phối một
chiều.
Toàn bộ classifier là mạnh đủ để bỏ qua các thiếu sót nghiêm trọng của nó trong
những mô hình xác suất naive.

7


Đồ án thuật toán
4. Thuật toán phân loại văn bản Naive Bayes classifier

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ù Naïve
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á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:

tài liệu di sẽ được gán cho loại văn bản nào có xác suất hậu nghiệm cao nhất
nên được biểu diễn bằng công thức:

trong đó N là tổng số tài liệu.
Tóm lại phân loại văn bản sử dụng thuật toán Naive Bayes có thể diễn đạt
một cách ngắn gọn như sau:
Với mỗi văn bản D (document), người ta sẽ tính cho mỗi loại một xác
suất mà tài liệu D có thể thuộc vào lớp tài liệu đó bằng việc sử dụng luật Bayes:

8


Đồ án thuật toán

Trong đó: D là tài liệu cần phân loại, Ci là một tài liệu bất kì. Theo giả định
của Naive Bayes xác suất của mỗi từ trong tài liệu D là độc lập với ngữ cảnh xuất
hiện
các từ đồng thời cũng độc lập với vị trí của các từ trong tài liệu. Xác suất P(D |Cj)
được tính toán từ tần suất xuất hiện của các từ đơn wi (word) trong tài liệu D


1 là tổng số từ w trong tài liệu D:
Như vậy biểu thức (1) có thể được viết lại như sau:

Giá trị lớn nhất của xác suất P(Cj | D ) được đưa ra bởi nguời làm công tác phân
loại. Giá trị này được gọi là ngưỡng hay ranh rới giữa các lớp văn bản mà chúng có
thể chứa tài liệu D.
Ví dụ: Phân loại thư điện tử bằng Naive Bayes classifier
Đây là một ví dụ về làm việc naive Bayesian để phân loại các tài liệu phân loại
vấn đề. Xem xét các vấn đề của phân loại các tài liệu theo nội dung của họ, ví dụ
vào
thư rác và không phải là thư rác trong các thư điện tô. Hãy tưởng tượng rằng các
tài

9


Đồ án thuật toán
liệu được lấy ra tò một số lớp học của các tài liệu có thể làm mô hình như là bộ các
từ
mà ở đây xác suất từ thứ i của một tài liệu xảy ra trong một tài liệu từ lớp c có thể
được viết như:

Xử lý như vậy đã đơn giản các ý tưởng, hơn nữa bằng cách giả sử rằng xác suất
của một tò trong một tài liệu là độc lập với chiều dài của một tài liệu hoặc tất cả
các tài
liệu cùng một chiều dài.
Sau đó, xác suất của một tài liệu D, cho một lớp học c, là

Câu hỏi mà mong muốn có câu trả lời là: "xác suất nào để một tài liệu D thuộc

về một lớp học C?" Nói cách khác, P ( C | D ) ?
Bây giờ, theo định nghĩa:



Nên có:

10


Đồ án thuật toán

Giả định rằng thời điểm chỉ có hai lớp học, s và s (ví dụ như thư rác và
không phải là thư rác).

Bằng cách sử dụng các kết quả Bayesian trên, có thể viết:

Do đó:

Vì vậy có thể viết:

Và như vậy

11


Đồ án thuật toán

Cuối cùng, các tài liệu có thể được phân loại như sau:
Nếu nó là thư rác


ngược lại nó không phải là thư rác.
CHƯƠNG 2: PHÁT BIỂU VẤN ĐỀ
1. Đặt vấn đề
- Thư rác bắt đầu được gọi là "spam" sau chương trình truyền hình có tên "Monty
Python’s Flying Circus". Trong show truyền hình này, một nhóm cướp biển
Vikings đã vào ăn trong một nhà hàng chuyên phục vụ đồ hộp (spam), rồi hát toáng
lên một ca khúc lặp đi lặp lại 2 chữ "quảng cáo". Ý nghĩa ban đầu của thư rác rất rõ
ràng: Một thứ lặp đi lặp lại và gây ra sự bực tức, khó chịu cho những người xung
quanh. Đó chỉ là trong một phạm vi hẹp còn trong môi trường internet khi không
còn
khoảng cách về địa lý nữa thì sẽ có rất nhiều người phải chịu sự bực tức, cảnh
nhàm
chán gây ức chế tâm lý và cực kỳ mất thời gian vào nó.
- Phần lớn các thư không mời mà đến, các thư chào hàng quảng cáo bị cho là thư
rác theo nhận xét của số đông người dùng thư điện tử. Đây là vấn đề nan giải mà
các hệ thống, hòm mail, các nhà quản trị mạng đang phải đối mặt trong thời điểm
hiện nay khi mà xã hội thông tin ngày càng phát triển với tốc độ chóng mặt. Đe lọc
và phát hiện thư rác, cần có giải pháp lâu dài như các biện pháp kĩ thuật, quy ước
xã hội và có thể dùng đến pháp luật. Nhưng khi các giải pháp này được thi hành thì
chỉ trong một khoảng thời gian ngắn chúng đã bị phá vỡ bởi các spammer, nguyên
nhân chính là họ luôn nghĩ ra những cái bẫy đánh lừa người dùng hay lách luật mà
các tổ chức chống thư rác quy ước.
- Như vậy giải pháp ngăn chặn thư rác nào hiệu quả và dùng được lâu dài? Một
phương pháp tốt nhất đó là để chính người dùng thư điện tô ngăn chặn thư rác, bởi
họ
12


Đồ án thuật toán

hiểu vấn đề một cách tường minh nhất. Chúng ta sẽ dùng cảm nhận về thư rác của
mỗi người để huấn luyện cho các bộ lọc thư rác của chính họ. Mỗi bộ lọc sẽ xử lý
thư rác tùy theo phong cách của từng người dùng thư điện tử. Và mô hình thống kê
Bayes được áp dụng để thực thi ý tưởng này. Từ những đặc điểm trên, ta thấy rằng
việc xây dựng được một bộ lọc thư rác thông minh có thể loại bỏ một cách chính
xác hiện nay là một nhiệm vụ còn nhiều thách thức.
2. Bài toán
- Thư điện tử là một trong những phương tiện để giao tiếp đáng tin cậy và hầu
như không tốn kém chi phí sử dụng. Phạm vi sử dụng của nó rộng khắp trên toàn
thế
giới và có thể dễ dàng truy cập bằng hầu hết các phương tiện truyền thông đã biến

thành nạn nhân của những kẻ spam. Hậu quả đơn giản nhất là làm tốn băng thông
mạng và nghiêm trọng hơn là làm mất thời gian của người dùng thư điện tử, làm
lan
truyền vi rút máy tính. Có thời điểm người ta thống kê được rằng có đến 60% thư
điện tà là thư rác và mỗi ngày một người dung thư điện tử phải nhận ít nhất là 6 cú
spam.
- Chúng ta không thể đổi địa chỉ hòm thư mỗi lần bị spam bởi điều này không
những không hạn chế được thư rác mà có khi còn làm cho nó gia tăng. Vậy cần
phải tìm ra một giải pháp chống thư rác sử dụng bộ lọc được gắn thuật toán phân
loại với tính năng hiệu quả và kĩ thuật đơn giản dễ cài đặt. Và một yêu cầu không
thể thiếu là
có làm sao với thuật toán đó những kẻ spam hiểu rằng việc chúng cố tình spam là

dụng
3. Dùng luật Bayes tính xác suất
Tính xác suất cho mỗi thẻ ta dùng luật Bayes để tính. Giả sử ta cần tính xác
suất cho thẻ chứa tò ‘promotion ’.Từ này chúng ta thường xuyên gặp trong thư điện
tử mời chào dịch vụ maketing. Công thức tính theo luật Bayes:


Trong đó:
 Pr(S\ W) là xác suất mà thư mà chứa từ ‘promotion ’là thư rác
 Pr(S) là xác suất mà thư bất kì là thư rác
13


Đồ án thuật toán
 P(W \S) là xác suất mà từ "promotion" xuất hiện trong thư rác
 Pr(H) là xác suất mà một bản tin bất ki không là thư rác
 P(W \H) là xác suất mà từ "promotion" xuất hiện trong thư rác
Như đã nói ở trên, những thống kê gần đây cho thấy 80% thư điện tử là thư rác
nên ta sẽ có:

Tuy nhiên để cho đơn giản và đã qua thực tế nên người ta chọn các xác suất
trước là giống nhau và đều có giá trị bằng 0.5. Tức là:

Bộ lọc mà dùng giả thiết này được gọi là "không đổi xứng", có nghĩa rằng chúng
không có sự đối xử phân biệt các thư đến. Giả thiết này cho phép rút gọn công
thức ở trên thành:

Bộ lọc thư rác Bayesspam vận dụng chính xác công thức trên để tính xác suất
cho mỗi từ đơn.
Sau khi đã tính được xác suất thư chứa từ đơn là thư rác ta cần kết hợp các xác suất
đơn đó lại thành một xác suất cuối cùng. Xác suất này dùng để đánh giá thư mà
chứa tất cả các từ đơn đó có xác suất là thư rác là bao nhiêu. Công thức tính xác
suất
kết hợp là:

Trong đó:

 p là xác suất thư đang xét là thư rác
 pl là xác suấtp(S\ W1), ứng với từ đầu tiên (ví dụ từ "promotion")
 p2 là xác suấtp(S\ W2) , ứng với từ thứ hai (ví dụ tò "offer")
 ...
 pN là xác suất p(S|W N), ứng với từ thứ N (ví dụ tò "home")
Kết quả p thường được dùng so sánh với một ngưỡng nào đó để quyết định
thư đang xét có xác suất p đó có là thư rác hay không. Neu p lớn hơn giá trị
14


Đồ án thuật toán
ngưỡng,
thư đó sẽ bị đánh dấu là thư rác, ngược lại sẽ không bị đánh dấu là thư rác.

4. Huấn luyện cho bộ lọc Bayes
Sử dụng hai tập thư điện tà huấn luyện, một tập là thư rác và tập còn lại không
phải là thư rác. Mỗi tập chứa khoảng 4000 thư. Đem số lần xuất hiện của mỗi thẻ
trong mỗi tập thư điện tử. Mỗi lần đếm kết thúc với hai bảng băm. Mỗi bảng băm
tương ứng với mỗi tập thư điện tử, bảng này là ánh xạ các thẻ đến số lần xuất hiện
của thẻ đó.
Tiếp theo chúng ta tạo ra bảng băm thứ 3, bảng băm này ánh xạ mỗi thẻ tới
xác suất mà một email chứa nó là email spam. Ta tính theo công thức sau đây

Trong đó:
 N good ứng với số thư không phải là thư rác.
 N bad ứng với số thư là thư rác.
Công thức trên được diễn tả theo các biểu thức của ngôn ngữ Arc. Mỗi biểu
thức là một cặp dấu ngoặc đơn. Trong ngoặc là một danh sách với biểu thức đứng ở
vị trí đầu tiên theo sau là các tham số. Thực hiện biểu thức từ trái qua phải.
Ví dụ:

(< (+ g b) 5) tương đương với (g + b) < 5.
Công thức này sẽ tính xác suất cho một từ hay thẻ (word) như sau: Thẻ được
lấy từ trong bảng good, là bảng băm các thẻ của tập thư không phải là thư rác và
nhân
đôi lên. Nhân đôi lên để giảm độ chênh lệch xác suất giữa thư rác và không phải
thư
rác, tăng độ chính xác trong việc phân loại. Tiếp theo cũng thẻ đó ta lấy từ bảng
bad,
là bảng băm các thẻ tập thư rác. Như yậy ta có chỉ số g ứng với 2 lần suất hiện của
thẻ
trong tập thư không phải thư rác và b ứng với số lần xuất hiện của thẻ trong trong
tập
15


Đồ án thuật toán
thư rác. Neu như tổng g và b nhỏ hơn 5 thì thẻ sẽ bị loại bỏ. Xác suất tính được sẽ
nằm trong khoảng giá trị từ .01 đến .99. Xét cho cùng thì việc tính toán ở trên
tương
ứng với công thức tính xác suất ở dạng luật Bayes đơn giản như sau:

Như vậy kết quả của quá trình huấn luyện là một bảng băm hay nói khác hơn là
một cơ sở dữ liệu rút ra từ tập thư huấn luyện. Bảng băm này là ánh xạ của các thẻ
đến các giá trị xác xuất của chúng. Bảng băm này là cơ sở quyết định cho việc tính
toán xác suất của một lá thư điện tử là thư rác.
CHƯƠNG 3: KẾT QUẢ VÀ ỨNG DỤNG
- Như đã nói từ đầu toán học thống kê đóng vai trò rất quan trọng trọng trong mọi
lĩnh vực. Thống kê giúp cho việc nắm bắt đánh giá tình hình trở lên trực quan và
dễ hiểu hơn. Xử lý và ứng dụng dữ liệu thống kê đem lại hiệu quả lớn lao trong
việc tiên đoán và từ đó có thể xây dựng lên một hệ tự động hóa hoạt động chính

xác. Hướng tiếp cận thống kê theo lý thuyết Bayes khá đơn giản nhưng đem lại
hiệu quả rất cao chính vì thế mà nó được ứng dụng khá phổ biến trong hầu hết các
lĩnh vực.
- So với các phương pháp khác, phương pháp thống kê Bayes lập luận theo kinh
nghiệm được tích lũy áp dụng vào mô hình phân loại đối tượng linh hoạt hơn, phù
hợp với đặc trưng của bài toán hơn. Các cơ chế ước lượng cũng gần gũi với cách
suy luận thông thường chính vì vậy mà các kết quả phân loại tương đối giống với
cách phân loại thông thường.
- Các kết quả đã đạt được là:
- Đồ án đã tập trung nghiên cứu về lý thuyết Bayes, từ bước cơ sở đó tìm hiểu tiếp
về một ứng dụng của nó liên quan trực tiếp đến ngành công nghệ thông tin đó là
ứng dụng lọc thư rác. Quá trình tìm hiểu về nguyên lý và cách thức hoạt động
củabộ lọc đã rút ra được những kết luận về ưu nhược điểm của tiếp cận thống kê
Bayes trong việc phân loại thư rác. Đối với vấn đề ứng dụng thực tế, khoá luận sử
dụng plugin BayesSpam như một đối tượng chính để tìm hiểu và nghiên cứu. Đối
với vấn đềáp dụng lý thuyết Bayes, khoá luận nghiên cứu xây dựng các công thức
tính xác suất sao cho việc xử lý thông tin trở lên nhanh gọn và có độ chính xác cao.
- Từ việc tìm hiểuứng dụng BayesSpam, khoá luận đã rút ra được một số nhận định
16


Đồ án thuật toán
về ưu điểm và nhược điểm của bộ lọc trong quá trình hoạt động. Kết quả phân loại
thư rác nhìn chung là gần giống với các kết quả đánh giá thư bởi người dùng.
- Tuy nhiên, do thời gian có hạn cũng như các kiến thức chuyên môn về hệ thống
thư điện tử nên các kết luận rút ra được trong quá trình nghiên cứu còn nhiều hạn
chế. Dưới đây là những ưu nhược điểm chính của bộ lọc thư rác Bayes.
- Những ưu điểm chính:
 Ưu điểm của bộ lọc thư rác Bayes đó là nó có thể được huấn luyện bởi chính
người dùng cơ sở. Đây có thể thể nói là ưu điểm lớn nhất, nó tạo ra được nét

đặc trưng về cách nhìn nhận thư rác của mỗi người dùng.
 Các thư rác mà một người dùng nhận được thường liên quan tới các hoạt
động trực tuyến của người dùng. Ví dụ, một người sử dụng có thể đã được
đăng ký vào một bản tin trực tuyến mà người sử dụng xem xét như là thư
rác. Đang xem thông tin này có thể chứa các từ ngữ được phổ biến cho tất cả
các bản tin, chẳng hạn như tên của bản tin và nguồn gốc của nó địa chỉ
email. Bộ lọc thư rác Bayesian sẽ chỉ định một xác suất cao hơn dựa trên
cách nhìn nhận của người sử dụng.
 Thư điện thử hợp pháp sẽ nhận được nhìn nhận theo xu hướng khác nhau đối
với mỗi người. Ví dụ, trong môi trường một công ty, tên công ty của bạn và
tên của khách hàng sẽ được đề cập thường xuyên. Các bộ lọc sẽ chỉ định một
thư rác xác suất thấp hơn cho các email có chứa các tên đó.
 Xác suất của các từ là duy nhất đối với mỗi người dùng và có thể lớn dần
theo thời gian huấn luyện, cùng với sự hiệu chỉnh việc huấn luyện mỗi khi
có thư lọc sai. Kết quả là, lọc thư rác Bayesian tăng độ chính xác khi được
đào tạo thường xuyên theo các quy tắc được xác định trước.
- Những nhược điểm chính:
 Một kỹ thuật được sử dụng bởi Spammer nhằm cố gắng để giảm tính hiệu
quả của bộ lọc thư rác là dựa vào chính nguyên tắc hoạt động của nó. Kĩ
thuật này sẽ chèn các từ mà không phải là bình thường liên kết với các nội
dung spamvới số lượng lớn văn bảnhợp pháp(thu thập từ các nguồn tin tức
hợp pháp hay văn chương).Do đó giảm giá trị xác suất kết hợp của thư điện
tử là thư rác, làm cho nó càng có nhiều khả năng vượt qua bộ lọc thư rác
Bayes.
 Một kỹ thuật khác được sử dụng để che mắt bộ lọc thư rác Bayes đó là thay
thế các văn bản bằng hình ảnh, hoặc trực tiếp đặt liên kết chứa nội dung
spam đến hình ảnh. Toàn bộ nội dung của tin nhắn, hoặc một số phần của nó,
được thay thế bằng một hình ảnh có cùng một nội dung được trình bày lôi
17



Đồ án thuật toán
cuốn người xem. Bộ lọc thư rác thường không thể phân tích hình ảnh này,
mà có thể chứa các từ nhạy cảm như "khiêu dâm". Tuy nhiên, nhiều hệ thống
thư điên tử đã vô hiệu hoá màn hình hiển thị của liên kết hình ảnh vì lý do
bảo mật, nhưng các spammer lại gửi liên kết đến hình ảnh ở xa có thể tiếp
cận với các mục tiêu spam ít hơn. Ngoài ra, một hình ảnh có kích thước lớn
hơn kích thước tương đương của văn bản. Do đó, các spammer cần nhiều
hơn nhu cầu băng thông để gửi tin nhắn trực tiếp bao gồm cả hình ảnh.
- Do vậy, sau bước tìm hiểu lý thuyết và ứng dụng thì hướng nghiên cứu tiếp của
đề tài nhằm tăng hiệu quả lọc là:
 Tìm ra cái nhìn chung về thư rác của những người dùng thư trong cùng hệ
thống thư điện tử. Bằng cách rút ra những email có xác suất là thư rác cao để
bổ xung vào tập huấn luyện chung cho tất cả mọi ngườinhằm gia tăng kinh
nghiệm cho bộ lọc.
 Ngăn chặn việc Spam bằng hình ảnh bằng việc đưa ra thông báo là thư rác
nếu nó có nội dung chủ yếu là đồ họa. Đơn giản nhất là không cho hiển thị
hình ảnh khi người dùng duyệt thư trừ khi họ có nhu cầu xem hình ảnh thì tự
họ sẽ bật hiển thị.
 Tích hợp phân tích hình ảnh để lấy ra văn bản trong hình nhằm giảm việc lọc
sai do loại bỏ tất cả thư có nội dung chủ yếu đồ họa. Việc này đòi hỏi hệ
thống phải mạnh cùng thuật toán phân tích hình ảnh thông minh.
 Bổ xung thêm vào tập các từ trung tính tiếng Việt cho bộ lọc nhằm tăng tốc
và tiết kiệm tài nguyên cho cơ sở dữ liệu. Ví dụ như các từ trung tính tiếng
việt ứng với các từ trung tính tiếng Anh như: thì, là, ở, cái, con, và, hoặc, ....

18


Đồ án thuật toán


TÀI LIỆU THAM KHẢO
1. Nguyễn Quốc Đại, Lý thuyết Bayes, mạng Bayes.
2. Nguyễn Thanh Sơn, Lê Khánh Thuận; Lý thuyết xác suất và thống kê toán;
NXB Thống kê.
3. Azam. N, Dar. H. A, Marwat. S; Comparative study on Feature Space
Reduction for Spam Detection.
4. Wikipedia ;Bayesian Spam Filtering. Xem tại địa chỉ
/>5. Wikipedia ;Sequential Bayesian Filtering. Xem tại địa chỉ
/>6. Nguyễn Văn Huy. Xem tại địa chỉ />
19


Đồ án thuật toán

PHỤ LỤC
I.

DỮ LIỆU BAN ĐẦU

- Ban đầu mình sẽ chuẩn bị 1 tập huấn luyện gồm 10 file text đánh dấu là spam
và 10 file text đánh dấu là không spam (nếu bạn có càng nhiều file càng tốt). Tỉ
lệ ở đây là 50:50 tức là nhận 1 email tới thì khả năng nó là spam là 50%.

- Sau mỗi lần kiểm tra được đó có phải là email spam không ta lại thêm nó vào
tập huấn luyện và tỉ lệ sẽ khác dần đi. Ví dụ nhận được 10 email tiếp theo đều
không phải là spam thì tỉ lệ spam/non-spam sẽ là khoảng 30:70 như thế 1 email
mới sẽ có khả năng spam là 30%.
20



Đồ án thuật toán

21


Đồ án thuật toán
II.

CHẠY TẬP HUẤN LUYỆN

- Mình sẽ duyệt từng file spam và tách thành các túi từ (mỗi túi từ 1 Set các từ
phân biệt nhau). Sau khi duyệt xong 10 file ta sẽ được 1 List gồm 10 túi từ spam.
Tương tự duyệt và tác các file non-spam ta cũng được 1 list gồm 10 túi từ nonspam.
- Sau khi tách được 2 List túi từ ta ghi nó vào file result_training.dat để lúc thực
hiện kiểm tra mail spam thì chỉ việc đọc từ file này ra chứ không cần chạy huấn
luyên nữa.

22


Đồ án thuật toán

23


Đồ án thuật toán

24



Đồ án thuật toán
III.

TIẾN HÀNH KIỂM TRA MAIL SPAM

- Mình cũng sẽ tách mail cần kiểm tra thành 1 túi từ.
- Áp dụng phương pháp phân loại bayes đơn giản, ta sẽ tính tỉ lệ của từng từ trong
túi từ này có trong List túi từ spam và non-spam là bao nhiêu sau đó lấy tích của
chúng và nhân với tỉ lệ spam:non-spam và so sánh 2 kết quả.
Ví dụ: mail cần kiểm tra có 100 từ, tỉ lệ của từng từ trong List túi từ spam nhân với
nhau là A; tỉ lệ của từng từ trong túi từ non-spam là B. Tỉ lệ spam:non-spam là X:Y
(ban đầu là 50:50 nhưng con số này thay đổi sau mỗi lần thêm mail kiểm tra vào
tập huấn luyện)
- Để biết mail mới có phải là spam hay không ta so sánh A.X với B.Y. Nếu A.X >
B.Y thì mail mới là spam và ta thêm túi từ mới vào List túi từ spam ngược lại thì
mail mới là non-spam, ta thêm túi từ mới vào List túi từ non-spam và lưu lại.

25


×