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

Nghiên cứu xây dựng hệ thống lọc thư rác có khả năng lọc thư rác tiếng Anh và tiếng Việt

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 (576.57 KB, 55 trang )

BỘ BƯU CHÍNH VIỄN THÔNG











BÁO CÁO ĐỀ TÀI


Nghiên cứu xây dựng hệ thống lọc thư rác có
khả năng lọc thư rác tiếng Anh và tiếng Việt

Mã số: 100-06-KHKT-RD




Chủ trì đề tài: TS. Từ Minh Phương
Tham gia thực hiện:
ThS. Phạm Văn Cường
ThS. Nguyễn Duy Phương
KS. Hoàng Trọng Huy











Hà nội 11-2006
2

Mục lục

Mở đầu 4
Chương 1: Thư rác và tác hại của thư rác 6
1.1. Định nghĩa thư rác 6
1.2. Các loại thư rác 6
1.3. Tác hại của thư rác 7
1.4. Quy trình và thủ đoạn gửi thư rác 8
1.4.1. Thu thập địa chỉ email 8
1.4.2. Tìm kiếm các máy tính trên Internet cho phép gửi thư 9
Chương 2: Các giải pháp phòng chống thư rác 12
2.1. Lọc thư thông qua địa chỉ IP 12
2.1.1. Sử dụng danh sách đen (Blacklists) 12
2.1.2. Sử dụng danh sách các địa chỉ tin cậy (Safe Sender Lists) 12
2.2. Lọc thư theo nội dung 13
2.2.1. Lọc thư rác dựa vào các dấu hiệu nhận biết 13
2.2.2. Lọc thư rác thông qua bỏ phiếu trên các danh sách trắng 14
2.2.3. Lọc thư sử dụng phương pháp heuristic 14
2.2.4. Lọc thư sử dụng phương pháp xác suất thống kê và học máy 15
2.3. Các phương pháp khác 16

2.3.1. Yêu cầu xác thực thư 16
2.3.2. Xác thực tự động 17
2.3.3. Yêu cầu trả tiền 17
2.3.4. Phản công 17
Chương 3: Lọc thư bằng cách phân loại tự động theo nội dung 19
3.1. Giới thiệu chung 19
3.2. Biểu diễn nội dung thư 20
3.3. Các phương pháp phân loại 22
3.4. Lọc thư sử dụng phân loại Bayes đơn giản 25
3.5. Lọc thư sử dụng Support Vector Machines (SVM) 28
3.6. Lọc thư tiếng Việt 31
3.6.1. Tình hình nghiên cứu và các vấn đề cần giải quyết 31
3.6.2. Biểu diễn thư bằng các đặc trưng - từ 33
3.6.3. Lựa chọn số lượng đặc trưng 34
3.6.4. Phân loại đồng thời thư tiếng Việt và thư tiếng Anh 35
3

3.6.5. Tiếng Việt có dấu và không dấu 36
3.7. Thử nghiệm và kết quả 36
3.7.1. Dữ liệu thử nghiệm 36
3.7.2. Phương pháp thử nghiệm 37
3.7.3. So sánh phương pháp phân loại 37
3.7.4. Lựa chọn độ dài và số lượng đặc trưng 38
3.7.5. Phân biệt theo ngôn ngữ trước khi lọc 39
3.7.6. Nhận xét về kết quả thử nghiệm 39
Chương 4. Xây dựng hệ thống lọc thư rác theo nội dung 41
4.1. Vị trí hệ thống lọc thư 41
4.2. Kiến trúc hệ thống lọc thư 42
4.3. Các thành phần chức năng 44
4.4. Thiết kế chi tiết 45

4.5. Sử dụng chương trình 49
4.6. Thử nghiệm hệ thống 51
Kết luận 53
Tài liệu tham khảo 54
4

Mở đầu

Thư rác (spam) là thư điện tử được gửi hàng loạt với nội dung mà người nhận
không mong đợi, không muốn xem, hay chứa những nội dung không liên quan đến
người nhận và thường được sử dụng để gửi thông tin quảng cáo
1
. Do có giá thành
tương đối thấp so với các phương pháp quảng cáo khác, thư rác hiện chiếm một tỷ
lệ lớn và ngày càng tăng trong tổng số thư điện tử được gửi qua Internet. Sự xuất
hiện và gia tăng thư rác không những gây khó chịu và làm mất thời gian của người
nhận mà còn ảnh hưởng tới đường truyền Internet và làm chậm tốc độ xử lý của
máy chủ thư điện tử, gây thiệt hại lớn về kinh tế.
Để loại bỏ hoặc giảm thiểu ảnh hưởng của thư rác, nhiều cách tiếp cận khác
nhau đã được nghiên cứu và sử dụng. Giải pháp đấu tranh với thư rác rất đa dạng,
bao gồm từ các cố gắng về pháp lý trong việc xây dựng luật ngăn chặn phát tán thư
rác cho tới những giải pháp kỹ thuật nhằm phát hiện và ngăn chặn thư rác trong
những giai đoạn khác nhau của quá trình tạo và phát tán thư. Trong số giải pháp
được sử dụng, lọc thư theo nội dung đang là một trong những giải pháp được sử
dụng rộng rãi và có triển vọng nhất. Lọc thư theo nội dung là phương pháp phân
tích nội dung thư để phân biệt thư rác với thư bình thường, kết quả phân tích sau
đó được sử dụng để quyết định chuyển tiếp thư đến người nhận hay không (trong
phạm vi nghiên cứu này, nội dung thư được giới hạn là những nội dung trình bày
dưới dạng văn bản).
Do việc lọc theo nội dung đòi hỏi phân tích phần văn bản chứa trong tiêu đề

hay nội dung thư, thuật toán lọc nội dung cần được xây dựng phù hợp với ngôn
ngữ mà thư sử dụng. Hiện nay, nhiều thuật toán lọc nội dung hiệu quả đã được
nghiên cứu và sử dụng cho thư viết bằng tiếng Anh.
Trong vòng vài năm gần đây, việc sử dụng Internet nói chung và thư điện tử
nói riêng ngày càng phổ biến tại Việt nam. Một trong những hệ quả của sự phát
triển này là ngày càng có nhiều thư rác gửi tới các tài khoản thư điện tử tại Việt
nam (tài khoản có đuôi .vn). Những thư rác này bao gồm cả thư viết bằng tiếng
Anh và thư viết bằng tiếng Việt. Việc xuất hiện ngày càng nhiều thư rác tiếng Việt
đặt ra yêu cầu cấp thiết phải có những phương pháp lọc thư có thể xử lý được thư
rác loại này.
Do các thuật toán lọc thư thông dụng mới chỉ được nghiên cứu và thử nghiệm
cho tiếng Anh, để có thể sử dụng giải pháp lọc nội dung cho thư tiếng Việt cần

1
Định nghĩa về thư rác chỉ mang tính tương đối do các khái niệm như “không mong đợi”, “không liên
quan” có thể phụ thuộc vào từng người nhận cụ thể.
5

nghiên cứu làm rõ hiệu quả của thuật toán khi phân tích nội dung thư viết bằng
tiếng Việt. Bên cạnh đó cần thực hiện những cải tiến cho phù hợp khi chuyển từ
phân loại nội dung tiếng Anh sang phân loại nội dung tiếng Việt. Để giải quyết
những vấn đề vừa nêu, trong phạm vi đề tài này, chúng tôi tiến hành nghiên cứu
một số giải pháp lọc nội dung cho thư rác tiếng Việt và tiếng Anh. Nội dung
nghiên cứu bao gồm thử nghiệm làm rõ khả năng lọc thư tiếng Việt, đề xuất và
phân tích so sánh các cải tiến với thuật toán, thử nghiệm trên dữ liệu thực. Sau khi
thử nghiệm so sánh, giải pháp lọc thư có hiệu quả cao sẽ được cài đặt trong một bộ
lọc thư có khả năng tích hợp vào máy chủ thư điện tử.

