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

Tài liệu Luận văn tốt nghiệp "Tìm hiểu các hướng tiệp cận phân loại email và xây dựng phần mềm mail client hỗ trợ tiếng Việt" docx

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 MB, 106 trang )


1
I HC QUC GIA TP. H CHÍ MINH
TRNG I HC KHOA HC T NHIÊN
KHOA CÔNG NGH THÔNG TIN
 MÔN H THNG THÔNG TIN
LÊ NGUYN BÁ DUY –TRN MINH TRÍ
TÌM HIU CÁC HNG TIP CN PHÂN LOI
EMAIL VÀ XÂY DNG PHN MM MAIL CLIENT
 TR TING VIT
KHOÁ LUN C NHÂN TIN HC
TP. HCM, NM 2005

2
I HC QUC GIA TP. H CHÍ MINH
TRNG I HC KHOA HC T NHIÊN
KHOA CÔNG NGH THÔNG TIN
 MÔN H THNG THÔNG TIN
LÊ NGUYN BÁ DUY -0112050
TRN MINH TRÍ -0112330
TÌM HIU CÁC HNG TIP CN PHÂN LOI
EMAIL VÀ XÂY DNG PHN MM MAIL CLIENT
 TR TING VIT
KHOÁ LUN C NHÂN TIN HC
GIÁO VIÊN HNG DN
THY LÊ C DUY NHÂN
NIÊN KHÓA 2001-2005

3
I CM N
Trc tiên, chúng tôi xin chân thành cm n thy Lê c Duy Nhân, ngi


ã hng dn chúng tôi thc hin  tài này. Nh có s hng dn, ch bo tn tình
ca thy, chúng tôi ã hoàn thành khoá lun này.
Chúng con xin kính gi lòng bit n, kính trng ca chúng con n ông bà,
cha m và các ngi thân trong gia ình ã ht lòng nuôi chúng con n hc, luôn
luôn  bên chúng con,ng viên giúp  chúng con vt qua khó khn
Chúng em xin cm n tt c các thy cô trng i hc Khoa Hc T Nhiên,
c bit là các thy cô trong khoa Công Ngh Thông Tin ã ht lòng ging dy,
truyn t nhiu kin thc và kinh nghim quý báu cho chúng em. Chúng em cng
xin chân thành cm n khoa Công Ngh Thông Tin, b môn H Thng Thông Tin
ã to mi u kin thun li trong quá trình thc hin khoá lun ca chúng em.
Chúng tôi xin chân thành cm n bn bè trong lp cng nh các anh chi
trc ã giúp , óng góp ý kin cho chúng tôi.
Vi thi gian nghiên cu ngn, trong vòng 6 tháng và nng lc ca nhng
ngi làm  tài, chc chn  tài còn có nhiu thiu sót. Chúng tôi rt mong nhn
c nhng góp ý, nhn xét  tài c hoàn thin hn.
Thành ph H Chí Minh
Tháng 7 nm 2005
Nhng ngi thc hin:
Lê Nguyn Bá Duy – Trn Minh Trí.

4
v Mc lc:
Chng 1 : MU 9
1.1 Gii thiu: 10
1. 2 Yêu c u bài t oán: 12
1.3 B cc khoá lun : 12
Chng 2 : TNG QUAN 14
2.1 Các cách thc con ngi x lý vi spam : 15
2.2 Các phng pháp tip cn: 16
2.2.1 Complaining to Spammers' ISPs : 16

