2 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...

55
BBƯU CHÍNH VIN THÔNG BÁO CÁO ĐỀ TÀI Nghiên cu xây dng hthng lc thư rác có khnăng lc thư rác tiếng Anh và tiếng Vit Mã s: 100-06-KHKT-RD Chtrì đề tài: TS. TMinh Phương Tham gia thc hin: ThS. Phm Văn Cường ThS. Nguyn Duy Phương KS. Hoàng Trng Huy Hà ni 11-2006

Upload: lee-nam

Post on 28-Jul-2015

583 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 2 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(2 Thạc Sĩ)

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

Page 2: 2 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(2 Thạc Sĩ)

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

Page 3: 2 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(2 Thạc Sĩ)

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

Page 4: 2 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(2 Thạc Sĩ)

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áo1. 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ể.

Page 5: 2 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(2 Thạc Sĩ)

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ử.

Page 6: 2 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(2 Thạc Sĩ)

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.

Page 7: 2 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(2 Thạc Sĩ)

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.

Page 8: 2 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(2 Thạc Sĩ)

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 http://www.pewinternet.org, 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

Page 9: 2 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(2 Thạc Sĩ)

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:

[email protected], [email protected],.. [email protected], [email protected],..

Để 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).

Page 10: 2 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(2 Thạc Sĩ)

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

Page 11: 2 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(2 Thạc Sĩ)

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.

Page 12: 2 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(2 Thạc Sĩ)

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.

Page 13: 2 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(2 Thạc Sĩ)

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.

Page 14: 2 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(2 Thạc Sĩ)

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

Page 15: 2 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(2 Thạc Sĩ)

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.

Page 16: 2 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(2 Thạc Sĩ)

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

Page 17: 2 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(2 Thạc Sĩ)

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.

Page 18: 2 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(2 Thạc Sĩ)

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.

Page 19: 2 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(2 Thạc Sĩ)

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.

Page 20: 2 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(2 Thạc Sĩ)

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

Page 21: 2 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(2 Thạc Sĩ)

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ừ

Page 22: 2 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(2 Thạc Sĩ)

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ư

Page 23: 2 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(2 Thạc Sĩ)

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í

Page 24: 2 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(2 Thạc Sĩ)

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ư

Page 25: 2 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(2 Thạc Sĩ)

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ơ xr = (x1, x2, …, xn), trong đó x1, x2, …, xn là giá trị của đặc trưng X1, X2,…, Xn. 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 | X1 = x1,…, Xn = xn) tức là xác suất một thư với nội dung (x1, x2, …, xn) 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

1111

nn

nnnn xXxXP

yYPyYxXxXPxXxXyYP==

=⋅======= (1)

Page 26: 2 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(2 Thạc Sĩ)

26