6


Chương 1: Thư rác và tác hại của thư rác

1.1. Định nghĩa thư rác
Hiện nay chưa có một định nghĩa hoàn chỉnh và chặt chẽ về thư rác. Có quan
điểm chỉ coi thư rác là những thư quảng cáo không được yêu cầu (Unsolicited
Commercial Email - UCE), có quan điểm có thư rác với nghĩa rộng hơn, bao gồm
cả thư quảng cáo, thư nhũng lạm (quấy rối), và những thư có nội dung không lành
mạnh (Unsolicited Bulk Email – UBE). Dưới đây sẽ đưa ra một định nghĩa thông
dụng nhất về thư rác và giải thích các đặc điểm của nó để phân biệt thư rác với thư
thông thường.
Thư rác (spam) là những bức thư điện tử không yêu cầu, không mong muốn
và được gửi hàng loạt tới nhiều người nhận. “Thư không yêu cầu” ở đây nghĩa là
người nhận thư không yêu cầu người gửi gửi bức thư đó. “Thư được gửi hàng loạt”
nghĩa là bức thư mà người nhận nhận được nằm trong một loạt các thư được gửi đi
cho nhiều người khác và các bức thư này có nội dung tương tự nhau.
Một bức thư được gọi là thư rác chỉ khi nó là thư không yêu cầu và được gửi
hàng loạt. Nếu thư rác chỉ là thư không mong muốn thì nó có thể là những bức thư
làm quen, được gửi lần đầu tiên, còn nến thư rác chỉ là thư được gửi hàng loạt thì
nó có thể là những bức thư gửi cho khách hành của các công ty, các nhà cung cấp
dịch vụ.
Như định nghĩa ở trên, thư rác là thư không yêu cầu và được gửi hàng loạt.
Nhưng yếu tố quan trọng nhất để phân biệt thư rác với thư thông thường phải là ở
nội dung bức thư. Khi một người nhận được thư rác, người đó không thể xác định
được thư có được gửi hàng loạt hay không nhưng có thể nói chính xác đó là thư rác
sau khi xem nội dung thư. Đặc điểm này chính là cơ sở cho giải pháp phân loại thư
rác bằng cách phân tích nội dung thư.
1.2. Các loại thư rác
Đa số thư rác là thư quảng cáo cho hàng hoá hoặc dịch vụ. Tuy nhiên cũng
tồn tại một lượng lớn thư rác mang những nội dung khác. Các thư rác không mang
nội dung quảng cáo hàng hoá hay dịch vụ có thể phân chia thành:

• Thư có nội dung chính trị: do các tổ chức hay cá nhân hoạt động chính trị
gửi trực tiếp tới người dùng thư điện tử để phục vụ mục đích quảng bá,
tuyên truyền hay tạo quan hệ trực tiếp. Hiện nay tại Việt nam, thư rác có
nội dung chính trị hầu hết là của các tổ chức phản động ngoài nước gửi về
và cần đặc biệt ngăn chặn.
7

• Thư từ thiện: do các tổ chức hay cá nhân hoạt động từ thiện gửi với nội
dung yêu cầu quyên góp hay trợ giúp. Người gửi thư dạng này có thể
không nhận thức được họ đang gửi thư rác do có sự biện hộ từ mục đích
gửi thư.
• Thư có nội dung tôn giáo: dùng để tuyên truyền quảng bá cho các tổ chức
hoặc hoạt động tôn giáo.
Trong số thư những thư quảng cáo, một số dạng hàng hoá và dịch vụ chiếm tỷ
trọng đặc biệt lớn. Dưới đây là kết quả phân tích thống kê các thư rác gửi qua máy
chủ hotmail.com trong năm 2003 và 2004 do Microsoft thực hiện [Hulten - trends].

Bảng 1.1: Thống kê các dạng thư rác tại máy chủ

Sản phẩm quảng cáo Năm 2003 Năm 2004
Quảng cáo liên quan đến tình dục (không đồ hoạ) 17% 34%
Tranh ảnh khiêu dâm 13% 7%
Bảo hiểm 1% 4%
Quảng cáo thuốc 8% 10%
Tài chính 12% 13%
Du lịch, sòng bạc 2% 3%
Bản tin 9% 6%
Các sản phẩm có xuất sứ đáng ngờ (văn bằng giả.v.v.) 20% 10%
Scam 8% 6%
Các dạng quảng cáo khác 13% 8%


1.3. Tác hại của thư rác
Thư rác hiện chiếm một tỷ lệ rất lớn trong tổng số thư điện tử được gửi qua
Internet. Theo các thống kê khác nhau, thư rác chiếm từ 71% đến 87% lượng thư
gửi qua các máy chủ thư điện tử. Lượng thư rác quá lớn gây ra nhiều tác hại đối
với sự phát triển Internet nói chung và người sử dụng thư điện tử nói riêng. Có thể
kể ra một số tác hại của thư rác:
- Thư rác gây thiệt hại về kinh tế cho người nhận thư trong trường hợp
người nhận thư phải trả tiền cho lượng thông tin truyền qua mạng.
- Thư rác có thể làm đầy hộp thư người nhận và do vậy làm thất lạc
những thư bình thường đến sau.
8

- Thư rác làm tốn thời gian do người nhận phải mở thư và xoá thư khỏi
hộp thư của mình.
- Thư rác gây tâm lý xấu đối với người sử dụng thư điện tử. Theo thống
kê tại , 25% người sử dụng thư điện tử coi
thư rác là trở ngại lớn khi sử dụng dịch vụ Internet này.
- Thư rác chiếm một phần đường truyền Internet và làm tốn thời gian xử
lý của máy chủ.
1.4. Quy trình và thủ đoạn gửi thư rác
Để phát tán thư rác, những người gửi thư rác phải có được những điều kiện
sau: một là có danh sách địa chỉ email nhận thư, hai là có các server cho phép gửi
thư, ba là phải soạn được nội dung thư theo yêu cầu quảng cáo và qua mặt được
các bộ lọc nội dung, cuối cùng cần có những chương trình để gửi thư đi.
1.4.1. Thu thập địa chỉ email
Để gửi thư rác đi, người gửi thư rác cần phải có một danh sách các địa chỉ
email cần gửi. Danh sách địa chỉ email này có thể thu thập được từ nhiều nguồn
khác nhau, họ có thể mua từ các trang web thương mại có nhiều thành viên đăng
ký hoặc sử dụng các kỹ thuật dưới đây để có được địa chỉ email của đối tượng cần

gửi thư.
Người gửi thư rác (hoặc đối tác của họ) thường tung ra các trang web giả để
bẫy người dùng gửi địa chỉ email cho họ. Kỹ thuật này được gọi là Phishing email.

Hình 1.1: Ví dụ về trang web lấy cắp địa chỉ email của người dùng
9