2. 2.2 Ma il Bl ackl i sts /Whit el is ts: 16
2.2.3 Mail volume : 18
2. 2.4 Sign ature/ Checksum schemes: 19
2.2.5 Genetic Algorithms: 20
2.2.6 Ru le-Based (hay là Heuristic): 21
2.2.7 Challenge-Response: 22
2.2.8 Machine Learning ( Máy hc ): 23
2.3 Phng pháp la chn : 24
2.4 Các ch sánh giá hiu qu phân loi email : 24
2.4.1 Spam Recall và Spam Precision: 24
2.4.2 T l li Err (Error) và t l chính xác Acc(Accuracy) : 25
2.4.3 T l li gia trng WErr (Weighted Error ) và t l chính xác gia trng (Weighted
Accuracy): 25
2.4.4 T s chi phí tng hp TCR (Total Cost Ratio ): 26
Chng 3 : GII THIU CÁC KHO NG LIU DÙNG KIM TH
PHÂN LOI EMAIL 28
3.1 Kho ng liu PU (corpus PU ): 29
3.1.1 Vài nét v kho ng liu PU: 29
3.1.2 Mô t cu trúc kho ng liu PU: 30
3.2 Kho ng liu email ch: 31
Chng 4 : PHNG PHÁP PHÂN LOI NAÏVE BAYESIAN VÀ NG
DNG PHÂN LOI EMAIL 33
4.1 Mt vài khái nim xác sut có liên quan 34
4.1.1 nh ngha bin c, xác sut : 34
4.1.2 Xác sut có u kin, công thc xác sut y  – công thc xác sut Bayes35
4.2 Phng pháp phân loi Naïve Bayesian : 36
4.3 Phân loi email bng phng pháp Naïve Bayesian : 37
4.3.1 Phân loi email da trên thut toán Naïve Bayesian 38
4.3.2 Chn ngng phân loi email : 39
Chng 5 : THC HIN VÀ KIM TH PHÂN LOI EMAIL DA

TRÊN PHNG PHÁP PHÂN LOI NAÏVE BAYESIAN 41
5.1 Cài t chng trình phân loi email da trên phng pháp phân loi Naïve
Bayesian: 42
5.1.1 Khái nim “Token” : 42
5.1.2 Vector thuc tính : 42
5.1.3 Chn ngng phân loi : 43
5.1.4 Cách thc hin :. 43

5
5.2 Th nghim hiu qu phân loi 51
5.2.1 Th nghim vi kho ng liu pu: 51
5.2.2 Th nghim vi kho ng liu email ch : 60
5.3 u – nhc m ca phng pháp phân loi Naïve Bayesian: 61
5.3.1 u m : 61
5.3.2 Khuyt m : 62
Chng 6 : PHNG PHÁP ADABOOST VÀ NG DNG PHÂN LOI
EMAIL 63
6.1 Thut toán AdaBoost : 64
6.2 AdaBoost trong phân loi vn bn nhiu lp : 65
Thut toán AdaBoost MH phân loi vn bn nhiu lp : 66
6.3 ng dng AdaBoost trong phân loi email: 66
6.3.1 Thut toán AdaBoost.MH trong trung hp phân loi nh phân 67
Gii hn li hun luyn sai : 68
6.3.2 Phng pháp la chn lut yu : 70
Chng 7 : THC HIN VÀ KIM TH PHÂN LOI EMAIL DA
TRÊN PHNG PHÁP ADABOOST 73
7.1 Cài t b phân loi email da trên phng pháp AdaBoost: 74
7.1.1 Tp hun luyn mu và tp nhãn : 74
7.1.2 Xây dng tp lut yu ban u : 75
7.1.3 Th tc WeakLearner chn lut yu: 76

7.1.4 Phân loi email : 76
7.2 Th nghim hiu qu phân loi : 76
7.2.1 Th nghim vi kho ng liu pu: 76
7.2.2 Th nghim vi kho ng liu email ch: 79
7.3 u – nhc m ca phng pháp phân loi AdaBoost: 80
7.3.1 u m : 80
7.3.2 Khuyt m : 80
Chng 8 : XÂY DNG CHNG TRÌNH MAIL CLIENT TING VIT
H TR PHÂN LOI EMAIL 82
8.1 Chc nng: 83
8.2 Xây dng b lc email spam : 83
8.3 T chc d liu cho chng trình : 84
8.4 Giao d in ngi dùng : 85
8.4.1 S màn hình : 85
8.4.2 Mt s màn hình chính : 85
Chng 9 : TNG KT VÀ HNG PHÁT TRIN 94
9.1 Các vic ã thc hin c : 95
9.2 Hng ci tin, m rng : 95
9.2.1 V phân loi và lc email spam: 95
9.2.2 V chng trình Mail Client: 96
TÀI LIU THAM KHO 97
Ting Vit : 97
Ting Anh : 97
Ph lc 99