Trong công thức (1), giá trị mẫu số không phụ thuộc vào nhãn phân loại và do vậy có thể bỏ qua. Nhãn phân loại Y là nhãn tương ứng với giá trị lớn nhất của tử số. Cụ thể, trong trường hợp phân loại thư rác, nhãn của thư được xác định bằng cách tính giá trị biểu thức:

)0()0|,...,()1()1|,...,(

),...,|0(),...,|1(

11

11

11

11

=⋅====⋅===

=======

YPYxXxXPYPYxXxXP

xXxXYPxXxXYP

nn

nn

nn

nn (2)

Giá trị biểu thức (2) lớn hơn 1 có nghĩa xác suất thư là thư rác lớn hơn xác suất thư bình thường và thư sẽ được gán nhãn thư rác. Giá trị biểu thức (2) nhỏ hơn 1 cho kết quả ngược lại. Tuy nhiên, đối với bài toán lọc thư, lỗi phân loại thư rác thành thư thường dễ chấp nhận hơn nhiều so với phân loại nhầm thư thường thành thư rác. Do vậy, không thể chỉ đơn thuần gán cho thư nhãn có xác suất điều kiện lớn hơn. Giả sử việc phân loại thư rác thành thư thường dễ chấp nhận hơn phân loại thư thường thành thư rác T lần, theo lý thuyết phân loại bayes tối ưu trình bày trong [Duda &Hard], thư sẽ được phân loại là rác nếu

TYPYxXxXPYPYxXxXP

nn

nn >=⋅====⋅===

)0()0|,...,()1()1|,...,(

11

11 (3)

Trên thực tế, giá trị T là tham số và có thể do người sử dụng xác định. Xác suất P(Y = y) trên tập dữ liệu huấn luyện có thể tính dễ dàng bằng cách

đếm tần suất xuất hiện của thư có nhãn “rác” và “bình thường”. Việc xác định P ( X

r = xr | Y = y) phức tạp hơn nhiều do phải tính tất cả các tổ hợp giá trị của vectơ

Xr

và đòi hỏi lượng dữ liệu huấn luyện lớn tương ứng. Để khắc phục vấn đề này, phương pháp Bayes đơn giản sử dụng một số giả thiết về tính độc lập xác suất của các đặc trưng nếu đã biết nhãn phân loại. Có một số cách tính giá trị P ( X

r = xr | Y =

y) khác nhau tương ứng với các phiên bản khác nhau của phương pháp phân loại văn bản sử dụng Bayes đơn giản. Trong nghiên cứu này, chúng tôi sẽ sử dụng hai phiên bản thông dụng nhất: Bayes đơn giản với mô hình Bécnuli đa trị (multivariate Bernoulli naïve Bayes) và Bayes đơn giản với mô hình đa thức (multinomial naïve Bayes).

Phân loại Bayes đơn giản với mô hình Bécnuli đa trị Giả sử F = (f1, f2, …,fn) là tập hợp toàn bộ n đặc trưng. Trong mô hình đang

xét, mỗi thuộc tính Xi được coi là một biến nhị phân ngẫu nhiên có thể nhận một trong hai giá trị 0 và 1. Xi = 1 nếu đặc trưng fi xuất hiện trong thư và Xi = 0 trong trường hợp ngược lại (không quan tâm đặc trưng đó xuất hiện chính xác bao nhiêu lần). Mô hình Bécnuli đa trị coi nội dung của một thư bất kỳ với nhãn y là kết quả

Page 27: 2 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(2 Thạc Sĩ)

27

của n thực nghiệm Bécnuli (tung đồng xu sấp ngửa), mỗi thực nghiệm cho phép xác định đặc trưng Xi nhận giá trị 1 hay 0 với xác suất P(fi | y) và 1 − P(fi | y) tương ứng. Mô hình Bayes đơn giản giả thiết rằng kết quả các thực nghiệm độc lập với nhau nếu biết nhãn phân loại Y. Rõ ràng, giả thiết này là không hợp lý vì các từ trong một thư không xuất hiện độc lập với nhau, từ đây mà có tên gọi Bayes “đơn giản”. Tuy nhiên, sử dụng giả thiết về độc lập xác suất cho phép đơn giản hoá việc tính xác suất trong P ( X

r = xr | Y = y) và trên thực tế vẫn cho kết quả phân loại tốt.

Giả thiết này cũng được sử dụng trong tất cả các phiên bản của phân loại Bayes đơn giản.

Với mô hình Bécnuli đa trị ở trên, ta có:

)1(

111 ))|(1.()|()|,...,( ii x

i

n

i

xinn yYfPyYfPyYxXxXP −

=

=−===== ∏ (4)

Trong đó, xác suất P(fi| Y = y) là tỷ lệ thư với nhãn y đồng thời có chứa fi trong số thư có nhãn y. Tỷ lệ này được tính trên tập dữ liệu huấn luyện.

Trong trường hợp dữ liệu huấn luyện không đủ lớn, một vấn đề có thể nảy sinh khi tính P(fi | Y = y) là thư với nhãn y và chứa fi không xuất hiện trong tập huấn luyện. Khi đó, P(fi | Y = y) = 0 và toàn bộ biểu thức (4) sẽ bằng 0. Để giải quyết vấn đề này, xác suất P(fi | Y = y) được tính như sau:

21

)|( ,

+

+==

y

fyi N

NyYfP i (5)

Trong đó, Ny,fi là số lượng thư với nhãn y và có chứa fi, Ny là toàn bộ số lượng thư với nhãn y. 1 và 2 là các hằng số được thêm vào sao cho xác suất tiền nghiệm của mỗi phân loại bằng nhau và bằng 1/2 khi chưa có dữ liệu.

Thay thế (4) vào (3), ta có thể phân loại thư là thư rác nếu:

TYfPYfPYP

YfPYfPYP

ii

ii

xi

n

i

xi

xi

n

i

xi

>=−==

=−==

=

=

∏)1(

1

)1(

1

))0|(1.()0|()0(

))1|(1.()1|()1( (6)

Phân loại Bayes đơn giản với mô hình đa thức Trong mô hình đa thức, mỗi đặc trưng Xi có thể nhận giá trị xi trong đó xi =

{0,1,2,3…}là số lần xuất hiện của fi trong thư d tương ứng. Mô hình đa thức coi nội dung thư d sinh ra bằng cách lấy ngẫu nhiên có lặp |d| đặc trưng từ tập đặc trưng chung F với xác suất P(fi| y) cho mỗi fi (|d| là số lượng đặc trưng trong thư d).

Page 28: 2 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(2 Thạc Sĩ)

28

Sử dụng thêm giả thiết là |d| không phụ thuộc vào nhãn Y cho phép tính P ( Xr

= xr | Y = y) theo xác suất đa thức như sau:

∏=

=====

n

i i

xi

nn xyYfPddPyYxXxXP

i

111 !

)|(|!.||).(|)|,...,( (7)

Xác suất P(fi | Y = y) được tính từ dữ liệu huấn luyện theo công thức

nNN

yYfPy

fyi

i

+

+==

1)|( , (8)

Trong đó Ny là số lượng thư với nhãn phân loại y và Ny,fi là tổng số lần đặc trưng fi xuất hiện trong các thư có nhãn y.

Tiêu chuẩn phân loại thư rác (3) khi đó trở thành:

TYfPYP

YfPYP

n

i

xi

n

i

xi

i

i

>==

==

=

=

1

1

)0|()0(

)1|()1( (9)

Một phiên bản đơn giản của mô hình đa thức tiến hành phân loại theo công thức (9) tuy nhiên các đặc trưng chỉ nhận giá trị 0 hoặc 1, tức là xi = {0,1} thay vì xi = {0,1,2,3…}. Kết quả thử nghiệm trình bày trong [] cho thấy mặc dù đơn giản, mô hình đa thức với các đặc trưng là biến nhị phân cho kết quả phân loại tương đương hoặc tốt hơn mô hình đa thức thông thường. Do vậy, trong phần thử nghiệm ở dưới, chúng tôi chỉ trình bày kết quả cho mô hình đa thức với đặc trưng là biến nhị phân.

3.5. Lọc thư sử dụng Support Vector Machines (SVM)

SVM là phương pháp phân loại tự động tương đối mới [Vapnik], có cơ sở lý thuyết rõ ràng dựa trên khái niệm chiều VC về khả năng khái quát hoá cho phân loại mẫu mới. Ngoài ra, nhiều thử nghiệm với các ứng dụng khác nhau cho thấy SVM là một trong những phương pháp phân loại có độ chính xác cao nhất.

SVM cũng là phương pháp phân loại được sử dụng nhiều trong phân loại văn bản. Ưu điểm của SVM đối với phân loại văn bản là phương pháp này có khả năng làm việc với dữ liệu nhiều thuộc tính trong đó có những thuộc tính không liên quan đến nhãn phân loại [Joachim 98].

Giả sử dữ liệu huấn luyện bao gồm n mẫu được cho dưới dạng >< ii yx ,r ,

i=1…n, trong đó mix ℜ∈

r là véctơ bao gồm m phần tử chứa giá trị của m thuộc tính

hay đặc trưng và yi là nhãn phân loại có thể nhận giá trị +1 hoặc -1. Có thể hình

Page 29: 2 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(2 Thạc Sĩ)

29

dung dữ liệu như các điểm trong không gian ơclit m chiều và được gán nhãn. SVM được xây dựng trên cơ sở hai ý tưởng chính.

Ý tưởng thứ nhất là ánh xạ dữ liệu gốc sang một không gian mới gọi là không gian đặc trưng với số chiều lớn hơn sao cho trong không gian mới có thể xây dựng một siêu phẳng cho phép phân chia dữ liệu thành hai phần riêng biệt, mỗi phần bao gồm các điểm có cùng nhãn phân loại. Ý tưởng ánh xạ sang không gian đặc trưng được minh hoạ trên hình 3.1.

Hình 3.1. Ánh xạ dữ liệu từ không gian gốc sang không gian đặc trưng cho

phép phân chia dữ liệu bởi siêu phẳng

Ý tưởng thứ hai là trong số những siêu phẳng như vậy cần lựa chọn siêu phẳng có lề lớn nhất. Lề ở đây là khoảng cách từ siêu phẳng tới các điểm gần nhất nằm ở hai phía của siêu phẳng (mỗi phía tương ứng với một nhãn phân loại). Lưu ý rằng siêu phẳng nằm cách đều các điểm gần nhất với nhãn khác nhau. Trên hình 3.2. là minh hoạ siêu phẳng (đường liền nét) với lề cực đại tới các điểm dữ liệu biểu diễn bởi các hình tròn và hình vuông.

Hình 3.2. Siêu phẳng với lề cực đại cho phép phân chia các hình vuông khỏi

các hình tròn trong không gian đặc trưng

Không gian gốc Không gian đặc trưng

Page 30: 2 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(2 Thạc Sĩ)

30

Để tránh việc tính toán trực tiếp với dữ liệu trong không gian mới, ta sử dụng một phương pháp gọi là thủ thuật nhân bằng cách tìm một hàm nhân (kernel function) K sao cho:

>=< babaKrrrr ,),( (10)

Sử dụng phương pháp nhân tử Lagrăng và thay thế tích vô hướng của hai vectơ bằng giá trị hàm nhân theo công thức (10), bài toán tìm lề cực đại của SVM được đưa về bài toán quy hoạch toán học bậc hai như sau:

Tìm vectơ hệ số ),...,,( 21 nαααα =r cho phép cực tiểu hoá hàm mục tiêu

∑∑∑== =

+−=n

ii

n

i

n

jjijiji xxKyy

11 1

),(21)W( αααα

rrr (11)

đồng thời thoả mãn các điều kiện

∑=

=n

iiiy

10α (12)

Và 0 ≤ αi ≤ C (13)

Trong (11), (12), (13), ixr và yi tương ứng là dữ liệu và nhãn phân loại của ví

dụ huấn luyện thứ i, αi là hệ số cần xác định. Trong ràng buộc (13), C là số lượng tối đa các điểm dữ liệu có phân loại sai, tức là các điểm nằm ở phía này của siêu phẳng nhưng lại có nhãn của các điểm nằm ở bên kia. Việc sử dụng C cho phép khắc phục tình trạng dữ liệu huấn luyện có các ví dụ bị gán nhãn không chính xác.

Quá trình huấn luyện SVM là quá trình xác định αi . Có nhiều phương pháp cho phép tính αi từ dữ liệu huấn luyện một cách hiệu quả trong đó thông dụng nhất là SMO [Platt 1998].

Sau khi huấn luyện xong, giá trị nhãn phân loại cho một ví dụ mới xr sẽ được tính bởi

∑=

+=n

iiii bxxKysignxf

1)),(()( rrr

α (14)

Ở đây, b được tính trong giai đoạn huấn luyện theo công thức sau

∑=

−=n

jjijji xxKyyb

1),( rr

α (15)

trong đó i là một hệ số thoả mãn điều kiện 0 < αi < C. Đối với bài toán phân loại thư điện tử, ixr là vectơ đặc trưng biểu diễn cho

nội dung thư như trong phần phân loại Bayes và yi là nhãn phân loại đối với dữ liệu huấn luyện. Tương tự như phần phân loại Bayes, giá trị xi có thể là 0 hoặc 1. Thư

Page 31: 2 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(2 Thạc Sĩ)

31

mới được phân loại theo công thức (7): giá trị âm là thư bình thường, trong khi giá trị dương tương ứng với thư rác.

3.6. Lọc thư tiếng Việt

3.6.1. Tình hình nghiên cứu và các vấn đề cần giải quyết Tình hình nghiên cứu trên thế giới Lọc thư rác theo nội dung không phải là phương pháp mới. Có nhiều nghiên

cứu trình bày kết quả thử nghiệm liên quan tới giải pháp này như [Drucker 1999, Androutsopoulos2000, Schneider 2004, Metsis2006] (phần tổng quan về kết quả nghiên cứu liên quan đã được trình bầy trong các mục 3.2 và 3.3). Một số hệ thống lọc thư được thương mại hoá cũng sử dụng lọc nội dung như phương pháp lọc chính [gmail, yahoo, hotmail]. Tuy nhiên, các nghiên cứu về lọc nội dung mới chỉ tập trung vào trường hợp thư điện tử viết bằng tiếng Anh. Do nội dung thư phục thuộc vào đặc điểm ngôn ngữ nên khi phân loại thư trên những ngôn ngữ khác, cần có những nghiên cứu làm rõ vấn đề tiền xử lý ngôn ngữ và khả năng áp dụng các phương pháp phân loại thông dụng.

Tình hình nghiên cứu về lọc thư rác tại Việt nam Ở Việt nam, cùng với sự phổ biến nhanh chóng của Internet trong vài năm

gần đây, số lượng thư rác viết bằng tiếng Việt, nhắm vào những tài khoản thư điện tử tiếng Việt (có đuôi .vn) cũng tăng lên nhanh chóng. Tình trạng này đặt ra vấn đề nghiên cứu các giải pháp phát hiện thư rác cho thư tiếng Việt. Vấn đề này bắt đầu được một số nhóm nghiên cứu tại các trường Đại học quốc gia Hà nội, Đại học Bách khoa Hà nội, Trung tâm an ninh thông tin Viện kỹ thuật quân sự, Học viện Công nghệ bưu chính viễn thông quan tâm. Đặc biệt, lọc thư rác tiếng Việt được coi là một trong những chủ đề quan trọng của đề tài cấp nhà nước về xây dựng hệ thống lọc thông tin tại cổng quốc gia đã được đưa ra đấu thầu và xét duyệt trong năm 2006 vừa qua.

Tuy nhiên, các kết quả nghiên cứu về vấn đề lọc thư rác tiếng Việt hiện đang còn khá khiêm tốn. Theo như chúng tôi được biết, kết quả duy nhất về lọc thư rác tiếng Việt là bài báo được báo cáo tại Hội thảo quốc gia về công nghệ thông tin tại Hải phòng năm 2005 của nhóm tác giả thuộc trường Đại học Công nghệ [Lan 2005] 2. Trong bài báo này, nhóm tác giả không đưa ra giải pháp đặc thù nào cho thư rác tiếng Việt mà chỉ tiến hành thử nghiệm trên tập thư tiếng Việt sử dụng giải pháp như đối với thư tiếng Anh. Cụ thể, nội dung thư được biểu diễn dưới dạng

2 Nếu không kể tới kết quả ban đầu của đề tài này được công bố tại Hội thảo quốc gia về công nghệ thông tin tại Đà lạt tháng 6/2006

Page 32: 2 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(2 Thạc Sĩ)

32

các từ đơn giống như đối với thư tiếng Anh sau đó được phân loại bằng cách sử dụng một biến thể của phương pháp Bayes đa trị. Hiệu quả phân loại được thử nghiệm trên dữ liệu bao gồm 200 thư rác và 230 thư bình thường, tất cả đều là thư tiếng Việt. Kết quả phân loại chính xác khoảng 92%. Trên thực tế, giả thiết bộ lọc thư chỉ nhận được toàn thư tiếng Việt là không hợp lý, hệ thống thư điện tử thông thường bao giờ cũng nhận được cả thư tiếng Việt và tiếng Anh.

Vấn đề phân loại văn bản tiếng Việt và tình hình nghiên cứu trong nước Về bản chất, lọc thư theo nội dung là trường hợp riêng của phân loại văn bản.

Bài toán phân loại văn bản tiếng Việt là một trong những nội dung nghiên cứu được chú ý trong vài năm gần đây với một số kết quả nghiên cứu đã được công bố. Những kết quả nghiên cứu chính liên quan tới kỹ thuật xác định đặc trưng biểu diễn văn bản và thử nghiệm kỹ thuật phân loại. Dưới đây, chúng tôi sẽ điểm qua các kết quả này.

Tách đặc trưng cho văn bản tiếng Việt. Nhiều phương pháp tách đặc trưng đã được thử nghiệm cho văn bản tiếng Việt. Trong số đó phải kể đến phương pháp sử dụng n-grams [Cường 2005]. Phương pháp này coi mỗi đặc trưng là một cụm gồm n từ nằm liền nhau. Ưu điểm lớn nhất của phương pháp này là đơn giản và cho kết quả khá tốt. Tuy nhiên, nhóm tác giả nói trên lựa chọn ngay n=1,2,3 và không so sánh với những giá trị n khác. Chi tiết về phương pháp này sẽ được đề cập tới trong một phần sau của báo cáo.

Một phương pháp xác định đặc trưng khác là sử dụng từ điển [Giang 2005]. Một cụm từ trong văn bản được coi là đặc trưng nếu trùng với một thuật ngữ trong từ điển. Nếu có nhiều đặc trưng lồng nhau thì đặc trưng dài nhất sẽ được lựa chọn. Phương pháp này đòi hỏi lượng bộ nhớ tương đối lớn để lưu từ điển.

Các kỹ thuật xử lý ngôn ngữ tự nhiên như sử dụng mô hình Markov ẩn, mô hình ngữ pháp và các mô hình thống kê cũng được sử dụng cho xác định đặc trưng tiếng Việt [Hà 2003, Hùng 2006]. Nguyên tắc chung của nhóm giải pháp này là sử dụng bộ ngữ liệu để xây dựng mô hình thống kê cho việc xuất hiện các đặc trưng trong văn bản. Mô hình sau đó sẽ được sử dụng để hướng dẫn việc tách đặc trưng từ văn bản mới. Kết quả thử nghiệm phương pháp loại này cho kết quả khả quan, tuy nhiên nhóm giải pháp này thường đòi hỏi thời gian thống kê cũng như tách đặc trưng lớn hơn so với hai giải pháp nói trên.

Phương pháp phân loại. Phương pháp phân loại được thử nghiệm cho phân loại văn bản tiếng Việt cũng là những phương pháp đã được trình bầy trong phần 3.3. Cụ thể, sau khi tách đặc trưng như trình bầy ở trên, văn bản tiếng Việt được thử nghiệm phân loại bằng SVM [Giang 2005], Bayes đơn giản [Lan 2005],

Page 33: 2 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(2 Thạc Sĩ)

33

phương pháp entropy cực đại [Cường 2005]. Điều đáng nói là đa số các tác giả chỉ thử nghiệm từng phương pháp phân loại riêng lẻ và không có so sánh với những phương pháp phân loại khác trên cùng bộ dữ liệu thử nghiệm.

Các vấn đề cần giải quyết Mặc dù đã có một số kết quả bước đầu như nhắc tới ở trên, các nghiên cứu về

lọc thư tiếng Việt mới chỉ dừng lại ở việc nghiên cứu một số khía cạnh của việc lọc thư tiếng Việt. Cần có những nghiên cứu mang tính hệ thống và so sánh ưu nhược điểm các giải pháp khác nhau.

Khi lựa chọn giải pháp lọc nội dung cho thư tiếng Việt cần chú ý tới một số vấn đề sau. Thứ nhất, cần lựa chọn phương pháp tách từ tiếng Việt vừa nhanh vừa cho kết quả phân loại tốt. Thứ hai, cần giải quyết vấn đề thư viết bằng tiếng Việt có dấu và không dấu. Thứ ba, cần kết hợp lọc thư cho cả thư viết bằng tiếng Anh và thư viết bằng tiếng Việt. Thứ tư, cần xác định chất lượng lọc thư tiếng Việt khi sử dụng những phương pháp phân loại khác nhau. Trong báo cáo này, chúng tôi sẽ trình bày một số giải pháp cho bốn vấn đề nêu trên và kết quả thử nghiệm trên dữ liệu thực. 3.6.2. Biểu diễn thư bằng các đặc trưng - từ Trong hầu hết các nghiên cứu lọc thư rác tiếng Anh, đặc trưng được sử dụng là những từ riêng lẻ (word). Do đặc điểm của tiếng Anh nên việc xác định từ trong câu rất đơn giản, mỗi từ được phân cách với từ khác bằng dấu cách hoặc các dấu trắng khác.

Đối với tiếng Việt, từ có thể bao gồm nhiều tiếng, ví dụ từ “đặc trưng” bao gồm hai tiếng “đặc” và “trưng”. Trong khi có thể tách từng tiếng một cách dễ dàng thì việc xác định từ hoàn toàn không đơn giản. Ngoài, ra do từ bao gồm nhiều tiếng, việc sử dụng tần suất các đặc trưng như trong phân loại Bayes có thể bị ảnh hưởng và cho kết quả khác với thư tiếng Anh và do vậy cần xác định thông qua nghiên cứu thử nghiệm.

Vấn đề tách từ cho văn bản tiếng Việt đã được trình bày trong nhiều kết quả nghiên cứu với những cách tiếp cận khác nhau như sử dụng từ vựng [Giang2005], sử dụng thống kê từ Internet, sử dụng mô hình Markov ẩn, sử dụng giải thuật di truyền [Hùng2006]. Tuy nhiên, khi sử dụng để lọc thư, các phương pháp này đều đòi hỏi một khối lượng tính toán nhất định trước khi tách được các từ. Đối với hệ thống lọc thư trên các mail server với lưu lượng thư lớn, giai đoạn tách từ có thể làm chậm tốc độ lọc thư và ảnh hưởng đáng kể tới tốc độ toàn hệ thống.

Để đảm bảo tốc độ lọc thư được tốt, chúng tôi không sử dụng những giải pháp tách từ phức tạp mà coi mỗi đặc trưng là một k-gram tức là mỗi đặc trưng sẽ gồm k

Page 34: 2 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(2 Thạc Sĩ)

34

tiếng đứng gần nhau và không bị phân tách bởi các dấu câu hoặc các từ dừng (stop word). Vấn đề đặt ra là lựa chọn k bằng bao nhiêu thì hợp lý. Các thống kê trong từ điển http://dict.vietfun.com cho thấy gần 90% từ tiếng Việt có độ dài từ ba tiếng trở xuống, do vậy, trong thử nghiệm của mình, chúng tôi sử dụng k = 1, 2, 3.

Trước khi tách từ, nội dung thư được tiền xử lý bằng cách bỏ các thẻ HTML (nếu có) và các từ dừng. Từ dừng là những từ đóng vai trò liên kết trong văn bản như “và”, “thì”, “mà”, “nhưng”, “song”.v.v. và không có ảnh hưởng tới ý nghĩa của thư. Thư tiếng Anh cũng được xử lý tương tự. Ngoài ra, các từ còn được xử lý bằng cách sử dụng thuật toán stemming của Porter [Porter 1980]. Stemming là quá trình biến đổi từ tiếng Anh về dạng gốc. Ví dụ “speaking” được biến đổi thành “speak”. 3.6.3. Lựa chọn số lượng đặc trưng

Sau khi tách được các đặc trưng dưới dạng k-gram như trên, vấn đề tiếp theo là quyết định số lượng đặc trưng sẽ sử dụng. Nếu thống kê trong toàn bộ tập dữ liệu huấn luyện thì số lượng đặc trưng có thể lên tới vài chục nghìn và mỗi vectơ xr tương ứng với một thư sẽ có đa số giá trị xi = 0. Rất nhiều đặc trưng - từ không liên quan tới việc thư có là thư rác hay không. Việc sử dụng tất cả các đặc trưng như vậy ngoài việc làm chậm tốc độ phân loại còn có thể làm giảm độ chính xác phân loại. Do đó, các nghiên cứu về phân loại văn bản và lọc thư thường loại bỏ những đặc trưng không liên quan tới nhãn phân loại và chỉ giữ lại những đặc trưng có liên quan.

Có nhiều phương pháp lựa chọn đặc trưng liên quan. Ở đây, chúng tôi sử dụng hai phương pháp. Phương pháp thứ nhất loại bỏ những đặc trưng xuất hiện trong quá ít thư hoặc xuất hiện trong quá nhiều thư. Nếu đặc trưng xuất hiện trong quá ít thư thì đó là những đặc trưng xuất hiện tình cờ và không phụ thuộc vào nhãn phân loại. Trong thực nghiệm, những đặc trưng xuất hiện trong ít hơn 3 thư sẽ bị loại. Ngược lại, nếu đặc trưng xuất hiện trong hầu hết các thư thì đó là những đặc trưng phổ biến trong bất kỳ thư nào và do vậy cũng không chứa thông tin về phân loại của thư. Trong các thực nghiệm, chúng tôi sẽ loại bỏ những thư xuất hiện thường xuyên nhất.

Phương pháp thứ hai sử dụng độ đo thông tin tương hỗ (mutual information – MI) để lựa chọn đặc trưng. MI là độ đo mức độ liên quan về thông tin giữa hai biến ngẫu nhiên, tức là khi biết giá trị biến này thì ta có thể biết được gì về giá trị biến kia. Trong trường hợp lọc thư, hai biến ngẫu nhiên là giá trị đặc trưng và nhãn phân loại. MI được tính như sau

Page 35: 2 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(2 Thạc Sĩ)

35

∑∈∈ ==

=====

thuong}binh{rac, {0,1}, )()(),(log),(),(

yx yYPxXPyYxXPyYxXPYXMI (16)

Các xác suất P(X,Y), P(X) và P(Y) được tính bằng tần suất xuất hiện của các sự kiện tương ứng trên dữ liệu huấn luyện. Sau khi đã tính MI cho tất cả các đặc trưng k-gram, n đặc trưng có MI cao nhất sẽ được lựa chọn.

3.6.4. Phân loại đồng thời thư tiếng Việt và thư tiếng Anh

Đối với một người sử dụng tài khoản thư điện tử tại Việt nam (đuôi .vn), ngoài thư điện tử tiếng Việt bao gồm thư rác và thư bình thường còn có thư tiếng Anh cũng bao gồm cả thư rác và thư bình thường (chưa kể tới thư bằng ngoại ngữ khác). Như vậy giải pháp lọc thư cần cho phép xử lý cả thư tiếng Anh và tiếng Việt. Có thể có hai cách giải quyết vấn đề này.

• Cách thứ nhất là phân chia thư nhận được thành tiếng Anh và tiếng Việt, sau đó tiến hành phân loại thư tiếng Anh riêng và thư tiếng Việt riêng. Tất nhiên, có thể có trường hợp trong một thư có cả tiếng Việt và tiếng Anh nhưng tỷ lệ này không nhiều.

• Cách thứ hai là xây dựng một bộ phân loại chung cho cả tiếng Anh và tiếng Việt. Cách thứ hai đơn giản hơn nhưng có thể gặp vấn đề khi lựa chọn tham số k để tách các k-gram.

Nếu sử dụng cách thứ nhất thì xuất hiện một vấn đề cần giải quyết là phân biệt thư tiếng Anh và thư tiếng Việt. Mặc dù có những giải pháp phức tạp hơn được đề xuất cho vấn đề này, ở đây chúng tôi sử dụng một giải pháp rất đơn giản. Khi lựa chọn đặc trưng, các đặc trưng được đánh dấu riêng tiếng Việt hoặc tiếng Anh và lưu vào bảng băm. Khi một thư xuất hiện, 20 đặc trưng đầu tiên của thư sẽ được băm vào bảng tiếng Việt và tiếng anh. Nếu số lượng băm trúng trong bảng tiếng Việt lớn hơn bảng tiếng Anh thì thư được coi là thư việt và ngược lại. Thử nghiệm trên bộ dữ liệu của chúng tôi cho tỷ lệ phân loại tiếng Anh tiếng Việt đúng là 100% đối với những thư được viết trên một ngôn ngữ duy nhất. Tuy nhiên, đối với những thư sử dụng cả tiếng Việt và tiếng Anh việc kết luận thư thuộc một trong hai ngôn ngữ duy nhất có thể ảnh hưởng tới quá trình phân loại tiếp theo. Trong các thử nghiệm trình bày ở dưới, chúng tôi sẽ đề cập tới ảnh hưởng của vấn đề này.

Sau khi phân biệt được thư tiếng Anh, thư tiếng anh sẽ được lọc riêng. Hiệu quả phân loại chung sau đó được lấy bằng trung bình cộng của phân loại cho thư tiếng Việt và thư tiếng Anh.

Page 36: 2 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(2 Thạc Sĩ)

36

3.6.5. Tiếng Việt có dấu và không dấu Nhiều thư tiếng Việt, kể cả thư rác, được viết không có dấu. Như vậy cùng

một từ “thư” trong thư có dấu có thể tương ứng với hai đặc trưng là “thư” và “thu”. Tương tự phần 3.3 có hai cách để giải quyết. Cách thứ nhất là tiến hành huấn luyện và phân loại bình thường, không quan tâm tới dấu. Cách thứ hai là phân biệt riêng thư có dấu với không dấu sau đó huấn luyện và phân loại riêng. Có thể kể thêm cách thứ ba là biến đổi tất cả từ có dấu thành không dấu sau đó tiến hành phân loại chung. Tuy nhiên, cách này không hợp lý và do vậy không được sử dụng trong quá trình thử nghiệm.

Trong trường hợp sử dụng cách thứ hai, kỹ thuật tương tự như khi phân biệt thư tiếng Anh và thư tiếng Việt ở trên sẽ được sử dụng. Một điều thú vị là, trong trường hợp này nhiều từ tiếng Việt không dấu sẽ băm vào cả bảng tiếng Anh cũng như bảng tiếng Việt.

3.7. Thử nghiệm và kết quả

3.7.1. Dữ liệu thử nghiệm Một khó khăn khi thử nghiệm lọc thư tiếng Việt là hiện nay chưa có những bộ

dữ liệu mẫu chuẩn. Do vậy chúng tôi tự tiến hành xây dựng bộ dữ liệu thư để dùng trong thử nghiệm của mình. Thư rác được thu thập từ hai nguồn: nguồn thứ nhất là những thư rác mà các tác giả nhận được qua địa chỉ thư của mình tại Việt nam. Nguồn thứ hai là những thư rác do quản trị phát hiện tại mail server của công ty FPT (mail.fpt.com.vn). Thư bình thường là những thư mà các tác giả nhận được bao gồm cả thư tiếng Việt và tiếng Anh.

Đối với các thư bình thường nhận được, trong trường hợp thư nhận từ cùng một nguồn qua nhiều phiên gửi và reply thì đối với những thư gửi sau sẽ được xoá phần đã gửi từ trước, chỉ giữ lại nội dung thư nhận được cuối cùng. Đối với những thư bao gồm cả văn bản và hình ảnh, chỉ có phần văn bản được sử dụng, phần hình ảnh bị bỏ qua không xem xét. Các thông số chính về bộ dữ liệu thử nghiệm được thống kê trong bảng 3.1.

Bảng 3.1. Bộ dữ liệu thử nghiệm

Tổng số thư Thư rác Thư bình thường

1929

Anh Việt Anh Việt

Có dấu Không dấu Có dấu Không dấu

624 248 269 260 232 296

Page 37: 2 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(2 Thạc Sĩ)

37

3.7.2. Phương pháp thử nghiệm Ba phương pháp phân loại được thử nghiệm bao gồm hai phiên bản phân loại

Bayes đơn giản – phiên bản sử dụng mô hình Bécnuli đa trị (Bayes đa trị) và phiên bản sử dụng mô hình đa thức (Bayes đa thức) – và SVM. Để thử nghiệm các phương pháp này, chúng tôi sử dụng bộ công cụ WEKA có tại địa chỉ http://www.cs.waikato.ac.nz/ml/weka/. Đối với SVM, hàm nhân sử dụng là hàm tuyến tính tức là việc phân loại được tiến hành trong không gian gốc của dữ liệu. Tham số C trong công thức (13) được đặt bằng 1.

Độ chính xác phân loại được xác định bằng phương pháp kiểm tra chéo 10 nhóm (10-fold cross validation). Toàn bộ dữ liệu được chia ngẫu nhiên thành 10 nhóm kích thước như nhau. Bộ phân loại được huấn luyện trên chín nhóm sau đó được kiểm tra trên một nhóm còn lại. Lặp lại 10 lần với 10 nhóm dùng để kiểm tra, sau đó lấy trung bình cộng kết quả.

Hiệu quả lọc thư được đánh giá theo ba tiêu chí. Hai tiêu chí đầu là độ nhậy (recall) và độ chính xác (precision) được định nghĩa như sau:

độ nhậy = số thư rác phát hiện chính xác Tổng số thư rác trong tập kiểm

tra

độ chính xác = số thư rác phát hiện chính xác

Tổng số thư được phân loại là thư rác

Tiêu chí thứ ba là độ chính xác phân loại chung tức là phần trăm thư được phân loại đúng không phụ thuộc vào đó là thư rác hay thư bình thường. 3.7.3. So sánh phương pháp phân loại

Trước tiên, thử nghiệm được tiến hành để so sánh ba phương pháp: Bayes đa trị, Bayes đa thức và SVM. Ba phương pháp này được sử dụng để phân loại thư với các thông số sau: ngưỡng phân loại T = 1; phân loại riêng thư tiếng Việt có dấu; phân loại thư Việt trộn lẫn thư tiếng Anh không có giai đoạn xác định ngôn ngữ và dấu; sử dụng toàn bộ đặc trưng trừ 100 đặc trưng xuất hiện thường xuyên nhất; sử dụng 1000 đặc trưng có MI cao nhất. Ba phương pháp chỉ được so sánh theo tiêu chí duy nhất là độ chính xác phân loại chung như ở phần 4.2. Kết quả thử nghiệm được thống kê trong bảng 3.2.

Kết quả thử nghiệm cho thấy phương pháp Bayes đa trị cho kết quả kém hơn nhiều so với hai phương pháp còn lại. Phương pháp SVM cho kết quả phân loại tương đương với Bayes đa thức (kết quả trong bảng 2 không cho phép kết luận về ưu thế tuyệt đối của một trong hai phương pháp). Tuy nhiên, SVM đòi hỏi khối lượng và thời gian tính toán lớn hơn nhiều. Trong các thử nghiệm, tổng thời gian

Page 38: 2 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(2 Thạc Sĩ)

38

huấn luyện và phân loại bằng SVM lớn hơn Bayes đơn giản từ 15 tới 100 lần và do vậy không thích hợp với bộ phân loại phải xử lý số lượng thư lớn trên server. Trong các thử nghiệm tiếp theo, chúng tôi sẽ chỉ trình bày kết quả sử dụng Bayes đa thức.

Bảng 3.2. Độ chính xác phân loại với các phương pháp phân loại khác nhau

Các tham số Bayes đa trị Bayes đa thức SVM

Anh+Việt; k = 1; n= 1000 88.52% 96.37% 96.65%

Anh+Việt; k = 1; toàn bộ đặc trưng 87.08% 93.29% 96.42%

Anh+Việt; k = 2; n = 1000 86.12% 96.37% 96.20%

Việt; k = 1; n = 1000 91.17% 97.64% 94.11%

Việt; k = 1; toàn bộ đặc trưng 89.41% 99.14% 99.19%

3.7.4. Lựa chọn độ dài và số lượng đặc trưng Để xác định ảnh hưởng của độ dài đặc trưng đến hiệu quả phân loại thư tiếng

Việt, phương pháp Bayes đa thức được thử nghiệm trên thư tiếng Việt bao gồm cả thư có dấu và không dấu. Các thông số còn lại như sau: sử dụng toàn bộ đặc trưng trừ 100; sử dụng 1000 đặc trưng; độ dài đặc trưng là 1; 1 và 2; 1 và 2 và 3 (k=1; k=1,2; k=1,2,3 cho k-grams). Độ chính xác phân loại chung khi sử dụng độ dài đặc trưng khác nhau được thể hiện trên bảng 3.3. Kết quả cho thấy k = 1,2 và k = 1,2,3 cho độ chính xác tương đương nhau và cao nhất khi sử dụng để phân loại thư tiếng Việt, trong khi đó k = 1 cho kết quả phân loại tốt nhất khi trộn lẫn thư tiếng Việt và tiếng Anh. Điều này có thể giải thích là do k = 1 phù hợp hơn với thư tiếng Anh trong khi số lượng thư tiếng Anh trong tập huấn luyện lớn hơn số lượng thư tiếng Việt.

Bảng 3.3. Kết quả phân loại với độ dài đặc trưng - từ khác nhau k=1 k=1,2 k=1,2,3

độ chính xác

độ nhậy độ chính xác

độ nhậy độ chính xác

độ nhậy

Anh+Việt; n = 1000 0.974 0.964 0.972 0.967 0.961 0.98

Anh+Việt; toàn bộ đặc trưng 0.962 0.914 0.979 0.902 0.962 0.897

Việt; n = 1000 0.965 0.966 0.973 0.993 0.973 0.993

Việt; toàn bộ đặc trưng 0.948 0.958 0.972 0.966 0.972 0.966

Page 39: 2 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(2 Thạc Sĩ)

39

Để xác định ảnh hưởng của số lượng đặc trưng tới kết quả phân loại, chúng tôi tiến hành thử nghiệm với 500, 1000, 3000 đặc trưng có MI cao nhất và toàn bộ trừ 100 đặc trưng. Thử nghiệm được tiến hành trên toàn bộ tập dữ liệu (bao gồm cả tiếng Việt và tiếng Anh) không phân biệt trước ngôn ngữ và trên tập thư tiếng Việt tách riêng. Độ dài đặc trưng sử dụng là k = 1 khi trộn lẫn tiếng Việt, tiếng Anh, và k=1,2 khi phân loại riêng tiếng Việt. Độ chính xác phân loại được thống kê trên Hình 1.

90919293949596979899

100

500 1000 2000 3000 Toàn bộ

số đặc trưng

độ c

hính

xác

(%)

Anh+Việt; k=1Việt; k=2

Hình 1. Độ chính xác phân loại chung với số lượng đặc trưng khác nhau

3.7.5. Phân biệt theo ngôn ngữ trước khi lọc

Như đã nói ở trên, có thể phân chia thư tiếng Việt và tiếng Anh sau đó tiến hành lọc thư rác riêng cho từng ngôn ngữ hoặc có thể lọc luôn không phân biệt thư viết trên ngôn ngữ nào. Tương tự, có thể phân chia thư tiếng Việt có dấu và không dấu trước khi lọc. Để so sánh các quy trình phân loại, thử nghiệm được tiến hành theo các chế độ sau: lọc chung thư tiếng Việt và tiếng Anh, lọc riêng thư tiếng Việt và thư tiếng Anh, lọc thư tiếng Việt không phân thành có dấu-không dấu và phân chia theo dấu trước khi lọc. Với trường hợp phân chia ngôn ngữ, độ dài đặc trưng được chọn k = 2 cho tiếng Việt và k = 1 cho tiếng Anh. Trường hợp không phân chia ngôn ngữ sử dụng k=1. Số lượng đặc trưng n=2000.

Kết quả so sánh ba quy trình lọc được thể hiện trên Hình 2. Kết quả cho thấy, việc lọc riêng theo ngôn ngữ đối với tiếng Việt cho kết quả tốt hơn khi không phân biệt thư tiếng Việt và thư tiếng Anh. Đây có thể là kết quả của việc lựa chọn độ dài đặc trưng phù hợp cho ngôn ngữ. Tuy nhiên, mức độ chênh lệch giữa các quy trình lọc không đáng kể (dưới 1%) và trên thực tế ta có thể bỏ qua giai đoạn phân loại ngôn ngữ.

3.7.6. Nhận xét về kết quả thử nghiệm Kết quả thực nghiệm cho thấy việc tách từ đơn giản bằng cách sử dụng các

cụm từ liền nhau có độ dài bằng 1 và 2 cho kết quả phân loại thư rác chính xác khá

Page 40: 2 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(2 Thạc Sĩ)

40

cao. Đây là kết quả quan trọng vì nó cho phép bộ lọc thư tránh được quá trình tách từ phức tạp và tốn thời gian khi sử dụng những phương pháp tách từ tiếng Việt phức tạp hơn.

97.5

98

98.5

99

99.5

100

Anh+Việt Anh Việt chung Việt có dấu Việt khôngdấu

Độ

chín

h xá

c (%

)

Hình 2. Độ chính xác phân loại với các quy trình lọc khác nhau

Số lượng đặc trưng tối ưu khi lọc thư tiếng Anh và tiếng Việt là 2000-3000

từ. Ngoài việc nâng cao độ chính xác phân loại, việc không phải sử dụng toàn bộ các đặc trưng có trên tập dữ liệu còn cho phép giảm yêu cầu về bộ nhớ và yêu cầu tính toán. Kết quả thử nghiệm cũng không cho thấy sự khác biệt đáng kể về hiệu quả lọc thư khi lọc riêng thư tiếng Việt và thư tiếng Anh so với khi lọc chung.

Trong số ba phương pháp phân loại được sử dụng, phương pháp Bayes đa thức và SVM cho kết quả tốt nhất, tuy nhiên phương pháp Bayes có ưu thế rõ rệt do có độ phức tạp tính toán thấp hơn nhiều.

Trong phạm vi nghiên cứu này mới chỉ đề cập tới việc phân loại thư tự động dựa trên phần nội dung văn bản của thư. Các hướng nghiên cứu tiếp theo bao gồm việc phân loại thư có nội dung được trình bày dưới dạng hình ảnh, nghiên cứu kết hợp nhiều đặc điểm của thư như format, dòng tiêu đề, địa chỉ gửi, thời gian gửi.

Page 41: 2 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(2 Thạc Sĩ)

41

Chương 4. Xây dựng hệ thống lọc thư rác theo nội dung Trong chương này, chúng tôi trình bầy giải pháp và kết quả xây dựng hệ

thống lọc thư rác theo nội dung. Hệ thống được xây dựng dựa trên các kết quả nghiên cứu thử nghiệm trình bầy trong chương 3 của báo cáo và có thể cài đặt để chạy cùng chương trình máy chủ email Microsoft Exchange Server 2003.

4.1. Vị trí hệ thống lọc thư

Một trong những bước quan trọng khi xây dựng hệ thống lọc thư rác là quyết

định vị trí của hệ thống trong cả chu trình trao đổi thư điện tử. Việc xác định vị trí của bộ lọc thư có ảnh hưởng tới kiến trúc bộ lọc, các yêu cầu về tái huấn luyện, tốc độ xử lý và nhiều vấn đề khác.

Thông thường, hệ thống lọc thư có thể tích hợp vào hệ thống gửi và nhận thư điện tử theo một trong các cách sau.

Hình 4.1. Các phương án bộ trí hệ thống lọc thư

MAIL CLIENT

BỘ LỌC MAIL SERVER

THƯ MỚI THƯ MỚI

PHẢN HỒI

(b)

MAIL CLIENT

BỘ LỌC

MAIL SERVER

THƯ MỚI

MAIL SERVER

BỘ LỌC MAIL

CLIENT

THƯ MỚI

PHẢN HỒI

(c)

(a)

Page 42: 2 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(2 Thạc Sĩ)

42

Theo cách bố trí trên hình 4.1.a, bộ lọc thư được tích hợp vào chương trình nhận thư điện tử (mail client) như Outlook Express và chạy trên máy khách (client) của người sử dụng. Cách bố trí này thuận tiện cho việc xây dựng bộ lọc thư được cá nhân hoá, có thể phân biệt thư rác – thư thường theo tiêu chí đánh giá riêng của từng người sử dụng thư điện tử. Ngoài ra, do chạy trên máy khách nên bộ lọc thư không gây quá tải đối với máy chủ thư điện tử. Tuy nhiên, mục tiêu của đề tài là xây dựng bộ lọc cho phía server nên chúng tôi không trình bầy về phương án này trong các phần sau của báo cáo3.

Trên hình 4.2.b là cách bố trí bộ lọc thư dưới dạng một proxy. Bộ lọc thư sẽ đóng vai trò trạm trung chuyển thư bằng cách nhận các gói tin được gửi theo thức thư điện tử vào các cổng dành cho thư. Bộ lọc có thể chạy trên máy chủ hoặc máy khách nhưng thường bộ lọc thư như vậy được cài đặt chạy trên máy khách. Cách cấu hình này có ưu điểm là mềm dẻo, có thể kết hợp nhiều bộ lọc khác nhau bằng nếu gắn đầu ra của bộ này với đầu vào của bộ khác và trên thực tế có một số chương trình lọc thư rác sử dụng phương án bố trí này. Tuy nhiên, việc sử dụng kết hợp bộ lọc thư với những chương trình proxy khác (như trình chống virus) thường gây mâu thuẫn khi cài đặt và đòi hỏi người sử dụng phải có những hiểu biết nhất định.

Hệ thống do chúng tôi xây dựng sử dụng phương án bố trí như minh hoạ trên hình 4.1.c. Bộ lọc thư được gắn trực tiếp vào máy chủ thư điện tử (mail server) như một add-in và giao tiếp với các thành phần khác của máy chủ thông qua giao diện lập trình (API) do máy chủ cung cấp.

Hệ thống được xây dựng để có thể tích hợp với Microsoft Exchange Server. Đây là phần mềm máy chủ thư điện tử khá thông dụng tại Việt nam và cung cấp giao diện lập trình thích hợp cho việc kết nối với hệ thống lọc thư được trình bầy ở đây.

4.2. Kiến trúc hệ thống lọc thư Kiến trúc chung của bộ lọc thư được thể hiện trên hình 4.2. Phần quan trọng nhất của hệ thống bao gồm môđun huấn luyện và mô đun

lọc. Hai môđun này được tách riêng và có thể thay đổi để chạy trên các máy khác nhau. Đầu ra của môđun huấn luyện là các tham số tính toán được trong thời gian huấn luyện (các xác suất điều kiện đối với học Bayes đơn giản) và được lưu trong K.Base. Môđun lọc thư sẽ đọc tham số từ K.Base và sử dụng để phân loại thư mới

3 Nhóm đề tài đã xây dựng một phiên bản bộ lọc chạy trên Outlook Express mặc dù nội dung này không có trong đề cương đề tài

Page 43: 2 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(2 Thạc Sĩ)

43

nhận được. Việc tách riêng môđun huấn luyện khỏi môđun phân loại làm tăng độ mềm dẻo khi cài đặt và sử dụng hệ thống. Về nguyên tắc, có thể tách riêng môđun huấn luyện và chạy trên máy không có mail server để giảm tải cho máy chủ.

Giao diện người dùng

Gồm 2 IDE forms

Phần lõi hệ thống

K. Base bao gồm gồm cơ sở dữ liệu chứa tham số các bộ phân loại sau khi được huấn luyện.

Giao diện với mail server

Bộ giao tiếp với Exchange server thông qua dịch vụ SMTP

Mail server

Hình 4.2. Kiến trúc chung của hệ thống lọc thư

Với kiến trúc thể hiện trên hình 4.2, luồng dữ liệu luân chuyển giưac các

thành phần bộ lọc được mô tả như sau : Khi một bức thư được gửi đến Mail server exchange, nhờ chứa năng bẫy sự

kiện Incoming mail của SMTP thì bức thư đó được đưa đến Bộ phân loại Tiếng Anh, tiếng Việt hoặc đưa thẳng đến Bộ phân loại thư rác (phụ thuộc vào tùy chọn của người dùng).

Giả sử sau khi đưa vào bộ phân loại Tiếng Anh, tiếng Việt, bức thư được chuyển cho bộ phân loại thư rác. Tại đây, nhờ quá trình tính toán theo Naive

Huấn luyện Tuỳ chọn

K. Base

Bộ phân loại thư tiếng Anh,

tiếng Việt

Bộ phân loại thư rác

Dịch vụ SMTP

Exchange Server

Giao diện đăng kí với dịch vụ SMTP.

Page 44: 2 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(2 Thạc Sĩ)

44

Bayes, nó sẽ được gán nhãn là thư rác [Possible Spam] hoặc không gán nhãn nếu được xác định là thư thường. Sau đó, thư được gửi đến Exchange server nhờ dịch vụ SMTP. Cuối cùng, bức thư đã sẵn sàng cho Mail Client lấy về qua giao thức POP3.

4.3. Các thành phần chức năng 4.3.1 Giao diện người dùng

Giao diện người dùng bao gồm 2 form: Form Huấn luyện và form Tuỳ chọn. a. Form Huấn luyện Form Huấn luyện cho phép người sử dụng thiết lập các thông số phục vụ cho

việc huấn luyện. Đó là các thông số : - Thư mục chứa tập mẫu huấn luyện bao gồm : thư mục thư thường tiếng

Anh, thư rác tiếng Anh, thư thường tiếng Việt có dấu, thư thường tiếng Việt không dấu, thư thường tiếng Việt không dấu và có dấu trộn lẫn, thư rác tiếng Việt có dấu, thư rác tiếng Việt không dấu, thư rác tiếng Việt không dấu và có dấu trộn lẫn.

- Độ dài của k-gram : các giá trị có thể là: 1; 2; 3; 1&2; 1&2&3. Giá trị ngầm định là 1&2&3.

- Số lượng đặc trưng : có thể có các giá trị 100, 200, 300, 500, 1000, 2000, 3000 hoặc toàn bộ đặc trưng. Giá trị ngầm định là 2000 đặc trưng.

b. Form Tuỳ chọn Đây là form dành cho người dùng thiết lập chế độ làm việc của môđun lọc.

Chế độ làm việc được quy định bằng cách lựa chọn giá trị cho các tham số sau: số lượng đặc trưng sử dụng khi lọc mail (ngầm định là 2000), có phân loại thư tiếng Anh, tiếng Việt trước khi đưa vào bộ lọc hay không. 4.3.2. K. Base

K.Base là một tập hợp các file chứa kết quả huấn luyện. Toàn bộ K.Base được chia thành 10 file, mỗi file chứa ba loại đặc trưng với độ dài k=1, k=2 và k=3 và xác suất điều kiện tương ứng.

- SpamTA : chứa đặc trưng từ các thư rác tiếng Anh. - SpamTV : chứa đặc trưng từ các thư rác tiếng Việt. - SpamTVSig : chứa đặc trưng từ các thư rác tiếng Việt có dấu. - SpamTVNSig: chứa đặc trưng thu được từ các thư rác tiếng Việt không dấu. - SpamMix : chứa đặc trưng thu được từ các thư rác hỗn hợp của cả tiếng Anh

và tiếng Việt. - NonSpamTA : chứa đặc trưng thu được từ các thư thường tiếng Anh. - NonSpamTV : chứa đặc trưng thu được từ các thư thường tiếng Việt.

Page 45: 2 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(2 Thạc Sĩ)

45

- NonSpamTVSig : chứa đặc trưng thu được từ các thư thường tiếng Việt có dấu.

- NonSpamTVNSig : chứa đặc trưng thu được từ các thư thường tiếng Việt không dấu.

- NonSpamMix : chứa đặc trưng thu được từ các thư thường hỗn hợp của cả tiếng Anh và tiếng Việt. 4.3.3. Bộ phân loại thư tiếng Anh, tiếng Việt.

Sau khi được tiền xử lý (bỏ đi các stop word, tag...), nội dung bức thư sẽ được đưa vào bộ phân loại thư tiếng Anh và tiếng Việt. Đầu ra của bộ phân loại này là thư được khẳng định là có nội dung là tiếng Anh hay tiếng Việt, tiếng Việt có dấu, tiếng Việt không dấu hay không phân biệt tiếng Anh, tiếng Việt. Nếu nội dung thư chứa cả hai ngôn ngữ thì từ của ngôn ngữ nào xuất hiện nhiều hơn sẽ được xem như thư thuộc về ngôn ngữ đó. 4.3.4. Bộ phân loại thư rác – thư thường

Lấy dữ liệu từ K.Base, kết hợp với tính toán Naive Bayes dựa trên nội dung thư và chủ đề của bức thư, bộ phân loại thư sẽ đưa ra output là nội dung của bức thư đầu vào là có thể là spam hay thư thường. Thư được xác định là thư rác sẽ được gán nhãn [Possible Spam] vào phần tiêu đề của thư (subject line) sau khi đi qua bộ phân loại. 4.3.5. Khối giao tiếp với Mail Server.

Khối giao tiếp (interface) giữa Bộ lọc thư với Exchange server được xây dựng dưới dạng thư viện lien kết động (một DLL file) được phát triển và chạy trên nền dịch vụ SMTP. Khối này bao gồm hai phần chính: Phần đăng kí sử dụng dịch vụ SMTP và chính giao thức SMTP.

a. Phần đăng kí sử dụng dịch vụ SMTP Phần này chứa các hàm liên quan đến việc gọi các API của SMTP. Điển hình

là hàm bẫy sự kiện mỗi khi có một email đến, chẳng hạn:

Sub ISMTPOnArrival_OnArrival(ByVal objMsg, EventStatus)

b. SMTP service: Dịch vụ SMTP cung cấp các thành phần cho xử lý, phân phát các mail

message giữa các mail server vơi nhau. 4.4. Thiết kế chi tiết

Phần này trình bày thiết kế chi tiết một số lớp chính tạo thành các khối chức năng của Bộ lọc thư tiếng Việt. Cụ thể, chúng tôi sẽ mô tả chi tiết những lớp sau: Filter, DataFileController, DataController, TermList, TermItem.

Page 46: 2 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(2 Thạc Sĩ)

46

Lớp Filter Lớp filter chứa các hàm liên quan đến giải thuật phân loại Bayes. Lớp này

bao gồm các hàm sau: ISMTPOnArrival_OnArrival(ByRef objMsg, EventStatus ) - Mô tả : Xử lí các thư nhận dược trong server. - Dữ liệu vào : ByRef objMsg, EventStatus - Xử lí : + kiểm tra nội dung của objMsg xem có phải là spam hay không. + Nếu là spam thì thêm "[Possible Spam] " vào trước tiêu subject mail. + Chuyển thư đến inbox của user tương ứng. - Các fuction liên quan: VietNameseSpamFilterLIB.ShareFunction .isSpam isSpam(ByVal strContent As String) As Boolean - Mô tả : Kiểm tra xem nội dung của thư có phải là thư rác hay không. - Dữ liệu vào : strContent : nội dung thư. - Dữ liệu ra : true : nếu là spam, false nếu non spam. - Xử lí : + Đọc số từ trích trọn lưu trong file data. (tc) + Đọc tất cả dữ liệu từ file data vào bao gồm các termlist của cả thư thường,

thư rác. + Với mỗi termlist trích chọn tc term. + Tách nội dung cần kiểm tra (strContent) thành các termlist tương ứn với

1,2,3gram. + Kiểm tra ngôn ngữ của thư. + Ứng với ngôn ngữ tìm được (1,2,3,4,5), tiến hành tính xác suất với thư

rác, thư thường theo từng gram. + Các hàm liên quan : DataFileController.getTrichTron, DataController.

TrichChon, DataController.SplitString, DataController.MailLanguage, Data Controller.TinhXacsuat, DataController.max. Lớp DataFileController

Lớp filter chứa các hàm liên quan đến thao tác với file dữ liệu (K. Base): Dữ liệu chia sẻ : dataFolderPath =

System.IO.Path.GetDirectoryName(Environment.SystemDirectory) & "\system32\"

Page 47: 2 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(2 Thạc Sĩ)

47

dataFileName = "data.vsf" Các hàm chính - Hàm checkV(): kiểm tra xem file dữ liệu có tồn tại và đúng theo quy ước

hay không - CreateDataFile(): Tạo ra file dữ liệu - Hàm WriteToDataFile(trlData : TermList, id : Integer) Ghi termlist ra file

dữ liệu theo ID. (xem trong cấu trúc file data) - Hàm ReadFromDataFile(id : Integer): Đọc termlist theo ID trong file data. - Hàm Delete Xóa 1 termlist theo ID trong file data. - Hàm DefragmentData(): Khi ghi ra các file data, xóa các termlist sẽ gây ra

phân mảnh trong file. Hàm này để đồn dữ liệu, chống phân mảnh, tăng tốc độ. - Hàm ReadListID Đọc tất cả các ID đã ghi ra file data - Hàm WriteListID ghi ra file data danh sách các ID. - Hàm setTrichChon ghi vào file data số term trích chọn - Hàm getTrichTron()đọc từ file data số term trích chọn.

Lớp DataController Lớp DataController : Chứa các hàm lien quan đến thao tác với TermList - Hàm SplitString Mô tả: Xóa bỏ đi các stop word, tag..., tách thành 1,2,3 Gram. Dữ liệu vào: str: chuỗi cần tách. Dữ liệu ra: TL1, TL2, TL3 là các termlist tương ứng trong trường hợp

1Gram, 2Gram, 3Gram. Kết quả trả lại ở lời gọi hàm là nội dung đã xóa bỏ các các stop word, tag...

Xử lí: + Xóa bỏ các stop word, tag,…. + Tách thành 1Gram, 2Gram, 3Gram. - Hàm WriteToTextFile: Ghi 1 termList ra file Text chỉ bao gồm các term. - Hàm TinhMI: Tính MI cho mỗi term - Hàm Train: Thực hiện huấn luyện cho tất cả các file .msg trong 1 thư mục

và dữ liệu ra file data đồng thời ghi ra 3 file text tương ứng 1,2,3 Gram ở thư mục output.

- Dữ liệu vào: + folder: đường dẫn của thư mục chứa các file .msg cần train. + folderOut: đường dẫn của thư mục chứa các file text. + Outputfilename: tên của file text sinh ra. + ID : là chỉ số của loại thư. (Trong cấu trúc file data).

Page 48: 2 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(2 Thạc Sĩ)

48

- Dữ liệu ra : ghi các termlist tách được ra file data, text. - Xử lí: + Lấy tất cả file .msg trong thư mục input + Tạo thư mục để ghi các file text nếu chưa có. + Tính 1,2,3 Gram cho tất cả nội dung của các file .msg. + Tính MI cho các termList + Ghi các termList ra file data. + Ghi các termlist ra file text - Các function liên quan : concatDATA, WriteToTextFile, WriteToDataFile,

MI. - Hàm TrichChon: trích ra 1 phần trong 1 termlist theo MI giảm dần - Hàm MailLanguage: kiểm tra xem thư thuộc loại ngôn ngữ gì - Dữ liệu vào : + SKg1 : termlist 1gram của thư cần kiểm tra + SKg2 : termlist 2gram của thư cần kiểm tra + SKg3 : termlist 3gram của thư cần kiểm tra + EnK1 : termlist 1gram của thư tiếng anh + EnK2 : termlist 2gram của thư tiếng anh + EnK3 : termlist 3gram của thư tiếng anh + ViK1 : termlist 1gram của thư tiếng Việt không phân biệt có dấu, không

dấu + ViK2 : termlist 2gram của thư tiếng Việt không phân biệt có dấu, không

dấu + ViK3 : termlist 3gram của thư tiếng Việt không phân biệt có dấu, không

dấu + ViSigK1: termlist 1gram của thư tiếng việt không dấu. + ViSigK2: termlist 2gram của thư tiếng Việt không dấu. + ViSigK3: termlist 3gram của thư tiếng Viêt không dấu. + ViNSigK1: termlist 1gram của thư tiếng việt không dấu. + ViNSigK2: termlist 2gram của thư tiếng Việt không dấu. + ViNSigK3: termlist 3gram của thư tiếng Viêt không dấu. - Dữ liệu ra : Loại thư : + 1 : tiếng Anh. + 2 : tiếng Việt trộn + 3 : tiếng Việt có dấu + 4 : tiếng Việt không dấu

Page 49: 2 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(2 Thạc Sĩ)

49

+ 5 : không phân biệt Anh, Việt. - Xử lí : + Tính tổng số lần xuất hiện của từng gram của thư cần kiểm tra với các bộ

dữ liệu. + Kiểm tra xem với bộ dữ liệu nào có xác suất trùng cao nhất từ đó đưa ra loại

thư. -Các function liên quan : TermCounter

4.5. Sử dụng chương trình Yêu cầu phần mềm:

-Windows 2000 server sp4, hoặc Windows 2003 server. - Microsoft Exchange 2000, hoặc 2003. - Microsoft Outlook 2003

Cách cài đặt -Chạy file Install.bat

Cách chạy chương trình 1. Huấn luyện và Tuỳ chọn a) Huấn luyện: - Chạy file VietNameseSpamFilter.exe - Chọn tab Training Giao diện cho phần huấn luyện sẽ hiện ra như trên hình dưới.

- Chọn loại thư (Thư thường hay thư rác) - Chọn đường dẫn tời thư mục chứa các file .msg

Page 50: 2 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(2 Thạc Sĩ)

50

+ Chọn thư mục chứa các các file thư tiếng Anh.

+ Chọn thư mục chứa các các file thư tiếng Việt không phân biệt có dấu hay

không dấu + Chọn thư mục chứa các các file thư tiếng Việt có dấu + Chọn thư mục chứa các các file thư tiếng Việt không dấu + Chọn thư mục chứa các các file thư không phân biệt tiếng Anh, tiếng Việt. (* Nếu không muốn huấn luyện loại nào thì bỏ trống loại ấy). - Click vào nút Train sẽ hiện ra thông báo sau:

- Chọn như sau:

Page 51: 2 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(2 Thạc Sĩ)

51

- Đợi đến khi hiện thông báo

- Click button Quit b. Tuỳ chọn: - Chạy file VietNameseSpamFilter.exe - Chọn tab Setting

- Chọn trích chọn - Click button Save. - Click button Quit 2. Chạy chức năng Spam Filter - Gửi mail từ server bên ngoài vào server đã được cài bộ lọc thư. - Chương trình sẽ tự động kiểm tra mail vừa gửi tới. - Nếu là thư rác thì bộ lọc sẽ tự động thêm "[Possible Spam] " vào trước

Subject.

4.6. Thử nghiệm hệ thống Chế độ thử nghiệm Để đánh giá hiệu quả và hiệu năng của bộ lọc thư, bộ lọc được cài đặt trên

một máy chủ MS Exchange Server. Để tạo ra các chế độ làm việc với tần suất nhận và xử lý thư khác nhau, chúng tôi đã sử dụng một máy chủ thư điện tử khác chuyên

Page 52: 2 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(2 Thạc Sĩ)

52

gửi thư. Máy chủ gửi thư được điều khiển bằng một số script cho phép gửi nhiều thư với khoảng thời gian và số lượng trong một đơn vị thời gian thay đổi được theo một số kịch bản nhất định tương tự máy chủ thư trên thực tế với lưu lượng xử lý khác nhau. Thư gửi thử nghiệm là thư do chúng tôi thu thập được bao gồm cả thư thường và thư rác.

Tham số thử nghiệm Hai tham số thử nghiệm chính là độ chính xác lọc thư và tốc độ xử lý. Đối với

độ chính xác lọc thư, kết quả thử nghiệm không khác so với kết quả trình bầy trong chương 3. Đây là điều được dự đoán trước vì môđun huấn luyện và phân loại được sử dụng hoàn toàn giống với môđun được sử dụng để thực hiện các thử nghiệm trong chương trước.

Tốc độ xử lý. Tốc độ xử lý được xác định bằng cách gửi liên tiếp nhiều thư và tính thời gian xử lý cho cả mẻ thư được gửi như vậy. Thử nghiệm về tốc độ xử lý được thực hiện trên PC với bộ vi xử lý PIV 1,6GHz và 512 MB bộ nhớ trong. Đây là cấu hình khá khiêm tốn nếu so sánh với cấu hình tiêu biểu cho máy chủ thư điện tử. Kết quả thử nghiệm về thời gian xử lý của bộ lọc thư được thể hiện trên bảng 4.1. Hai tham số chính được quan tâm là thời gian cần thiết để mail server chuyển tiếp thư khi không chạy bộ lọc và khi chuyển tiếp thư có qua giai đoạn lọc.

Bảng 4.1. Thời gian xử lý khi có sử dụng bộ lọc và không sử dụng bộ lọc

Chế độ Số lượng thư Thời gian trung bình khi không lọc

Thời gian trung bình khi sử dụng bộ lọc

Huấn luyện 1000 14’56’’ Lọc 100 25’ 1’20’’

500 1’22’ 4’30’’ Kết quả trong bảng 4.1 cho thấy việc sử dụng bộ lọc thư có làm chậm quá

trình xử lý của chương trình máy chủ song tốc độ xử lý là chấp nhận được. Những kết quả thử nghiệm trình bầy ở trên cho phép kết luận bộ lọc thư có

hiệu quả lọc thư cũng như tốc độ lọc thư khả quan trong các điều kiện của thực nghiệm.

Page 53: 2 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(2 Thạc Sĩ)

53

Kết luận Trong các chương trước chúng tôi đã trình bầy nội dung và kết quả nghiên

cứu được thực hiện trong khuôn khổ đề tài. Những kết quả chính bao gồm: 1) Nghiên cứu cải tiến giải pháp lọc nội dung để phân loại thư rác viết trên tiếng Việt và/hoặc tiếng Anh, thử nghiệm đánh giá giải pháp; 2) Xây dựng chương trình lọc thư rác tiếng Anh, tiếng Việt dựa trên kết quả nghiên cứu thực nghiệm và lý thuyết, thu thập bộ dữ liệu mẫu để huấn luyện và thử nghiệm bộ phân loại; 3) Một số kết quả của đề tài đã được báo cáo tại Hội thảo quốc gia về Công nghệ thông tin tổ chức tại Đà lạt tháng 6/2006.