Người gửi thư rác còn sử dụng các máy tìm kiếm chỉ để tìm kiếm địa chỉ
email trên các trang web. Các máy tìm kiếm này sẽ tìm kiếm những trang có kí
hiệu “@” và sẽ tách địa chỉ email từ đó ra. Những chương trình tìm kiếm email
theo kiểu như vậy còn được gọi là spambots.
Danh sách các địa chỉ cũng có thể được sinh tự động theo một cơ chế nào đó
để xác suất tồn tại của địa chỉ sinh tự động có thể chấp nhận được. Địa chỉ email
thường được tạo ra nhờ kết hợp giữa các họ tên phổ biến với các domain nhiều
người dùng và các con số có nghĩa. Ví dụ như địa chỉ email được sinh như sau:
Từ địa chỉ gốc là: nguyenvannam + @ + fpt.com.vn
Có thể sinh ra các địa chỉ sau:
, ,
, ,
Để xác định một địa chỉ email có tồn tại hay không, những người gửi thư rác
sẽ gửi một bức thư tới tất cả các hòm thư trong danh sách sinh tự động. Nếu hòm
thư đó tồn tại và chủ nhân của nó mở bức thư đó ra thì sẽ có một chương trình
được kích hoạt thông báo về sự tồn tại của địa chỉ cho người gửi thư rác. Cách này
còn gọi là sinh địa chỉ email theo kiểu từ điển.
1.4.2. Tìm kiếm các máy tính trên Internet cho phép gửi thư
Muốn gửi được thư rác, người gửi thư rác cần có trong tay một danh sách các
server để gửi thư đi. Các server này có thể là những server chuyên để gửi thư rác
do người gửi thư rác sở hữu hoặc thuê, hoặc là những server bị người gửi thư rác
lợi dụng.

Hình ảnh sau đây là trang quảng cáo của một số công ty chuyên tung thư rác
được Google liệt kê khi tìm kiếm hai từ “bulk mail”:

Hình 1.2: Một số website của các công ty gửi thư rác

Người gửi thư rác thường khai thác lỗ hổng của những server cho phép
chuyển tiếp thư (open relay) hoặc những proxy mở cho phép gửi thư (open proxy).
10



Hình 1.3: Minh họa cách gửi thư rác qua mail server (open relay)

Trên mạng Internet thường có rất nhiều mail server cho phép chuyển tiếp thư.
Người gửi thư rác hay sử dụng các server này để chuyển tiếp thư rác vì khi đó họ
sẽ khó bị phát hiện hơn và chuyển được các gánh nặng về đường truyền sang cho
các server đó. Tuy nhiên những mail server dạng này thường sớm bị đưa vào danh
sách đen (danh sách những địa chỉ IP bị chặn) của các bộ lọc thư rác và không thể
tiếp tục gửi thư rác được nữa.
Một loại server khác là các proxy cho phép gửi thư cũng được người gửi thư
rác đặc biệt yêu thích. Mục đích của những proxy này là giúp các trang web vượt
qua được tường lửa (firewall). Một số proxy cho phép gửi thư và bất cứ ai cũng có
thể truy cập được. Người gửi thư rác lợi dụng điểm này để phát tán thư rác. Khi sử
dụng những proxy này, Người gửi thư rác hầu như không bị phát hiện. Mặt khác,
việc lợi dụng này thường được lâu dài vì những người quản lý proxy không quan
tâm tới việc proxy có bị liệt kê trong danh sách đen của các bộ lọc hay không (vì
mục đích chính của proxy không phải để gửi thư).
Ngoài hai cách trên, những người gửi thư rác còn thuê các máy tính “ma” để
gửi thư rác. Vì đây là các máy tính không được quản lý nên khó có thể pháp hiện ra
tác giả của các bức thư rác. Thêm nữa việc thuê các máy tính này lại khá rẻ nên có

tới 40%-60% người gửi thư rác bắt đầu từ chiêu thức này.
Không chỉ dừng lại ở việc đi thuê máy tính ma, những người gửi thư rác (và
cũng là những hacker) còn chiếm quyền kiểm soát các máy tính hợp pháp để gửi
thư rác Vào đầu năm 2005, Microsoft đã tiến hành khảo sát thử một máy tính bị
Open Mail Relay

Mạng trung
gian
người dùng cục bộ
Gửi thư rác

Nhận thư
rác

ISP
11

nhiễm mã độc và đã bị hacker nắm quyền điều khiển từ xa, tức máy tính này đã trở
thành một máy tính ma. Kết quả khảo nghiệm cho thấy rằng chỉ trong vòng 20
ngày, máy tính ma này đã nhận được 5 triệu yêu cầu kết nối từ những người thư
rác và chính nó cũng đã gửi tới 18 triệu thư rác. Trong những ngày cao điểm nhất,
máy tính ma này đã nhận được đến 470.000 yêu cầu kết nối và khoảng 1,8 triệu thư
rác đã từ nó gửi đi.

12

Chương 2: Các giải pháp phòng chống thư rác

Để phòng chống và hạn chế tác hại thư rác, nhiều giải pháp khác nhau đã
được đề xuất, thử nghiệm và sử dụng. Các giải pháp chống thư rác rất khác nhau,

từ việc sử dụng pháp luật để ngăn chặn việc soạn và gửi thư rác cho tới lọc thư
bằng phần cứng, phần mềm. Trong phần này sẽ giới thiệu một số giải pháp phòng
chống thư rác và phân tích ưu nhược điểm của chúng.
2.1. Lọc thư thông qua địa chỉ IP
Phương pháp lọc thư rác dựa trên địa chỉ IP của thư gửi đến là phương pháp
đơn giản nhất và được sử dụng sớm nhất trong cuộc chiến chống thư rác. Tùy theo
địa chỉ IP của thư gửi tới mà bức thư đó sẽ bị sẽ bị chặn hoặc cho qua. Các hệ
thống lọc thư rác thường có hai cách để làm việc này. Cách thứ nhất là duy trì một
danh sách các địa chỉ IP bị chặn. Cách thứ hai ngược lại, sử dụng một danh sách
các địa chỉ IP được phép cho qua. Sau đây sẽ trình bày cụ thể hai cách lọc thư này.
2.1.1. Sử dụng danh sách đen (Blacklists)
Trong phương pháp này, người ta lập ra một danh sách các địa chỉ (server)
gửi thư rác. Các nhà cung cấp dịch vụ thư điện tử (ISP) sẽ sử dụng danh sách này
để loại bỏ những bức thư có địa chỉ nằm trong danh sách.
Danh sách như trên còn được gọi là danh sách đen (Black List). Danh sách
này thường xuyên được cập nhật và được chia sẻ giữa những nhà cung cấp dịch vụ.
Một số danh sách đen điển hình được lập ra như: SpamCop Blocking List (SCBL)
và Composite Block List (CBL). Gần đây, ngươi ta còn lập các hệ thống thông tin
phân tán để cập nhật danh sách đen như hệ thống mạng ngang hàng của John
Zdzairski.
Ưu điểm của phương pháp này là các ISP sẽ ngăn chặn được khá nhiều server
gửi thư rác. Song dù cho danh sách đen này luôn được cập nhật, số lượng các thư
rác được gửi đi vẫn ngày một tăng vì những người gửi thư rác lại chuyển sang
server khác, giả mạo địa chỉ hoặc chiếm một mail server hợp pháp để gửi thư rác.
Do đó, phương pháp này thường chỉ chặn được một nửa số thư rác được gửi đi, và
sẽ làm mất rất nhiều thư hợp pháp nếu chặn nhầm.
2.1.2. Sử dụng danh sách các địa chỉ tin cậy (Safe Sender Lists)
Cách chặn những địa chỉ nằm trong danh sách đen như phần trên bộc lộ rõ
yếu điểm là khó cập nhật danh sách và dễ chặn nhầm. Có tổng số 2^32 địa chỉ IP
nên việc cập nhật danh sách đen là rất khó khăn.

13

