NGHIÊN CỨU CÁC PHƯƠNG PHÁP PHÂN LOẠI VĂN BẢN VÀ ỨNG DỤNG VÀO PHÂN LOẠI THƯ ĐIỆN TỬ Luận văn này trình bày các vấn đề liên quan đến phân loại văn bản và ứng dụng của nó trong việc lọc thư điện tử. Một giải thuật sẽ được áp dụng cho bộ phân lớp spam, đó là giải thuật Naive Bayes, giải thuật này cho kết quả rất khả quan trong việc tách các spam ra khỏi các thư thư hợp lệ.
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
PHÂN LOẠI THƯ ĐIỆN TỬ
Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01
TÓM TẮT LUẬN VĂN THẠC SĨ
HÀ NỘI - 2013
Trang 2Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Người hướng dẫn khoa học: PGS.TS NGUYỄN BÁ TƯỜNG
Phản biện 1: ………Phản biện 2: ………
Luận văn sẽ được bảo vệ trước Hội đồng chấm luậnvăn thạc sĩ tại Học viện Công nghệ Bưu chính Viễnthông
Vào lúc: giờ ngày tháng năm…
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông
Trang 3MỞ ĐẦU
Phân loại văn bản là một vấn đề quan trọng trong lĩnhvực xử lý ngôn ngữ Nhiệm vụ của bài toán này là gán các tàiliệu văn bản vào nhóm các chủ đề cho trước Đây là một bàitoán rất thường gặp trong thực tế
Ngày nay, Internet mở ra nhiều kênh liên lạc, nhiều dịch
vụ mới cho người sử dụng, một trong những dịch vụ màInternet mang lại đó là dịch vụ thư điện tử(email), đó làphương tiện giao tiếp rất đơn giản, tiện lợi, rẻ và hiệu quả.Phương tiện này có thể gửi email cùng một lúc đến hàngtrăm ngàn người chỉ trong vài giây Tuy nhiên, sự thoải máitrong giao tiếp trên mạng như thế có thể bị lạm dụng Trongnhững năm gần đây, spam hay các email không mong muốn
đã trở thành một vấn nạn và đe dọa khả năng giao tiếp củacon người trên kênh liên lạc này, đó là một trong nhữngthách thức lớn mà khách hàng và các nhà cung cấp dịch vụphải đối phó Spam đã trở thành một hình thức quảng cáochuyên nghiệp, phát tán virus, ăn cắp thông tin với nhiều thủđoạn và mánh khóe cực kỳ tinh vi Người dùng sẽ phải mấtkhá nhiều thời gian để xóa những email “không mời màđến”, nếu vô ý còn có thể bị nhiễm virus và nặng nề hơn làmất thông tin như thẻ tín dụng, tài khoản ngân hàng qua cácemail dạng phishing Vì vậy, cần có một hệ thống phân loạiđâu là spam mail và đâu là mail tốt
Trang 4Qua quá trình học tập nghiên cứu, được tiếp cận cácphương pháp phân loại văn bản nói chung và phương pháp
lọc thư điện tử nói riêng, tôi chọn đề tài: “Nghiên cứu các phương pháp phân loại văn bản và ứng dụng vào phân loại thư điện tử” Qua đề tài này tôi có cơ hội để tìm hiểu
sâu thêm về các phương pháp phân loại văn bản, phươngpháp phân loại, lọc thư spam và đặc biệt là phương phápphân loại thư điện tử bằng thuật toán Naive Bayes
Luận văn này trình bày các vấn đề liên quan đến phânloại văn bản và ứng dụng của nó trong việc lọc thư điện tử.Một giải thuật sẽ được áp dụng cho bộ phân lớp spam, đó làgiải thuật Naive Bayes, giải thuật này cho kết quả rất khảquan trong việc tách các spam ra khỏi các thư thư hợp lệ.Việc token hoá, ước lượng xác suất và chọn đặc trưng là cáctiến trình được thực hiện trước khi phân lớp và tất cả các tiếntrình này đều có ảnh hưởng quan trọng đến hiệu suất lọcspam, giới thiệu và triển khai một bộ lọc thư điện tử spamdựa trên kỹ thuật Naive Bayes
Trang 5Chương 1 – MỘT SỐ PHƯƠNG PHÁP PHÂN LOẠI
VĂN BẢN
Phân loại văn bản là một vấn đề quan trọng trong lĩnhvực xử lý ngôn ngữ Để giải bài toán này đã có rất nhiềuphương pháp được đưa ra như: thuật toán Naive Bayes, K-
NN (K-Nearest-Neighbor), cây quyết định (Decision Tree),mạng Neuron nhân tạo (Artificial Neural Network) và SVM(Support Vector Machine) Mỗi phương pháp đều cho kếtquả khác nhau cho bài toán này, trong chương này chúng ta
sẽ nghiên cứu một số phương pháp nói trên
1.1 Bài toán phân loại văn bản
1.1.1 Giới thiệu
1.1.2 Phát biểu bài toán
Bài toán phân loại văn bản có thể được phát biểu như sau :Cho trước một tập văn bản D={d1,d2,…,dn} và tập chủ đềđược định nghĩa C={c1,c2,…,cn} Nhiệm vụ của bài toán làgán lớp dithuộc về cjđã được định nghĩa
1.2 Mô hình tổng quát
Có rất nhiều hướng tiếp cận bài toán phân loại văn bản đãđược nghiên cứu như: tiếp cận bài toán phân loại dựa trên lýthuyết đồ thị, cách tiếp cận sử dụng lý thuyết tập thô, cáchtiếp cận thống kê…Tuy nhiên, tất cả các phương pháp trênđều dựa vào các phương pháp chung là máy học đó là: học
có giám sát, học không giám sát và học tăng cường Vấn đềphân loại văn bản theo phương pháp thống kê dựa trên kiểu
Trang 6học có giám sát được đặc tả bao gồm 2 giai đoạn: giai đoạnhuấn luyện và giai đoạn phân lớp.
1.2.1 Giai đoạn huấn luyện
Hình 1.1: Mô hình giai đoạn huấn luyện
1.2.2 Giai đoạn phân lớp
Hình 1.4: Mô hình giai đoạn phân lớp
1.3 Tiền xử lý văn bản
1.4 Một số phương pháp phân loại văn bản
1.4.1 Thuật toán Naive Bayes
Trang 71.4.2 Cây quyết định (Decision Tree)
1.4.3 Phương pháp phân loại văn bản K-NN (K – Nearest Neighbor)
1.4.4 Phương pháp SVM (Support Vector Machine)
1.5 Bài toán phân loại thư điện tử
Phân loại thư điện tử thực chất là bài toán phân loại hailớp, trong đó tập dữ liệu mẫu đưa vào là các thư điện tử gồmcác thư rác(spam) và các thư hợp lệ(Legitimate), các văn bảncần phân lớp là các Email gửi đến client Kết quả đầu ra củaquá trình này là hai lớp văn bản: Spam(thư rác) vàLegitimate (thư hợp lệ)
1.6 Kết luận chương
Trang 8Chương 2 – NHỮNG VẤN ĐỀ VỀ THƯ ĐIỆN TỬ
SPAM 2.1 Định nghĩa spam
Hầu hết các spam đều có thể được xem là các email không mong muốn, nhưng không phải tất cả các thư không mong muốn đều là spam Một thuật ngữ khác để chỉ spam, đó là các email thương mại không yêu cầu Spam cũng có thể được định nghĩa là các thư tạp nham
(junk mail).
2.2 Các kiểu thư spam
2.2.1 Các đặc điểm của thư spam
Spam có các đặc điểm về ngôn ngữ, thời gian
2.2.2 Một số loại thư spam
2.3 Các phương thức đơn giản để loại bỏ thư spam
2.3.1 Sử dụng các từ khóa
2.3.2 So sánh mẫu, danh sách whitelist và danh sách blacklist
2.3.3 Kỹ thuật lọc cộng tác (Collaborative filtering)
2.3.4 Đo sự giao thoa email (E-mail interferometry)
2.3.5 Lọc ở mức mạng
2.3.6 Kỹ thuật nhân viên giả mạo (Fake worker)
2.3.7 Các bộ lọc trên cơ sở luật
2.3.8 Sử dụng chung danh sách blacklist các dấu hiệu spam
Trang 92.3.9 Đánh giá mức độ pháp lý
2.4 Lọc spam bằng phương pháp thống kê
Năm 1998, một số nghiên cứu đã chỉ ra rằng có thể thu được các kết quả tốt từ việc sử dụng các bộ phân lớp spam bằng phương pháp thống kê Các bộ lọc thống kê yêu cầu huấn luyện trên cả thư spam và thư hợp lệ và bộ lọc sẽ dần trở nên hiệu quả hơn sau khi được huấn luyện Các bộ lọc được huấn luyện trên thư spam và thư hợp lệ của người sử dụng, do đó các spammer rất khó đánh lừa
bộ lọc Bộ phân lớp sử dụng các đặc điểm của mẫu để phân lớp nó thành một trong các lớp được định nghĩa từ trước Bất cứ đặc điểm nào của mẫu cũng đều được xem
xét dưới dạng một đặc trưng.
2.4.1 Đặc trưng và lớp
Một đặc trưng là đặc điểm, diện mạo, hoặc thuộc tính của một đối tượng Ví dụ, mầu mắt của một người là đặc trưng, các từ trong một tài liệu văn bản là đặc trưng Một đặc trưng tốt là đặc trưng đặc biệt cho một lớp đối tượng
2.5 Kết luận chương
Trang 10Chương 3 – BỘ LỌC SPAM TRÊN CƠ SỞ KỸ THUẬT
NAIVE BAYES
Chương này giới thiệu bộ phân lớp trên cơ sở kỹ thuậtBayes để xây dựng các bộ lọc có thể học và có độ tin cậycao Phương pháp này cho phép máy tính có khả năng tự tạo
ra các quyết định thay vì phải hỏi người sử dụng cách quyếtđịnh (các giải pháp trên cơ sở luật)
Sự xuất hiện của kỹ thuật máy học trong các bộ lọcspam là một bước cải tiến quan trọng cho hiệu suất của bộlọc Các spammer không thể kiểm tra các bộ lọc trước khigửi các thư đi, do bộ lọc của mỗi người sử dụng có cơ sở trithức của riêng nó Mặc dù các spammer luôn nghĩ ra những ýtưởng mới để vượt qua các bộ lọc, nhưng với bộ lọc Bayesđược huấn luyện tốt, thì sự chính xác của các bộ lọc có thểđạt tới 99%
3.1 Mạng Bayes
3.1.1 Tổng quát về mạng Bayes
3.1.2 Mô hình Naive Bayes
Naive Bayes là một mạng Bayes đơn giản nhất trong
đó một nút cha được chứa trong mạng và tất cả các biến khác
là con của nút cha Nếu biến cha là ‘Xp’, thì công thức phân
bố kết nối trong trường hợp đó như sau:
P(Xp,X1, ,Xn)=P(Xp)P(Xi|Xp)fori= 1 to n (3.1)
Trang 113.2 Bộ lọc spam trên cơ sở mạng Bayes
Bộ lọc spam trên cơ sở mạng Bayes dựa vào nội dungcủa email để phân lớp Các giai đoạn chính của giải pháptrên cơ sở mạng Bayes như sau:
- Đầu tiên cần token hoá nội dung của email, nghĩa làtách nó thành các phần nhỏ để sử dụng trong xử lý
- Bước tiếp theo, giá trị của mỗi token được xác địnhbằng cách tìm kiếm trong một bảng cập nhật (từ điểm token)
Các giá trị của các token có liên quan có khoảng cáchlớn nhất từ giá trị trung tính (neutral) và như vậy chúng sẽgần với một mặt nạ các thư spam hoặc thư hợp lệ
- Bước cuối cùng là sửa đổi các giá trị của các tokentrong từ điển, điều này đưa ra khả năng học liên tục vớithông tin phản hồi (feedback) và kết quả nhị phân cuối cùngđược tạo ra
3.3 Giải thuật của bộ lọc trên cơ sở mạng Bayes
3.3.1 Nạp email (Loading)
3.3.2 Tiền lọc (Pre-filtering)
3.3.3 Token hoá (tokenization)
3.3.4 Tính toán
3.3.5 Cập nhật tri thức cho bộ lọc (Feedback)
3.3.6 Huấn luyện và các kiểu huấn luyện khác nhau
3.3.7 Kiểm tra (Testing)
3.4 Giải pháp cụ thể cho giải thuật Bayes
3.4.1 Tổng quan
Trang 12Phần này giới thiệu một giải thuật cung cấp nhữngđiều căn bản về phân lớp Bayes trong lĩnh vực lọc spam.Phần này sẽ không giải quyết vấn đề tiền xử lý, vì giải thuậtlàm việc với so trùng chuỗi chính xác Giải pháp này sử dụngtất cả các giá trị của từ điển token, trong mỗi ngày sử dụngnhờ các nguồn tài nguyên tính toán ràng buộc nên bộ lọc chỉlàm việc với một số giá trị giới hạn.
3.4.2 Từ điển token
Khi nhận được một thư mới, từ điển token sẽ được tìmkiếm cho tất cả các từ bao hàm trong thư (chú ý giải thuậtnày cho phép token hoá từ thành từ) Hai tập từ được xử lý:một là tập các từ so trùng với từ điển (việc cập nhật sẽ cầnthiết tại giá trị N1 hoặc N2), tập kia là tập các từ không cótrong thư (không cần thiết cập nhật)
Hai tập được xây dựng lên bởi mỗi email được xử lý.
Trang 13Hình 3.1: Biểu đồ bộ lọc spam trên cơ sở Bayes
3.5 Các phương thức huấn luyện cho bộ lọc dựa trên kỹ
thuật Bayes
3.5.1 Tổng quan
3.5.2 Các phương thức huấn luyện khác nhau
3.6 Bộ lọc spam dựa vào kỹ thuật Bayes của Paul
Graham
3.6.1 Giải thuật
3.6.2 Phân lớp văn bản Bayes
Phân lớp thống kê dựa trên một luật đơn giản như sau:Nếu có nhiều token tồi trong thư spam hơn trong thư tốt thìnếu chúng ta tìm thấy thêm các token spam trong một số thư,thì nó sẽ được xem là thư spam
Trang 143.7 Một số cải tiến cho bộ lọc spam trên cơ sở giải thuật
Bayes
3.7.1 Cải tiến bộ lọc spam Bayes của PaulGraham
Có hai cải tiến được thêm vào:
- Để loại bỏ được việc phân lớp nhầm các thư tốt, tần
số thư tốt được nhân đôi khi ta tính xác suất của thư spam
- Khi một token chỉ nằm trong tập cơ sở dữ liệu spam
có sẵn, thì chúng ta có thể thiết lập các xác suất tăng lên nếu
có nhiều token ấy ví dụ: 0.9 cho các tần số nhỏ, 0.99 cho cáctần số lớn hơn 10
3.7.2 Cải tiến bộ lọc spam Bayes sử dụng khoảng cách khác biệt giữa hai chuỗi (Giải thuật SEDA)
Giải thuật khoảng cách khác biệt chuỗi Edit Distance (SEDA)
String-Giải thuật này cung cấp một tiêu chuẩn về khoảngcách giữa các chuỗi Khoảng cách này được định nghĩa là sốcác thao tác nhỏ nhất được yêu cầu để đổi chuỗi nguồn thànhchuỗi mục tiêu bằng việc sử dụng ba thao tác : insert, delete
và replace (hoặc edit)
Email của chúng ta có dạng một tập các dòng và cáctoken (các từ) được phân tách bởi các khoảng trống Khi cáctoken được trích ra từ thân của các thư thì tất cả các ký tựđầu và cuối (các dấu chấm câu và các số) được gỡ bỏ để lấy
ra từ thực sự
Trang 15Một bảng được sử dụng để lưu các token và tần sốtương ứng Nó chứa tất cả các token, tổng số lần xuất hiệncủa mỗi token trong các thư spam và thư hợp lệ và tổng sốthư spam và thư hợp lệ đã được xử lý trong giai đoạn huấnluyện.
Trong giai đoạn huấn luyện, bộ phân lớp sẽ học bằngcách xử lý các thư từ các lớp đã biết Ban đầu cơ sở tri thức(dạng bảng băm) tìm kiếm một token và nếu tìm thấy, bộđếm token tương ứng được tăng lên Nếu không tìm thấy mộtthực thể mới được thêm vào với bộ đến bắt đầu bằng một vàcác bộ đếm thư spam và thư hợp lệ cũng được tăng lên một
Các thư chưa biết được phân lớp bằng cách sử dụngkiến thức có sẵn trong cơ sở tri thức Tiến trình phân lớp nàychứa hai tiến trình con sau:
- Cho trước một thư chưa biết, xác suất của nó là thưspam hay thư hợp lệ được tính toán Nếu các token tồn tạitrong cơ sở tri thức và thư được được nhận dạng là spam thìtiến trình kết thúc
- Nếu thư được phân lớp là hợp lệ, thì nó sẽ được xácnhận độ chính xác bằng việc phân tích thêm Xác suất củaviệc phân lớp nhầm là kết quả của việc không thực hiện quátrình khám phá các từ bị sửa đổi
3.8 Kết luận chương
Trong chương này chúng ta đã tìm hiểu về mạng Bayes, cácbước xây dựng bộ lọc trên cơ sở mạng Bayes Đồng thời
Trang 16cũng tìm hiểu về các cải tiến của PaulGraham, giải thuậtSEDA Cả hai phương pháp đó đã giúp nâng cao chất lượngcủa bộ lọc mạng Bayes, tuy nhiên cả hai giải pháp đó vẫn cóhạn chế nhất định.
Trang 17Chương 4 – XÂY DỰNG BỘ LỌC CẢI TIẾN VÀ THỬ
NGHIỆM 4.1 Xây dựng bộ lọc cải tiến
- Xây dựng danh sách xác suất là spam của tất cả cáctoken trong quá trình huấn luyện theo kỹ thuật củaPaulGraham
- Trong phần phân lớp thư mới, với tất cả các token,nếu token của thư mới có trong cơ sở tri thức, thì ta đưatoken này cùng xác suất có thể là spam của nó vào danh sáchT
- Nếu token t không có trong cơ sở tri thức, ta tínhkhoảng cách khác biệt chuỗi của nó với tất cả các token của
cơ sở tri thức Chọn ra một token trong cơ sở tri thức cókhoảng cách khác biệt chuỗi (so với chuỗi t) nhỏ nhất và nhỏhơn hoặc bằng ngưỡng α Nếu tìm thấy token này thì thêm
nó cùng xác suất là spam vào danh sách T, nếu không thì từnày thực sự là từ mới
- Ta có thể xây dựng một từ điển các từ chuẩn hoá bắtnguồn từ các từ trong cơ sở tri thức và bổ sung thêm trongquá trình từ điển này trong quá trình phân lớp Như vậy việctính toán khoảng cách khác biệt chuỗi sẽ không phải duyệttrên tòan bộ cơ sở tri thức
- Chọn ra danh sách 15 token điển hình trong danhsách T (có khoảng cách tính từ giá trị 0,5) Tính xác suất làspam của thư mới từ 15 giá trị token điển hình này
Trang 18- Quyết định phân lớp dựa trên xác suất tổng hợp.
4.2 Hiện thực một bộ phân lớp spam Bayes cải tiến bằng
ngôn ngữ Java.
4.2.1 Các bước thực hiện và cấu trúc hệ thống
4.2.2 Xây dựng tập các thư spam và tập thư hợp lệ
4.2.3 Token hoá các thư spam và thư hợp lệ
4.2.4 Xây dựng danh sách tần số các token
4.2.5 Xây dựng danh sách xác suất có khả năng là spam của token
4.2.6 Tính toán 15 giá trị tốt nhất
4.2.7 Kiểm tra một email mới
4.2.8 Cập nhật cơ sở tri thức cho bộ lọc
4.2.9 Hiện thực giải thuật
4.3 Giới thiệu, thử nghiệm và đánh giá hệ thống lọc spam
Trang 194.3.2 Thử nghiệm hệ thống lọc spam
Bảng 4.1 Kết quả thử nghiệm phân lớp trên 3000 thư
Trang 20KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Các bộ phân loại thư điện tử ngày nay áp dụng cácgiải thuật máy học cho ta hiệu quả lọc cao, đặc biệt là bộ lọcthư spam áp dụng giải thuật Naive Bayes cho ta hiệu suất lọcđến 99% và được áp dụng cho những nhà cung cấp dịch vụthư điện tử lớn như Yahoo, Hotmail…Các bộ lọc thư spamtrên desktop thương mại ngày nay cũng áp dụng kỹ thuật nàyvới một số cải tiến và kết hợp nhỏ Việc áp dụng các giảithuật máy học vào nhiệm vụ lọc spam làm cho bộ phân lớp
có khả năng thích nghi với các spam thế hệ mới bằng việccập nhật tri thức cho cơ sở tri thức của bộ lọc
Trong khuôn khổ luận văn thạc sỹ CNTT, luận văn đãnêu bật được các phương pháp phân loại văn bản, các vấn đềliên quan đến thư spam, các giải pháp lọc thư spam dựa trêncác giải thuật máy học như kỹ thuật Supported VectorMachines (SVM), k-Nearest-Neighbor (kNN), NeuralNetworks (NNet) và Naive Bayesian (NB), các vấn đề liênquan đến hiệu quả của bộ lọc cũng như việc kết hợp các bộlọc nhằm nâng cao hiệu suất lọc Các bước triển khai bộ lọcspam trên cơ sở kỹ thuật Bayes được thực hiện bao gồm tiền
xử lý dữ liệu, huấn luyện và các phương thức huấn luyện,tính toán cho các bộ phân lớp Một số cải tiến áp dụng cho
bộ lọc spam bằng kỹ thuật Bayes như nhân đôi tần số thư tốtkhi ta tính xác suất của thư spam, thiết lập các ngưỡng xác