6
Ph lc 1 : Kt qu th nghim phân loi email bng phng pháp Bayesian
vi kho ng liu hc và kim th pu 99
Ph lc 2 : Kt qu th nghim phân loi email bng phng pháp
AdaBoost vi kho ng liu hc và kim th pu 103

1. Kt qu thc hin vi thut toán AdaBoost with real value predictions
103
2. Kt qu thc hin vi thut toán AdaBoost with discrete predictions 105

7
Danh mc các hình v:
Hình 3-1Email sau khi tách token và mã hoá (trong kho ng liu pu) 29
Hình 5-1Mô t cu trúc bng bm 48
Hình 5-2 Lc  so sánh các ch s spam recall (SR) và spam precision (SP) theo
s token th nghim trên kho ng liu PU1 vi công thc 5-7 (
9
λ=
) 53
Hình 5-3 Lc  ch s TCR theo s token th nghim trên kho ng liu PU1 vi
công thc 5-7 (
9
λ=
) 53
Hình 5-4 Lc  so sánh các ch s spam recall (SR) và spam precision (SP) theo
s token th nghim trên kho ng liu PU2 vi công thc 5-5 (
9
λ=
) 55
Hình 5-5 Lc  ch s TCR theo s token th nghim trên kho ng liu PU2
vi công thc 5-5 (
9
λ=
) 55
Hình 5-6 Lc  so sánh các ch s spam recall (SR) và spam precision (SP) theo
s token th nghim trên kho ng liu PU3 vi công thc 5-6 (

9
λ=
) 57
Hình 5-7 Lc  ch s TCR theo s token th nghim trên kho ng liu PU3 vi
công thc 5-6 (
9
λ=
) 57
Hình 5-8 Lc  so sánh các ch s spam recall (SR) và spam precision (SP) theo
s token th nghim trên kho ng liu PUA vi công thc 5-5 (
9
λ=
) 59
Hình 5-9 Lc  ch s TCR theo s token th nghim trên kho ng liu PUA
vi công thc 5-5 (
9
λ=
) 59

8
Danh mc các bng:
Bng 3-1Mô t cu trúc kho ng liu PU 31
Bng 5-1 Kt qu kim th phân lai email bng phng pháp phân lai Naïve
Bayesian trên kho ng liu PU1 52
Bng 5-2 Kt qu kim th phân lai email bng phng pháp phân lai Naïve
Bayesian trên kho ng liu PU2 54
Bng 5-3 Kt qu kim th phân lai email bng phng pháp phân lai Naïve
Bayesian trên kho ng liu PU3 56
Bng 5-4 Kt qu kim th phân lai email bng phng pháp phân lai Naïve
Bayesian trên kho ng liu PUA 58

Bng 5-5 Kt qu kim th phân lai email bng phng pháp phân lai Bayesian
trên kho ng liu email ch 61
Bng 7-1 Kt qu th nghim phân loi email vi ng liu s PU bng thut toán
AdaBoost with real -value predictions 77
Bng 7-2 Kt qu th nghim phân loi email vi ng liu s PU bng thut toán
AdaBoost with discrete predictions 77
Bng 7-3 kt qu th nghim phân loi email vi ng liu email ch bng thut
toán AdaBoost with real-value predictions 79
Bng 7-4 Kt qu th nghim phân loi email vi ng liu email ch bng thut
toán AdaBoost with discrete predictions 80

9
Chng 1 : MU