Thay vì cập nhật danh sách đen, người ta sử dụng một danh sách các địa chỉ
tin cậy (danh sách trắng). Danh sách này có thể do một nhà cung cấp dịch vụ nào
đó cung cấp. Những thư có địa chỉ gửi nằm trong danh sách sẽ được cho qua bộ
lọc. Ngược lại, người gửi thư phải đăng ký địa chỉ mới với nhà cung cấp danh sách
trắng trên để được nằm trong danh sách.
Ưu điểm của danh sách trắng so với danh sách đen là số lượng địa chỉ trong
danh sách trắng sẽ ít hơn rất nhiều và giải quyết được tình trạng chặn nhầm.
Tuy nhiên cũng như danh sách đen, danh sách trắng sẽ gây phiền phức trong
việc cập nhật, nhất là khi ai đó thay đổi địa chỉ IP. Ngoài ra, người gửi thư rác cũng
có thể lợi dụng những server có trong danh sách trắng để gửi thư rác, và khi đó tình
hình trở nên khó kiểm soát.
2.2. Lọc thư theo nội dung
Phương pháp lọc nội dung để phân loại thư rác đã và đang được quan tâm,
nghiên cứu và ứng dụng nhiều nhất. Đặc điểm chung của phương pháp này là dựa
vào nội dung và chủ đề bức thư để phân biệt thư rác và thư hợp pháp. Sau sẽ trình
bày các phương pháp lọc nội dung thông dụng.
2.2.1. Lọc thư rác dựa vào các dấu hiệu nhận biết
Đầu tiên, người ta tạo ra các địa chỉ email để bẫy thư rác, gọi là các
honeypots. Các địa chỉ này được tạo ra một cách cố ý sao cho không bao giờ thư
bình thường được gửi tới. Do đó, nếu có thư gửi vào các địa chỉ bẫy thì ta có thể
chắc chắn đó là thư rác.
Sau đó hệ thống sẽ so sánh thư mới đến với thư đã bẫy được. Cách thức so
sánh là dựa trên dấu hiệu nhận biết. Nếu hai bức thư có các dấu hiện giống nhau thì
bức thư mới tới là thư rác.
Phương pháp thường dùng để so sánh hai bức thư như trên là gán cho mỗi ký
tự một số nào đó, tiếp theo cộng dồn các số đã gán lại với nhau. Hai bức thư sẽ
được coi là giống nhau nếu có tổng các số đã gán bằng nhau.
Ưu điểm của phương pháp lọc thư này là đơn giản, nhanh và không lọc nhầm

thư thường thành thư rác. Tuy nhiên, những người gửi thư rác lại dễ dàng đánh bại
hệ thống này bằng cách sinh ngẫu nhiên các mẩu thư rác sau đó gộp lại thành một
bức thư hoàn chỉnh. Khi đó các “dấu hiệu“ của các bức thư được gửi sẽ khác nhau
và thư rác sẽ lọt qua được hệ thống lọc. Bởi vậy tỉ lệ lọc thư rác của hệ thống này
không bao giờ vượt ngưỡng 70%.
Do khả năng lọc thư chính xác (không chặn nhầm thư hợp pháp) và dễ triển
khai nên hệ thống này thường được dùng để lọc thư tại phía server.

14

2.2.2. Lọc thư rác thông qua bỏ phiếu trên các danh sách trắng
Hoạt động của bộ lọc dạng này là tìm xem các từ ở trong danh sách đen/trắng
có nằm trong bức thư mới tới hay không và đếm số lần xuất hiện của chúng. Nếu
số lượng từ thuộc danh sách trắng nhiều hơn (rất nhiều) số từ đếm được thuộc danh
sách đen thì bức thư đó là thư hợp pháp, ngược lại sẽ là thư rác.
Các đặc trưng của bộ lọc:
§ Không có biến đổi dữ liệu ban đầu. Dữ liệu ra giống như dữ liệu vào
§ Biểu thức chính quy để tách từ ra khỏi thư là: [[:graph:]]+
§ Việc chọn đặc trưng chỉ đơn giản là các từ đơn
§ Cơ sở dữ liệu về đặc trưng chỉ được nạp khi các từ nằm trong danh sách
đen hoặc danh sách trắng, nếu là nằm trong dánh sách trắng thì đặt là +1,
nếu thuộc danh sách đen sẽ đặt là -1, tất cả các trường hợp khác đặt giá
trị 0.0.
§ Luật tổ hợp là “Điểm mới = Điểm cũ + trọng số của đặc trưng”
§ Ngưỡng lọc cuối cùng là: “Nếu điểm mới > 0 thì là thư hợp pháp”, “Nếu
điểm mới < 0 thì là thư rác”. Không khẳng định trong các trường hợp
khác.
Như vậy bộ lọc thực hiện chấm điểm các từ trong danh sách đen và các từ
trong danh sách trắng bằng nhau. Một số cải biên của bộ lọc này là đánh trọng số
cho các từ trong danh sách đen cao hơn trong danh sách trắng và ngược lại.

2.2.3. Lọc thư sử dụng phương pháp heuristic
Cách thức hoạt động của phương pháp này là con người sẽ xác định những
đặc trưng (từ ngữ) nào là của thư rác, đặc trưng nào là của thư hợp pháp, sau đó
viết chương trình để phát hiện những đặc trưng đó trong bức thư gửi tới.
Người ta đánh trọng số cho các đặc trưng trên (có thể thực hiện bằng tay hoặc
sử dụng thuật toán) và lập một ngưỡng để phân loại thư. Bức thư sẽ được coi là thư
rác nếu có các đặc trưng với trọng số vượt ngưỡng quy định.
Hiệu suất chặn thư rác của các chương trình sử dụng phương pháp này rất
khác nhau. Vì mỗi chương trình sử dụng các luật lọc khác nhau. Luật đơn giản nhất
là nếu bức thư nào chứa các đặc trưng của thư rác thì đó là thư rác. Điều này sẽ
làm cho bộ lọc chặn mất rất nhiều thư hợp pháp.
Một số chương trình lọc thư theo phương pháp này như hệ thống chấm điểm
cho email sử dụng phương pháp hueristic (Heuristic Message Scoring System) của
mail server MDaemon . Hệ thống chấm điểm email này đúc kết trên kinh nghiệm
15

là việc kiểm tra, lọc email sử dụng một số lượng lớn các luật theo trật tự để máy
tính chấm điểm. Điểm số này sẽ được sử dụng để quyết định một email có phái là
spam email hay không Ngoài còn một số các bộ lọc thư rác khác như
SpamAssassin, hoặc SpamGuard của Yahoo.
Phương pháp này có ưu điểm là dễ cài đặt và hiệu suất chặn thư rác khá cao
(nếu xây dựng được các luật tốt) khoảng 90-95%. Nhược điểm chính của phương
pháp này là tỉ lệ chặn nhầm thư hợp pháp cũng rất lớn (khoảng 0.5%). Ngoài ra
phương pháp này cũng không linh hoạt vì các luật được xây dựng luôn luôn chậm
hơn rất nhiều so với sự biến đổi của từ ngữ trong thư rác.
Người ta thường sử dụng phương pháp này cho các bộ lọc thư ở mail server.
2.2.4. Lọc thư sử dụng phương pháp xác suất thống kê và học máy
Phương thức hoạt động của phương pháp này là, đầu tiên con người sẽ phân
loại các bức thư đã có thành hai tập hợp, thư rác và thư hợp pháp. Một thuật toán
được sử dụng để trích chọn và đánh trọng số cho các đặc trưng của thư rác theo