Kết quả thu được trong khuôn khổ đề tài cho phép rút ra một số kết luận như sau.

- Phương pháp hạn chế tác hại thư rác bằng cách xây dựng bộ lọc thư theo nội dung có thể sử dụng cho thư rác tiếng Việt có dấu cũng như không dấu và cho hiệu quả tương tự như khi lọc thư rác tiếng Anh.

- Đa số các giải pháp lọc theo nội dung được đề xuất cho thư tiếng Anh có thể sử dụng cho thư tiếng Việt. Cụ thể, đó là những giải pháp và kỹ thuật sau: biểu diễn thư dưới dạng túi từ, sử dụng phương pháp phân loại Bayes đơn giản và SVM, sử dụng các phương pháp trích trọn đặc trưng dựa trên thông tin tương hỗ.

- Đối với thư tiếng Việt, việc sử dụng đặc trưng dưới dạng n-gram trong đó n = 1 và 2 cho kết quả phân loại thư tốt trong khi không đòi hỏi các tính toán phức tạp.

- Việc tiến hành phân loại riêng thư tiếng Anh - tiếng Việt có dấu - tiếng Việt không dấu trước khi lọc cho kết quả tốt hơn lọc chung, tuy nhiên hiệu quả lọc tăng không đáng kể.

Các kết quả nghiên cứu trên có thể sử dụng làm cơ sở cho việc xây dựng những hệ thống lọc thư rác thương mại sử dụng cho các mail server tại Việt nam.