10
1.1 Gii thiu:
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
ng ln email, tuy nhiên không phi 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idùng chp nhn.
Spam chính là nhng email c phát tán mt cách rng rãi không theo bt
c mt yêu cu nào ca ngi nhn vi s lng ln (unsolicited bulk email
(UBE)), hay nhng email qung cáo c gi mà không có yêu cu ca ngi nhn
(unsolicited commercial email (UCE)) [1].
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

11
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 ) [2]. 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à cho chm li vì s lng spam c
chuyn i trên mng là cc ln [3]. Theo thng kê ca ZDNet  th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%
ng email trên mng là spam
1
, gn ây ã t con s 50%
2
. 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 [4].
 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 chúng tôi chn hng nghiên cu ”Tìm
hiu các hng tip cn cho bài toán phân loi email và xây dng phn mm
Mail Client h tr ting Vit “ 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.
1
/>2
/>
12
1.2 Yêu cu bài toán:
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 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.
1.3 B cc khoá lun :
Chúng tôi chia khoá lun làm 9 chng
§ Chng 1 Gii thiu v tài, bài toán phân loi email.
§ Chng 2 Tng quan : trình bày mt s hng tip cn phân loi email

và chng email spam,ng thi có s nhn xét ánh giá các phng
pháp, tó có c s chn la hng tip cn gii quyt vn .
§ Chng 3 : Gii thiu và mô t v c s d liu dùng  hc và kim th
Hai chng tip theo, chúng tôi trình bày c s lý thuyt và thc hin
phân loi email theo phng pháp Bayesian.
§ Chng 4: Trình bày c s lý thuyt cho hng tip cn da trên phng
pháp Bayesian.
§ Chng 5: Thc hin phân loi email d trên phng pháp Bayesian và
kim th.
Hai chng tip theo, chúng tôi trình bày c s lý thuyt và thc hin
phân loi email theo phng pháp AdaBoost
§ Chng 6: Trình bày c s lý thuyt cho hng tip cn da trên thut
toán AdaBoost.
§ Chng 7: Thc hin phân loi d trên phng pháp AdaBoost và kim
th.

13
§ Chng 8: Xây dng phn mm email Client ting Vit h tr phân loi
email
§ Chng 9: Tng kt, trình bày v nhng vn ã thc hin, nhng kt
qut c, xut hng m rng, phát trin trong tng lai.

14
Chng 2 : TNG QUAN

15
2.1 Các cách thc con ngi x lý vi spam :
Trên th gii ã có nhiu t chc, công ty phát trin nhiu cách thc khác
nhau  gii quyt vn  spam. Có nhiu h thng c xây dng sn mt “danh
sách en” (Blacklist ) cha các tên min mà tó spam c to ra và phát tán, và

d nhiên là các email n t các tên min này hoàn toàn b khóa (block out). Mt s
h thng cn c vào header ca email (nhng trng nh ni gi (from ), tiêu 
(subject) ) và loi b nhng email có a ch xut phát t nhng spammer (ngi
phát tán spam). Vài h thng khác li tìm kim trong ni dung ca email, nhng du
vt cho thy có s tn ti ca spam chng hn email có quá nhiu du than, s ch
cái c vit hoa nhiu mt cách bt bình thng …
Tuy nhiên các spammer ngày càng tinh vi, vì th các k thut dùng  chng
spam cng phi c ci tin, và chính nhng ci tin này càng thôi thúc các
spammer tr nên ranh ma và tinh vi hn… Kt qu là nh hin nay, các email spam
gn nh ging vi mt email thông thng. Tuy nhiên email spam có mt u
không bao gi thay i ó là bn cht ca nó. Bn cht ó chính là mc tiêu qung
cáo sn phm hay dch v. Nó là c s cho phng pháp lc email da trên ni dung
(content based filtering).Theo ó, chúng ta c gng phát hin ra các ngôn ng qung
cáo (sales-pitch language) thay vì chú ý n các ch s thng kê ca email chng
hn nh có bao nhiêu ln xut hin ch “h0t chixxx!” …
Mt u quan trng cn phi cân nhc n khi lc spam là cái giá phi tr khi
lc sai. Nu mt b lc t chi nhn hu ht các email gi n hoc ánh du mt
email tht s quan trng nào ó là spam thì iu ó còn t hn c vic nhn tt c
email spam c gi n. Ngc li, nu có quá nhiu email spam vt c b lc
thì rõ ràng b lc hot ng không hiu qu, không áp ng c yêu cu ca ngi
s dng.