một cách nào đó (thường sử dụng công thức xác suất). Sau khi trích trọn đặc trưng,
hai tập thư rác và thư hợp pháp sẽ được sử dụng để huấn luyện một bộ phân loại tự
động. Quá trình huấn luyện dựa trên một phương pháp học máy.
Khi một bức thư mới tới nó sẽ được tách thành các đặc trưng (từ hoặc cụm từ)
rồi được so sánh với các đặc trưng đã có để tìm ra trọng số. Từ tổ hợp trọng số của
các đặc trưng sẽ đánh giá được bức thư đó có phải là thư rác hay không bằng cách
so sánh với một ngưỡng do người dùng định ra. Cách tổ hợp đặc trưng và phân loại
thư rác có thể khác nhau và phụ thuộc vào thuật toán phân loại cụ thể.
Tỉ lệ chặn thư rác của bộ lọc sử dụng phương pháp này rất cao, khoảng 99%.
Chương trình SpamProbe có thể đạt tỉ lệ lọc thư rác tới 99.9%. Các phương
pháp học máy và xác suất thống kê cho phép phân loại cả những thư rác chưa từng
xuất hiện trước đó (chưa có trong dữ liệu huấn luyện).
Một ưu điểm khác nữa của phương pháp này là tỉ lệ chặn thư hợp pháp rất
thấp, thấp hơn rất nhiều so với phương pháp heuristic.
Nhược điểm của của phương pháp học máy là phải có một tập hợp các thư để
huấn luyện. Hiệu suất của bộ lọc sẽ phụ thuộc rất nhiều vào tập huấn luyện ban đầu
đó. Tập dữ liệu càng lớn và càng chứa nhiều dạng thư khác nhau sẽ cho độ chính
xác phân loại càng cao về sau.
Hiện nay, phương pháp lọc thư sử dụng học máy và xác suất thống kê được
coi là một phương pháp triển vọng với nhiều ứng dụng thương mại như tại
Hotmail, Google, Yahoo. Phương pháp này sẽ được nghiên cứu chi tiết và trình
bày trong các chương tiếp theo.
16

2.3. Các phương pháp khác
Ngoài phương pháp lọc thư dựa vào địa chỉ IP và nội dung thư, người ta còn
lọc dựa vào đặc tính của thư rác là nó được gửi đi hàng loạt. Vì thư rác được gửi
với tần suất rất lớn nên người gửi thư rác không thể kiểm soát được từng bức thư,
đây chính là cơ sở để hạn chế thư rác của các phương pháp được trình bày dưới
đây.

2.3.1. Yêu cầu xác thực thư
Nguyên lý hoạt động của phương pháp này là khi có một bức thư được gửi từ
một địa chỉ lạ, bộ lọc sẽ gửi trả lại bức thư và yêu cầu người gửi điền các thông tin
cần thiết vào một form để xác thực bức thư mới đó như trên hình 2.1.

Hình 2.1. Nguyên lý phương pháp xác thực thư

Phương pháp này tỏ ra rất hiệu quả nếu được người dùng chấp nhận vì người
gửi thư rác sẽ không thể nào phản hồi hết được thư rác mà họ đã gửi. Tuy nhiên
việc làm cầu kỳ này rất khó được người dùng chấp nhận vì để gửi một bức thư giới
thiệu họ phải chờ đợi phản hồi từ phía bộ lọc rồi bức thư đó mới chính thức đến
đích.
Yahoo cũng có sử dụng một cơ chế tương tự, nếu như ai đó sử dụng hòm thư
của Yahoo gửi liên tục nhiều bức thư một lúc thì hệ thống chống thư rác của
Yahoo sẽ gửi lại một form yêu cầu người dùng xác thực. Đây là một trong những
cách khá hữu hiệu của Yahoo để chống những người gửi thư rác lợi dụng dịch vụ
của Yahoo phát tán thư rác.
Bên cạnh việc yêu cầu điền thông tin xác thực vào những form thông thường,
phương pháp này có thể sử dụng những kỹ thuật phức tạp hơn để tránh trường hợp
chương trình gửi thư rác có thể điền thông tin vào form tự động. Kỹ thuật thường
được sử dụng Turing test, tức là yêu cầu thực hiện một công việc rất dễ với con
gửi thư
Yêu cầu xác thực
Xác thực
Người gửi Người nhận
17

người nhưng rất khó với máy tính. Ví dụ, chương trình email của người nhận sẽ
gửi lại một ảnh nhỏ có chữ như trên hình dưới.


người nhận cần xác thực bằng cách gõ và gửi lại các chữ trên hình vẽ. Đây là
công việc rất dễ đối với con người nhưng lại vô cùng khó với máy tính.
2.3.2. Xác thực tự động
Để tránh cho người gửi không phải tự mình xác thực yêu cầu như ở phương
pháp trên, yêu cầu xác thực có thể được thực hiện tự động. Trong trường hợp này,
chương trình email của người nhận sẽ gửi yêu cầu chương trình email của bên gửi
thực hiện một công việc tính toán nào đó và gửi lại kết quả để xác thực. Việc tính
toán kết quả và xác thực đòi hỏi một số lượng nhất định tài nguyên tính toán của
chương trình gửi email. Do chương trình phát tán thư rác gửi thư hàng loạt với số
lượng lớn nên sẽ không thể thực hiện được việc tính toán và xác thực như vậy với
mọi thư được gửi đi.
Ưu điểm cơ bản của phương pháp này là có thể tự động hoá toàn bộ khâu
kiểm tra và xác thực. Nếu độ phức tạp của công việc tính toán khi xác thực đủ lớn
thì hiệu quả của phương pháp này sẽ gần như tuyệt đối.
2.3.3. Yêu cầu trả tiền
Theo phương pháp này, bên nhận chỉ đồng ý nhận và đọc thư nếu bên gửi
chịu trả một khoản tiền nhỏ nào đó thông qua một hệ thống thanh toán trực tuyến.
Sau đó, bên nhận có thể trả lại tiền trong trường hợp thư là thư bình thường.
Yêu cầu trả tiền sẽ làm giá thành gửi thư tăng lên và do vậy việc gửi thư rác
sẽ không còn ý nghĩa về mặt kinh tế. Ưu điểm của phương pháp này là tác dụng
ngăn chặn thư rác rất cao. Nhược điểm là số lượng giao dịch thanh toán quá lớn -
bằng số lượng thư điện tử được gửi. Không thể xây dựng hạ tầng thanh toán cho số
lượng giao dịch lớn như vậy. Ngoài ra, do số tiền thực hiện trong mỗi giao dịch rất
nhỏ nên việc thực hiện giao dịch trực tuyến kiểu này rất không kinh tế.
Các phương pháp xác thực và yêu cầu trả tiền có thể sử dụng kết hợp với các
phương pháp khác. Chẳng hạn, nếu bộ lọc thư nghi ngờ thư nhận được là thư rác,
bộ lọc sẽ gửi yêu cầu xác thực hoặc trả tiền. Trong khi đó, những thư được bộ lọc
xác định là thư bình thương sẽ không phải qua các thủ tục này.
2.3.4. Phản công
Khoảng 95% thư rác chứa các đường liên kết tới các trang web mà người gửi

thư rác (hoặc khách hàng của họ) mong muốn người nhận được thư ghé thăm.
18