Trong quá trình xây dựng bộ lọc thư, chúng tôi cũng khuyến cáo sử dụng kết hợp việc lọc theo nội dung với những phương pháp lọc khác như sử dụng danh sánh IP cấm, lọc theo các luật, hoặc kết hợp lọc theo nội dung với lọc theo tiêu đề hoặc các thành phần khác của thư.

Page 54: 2 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(2 Thạc Sĩ)

54

Tài liệu tham khảo [Androutsopoulos 2000] Androutsopoulos, I., Koutsias, J., Chandrinos, K. V., Spyropoulos, C. D. 2000. An Experimental Comparison of Naive Bayesian and Keyword-Based Anti-Spam Filtering with Personal E-mail Messages. In Proc. of the 23 rd ACM SIGR Conf., pp. 160-167, Athens, Greece, 2000. [Bekkerman 2003] R. Bekkerman, R. El-Yaniv, N. Tishby, and Y. Winter. Distributional word clusters vs. words for text categorization. Journal of Machine Learning Research, 3:1183-1208, 2003. [Caropreso 2001] M. F. Caropreso, S. Matwin, and F. Sebastiani. A learner-independent evaluation of the usefulness of statistical phrases for automated text categorization. In A. G. Chin, editor, Text Databases and Document Management: Theory and Practice, pages 78-102. 2001. [Carreras 2001] Carreras X., Màrquez L., Boosting Trees for Anti-Spam Email Filtering, Proceedings of RANLP-01, 4th International Conference on Recent Advances in Natural Language Processing, 2001. [Cohen 1996] W. W. Cohen, “Learning rules that classify e-mail,” in Proc. 1996 AAAI Spring Symp. Inform. [Cường 2005] N. V. Cường, N. T. T. Linh, H. Q. Thuỵ, P. X. Hiếu. Bài toán lọc và phân lớp nội dung web tiếng Việt với hướng tiếp cận entropi cực đại. Hội thảo quốc gia một số vấn đề chọn lọc của công nghệ thông tin, Hải phòng, 2005. [Duda 2001] R. Duda, P. Hart, D.Stork. Pattern classification, 2d ed., John Willey, 2001. [Drucker 1999] Drucker H., Wu D., Vapnik V., Support vector machines for spam categorization, IEEE Trans. on newral networks, 10 (5), 1999. [Finn 2002] A. Finn, N. Kushmerick, and B. Smyth. Genre classification and domain transfer for information filtering. Proc. of ECIR-02, 24th European Colloquium on Information Retrieval Research, pp: 353-362, Glasgow, UK, 2002. [Giang 2005] N.L. Giang. Phân loại văn bản tiếng Việt sử dụng support vector machines. Chuyên san nghiên cứu tạp chí Bưu chính viễn thông. Số 15, 2005. [Ha 2003] L. A. Ha, A method for word segmentation in Vietnamese. Proceedings of Corpus linguistics 2003. [Hùng 2006] N.T. Hùng. Hướng tiếp cận mới trong việc tách từ để phân loại văn bản tiếng Việt sử dụng giải thuật di truyền và thống kê trên Internet. Chuyên san nghiên cứu tạp chí Bưu chính viễn thông. Số 16, 2006.