16
2.2 Các phng pháp tip cn:
2.2.1 Complaining to Spammers' ISPs :
• Ý tng :
Tìm cách làm tng chi phí gi spam ca các spammer bng
nhng li than phin, phn ánh n các ni cung cp dch v mng
(Internet Service Provider - ISP). Khi chúng ta bit chính xác nhng
email spam thc sc gi n t dch v ISP nào, ta s phn ánh

li vi dch vó và dch v này s t chi cung cp dch v cho các
spammer dùng gi spam.
• c m :
ây cng là gii pháp chng spam u tiên. Nhng li than
phin cng có tác dng ca nó. Nhng ni gi spam s b vô hiu hóa,
khi ó các spammer phi ng ký mt tài khon mi vi nhà cung cp
dch v ISP  có th tip tc phát tán các email spam ca mình. Dn
dn vic chuyn ni cung cp dch v s làm các spammer tn nhiu
chi phí và khi chúng ta phát hin càng sm thì chi phí trên ca các
spammer càng tng nhiu.
Cách này cng gp phi nhng khó khn ó là không th bit
chính xác nhng email spam này thc sn tâu do các spammer
ã khéo léo che giu i phn header ca email n i ngun gc. Do
ó cn phi hiu bit v header ca email  hiu rõ email spam này
tht s n t âu.
2.2.2 Mail Blacklists /Whitelists:
• Ý tng:
Mt danh sách en (Blacklist) các a ch email hay các máy
ch email (mail server) chuyên dùng ca các spammer sc thit

17
lp và da vào ó ta có th ngn chn nhn email spam c phát tán
t nhng ni này.
Vic thit lp danh sách các a ch email en hay máy ch gi
email này s do mt nhóm tình nguyn xác nhn. Mt s nhà cung cp
dch v mng ISP s dùng danh sách en kiu này và tng t chi
nhn email t nhng máy ch hay email trong dánh sách ó. Nh
vy, nhng email spam sc phân loi và chn ngay ti máy ch
nhn email.
• c m:

Phng pháp này bc u loi c khong 50% [5] email
spam.
Khuyt m ca phng pháp này là chúng không thng
u vi hn mt na s server mà spam ang s dng hin nay. Và
nu xác nhn sai danh sách en này thì vic dùng nó ng ngha vi
vic b qua mt lng ln email hp l.
Phng pháp này có th b qua mt nu nh các spammer gi
li email thông qua mt máy ch SMTP (Simple email Transfer
Protocol) có ngun gc hp pháp không k tên trong danh sách
“Blacklist”.
Ngoài ra, danh sách này không ch t chi nhn email t các
a ch IP (Internet Protocol) t nhng ni chuyên dùng gi spam mà
nó còn t chi luôn c nhng email mà có tên min nm trong danh
sách “Blacklist” này.
Cách này c áp dng ti mc nhà cung cp dch v mng
(ISP), và tht s hu dng vi ngi dùng nu h s dng mt ISP
áng tin cy.

18
Ngc li vi vic thit lp mt danh sách en “Blacklist” ta
còn có th thit lp mt danh sách “Whitelist”. Vi nhng a ch gi
email (hoc tên min domains) nm trong danh sách này sc các
ISP tng chp nhn email gi t nó. Mc nh tt c nhng email
khác s b t chi
Nu các spammer gi email spam vi phn “sender” ca email
có cùng tên min c chp nhn trong “Whitelist” thì email spam
vn có thn c tay ngi nhn.
2.2.3 Mail volume :
• Ý tng:
B lc s s dng thut toán  kim tra s lng email nhn