Nếu như ai nhận được thư rác cũng mở đường liên kết đó thì trang web đó sẽ
bị quá tải. Đây chính là ý tưởng cho việc xây dựng chương trình chống thư rác
bằng cách phản công lại chúng.
Người ta đã đề xuất các bộ lọc FFBs (Filtersthat Fight Back) có chức năng
như trên, mỗi khi nhận được thư, các bộ lọc này đồng loại mở các liên kết có trong
thư. Nếu như đó là thư rác được gửi hàng loạt thì server của trang web được đề cập
trong thư sẽ bị quá tải chỉ trong vài giờ.
Để tránh tấn công nhầm phải những trang web không liên quan nhưng lại có
liên kết trong thư rác, các bộ lọc này phải duy trì một danh sách đen chứa địa chỉ
các trang có thể bị tấn công nếu nó xuất hiện trong thư rác.
Ngoài nhược điểm phải duy trì một danh sách đen, phương pháp này còn làm
lãng phí đường truyền do việc phải tấn công lại. Vì vậy phương pháp này không
được nhiều người ủng hộ.
Hiện nay chưa có một bộ lọc FFB nào trên thực tế, tuy nhiên đã có bộ lọc
(Death2Spam) lấy thông tin từ các liên kết đó về để tăng độ chính xác của quá
trình lọc thư (chứ không phải để tấn công lại các trang đó).
Ngoài các phương pháp trên người ta còn đề xuất nhiều ý tưởng mới như làm
chậm quá trình gửi thư để người gửi thư rác không thể gửi hàng loạt được, hay che
dấu địa chỉ email không cho người gửi thư rác biết. Song tất cả những phương
pháp, giải pháp đó còn nằm trên ý tưởng và khó có thể thực hiện.

19

Chương 3: Lọc thư bằng cách phân loại tự động theo nội dung


3.1. Giới thiệu chung

Trong số các phương pháp lọc và ngăn chặn thư rác thông dụng, phương
pháp lọc theo nội dung có một số ưu điểm quan trọng và hiện đang được sử dụng
trong nhiều hệ thống lọc thư thương phẩm. Lọc theo nội dung hoạt động theo
nguyên tắc phân loại thư điện tử thành hai nhóm “thư rác” và “thư bình thường”
bằng cách phân tích phần nội dung của thư. Trong nghiên cứu này, chúng tôi giới
hạn việc phân loại thư cho trường hợp thư có chứa văn bản. Như vậy, nội dung thư
ở đây là phần văn bản trong thư. Chúng tôi cũng không xem xét tới cách định dạng
trong thư khi phân loại, chẳng hạn thư có được trình bày dưới dạng HTML hay
không, mặc dù thông tin về định dạng có thể đóng vai trò quan trọng trong việc
phát hiện thư rác.
Lọc thư rác theo nội dung là trường hợp riêng của bài toán phân loại văn bản.
Tuỳ theo nội dung, thư được phân thành hai loại: thư rác và thư bình thường. Việc
phân loại tiến hành như sau. Trước tiên, nội dung thư được biểu diễn dưới dạng các
đặc trưng hay các thuộc tính, mỗi đặc trưng thường là một từ hoặc cụm từ xuất
hiện trong thư. Tiếp theo, trong giai đoạn huấn luyện, tập thư đã được gán nhãn
{rác, bình thường} - gọi là dữ liệu huấn luyện hay dữ liệu mẫu - được sử dụng để
huấn luyện một bộ phân loại. Sau khi huấn luyện xong, bộ phân loại được sử dụng
để xác định thư mới (thư chưa biết nhãn) thuộc vào loại nào trong hai loại nói trên.
Trong cả giai đoạn huấn luyện và phân loại, thuật toán phân loại chỉ làm việc với
nội dung thư đã được biểu diễn dưới dạng các đặc trưng.
Có nhiều phương pháp phân loại có thể sử dụng để phân loại thư điện tử,
trong đó thông dụng nhất là phân loại Bayes đơn giản và Support Vector Machines
(SVM). Phương pháp thứ nhất đơn giản, nhanh và cho độ chính xác phân loại chấp
nhận được. Phương pháp thứ hai có độ chính xác cao hơn (trong một số thử
nghiệm đã công bố) nhưng phức tạp và có tốc độ chậm hơn. Một số phương pháp
khác như Boosting cũng cho kết quả tương đương SVM nhưng chậm hơn nhiều và
do vậy khó sử dụng cho những bộ lọc phải xử lý lượng thư rác lớn. Phần 3.3 sẽ
trình bầy tóm tắt một số phương pháp phân loại đã được áp dụng cho phân loại thư
rác. Trong các phần sau đó, chúng tôi sẽ tập trung vào hai phương pháp Bayes đơn
giản và SVM là hai phương pháp đang được sử dụng nhiều nhất cho bài toán lọc

thư rác theo nội dung.
20

3.2. Biểu diễn nội dung thư
Biểu diễn nội dung thư dưới dạng tập hợp từ (“túi từ”)
Để có thể sử dụng kỹ thuật học máy và xác suất thống kê, nội dung thư cần
được biểu diễn dưới dạng thuận tiện cho việc áp dụng thuật toán học máy. Các
phương pháp lọc thư bằng cách tự động phân loại theo nội dung đều sử dụng cách
biểu diễn thư dưới dạng véctơ. Mặc dù có nhiều cách xây dựng véctơ nhưng cách
đơn giản nhất là mô hình “túi từ” (“bag-of-words”). Nguyên tắc cơ bản của phương
pháp này là không quan tâm tới vị trí xuất hiện các từ hay cụm từ trong thư mà coi
thư như một tập hợp không có thứ tự các từ. Mỗi thư khi đó được biểu diễn bởi
một véctơ. Số phần tử của véctơ bằng số lượng từ khác nhau trên toàn bộ tập dữ
liệu huấn luyện.
Có nhiều cách tính giá trị các phần tử của vectơ. Cách đơn giản nhất là sử
dụng giá trị nhị phân: mỗi phần tử của véctơ bằng 1 hay 0 tuỳ thuộc vào từ tương
ứng có xuất hiện trong thư tương ứng với véctơ hay không.
Các phương pháp phức tạp hơn thường dựa vào tần suất xuất hiện của từ
trong thư. Từ xuất hiện càng nhiều thì phần tử tương ứng của vectơ có giá trị càng
lớn và ngược lại.
Dưới đây là một ví dụ đơn giản minh hoạ cho cách biểu diễn nội dung nói
trên. Dữ liệu huấn luyện bao gồm bốn thư, trong đó hai thư là thư rác và hai là thư
bình thường. Nội dung các thư được cho trong bảng 3.1. Trên bảng 3.2. là biểu
diễn véctơ cho các thư trong bảng 3.1. Chú ý là trong ví dụ này chỉ sử dụng các từ
đơn âm, những phần tiếp theo sẽ đề cập tới từ gồm nhiều âm của tiếng Việt.
Bảng 3.1. Ví dụ nội dung của 4 thư.
Số TT

Nội dung Nhãn
1 mua và trúng thưởng Rác

2 mua một tặng một Rác
3 anh mua rồi Bình thường

4 vừa gửi xong Bình thường


Bảng 3.2. Biểu diễn véctơ cho dữ liệu trong bảng 3.1
Số TT

mua Và trúng thưởng

một tặng anh Rồi vừa gửi xong
1 1 1 1 1 0 0 0 0 0 0 0
2 1 0 0 0 2 1 0 0 0 0 0
3 1 0 0 0 0 0 1 1 0 0 0
4 0 0 0 0 0 0 0 0 1 1 1
21