Page 55: 2 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(2 Thạc Sĩ)

55

[Joachims 1997] T. Joachims, “A probabilistic analysis of the Rocchio algorithm with TFIDF for text categorization,” in Proc. 14th Int. Conf. Machine Learning, San Mateo, CA. [Joachims 1998] T.Joachims Text Categorization with Support Vector Machines: Learning with Many Relevant Features , Proceedings of ECML-98, 10th European Conference on Machine Learning, 1998. [Lan 2005] B.N. Lan, P.H.Nguyên. Phân loại thư rác tiếng Việt. Hội thảo quốc gia một số vấn đề chọn lọc của công nghệ thông tin, Hải phòng, 2005. [Lewis 1992] D. Lewis, An evaluation of phrasal and clustered representations on a text categorization task, Proceedings of SIGIR’92, 1992, ACM Press. [Metsis 2006] V. Metsis, I. Androutsopoulos, G. Paliouras. Spam filtering with Naïve Bayes – Which Naïve Bayes. Int. conf. on emails and anti-spam, Mountain View, USA, 2006. [Platt1998] J. Platt. Sequential minimal optimization: A fast algorithm for training support vector machines. Technical Report 98-14, Microsoft Research, Redmond, Washington, April 1998 [Porter1980]M.F. Porter, 1980, An algorithm for suffix stripping, Program, 14(3) pp 130−137. [Sahami1998] M. Sahami, S. Dumais, D. Heckerman, and E. Horvitz. A Bayesian Approach to Filtering Junk E-Mail. In Learning for Text Categorization – Papers from the AAAI Workshop, pp. 55–62, Madison Wisconsin. [Sebastiani 2002] F. Sebastiani Machine Learning in Automated Text Categorization. ACM Computing Surveys, Vol. 34, No. 1, pp. 1–47. [Schneider2003] Schneider K., A Comparison of Event Models for Naive Bayes Anti-Spam E-Mail Filtering, Proceedings of the 10th Conference of the European Chapter of the Association for Computational Linguistics, 2003. [Schneider2004]K.-M. Schneider. On word frequency information and negative evidence in Naive Bayes text classification. In 4th International Conference on Advances in Natural Language Processing, pages 474–485, Alicante, Spain, 2004. [Vapnik1995] C. Cortes and V. Vapnik. Support-Vector Networks, Machine Learning, 20, 1995