c t mt máy ch (host) c th trong các ln kt ni sau cùng
(cách này ã c b lc Spamshield
3
ca Kai s dng. Nu s
ng email nhn c ln hn mt ngng nào ó thì các email ó
sc phân loi là spam.
• c m:
B lc t ra hiu qu trong vic phân loi úng tt c các email
hp l trong iu kin vi mt ngng phân loi  cao.Nu b lc
c s dng cho cá nhân, thì nó hot ng rt hiu qu. Có th xem
ây là mt u im ca b lc bi vì vi email cá nhân thì nhng k
gi email qung cáo phi thit lp nhiu kt ni hn  gi mt s
ng email ging nhau. u này làm cho các email qung cáo ó d
dàng b phát hin da trên vic phân tích s lng email.
Mt hn ch ca b lc này là t l chp nhn phân loi sai
FAR (false acceptance rate) ca nó còn khá cao. Vi:
3


19
SN
S
n
FAR
n

=
SN
n


:  email spam mà b lc nhn là non-spam.
S
n
:  email spam thc sn b lc
2.2.4 Signature/ Checksum schemes:
• Ý tng:
ây là mt trong nhng phng pháp phân loi email da trên
ni dung. Khi mt email ti thì giá tr “Signature/ Checksum” sc
tính toán cho mi email này và so sánh nó vi giá tr tính c t
nhng email spam c trng trong t nhng email spam có sn trên
Internet. Nu giá tr “signature/ checksum” ca nhng email ti ging
vi bt k giá tr nào trong c s d liu thì email ó c ánh giá là
spam.
Mt cách n gin  tính giá tr này là gán mt giá tr cho mi
kí t, sau ó cng tt c chúng li. S là không bình thng nu 2
email khác nhau li có chung mt giá tr “signature/ checksum”.
• c m:
Cách tn công mt b lc kiu này là thêm vào ngu nhiên mt
vài ký t hay mt câu vô ngha trong mi email spam  to ra s
khác bit ca giá tr “signature”. Khi bn thy nhng th hn tp chèn
ngu nhiên trong phn tiêu  (subject) ca email, ó chính là cách 
tn công b lc da vào “signature/ checksum”.
Các spammer d dàng i phó i vi các b lc da trên
“signature/ checksum” bng phng pháp trên. Khi mà nhng ngi
vit các chng trình lc email tìm c cách chng li cách chèn

20
ngu nhiên này thì các spammer li chuyn sang cách khác. Vì th,
cách chng spam dùng các b lc “signature/checksum” cha bao gi
là mt cách tt.

B lc này c ng dng ti mc server,c các nhà cung
cp dch v mng (ISP) s dng.
Theo P.Graham [5], b lc kiu này ch lc khong 50-70%
spam
u im ca b lc này là ít khi phân loi sai email non-spam.
Brightmail
4
là phn mm chng spam da trên hng tip cn
này. Cách hot ng ca nó là to ra mt mng li các a ch email
gi. Bt kì email nào c gi n nhng a ch này thì u là spam
vì vi nhng email hp l thì him khi li c gi n nhng a ch
gi này. Vì vy, khi b lc nhn thy nhng email ging nhau gi n
mt a ch giã c to ra này thì nó s lc ra B lc phân bit
nhng email ging nhau da vào “signatures” ca chúng.
2.2.5 Genetic Algorithms:
• Ý tng:
B lc da trên thut toán di truyn (Genetic Algorithms) s
dng các b nhn dng c trng (“fearture detectors”)  ghi m
(score) cho mi email. Thc t, nhng “fearture detectors” này là mt
tp các lut c xây dng da trên các kinh nghim ã có (empirical
rules) và áp dng vào mi email  thu v mt giá tr s.
Thut toán di truyn này c biu din là nhng cây (trees)
và c kt hp vi mt tp hun luyn cùng vi mt hàm thích hp
“fitness function”.
4


21
 ch tin hóa (Evolutionary mechanism) ca thut toán
:thut tóan thc hin hai thao tác c bn là phép lai “crossover” và t

bin “mutation”. Mc ích tin trình này là tìm ra c mt giá tr
“score” nh nht da vào hàm “fitness function”. Giá tr “score” sau
ó sc s dng  phân loi email là spam hay non-spam.[6]
• c m:
ây là hng tip cn phân loi email da trên ni dung.
ng tip cn hiu qu nht cho b lc ti mc ISP c
ánh giá là da trên thut toán di truyn “Genetic Algorithms” [6]
im không thun li ca thut toán di truyn là òi hi kh
ng x lý phi ln.
ng tip cn này c ng dng trong trình lc spam
Spamassassin
5
. Nó hot ng rt hiu qu ti mc ISP và c nhiu
ngi ánh giá là mt trong nhng b lc hot ng hiu qu nht ti
mc ISP.
im yu ca trình lc “Spamassassin” là hot ng vi hiu
qu cha cao ti mc ngi dùng cá nhân.
2.2.6 Rule-Based (hay là Heuristic):
• Ý tng:
Da vào lut tìm kim các mu có du hiu là spam nh các t
và ng xác nh, hàng lot các ch hoa và du chm than, phn header
ca email sai nh dng, ngày trong email là  tng lai hoc quá
kh.ó là cách hu ht phn ln các trình lc spam hot ng t nm
2002.
• c m:
5


22
Hiu sut ca trình lc da trên lut (rule-based filters) khác

nhau rt nhiu. Cách n gin nht là loi b các email mà có cha
nhng t xu nào ó (ví d nhng t mà thng xut hin nhiu hay
ch xut hin trong spam). Nhng ây cng là im yu  các
spammer có th li dng  qua mt các b lc kiu này bng cách c
gng tránh s dng nhng t xu và thay bng nhng t “tt” -c
s dng nhiu trong email non-spam. Trong khi ó các email non-
spam thì b loi b nu vô tình cha mt vài t “xu” dng này. iu
này, dn n kh nng lc sai còn cao.
Mt u bt li khác là các lut dng này u là tnh. Khi các
spammer tìm ra c mt phng pháp mi  t qua thì nhng
ngi vit trình lc li phi vit nhng lut mi  lc các spam.
Nhng spammer chuyên nghip thì có th kim tra c nhng email
trên các h thng lc da trên lut trc khi gi chúng i.
Nu b lc c xây dng da trên lut phc tp thì vn phát
huy tác dng lc spam hiu qu. Ví d nh trình lc Spamassassin
lc lên n 90-95% spam.
Mt u thun li là b lc da trên lut tnh thì d cài t.
2.2.7 Challenge-Response:
• Ý tng:
Khi bn nhn c email t ai ó mà cha h gi cho bn trc
ó thì h thng lc challenge-response
6
gi ngc li 1 email yêu cu h
phi n 1 trang web và in y  thông tin vào form trc khi email
chuyn cho ngi dùng.
• c m:
6
/>
23
Li th ca h thng này là  lt li rt ít spam. u bt li ca

nó can thip thô bo n ngi gi. Bng cách s dng h thng này, ta
cn xác nh rõ ai là ngi gi email.
Mt m bt li khác ca h thng này là có nhiu email non-
spam b loi b và thi gian trì hoãn quá lâu. Ví d nh mt ngi mun
mi bn i d tic nhng ngi bn y s ch thy email tr li ca bn
vào ngày hôm sau và n lúc ó thì ã quá tr.
Nhiu trng hp ngi gi s không tr li cho các thông p
kiu này và email h gi s b tht lc.
S dng phng pháp dng này chng khác nào ta ang t cô lp
chính mình vi mi ngi xung quanh. H thng này s ging nh bc
ng bao quanh th gii luôn mun gi thông p cho ta.
2.2.8 Machine Learning ( Máy hc ):
• Ý tng:
Áp dng các png pháp máy hc trong các bài toán phân loi,
c bit là phân loi vn bn vào bài toán phân loi email, các thut toán
máy hc nh Naïve Bayesian [9],[17],[18] AdaBoost [13], Suppor
Vector Machine[18], , ã c s dng trong lnh vc phân loi vn bn,
nhn dng, …vi hiu qu cao. Ý tng là tìm cách xây dng mt b
phân loi nhm phân lai cho mt mu mi bng cách hun luyn nhng
mu ã có sn.
• c m
Phng pháp này có th áp dng  mc Server hay Client.
Hn ch là cn phi có mt kho ng liu (corpus) hun luyn ban
u  cho máy hc, vic hun luyn mt nhiu thi gian. Mt hn ch
na là hiu qu phân loi ph thuc vào kho ng liu dùng  hun
luyn.

24
2.3 Phng pháp la chn :
Trong nhng hng tip cn ã tìm hiu, chúng tôi chn hng tip cn

phân loi email bng phng pháp máy hc, phng pháp này có hiu qu cao,
ng thi cng rt khó b các spammer vt qua. Ngoài ra, hng tip cn này
có th áp dng c  mc Client
C th hng tip cn mà nhóm chúng tôi tìm hiu và th nghim là
phân loi email da trên thut toán hun luyn Naïve Bayes và Adaboost, hai
phng pháp này có mt s u im sau:
§ Hiu qu phân loi trong các lnh phân loi vn bn, nhn dng
ã c kim chng và khá cao
§ Thích hp cho tng ngi dùng c th và  mc Client
§ Có kh nng t hc  phân loi úng.
§ ng tip cn còn khá mi.
2.4 Các ch sánh giá hiu qu phân loi email :
2.4.1 Spam Recall và Spam Precision:
 tin li cho vic so sánh, ngi ta a ra hai ch sánh giá là spam
recall và spam precision.
Spam recall là t l phn trm gia s email –c b lc coi là spam - b
chn li và tng s email spam (thc s ) n b lc
Spam Precision là t l phn trm gia s email b chn thc s là spam
vi s email b chn -c b lc coi là spam, spam precision ánh giá mc 
an toàn ca b lc.
Công thc tính Spam Recall (SR) và Spam Precision(SP) nh sau:
SS
SS SN
n
SR
nn
−>
−> −>
=
+

Công thc 2-1 :Công thc tính Spam Recall

25
SS
SS NS
n
SP
nn
−>
−> −>
=
+
Công thc 2-2 : Công thc tính Spam Precesion
Vi :
ü n
SS >−
là s email là spam mà b lc nhn ra là spam
ü n
NS >−
là s email là spam mà b lc nhn ra là email non-spam
ü n
SN >−
là s email non-spam mà b lc nhn ra là spam
2.4.2 T l li Err (Error) và t l chính xác Acc(Accuracy) :
Trong vic phân loi email, hiu qu phân loi da vào t l chính xác (Acc)
hoc t l li (Err). Công thc tính t l chính xác và t l li nh sau :
NN SS
NS
nn
Acc

NN
−> −>
+
=
+
Công thc 2-3 :công thc tính t l chính xác
NS SN
NS
nn
Err
NN
−> −>
+
=
+
Công thc 2-4 : công thc tính t l li
Vi

N
N và
S
N là s email non-spam và s email spam cn phân loi

NN
n
>−
là s email là non-spam và c b lc nhn ra là non- spam

SN
n

>−
là s email là non-spam mà b lc nhn ra là spam

SS
n
>−
là s email là spam mà c b lc nhn ra là spam

NS
n
>−
là s email là spam mà c b lc nhn ra là non-spam
2.4.3 T l li gia trng WErr (Weighted Error ) và t l chính xác
gia trng (Weighted Accuracy):
Trong phân loi email có hai loi li : li nhn spam ra non-spam (false
negative) và li nhn non-spam ra spam(false positive) [3]. Li th hai là li

×