Thông thường, một số bước tiền xử lý được áp dụng đối với các từ trước khi
biểu diễn thư dưới dạng véctơ. Đối với tiếng anh, các từ sẽ đưa về dạng gốc, ví dụ
“speaking” được biến đổi thành “speak”. Ngoài ra, các liên từ hoặc những từ
không có ý nghĩa như “và”, “nhưng”.v.v. trong tiếng Việt hay “and”, “the”.v.v.
trong tiếng Anh sẽ được loại bỏ do không có liên quan trực tiếp tới ý nghĩa của thư.
Trên các tập dữ liệu mẫu thực, số lượng từ khác nhau có thể lên tới hàng chục
nghìn tương ứng với số lượng phần tử trong mỗi véctơ. Trong các phần sau sẽ đề
cập tới kỹ thuật giảm bớt số lượng từ dùng để biểu diễn thư.
Phương pháp biểu diễn thư sử dụng “túi từ” trình bày ở trên bỏ qua thông tin
về vị trí xuất hiện và thứ tự các từ trong thư. Những thông tin này có thể có giá trị
quan trọng trong việc phát hiện thư rác. Tuy nhiên, do đơn giản, phương pháp “túi
từ” vẫn là phương pháp biểu diễn nội dung thư thông dụng nhất, mặc dù có nhược

điểm vừa nêu. Trong nghiên cứu này, chú tôi cũng sử dụng phương pháp túi từ và
các mở rộng của phương pháp này để biểu diễn nội dung thư điện tử.
Một số phương pháp biểu diễn nội dung thư khác
Để có cái nhìn toàn diện về vấn đề biểu diễn nội dung thư, trong phần này
chúng tôi sẽ trình bày tóm tắt một số phương pháp biểu diễn nội dung thư khác với
phương pháp “túi từ” và phân tích lý do không sử dụng những phương pháp này
cho lọc thư rác.
Lọc thư theo nội dung là trường hợp riêng của bài toán phân loại văn bản
trong đó thư được phân loại thành thư rác hoặc thư hợp lệ dựa trên nội dung văn
bản của thư. Bộ lọc thư rác, do vậy, có thể sử dụng những phương pháp biểu diễn
nội dung thư khác được đề xuất cho các ứng dụng phân loại văn bản nói chung.
Đặc điểm chung của phương pháp không dùng “túi từ” là sử dụng các đặc
trưng chứa nhiều thông tin về và ngữ nghĩa hơn để biểu diễn nội dung văn bản.
Tiêu biểu nhất là phương pháp sử dụng cụm từ có ngữ nghĩa (phrase) và phương
pháp sử dụng phân cụm từ (word clusters). Dưới đây là mô tả tóm tắt các phương
pháp trên.
Sử dụng cụm từ (phrase) có ngữ nghĩa để biểu diễn văn bản
Khái niệm cụm từ dùng để chỉ đơn vị văn bản dài hơn từ đơn nhưng ngắn
hơn câu thông thường và có ngữ nghĩa riêng. Ví dụ “nghiên cứu khoa học” là cụm
từ theo định nghĩa này. Sử dụng cụm từ để biểu diễn văn bản có hai ưu điểm chính
như sau:
- Về mặt ngữ nghĩa, cụm từ gần với khái niệm được nhắc tới trong văn
bản hơn các từ đơn xét riêng.
- Cụm từ thường có mức độ không rõ nghĩa (ambiguity) thấp hơn các từ
22

đơn do những từ cấu thành cụm từ có thể làm rõ nghĩa của nhau.
Cụm từ trong văn bản được nhận biết bằng cách phân tích cú pháp văn bản sử
dụng kỹ thuật xử lý ngôn ngữ tự nhiên. Thông thường, thành phần của câu trong
văn bản được gán nhãn từ loại ví dụ: tính từ, danh từ, chủ ngữ, vị ngữ, .v.v., sau đó

một số quy tắc được sử dụng để nhóm từ loại đứng gần nhau thành cụm từ dựa trên
từ loại của chúng.
Mặc dù có một số ưu điểm so với từ đơn, trên thực tế, nhiều nghiên cứu đã
cho thấy việc biểu diễn văn bản thông quan cụm từ cho kết quả phân loại tồi hơn
so với cách sử dụng túi từ [Caropreso2001, Lewis1992]. Một trong các lý do của
kết quả này là do tần suất các cụm từ có nghĩa thấp hơn nhiều so với từ đơn nên
cụm từ có nghĩa có thể bị lẫn với cụm từ xuất hiện tình cờ. Một nguyên nhân khác
là việc tách cụm từ nhờ phân tích cú pháp văn bản có thể sinh ra những cụm từ
không có nghĩa. Ví dụ trong khi “nghiên cứu khoa học” có thể coi là một cụm từ
thì “ăn uống khoa học” lại nên tách thành 2 cụm từ khác nhau.
Sử dụng phân cụm từ (word cluster) để biểu diễn văn bản
Theo phương pháp này, những từ có ngữ nghĩa hoặc tình huống sử dụng
tương tự nhau sẽ được nhóm với nhau thành những nhóm gọi là phân cụm từ
(clusters). Từ được coi là có cùng nghĩa nếu có xu hướng cùng xuất hiện trong một
số văn bản. Để phân cụm từ, mỗi từ được biểu diễn dưới dạng vectơ, mỗi thành
phần vectơ là số lần từ xuất hiện trong một văn bản nào đó. Thuật toán phân cụm
được sử dụng để tìm ra những vectơ tương tự nhau. Sau khi tìm được phân cụm từ,
phân cụm từ được sử dụng để biểu diễn văn bản cần phân loại.
Kết quả thử nghiệm cho thấy, phương pháp biểu diễn văn bản bằng phân cụm
từ không cho kết quả tốt hơn phương pháp túi từ thông dụng [Bekkerman 2003,
Lewis 1992] và do vậy rất ít được sử dụng cho ứng dụng thuộc loại này.
3.3. Các phương pháp phân loại
Sau khi nội dung thư được biểu diễn dưới dạng vectơ, các phương pháp phân
loại tự động khác nhau có thể được sử dụng để phân chia thư thành thư rác và thư
thường. Đây là trường hợp đơn giản của bài toán phân loại văn bản tự động trong
đó mỗi văn bản (thư) có thể nhận một trong hai nhãn 1 (rác) và 0 (thư thường).
Trong phần này, chúng tôi sẽ trình bầy tóm tắt về một số phương pháp phân loại đã
được sử dụng cho bài toán lọc thư.
Phương pháp phân loại xác suất
Phương pháp phân loại xác suất quyết định nhãn phân loại Y của thư có nội

dung X bằng cách tính xác suất hậu nghiệm p (Y | X) tức là xác suất một thư là thư
23

rác hay thư thường nếu biết nội dung X của thư đó. Phiên bản thông dụng của phân
loại xác suất là phân loại Bayes đơn giản là một trong những phương pháp phân
loại đầu tiên được sử dụng để phân loại thư rác [Sahami1998] và hiện là phương
pháp phân loại thông dụng nhất được sử dụng cho bài toán này. Chi tiết về phân
loại Bayes đơn giản sẽ được trình bầy trong phần 3.4.
Cây quyết định
Cây quyết định sử dụng trong phân loại văn bản và thư điện tử là một cây
trong đó mỗi nút không phải nút lá được gán tương ứng một đặc trưng (từ), mỗi nút
lá được gán một nhãn phân loại (rác, thư thường). Khi có một thư xuất hiện, thư sẽ
được di chuyển từ gốc xuống các nút lá. Tại mỗi nút của cây, đặc trưng tương ứng
của nút được kiểm tra, tuỳ thuộc vào việc thư có chứa đặc trưng đó hay không (hay
đặc trưng có trọng số vượt ngưỡng tương ứng hay không), thư sẽ được chuyển
sang nhánh cây tương ứng. Sau khi di chuyển tới nút lá, thư sẽ có nhãn phân loại
tương ứng với nút lá đó.
Mặc dù đơn giản và có tốc độ phân loại nhanh, kết quả thử nghiệm cho thấy,
bộ phân loại sử dụng câu quyết định cho kết quả phân loại thư không tốt như một
số phương pháp phân loại khác [Drucker 1999].
Bộ phân loại sử dụng các luật phân loại
Bộ phân loại dạng này xác định nhãn phân loại của thư bằng cách sử dụng
một số luật có dạng if…then… trong đó mỗi luật là một hội của các phép tuyển.
Ví dụ, luật xác định thư d là thư rác có thể có dạng sau:
if :
(d chứa từ “miễn phí”) HOẶC
(d chứa từ “rẻ” VÀ d không chứa từ “quen”) HOẶC

then: d là thư rác
Một bộ phân loại điển hình sử dụng luật là Ripper [Cohen 1996]. Ripper xây

dựng tập luật bằng cách thêm dần các luật cho phép mô tả các ví dụ huấn luyện có
nhãn dương, sau đó loại bớt những luật không cần thiết.
Kết quả thử nghiệm phân loại thư rác cho thấy phương pháp này có độ chính
xác phân loại không cao như một số phương pháp khác [Drucker 1999].
Phương pháp boosting
Boosting là một dạng phân loại trong đó kết quả phân loại được tạo thành
bằng cách kết hợp kết quả từ nhiều bộ phân loại khác nhau. Tất cả các bộ phân loại
này - được gọi là các bộ phân loại yếu - đều có chung phương pháp phân loại (ví
24

dụ sử dụng cây quyết định) nhưng được huấn luyện dần dần trên dữ liệu huấn
luyện sao cho mỗi bộ phân loại sẽ tập trung vào những phần dữ liệu mà bộ phân
loại trước đó không phân loại đúng.
Cụ thể, boosting có thể bao gồm tập hợp các bộ phân loại yếu là cây quyết
định đơn giản (cây chỉ có một nút). Khởi đầu, một bộ phân loại sẽ được huấn luyện
trên toàn bộ dữ liệu huấn luyện. Khi huấn luyện bộ phân loại tiếp theo, mỗi ví dụ
huấn luyện sẽ được lựa chọn với một xác suất nhất định. Xác suất này được điều
chỉnh tuỳ theo độ “khó” của ví dụ. Ví dụ “khó” là ví dụ mà những bộ phân loại
trước đó không phân loại đúng và do vậy bộ phân loại sau cần chú ý tới nhiều hơn.
Thử nghiệm đối với ứng dụng phân loại văn bản nói chung và phân loại thư
điện tử nói riêng cho thấy boosting nằm trong nhóm những phương pháp phân loại
chính xác nhất [Carreras 2001, Drucker 1999]. Tuy nhiên, phương pháp này đòi
hỏi thời gian huấn luyện và phân loại tương đối lâu và do vậy không thích hợp với
bộ lọc thư làm việc trên máy chủ thư điện tử.
Mạng nơ ron nhân tạo
Mạng nơ ron nhân tạo (gọi tắt là mạng nơ ron) là một mạng gồm các nút
được nối với nhau. Các nút đầu vào tương ứng với các đặc trưng, nút đầu ra tương
ứng với nhãn phân loại. Trọng số của liên kết giữa các nút thể hiện quan hệ phụ
thuộc giữa nhãn phân loại với đặc trưng và được xác định trong quá trình huấn
luyện mạng nơ ron. Mỗi nút mạng được đặc trưng bởi một hàm kích hoạt cho phép

xác định giá trị đầu ra của nút theo giá trị đầu vào.
Để phân loại một thư hay văn bản, vectơ trọng số của thư đó được sử dụng
làm giá trị đầu vào cho mạng. Mức độ kích hoạt của nút tương ứng được lan truyền
về phía nút đầu ra, giá trị các nút này sẽ xác định giá trị nhãn phân loại.
Một số nghiên cứu sử dụng mạng nơ ron nhân tạo để phân loại văn bản cho
thấy phương pháp này cho kết quả phân loại tốt hơn cây quyết định và phân loại
theo luật, nhưng không tốt bằng SVM hay boosting [Sebastiani 2002]. Ngoài ra, số
lượng đặc trưng rất lớn của bài toán phân loại văn bản đòi hỏi số lượng nút đầu vào
lớn làm tăng thời gian huấn luyện và phân loại của mạng nơ ron. Do những đặc
điểm này, mạng nơ ron ít khi được sử dụng cho bài toán lọc thư rác.
Phân loại dựa trên ví dụ
Phân loại dựa trên ví dụ hay học lười là phương pháp xác định nhãn phân
loại cho thư mới dựa trên các thư tương tự trước đó. Trong giai đoạn huấn luyện,
phương pháp phân loại này lưu lại tất cả những thư mẫu cùng với nhãn phân loại
của chúng. Khi xuất hiện thư mới cần phân loại, bộ phân loại lựa chọn trong số thư
25

mẫu những thư có nội dung giống thư mới nhất và dựa trên nhãn phân loại của các
thư mẫu này để xác định nhãn cho thư mới.
Thuật toán phân loại dựa trên ví dụ được sử dụng nhiều nhất là thuật toán k
hàng xóm gần nhất (k-NN). K-NN xác định độ tương tự giữa hai thư bằng cách
tính khoảng cách ơclit giữa hai vectơ tương ứng với hai thư đó. Nhãn phân loại thư
mới được tính theo nhãn của k thư mẫu gần thư cần phân loại nhất.
Mặc dù đơn giản và có độ chính xác phân loại chấp nhận được, bộ phân loại
dạng này có tốc độ phân loại chậm do phải so sánh thư mới với tất cả các thư mẫu
đã lưu từ trước. Ngoài ra, việc lựa chọn tập đặc trưng có ảnh hưởng quyết định tới
độ chính xác phân loại [Sebastiani 2002].
Support Vector Machines (SVM)
Chi tiết về phân loại thư sử dụng SVM sẽ được trình bầy trong phần 3.5.
Một số phương pháp khác

Ngoài những phương pháp được nhắc tới ở trên, một số kỹ thuật phân loại
khác cũng có thể sử dụng để phân loại văn bản / phân loại thư. Trong số này, đáng
chú ý nhất gồm có Rocchio [Joachim 1997], phương pháp dựa trên mạng Bayes
[Dumais 1998] và phương pháp entropy cực đại [Manning 1999].
3.4. Lọc thư sử dụng phân loại Bayes đơn giản
Để sử dụng phân loại Bayes đơn giản, mỗi thư (phần nội dung) được biểu
diễn bởi một vectơ x
r
= (x
1
, x
2
, …, x
n
), trong đó x
1
, x
2
, …, x
n
là giá trị của đặc trưng
X
1
, X
2
,…, X
n
. Mỗi đặc trưng có thể là một từ hoặc một cụm từ. Ở đây, n là số lượng
đặc trưng được xác định từ toàn bộ tập dữ liệu huấn luyện, tức là số lượng từ/cụm
từ khác nhau trong tập dữ liệu huấn luyện. Cách xác định n sẽ được đề cập trong

một phần sau của bài báo. Mỗi thư được gán một nhãn phân loại Y có thể nhận một
trong hai giá trị: Y = 1 cho trường hợp thư rác và Y = 0 cho trường hợp thư bình
thường.
Để xác định nhãn phân loại cho thư, bộ phân loại Bayes tính xác suất điều
kiện
P (Y = y | X
1
= x
1
,…, X
n
= x
n
)
tức là xác suất một thư với nội dung (x
1
, x
2
, …, x
n
) nhận nhãn phân loại y, y
∈ {1,0}. Sử dụng công thức Bayes, xác suất trên được tính như sau
), ,(
)()|, ,(
), ,|(
11
11
11
nn
nn

nn
xXxXP
yYPyYxXxXP
xXxXyYP
==
=

=
=
=
==== (1)

×