Xây dựng một Email Client với khả năng lọc thư rác tự động bằng việc ứng dụng phương pháp phân loại văn bản Naive Bayes
Trang 1Lời cảm ơn
Trong suốt khóa học(2001 – 2006) tại trường Đại Học Thủy Lợi, với
sự nỗ lực của bản thân và sự giúp đỡ của các thầy cô giáo trong trường đặc biệt là các thầy cô giáo trong khoa CNTT đã giúp tôi có một vốn tri thức vững vàng để hoàn thành đồ án tốt nghiệp Trong thời gian làm đồ án, được sự giúp
đỡ của giáo viên hướng dẫn về mọi mặt, từ nhiều phía tôi đã hoàn thành đồ
án đúng thời gian qui định Tôi xin chân thành cảm ơn đến:
Các thầy cô giáo trong khoa CNTT đã giảng dạy cho tôi những kiến thức chuyên môn làm cơ sở để thực hiện tốt đồ án tốt nghiệp và tạo điều kiện cho tôi hoàn thành tốt khóa học.
Xin cảm ơn Ths Nguyễn Thanh Tùng, KS Bùi Văn Huyến cùng trung tâm tin học trường Đại Học Thủy Lợi đã tạo điều kiện giúp đỡ tôi về trang thiết bị, máy tính làm phương tiện để tôi hoàn thành đồ án.
Đặc biệt tôi xin gửi lời cảm ơn chân thành tới PGS.TS Nguyễn Đăng
Tộ, KS Nguyễn Mạnh Hiển là những người luôn theo sát chỉ bảo hướng đi và cho tôi những lời khuyên quí báu cũng như cung cấp các thông tin và căn cứ khoa học để tôi định hướng tốt trong khi làm đồ án tốt nghiệp
Xin cảm ơn gia đình, bạn bè đã giúp đỡ động viên tôi cả về vật chất lẫn tinh thần trong quá trình làm đồ án tốt nghiệp
Mặc dù đồ án đã được hoàn thành đúng thời gian qui định nhưng do điều kiện thời gian, đồ án của tôi không tránh khỏi những thiếu xót Vì vậy tôi rất mong nhận được sự đóng góp kiến của các thầy cô và bạn bè tạo điều kiện cho đồ án của tôi được hoàn thiện hơn
Hà Nội tháng 5 năm 2006 Sinh viên thực hiện
Trang 2Mục Lục
Chương I: Mở đầu 5
1.1 Lí do chọn đồ án 5
1.2 Mục tiêu 5
1.3 Đối tượng nghiên cứu 6
1.4 Tổng quan về Email và sự cần thiết phải phân loại Email 6
1.4.1 Giới thiệu về Email 6
1.4.2 Khái niệm về thư rác 7
1.4.3 Sự cần thiết phải phân loại thư rác 8
1.4.4 Phân loại thư rác 10
Chương II: Tổng quan về bài toán phân loại văn bản 2.1 Tổng quan về phân loại văn bản 12
2.1.1 Sự cần thiết phải phân loại văn bản 12
2.2.2 Định nghĩa phân loại văn bản 13
2.2 Tiến trình phân loại văn bản 13
2.3 Đặc trưng văn bản và cách lựa chọn các đặc trưng văn bản 15
2.3.1 Tần suất tài liệu 16
2.3.2 Lượng tin tương hỗ 16
2.4 Biểu diễn văn bản 17
2.4.1 Khái niệm về tần số từ DF 18
2.4.2 Khái niệm về tần suất tài liệu ngược 19
2.5 Các phương pháp phân loại văn bản 19
2.5.1 Nguyên mẫu 20
2.5.2 Mô hình xác suất Naive Bayes 21
2.5.3 Phương pháp SVM 21
2.5.4 Cây quyết định 21
2.5.5 Mạng neuron 22
2.6 Bài toán phân loại thư rác 22
Trang 3Chương III: Thuật toán Naive Bayes và cách phân
loại thư điện tử
3.1 Các công nghệ lọc thư rác hiện nay 25
3.2 Thuật toán phân loại văn bản Bayes 25
3.3 Quá trình hoạt động của bộ lọc thư rác Bayes 29
3.3.1 Tạo một cơ sở dữ liệu từ Bayes thích hợp 29
3.3.3 Tạo một cơ sở dữ liệu cho các thư hợp lệ 29
3.3.4 Tạo một cơ sở dữ liệu cho thư rác 30
3.4 Sự hoạt động của các bộ lọc thư rác thực tế 31
3.5 Các ưu điểm của bộ lọc thư rác Bayes 31
3.6 Các bước để xây dựng bộ lọc thư rác sử dụng thuật toán Naive Bayes 33
3.6.1 Lựa chọn các đặc trưng 33
3.6.2 Biểu diễn các thư điện tử 36
3.6.4 Xác định ngưỡng 36
3.6.5 Thử nghiệm hệ thống lọc thư rác hiệu quả trong thực tế 37
Chương IV:Các giao thức truyền nhận thư và thư viện javamailAPI 4.1 Giới thiệu SMTP: 38
4.2 Cách thức hoạt động của giao thức SMTP 38
4.3 Giới thiệu về các giao thức POP3 và IMAP 40
4.3.1 POP3 40
4.3.2 IMAP4 41
4.4 Quá trình chuyển nhận thư 46
4.4.1 Cấu trúc của thư điện tử 47
4.4.2 Mô hình gửi và nhận thư điện tử 48
4.4.3 Ví dụ về gửi nhận thư điện tử qua Internet bằng Mail Client 51
4.4 Javamail và các các hỗ trợ gửi nhận thư điện tử 52
4.4.1 Tổng quan về ngôn ngữ java 52
4.4.2 Cấu trúc của môt Message 54
Trang 4Chương V: Chương trình Email client và chức năng
lọc thư rác tự động bằng giải thuật Naive Bayes 56
5.1 Cơ sở dữ liệu cho chương trình 57
5.1.1 Tài khoản người sử dụng 57
5.1.2 Bộ dữ liệu mẫu 57
5.2 Giao diện của hệ thống 62
5.3 Một số chức năng tiêu biểu 70
5.4 Sử dụng chương trình 74
5.4.1 Cài đặt và chạy chương trình 74
5.4.2 Hướng dẫn sử dụng 74
5.5 Kết luận và định hướng phát triển 75
5.5.1 Những kết quả đạt được 75
5.5.2 Những hạn chế 75
5.5.3 Định hướng phát triển 76
Phụ lục 77
Các thuật ngữ tiếng Anh dùng trong chương trình: 77
Thư mục và nội dung đĩa CD đính kèm: 78
Tài liệu tham khảo 79
Trang 5Chương I: Mở đầu
1.1 Lí do chọn đồ án
Ngày nay sự phát triển không ngừng của công nghệ thông tin, đặc biệt
là sự ra đời của Internet đã đưa con người lên một tầm cao mới Sự ra đời củacác dịch vụ trên Internet làm cho nhu cầu trao đổi thông tin, tìm kiếm thôngtin của con người được đáp ứng một cách tốt nhất và nhanh nhất Có rất nhiềudịch vụ mới phát triển cùng công nghệ thông tin nhằm giúp công nghệ thôngtin thân thiết với người dùng hơn Một trong những dịch vụ góp phần khôngnhỏ vào việc giúp con người trao đổi thông tin một cách nhanh chóng đó làdịch vụ thư điện tử (electronic mail)
Tốc độ phát triển của các dịch vụ thư điện tử ngày nay và những lợi ích
mà nó mang lại cho chúng ta là rất lớn Qua thư điện tử người dùng không chỉnhận được thông tin mong muốn mà còn có thể nhận được âm thanh hình ảnh,
đồ họa và cả những kho dữ liệu khổng lồ mà trước đây việc trao đổi thư từ quatay không bao giờ có được Tuy nhiên, thư điện tử không chỉ mang đến chocon người nhiều lợi ích mà còn rất nhiều tác hại vô bổ khác, có thể gây ranhững thiệt hại to lớn nếu không biết cách loại bỏ và phòng chống nó Mộttrong những vấn đề nghiêm trọng cần giải quyết hiện nay trong các thư điện tử
đó là nạn thư rác hay còn gọi là “spam” Đó là những thư từ quảng cáo, haycác thư điện tử mà nội dung của nó thường có hại cho người dùng Qua quátrình thực tập được tìm hiểu về các phương pháp phân loại văn bản tôi chọn đồ
án: “Xây dựng một Email Client với khả năng lọc thư rác tự động bằng việc
ứng dụng phương pháp phân loại văn bản Naive Bayes” Qua đồ án này, tôi
cố gắng nắm bắt tốt phương pháp phân loại văn bản bằng thuật toán NaiveBayes và ứng dụng phương pháp này để phân loại thư rác trong Email Client
Hi vọng kết quả của đồ án này sẽ là một chương trình lọc thư rác có hiệu quảvới các dịch vụ thư điện tử hiện nay
1.2 Mục tiêu
Sau khi thực hiện đồ án mục tiêu mà tôi cần đạt được là:
- Nắm được cấu trúc của thư điện tử
Trang 6- Nắm được quá trình gửi và nhận thư điện tử, các giao thức hỗ trợ việc gửi nhận thư điện tử.
- Nắm được thuật toán phân loại văn bản Naive Bayes
- Ứng dụng thuật toán Naive Bayes để phân loại Email
- Xây dựng một Email Client với khả năng lọc thư rác tự động
1.3 Đối tượng nghiên cứu
Để xây dựng một Email client với khả năng lọc thư rác tự động bằngphương pháp phân loại văn bản Naive Bayes thì đối tượng mà tôi cần tìm hiểubao gồm các thành phần sau:
- Nghiên cứu về thư điện tử và cách truyền nhận thư
- Nghiên cứu về giao thức truyền tải thư đơn giản như SMTP(SimpleMail Transfer Protocol), các giao thức POP3 (Post Office Protocol) vàIMAP4…
- Nghiên cứu các phương pháp phân loại văn bản được áp dụng phổ biếnhiện nay
- Nghiên cứu về thuật toán phân loại văn bản Naive Bayes
- Nghiên cứu về ngôn ngữ lập trình java (đặc biệt là JavaBean vàJavaMail)
- Ứng dụng giải thuật phân loại văn bản Naive Bayes vào phân loại thưđiện tử
1.4 Tổng quan về Email và sự cần thiết phải phân loại Email1.4.1 Giới thiệu về Email
Thư điện tử, hay email (là chữ viết tắt của electronic mail), đôi khi
được dịch là điện thư, đây là một hệ thống chuyển nhận thư từ qua các mạng
máy tính Email là một phương tiện thông tin rất nhanh Một mẫu thông tin(thư từ) có thể được gửi đi ở dạng mã hoá hay dạng thông thường và đượcchuyển qua các mạng máy tính đặc biệt là mạng Internet Nó có thể chuyểnmẫu thông tin từ một máy nguồn tới một hay rất nhiều máy nhận trong cùnglúc
Ngày nay, thư điện tử chẳng những có thể truyền gửi được chữ, nócòn có thể truyền được các dạng thông tin khác như hình ảnh, âm thanh, phim,
Trang 7và đặc biệt các phần mềm thư điện tử kiểu mới còn có thể hiển thị các thư điện
tử dạng sống động tương thích với kiểu tệp HTML Hai vấn nạn lớn nhất củathư điện tử hiện nay là: spam mail và virus email
- Spam mail: là thư điện tử do những hacker lấy được địa chỉ email củabạn thông qua những email trao đổi có kèm theo một danh sách địa chỉemail ở trong mục CC (Carbon copy) mỗi khi gởi trên Internet hoặcqua những trao đổi trong các forum hay news group Các hacker này,sau khi đã thu thập những địa chỉ email và gộp chung thành một danhsách được dùng để bán lại hoặc dùng các danh sách email làm emailmarketing nhằm mục đích thương mại
- Virus email: là những thư điện tử do những người tinh nghịch phá hoạihoặc những kẻ muốn dùng virus để phá hoại một loạt những hệ thốngcomputer nào đó với một mục đích xấu Thông thường virus được gởiđến các địa chỉ email bạn qua các tài liệu gởi kèm (attached) và thườngtấn công vào các chương trình soạn thảo văn bản như Microsoft Word.Nhưng một khi đã được mở ra, nó không dừng lại ở các tài liệu văn bản
mà lan ra và hủy hoại nhiều chương trình và những ứng dụng khác, vàcuối cùng là toàn bộ hệ thống computer Nếu không được lưu trữ dựphòng các tài liệu quan trọng, hệ thống điện toán của bạn có thể bị mấttoàn bộ những tài liệu và văn thư quan trọng đó và khó có thể cứu lạiđược
Hai vấn nạn này có mối liên hệ khăng khít với nhau Qua việc phát tán spamnhững người gửi thư rác có thể phát tán virus gây thiệt hại cho máy tính và cókhi còn làm cho cả hệ thống mạng ngừng hoạt động nếu không phát hiện và
xử lí kịp thời
Vấn đề nghiêm trọng cần giải quyết hiện nay trong các thư điện tử đó là nạn
thư rác hay còn gọi là “spam” Đó là những thư từ quảng cáo, hay các thư điện
tử mà nội dung của nó thường có hại cho người dùng
1.4.2 Khái niệm về thư rác
Thư rác hay còn gọi là spam mail là các thư điện tử vô bổ thường chứacác loại quảng cáo được gửi một cách vô tội vạ và chất lượng của loại thư nàythường thấp Đôi khi, nó dẫn dụ người nhẹ dạ, tìm cách đọc số thể tín dụng vàcác tin tức cá nhân của họ
Trang 8Hình2: Spam mail: Các thư gửi từ Woodard, whonysald, tara crisp,serena555, Serena Mcclain, Santiago Ritchie, Pearl Mayers, nplroeom rrsi,Nina Garcia là các “Spam mail”
Có thể nói thư rác là một hình thức “tra tấn người dùng thư điện tử”bằng quảng cáo Các thư rác có thể vô hại nhưng mỗi ngày một người có thể
vì các thư rác này mà bị đầy cả hộp thư (có người đã từng nhận cả trăm thư ráctrong một ngày mà chỉ có đúng ba nội dung khác nhau!!!) Có thể chúng ta sẽthắc mắc tại sao người ta lại lặp đi lặp lại một cái thư quảng cáo cả chục lầncho một người, cũng đơn giản là vì họ muốn dùng hiệu ứng tâm lí… Khi hìnhảnh sản phẩm nào đó cứ đập vào mắt mình mãi thì đến lúc cần mua một thứ cóchức năng tương tự (hay cùng loại) thì chính hình ảnh thương hiệu của cái thưrác sẽ hiện lên trong óc chúng ta trước tiên Hoặc giả dụ đôi khi “lỡ tay” haychỉ vì tò mò người đọc sẽ “click” vào cái link và thế là “lưới nhện đã giăng sẵnchỉ chờ con mồi ”
Như vậy, theo định nghĩa thì các thư rác có thể có hại cho máy tính(hiểu theo nghĩa vật chất), đôi khi còn làm chúng ta bực mình khó chịu hoặclàm cho các thư từ khác (nhất là các thư gửi có nghĩa quan trọng) bị lẫn lộntrong một đống thư mà chủ yếu là các thư rác Khiến cho việc tìm kiếm cũngmất thời gian và cũng có thể khi xoá thư rác lại xoá nhầm thư quan trọng
1.4.3 Sự cần thiết phải phân loại thư rác
Tốc độ phát triển của thư rác (Spam mail)
Trang 9Spam đang được coi là một vấn đề “lớn” trên mạng Ferris Research
-hãng nghiên cứu thị trường (San Francisco - Mỹ) ước tính rằng những người
sử dụng email đã nhận được khoảng 110 bức thư không mong muốn hàngtuần Theo báo cáo của Ủy ban thương mại liên bang (Federal TradeCommission - FTC), gần 40% số email được trao đổi ở Mỹ là spam, tăng từcon số 8% của thời điểm cuối năm 2001 Con số các “spam” gia tăng hàngngày được nghiện cứu và thống kê là có hơn 50 % các thư điện tử được gửi làspam, Radicati Group dự đoán rằng con số này sẽ là 70% vào năm 2007
Tốc độ tăng trưởng của Spam được thống kê theo lược đồ sau:
Hình 1.1 Tốc độ phát triển của spam từ 2001-2004
Sự bùng nổ của thư rác ở Việt Nam
Bên cạnh virus, spyware, adware thì thư rác cũng trở thành một vấn đề
vô cùng khó chịu với người sử dụng máy tính ở Việt Nam Chỉ có 11% ngườiđược hỏi nói rằng họ không phải chịu sự quấy nhiễu của thư rác Ngoài việclàm mất thời gian, gây khó chịu cho người sử dụng, thư rác đã trở thành vấn
đề khó khăn thực sự với cả các hệ thống thư điện tử của các cơ quan/công ty ởViệt Nam Thư rác có khi còn nhiều hơn thư thật (Theo kết quả điều tra về tình
hình an ninh mạng ở Việt Nam của TT ANM BKIS Đại Học Bách Khoa Hà Nội)
Ngày nay, khi spam mail trở thành một hình thức quảng cáo chuyênnghiệp, phát tán virus, ăn cắp thông tin … thì một chương trình anti-spam choemail là rất cần thiết Chúng ta sẽ phải mất khá nhiều thời gian để xóa nhữngemail “không mời mà đến”, nếu vô ý còn có thể bị nhiễm virus, trojan,spyware … và nặng nề hơn là mất thông tin như thẻ tín dụng, tài khoản ngânhàng qua các email dạng phishing Đối với người dùng khi “checkmail” mà
Trang 10gặp phải thư rác sẽ gây ra một cảm giác khó chịu và làm tốn thời gian để xóathư đôi khi còn gây ra những hậu quả nghiệm trọng hơn đối với những ngườidùng có tính tò mò… Vì vậy việc xây dựng một hệ thống lọc thư rác cá nhân
tự động là rất cần thiết
1.4.4 Phân loại thư rác
Tổ chức hợp tác phát triển kinh tế OECD (Organization for EconomicCo-operatation Development) khuyến nghị một số biện pháp đối phó vớispam, trong đó có việc thông qua các chế tài pháp lý quốc tế, đầu tư mạnh vào
hệ thống lọc thư rác, thiết lập những trung tâm phản ứng nhanh liên kết cácISP (Internet service Provider) toàn cầu, đồng thời tăng cường các chiến dịchtuyên truyền cộng đồng về sự nguy hại và cách đối phó với thư rác Hiện giảipháp được sử dụng nhiều nhất là dùng các phần mềm tích hợp với hệ thốngthư hoạt động theo cơ chế “lọc theo nội dung” và “lọc theo danh sách websitechuyển tiếp” Một số công nghệ chống spam thú vị đang được nghiên cứu:
1 Tem cho e-mail: Theo hai nhà nghiên cứu Fahlman và Mark
Wegman thuộc Trung tâm Nghiên cứu của IBM (InternationalBusiness Machines) tại Watson, Mỹ, phương pháp chống spam hiệuquả nhất là yêu cầu những người không có tên trong danh sách
“khách hàng thân thiết” của bạn phải mua tem cho mỗi email mà họgửi cho bạn Một chương trình sẽ được đặt nằm giữa máy chủ email
và máy tính cá nhân của khách hàng để đối chiếu tên người gửi vớidanh sách khách hàng của bạn Những kẻ gửi thư rác sẽ phải cân nhắc
kỹ trước khi bấm “send” để gửi hàng loạt email
2 Cài mật mã: Bạn gửi email thông báo cho tất cả mọi người với một
đoạn mật mã đã được cài đặt sẵn trong email của bạn, và máy chủemail của ISP sẽ chỉ cho phép những email nào có đoạn mật mã này
đi qua
3 Khai báo thông tin: Một chương trình sẽ chặn email từ những người
lạ, và yêu cầu cung cấp đầy đủ thông tin cá nhân trước khi chuyểnemail đến người nhận
4 Lọc email qua nội dung: Một chương trình sẽ thu thập thông tin nằm
trong phần nội dung của email để giúp cho các quản trị viên máy chủemail tách thư rác ra khỏi hệ thống Phần mềm sẽ lướt qua toàn bộ
Trang 11thông điệp để tìm kiếm những từ khóa có liên quan đến thư rác.Chẳng hạn nếu bạn không phải là một bác sĩ, những bức thư bạnmong nhận được ít có liên quan đến các vấn đề giới tính Vì vậy,
“viagra” có thể là một từ khóa lọc thư quan trọng Các cơ chế lọc thưphức tạp hơn có thể lọc nguyên cả một đoạn mã lệnh đầu của thôngđiệp, những đoạn mã này bám theo suốt quá trình luân chuyển củaemail và cung cấp thông tin về chuyến đi đó Nếu một site spam cótên trong lịch trình đó, phần mềm sẽ tự động chặn bức thông điệp lại
5 Lọc theo danh sách website chuyển tiếp: Một công nghệ lọc khác
dựa trên danh sách các site chuyển tiếp Công nghệ lọc này kiểm tra
và chặn các thông điệp được truyền tải qua những điểm chuyển tiếp
mở rộng, tức là các hệ thống trên Internet cho phép người sử dụngdùng chúng như những điểm quá cảnh thư Những kẻ tấn công bằngspam (spammer) thường xuyên sử dụng các điểm chuyển tiếp mở này
để che dấu tung tích xuất xứ của mình Trong nhiều trường hợp, tintặc tận dụng các lỗ hổng bảo mật để “ra lệnh” cho các máy chủchuyển tiếp làm công việc của spammer
Đối với các email cá nhân thì phương pháp lọc thư rác phổ biến hiệnnay là “phân loại qua nội dung của các email” bằng việc ứng dụng các phươngpháp phân loại văn bản Phân loại email thực chất là phương pháp “phân loạivăn bản hai lớp” dựa vào nội dung của các email được gửi đến Trong đồ ánnày tôi xin trình bày một phương pháp phân loại văn bản khá phổ biến “NaiveBayes” và ứng dụng phương pháp này để phân loại các email cá nhân trongmột Email Client
Trang 12Chương II: Tổng quan về bài toán phân loại văn bản
2.1 Tổng quan về phân loại văn bản
2.1.1 Sự cần thiết phải phân loại văn bản
Nhiều năm trở lại đây, các loại thông tin đã phát triển không ngừng về
cả số lượng và chất lượng Đứng sau sự phát triển này là sự tiến bộ trong các
kĩ thuật truyền thông đa phương tiện, việc ảnh hóa và số hóa dữ liệu ngày mộtphát triển, các kĩ thuật này đã làm biến đổi các hình thức lưu trữ tài liệu từ tàidạng giấy viết sang dạng số (lưu trữ trên máy tính) và phổ biến hơn là cácphần mềm xử lí văn bản đều có khả năng tạo ra được các tài liệu dạng số TrênInternet cũng phát triển theo chiều hướng này Các dịch vụ trên Internet nhưthư điện tử, USENET News, và WWW (world wide web) vẫn có cơ sở chính
là văn bản Cách sử dụng thông dụng của những phương pháp đó đã cho kếtquả là hàng triệu văn bản được phát sinh trong mỗi ngày Điều này đem đếncho người sử dụng hai vấn đề cần xem xét:
- Thứ nhất: Những thông tin hữu ích ngày càng nhiều và ngày càng có
sẵn trên mạng Đặc biệt trên WWW có thể truy cập một số lượng lớncác thông tin và phân phối các thông tin đó cho mọi người (đây là mộtlợi ích to lớn)
- Thứ hai: Để phù hợp với sự phát triển như vũ bão của thông tin thì việc
lưu trữ “ở dạng số” các thông tin văn bản đang dẫn đến việc quá tảithông tin Mặt khác, lượng thông tin có sẵn và sự gia tăng của cácthông tin này lớn hơn rất nhiều so với khả năng mà con người có thểtìm ra những thông tin có liên quan mà họ cần (đây là khó khăn lớn).Việc bùng nổ thông tin cũng làm cho vấn đề tổ chức, quản lí, phân loạithông tin ngày càng có vai trò quan trọng Chẳng hạn khi tìm kiếm thông tintrên Internet, chương trình tìm kiếm phải lúc soát tất cả tất cả các tài nguyênsẵn có trên mạng sau đó tiến hành lọc thông tin để đưa ra những thông tin cầnthiết của người dùng Khoa học phát triển thì thời gian tìm kiếm và lọc thôngtin ngày một giảm Ngày nay thời gian đó còn có thể cải thiện hơn nữa (chỉcần vài phần của giây), nếu phân chia tài nguyên thành các nhóm có các mụcđích khác nhau, để thay vì việc tìm kiếm thông tin trên tất cả các tài nguyên thìchương trình của chúng ta chỉ việc tìm kiếm trên các nhóm tài nguyên có liên
Trang 13quan đến thông tin tìm kiếm Như vậy thời gian tìm kiếm sẽ được giảm đi rấtnhiều Để đáp ứng được yêu cầu này thì trước tiên phải tiến hành phân loạivăn bản
2.2.2 Định nghĩa phân loại văn bản
Có nhiều cách định nghĩa khác nhau về phân loại văn bản nhưng nóimột cách ngắn gọn dễ hiểu: Phân loại văn bản là sự phân loại không cấu trúccác tài liệu văn bản dựa trên một tập hợp của một hay nhiều loại văn bản đãđược định nghĩa trước Quá trình này thường được thực thi bằng một hệ thống
tự động gán cho các tài liệu văn bản một loại nào đó
Trong thực tế ứng dụng quan trọng nhất của phân loại văn bản là giớihạn phạm vi tìm kiếm thông tin (bởi thay cho việc phải lục soát tất cả các tàiliệu họ chỉ tập trung vào một số loại văn bản có liên quan đến thông tin mà họcần tìm kiếm) Phân loại văn bản góp phần quan trọng trong việc tổ chứcthông tin và quản lí tài liệu Ứng dụng phổ biến nhất của phân loại văn bản làtrợ giúp cho việc tìm kiếm và lọc văn bản do đó tăng tốc độ truy cập thông tin.Phân loại văn bản cũng đóng vai trò quan trọng trong việc đa dạng hóa vàchuyên nghiệp hóa các công việc quản lí thông tin như là: việc sắp xếp cácloại thư điện tử hoặc các file trong các hệ thống, xác minh chủ đề để trợ giúpcho các tiến trình hoạt động xử lí, tìm kiếm hay duyệt các cấu trúc, hoặc đểtìm kiếm các loại tài liệu mà người dùng quan tâm Như vậy làm thế nào đểphân loại văn bản? Câu trả lời sẽ được làm rõ khi ta đi sâu vào tìm hiểu tiếntrình phân loại văn bản
2.2 Tiến trình phân loại văn bản
Vấn đề đặt ra cho các bài toán phân loại văn bản có thể bắt đầu như sau:
Đưa ra một tập tài liệu mẫu D, cần được phân bổ thành một số loại tàiliệu nhất định - mỗi tài liệu đó cần được gán cho một loại văn bản nào đó.Nhiệm vụ của chúng ta là tìm một hệ thống phân hoạch, mà nó sẽ cung cấpcho ta một nhãn y phù hợp cho một số tài liệu trong D vừa được đưa vào từnguồn tài nguyên giống nhau như các văn bản mẫu Tổng quát hơn với một hệthống phân loại điển hình như mô tả ở sơ đồ sau gồm có các tiến trình
Trang 14Phương pháp thứ nhất: sử dụng các phương pháp lựa chọn đặc trưng
để chọn ra một đặc trưng tối ưu Nếu chọn ra được một đặc trưng tối ưu từ bộ
dữ liệu thô ở đầu vào, chúng ta có thể chỉ đơn thuần sử dụng nó để học một bộphân loại như hình vẽ Tuy nhiên, quá trình tối ưu đó không phải đơn giản.Trong trường hợp này khi sử dụng các đặc trưng khác nhau vẫn có thể sẽ dẫnđến các kết quả tương tự nhau hoặc là hiệu quả khác nhau Trong thực tế có rấtnhiều những ví dụ như thế
Phương pháp thứ hai: (hình vẽ 2.2) sử dụng một tập hợp các đặc
trưng phức hợp để đạt kết quả phân loại cao hơn, đây là một trong những cảitiến quan trọng Điều đó nghĩa là ta không chỉ sử dụng một đặc trưng để phânloại các tập tài liệu mà phải căn cứ vào tất cả các tập đặc trưng khác nhau cótrong tập tài liệu Sau đó phối hợp các đặc trưng đó để đưa ra một “vectorphức hợp” của các không gian đặc trưng cho các tập đặc trưng vừa chọn được,rồi mới tiến hành phân loại văn bản Vấn đề cơ bản nhất của những phươngpháp này là phác thảo các đặc trưng Do đó, việc học một phương pháp phânloại bao gồm hai công đoạn Phân hoạch đầu tiên sẽ được huấn luyện trên tậptài liệu mẫu và sau đó tổ hợp các sắp xếp này được huấn luyện trên một tậpcác phê chuẩn ngược lại Các nghiên cứu gần đây thể hiện rằng chính sự phốihợp của các phân hoạch được huấn luyện trên các đặc trưng khác nhau xảy ra
Trang 15như một kết quả có nghĩa đặc biệt đối với sự cải tiến các hiệu quả Tuy vậy vớimột tập dữ liệu đủ lớn thường đòi hỏi phải qua hai chặng đường học tập.Thêm vào đó sự phối hợp của các phương pháp phân hoạch cũng được thểhiện như một đặc trưng “lai” giữa nhiều cấu trúc module hoạt động trong cácmức ưu tiên nhỏ hơn
Hình vẽ 2.2
Các bước trong tiến trình phân loại văn bản:
- Lựa chọn các đặc trưng văn bản
- Biểu diễn văn bản
- Học một bộ phân loại văn bản
- Tiến hành phân loại văn bản
Trong đó, lựa chọn đặc trưng văn bản là quá trình phân tích văn bản thành các
từ hay cụm từ Biểu diễn văn bản là cách thể hiện văn bản dưới dạng mộtvector mà không gian của nó là tập các đặc trưng đã lựa chọn Căn cứ vào cácđặc trưng đã chọn có thể học một bộ phân loại văn bản như Naive Bayes haykNN… Đầu ra của quá trình này sẽ là một máy dùng để phân loại các tài liệucần thiết (tiến hành phân loại văn bản)
2.3 Đặc trưng văn bản và cách lựa chọn các đặc trưng văn bản
Lựa chọn đặc trưng văn bản là bước đầu tiên trong phân loại văn bản.Đây là tiền đề quan trọng để có thể học được một bộ phân loại hợp lí Có rấtnhiều đặc trưng hàm chứa trong một tài liệu tuy nhiên trong các văn bản thôngthường người ta sử dụng một số phương pháp lựa chọn đặc trưng sau:
1 Tần suất tài liệu (DF- Document frequency)
Học một bộ phân loại Kết
quả
Chọn đặc trưng k
.
Phân loại
Trang 162 Lượng tin tương hỗ (MI – Manual Information )
2.3.1 Tần suất tài liệu
Tần suất tài liệu DF là là số tài liệu có sự xuất hiện của một từ (term).
Người ta đã tính toán tần suất tài liệu cho một từ đơn trong tập văn bản mẫu.Cốt lõi của phương pháp này là phải tìm ra được một không gian các từ đặctrưng Với không gian này thì các từ phổ biến (xuất hiện thường xuyên trongmọi văn bản) đã được loại bớt, và cả những từ chỉ xuất hiện một lần (từ loạihiếm) cũng không được tính vào không gian các từ đặc trưng đó Cách xácđịnh DF là kĩ thuật đơn giản nhất để làm giảm bớt vốn từ có trong văn bản.Mặc dù đối với các văn bản lớn phương pháp này chỉ đạt đến độ phức tạptuyến tính (các giá trị DF tính được thường nhỏ hơn trong thực tế) nhưng nó
vẫn được coi là phép tính gần đúng để cải tiến hiệu quả của thuật toán Các
bước trong phương pháp lựa chọn này bao gồm:
- Tính DF của các từ trong văn bản
- Sắp xếp theo chiều giảm dần các DF
- Loại bỏ từ phổ biến và từ hiếm
- Chọn các đặc trưng có DF lớn: muốn thực hiện công việc này người
ta phải định ra một ngưỡng(coi là giới hạn để chọn từ)
Với phương pháp này từ loại nào xuất hiện trong càng nhiều văn bản càng cógiá trị và càng có thể được chọn vào không gian đặc trưng của tài liệu đang xétđó
2.3.2 Lượng tin tương hỗ
Lượng tin tương hỗ là giá trị logarit của nghịch đảo xác suất xuất hiệncủa một từ thuộc vào lớp văn bản c nào đó Đây là một tiêu chí thể hiện sự phụthuộc của từ t với loại văn bản c
Nếu kí hiệu
- Từ loại là t (term)
- Loại văn bản là c (category)
- A là số lần xuất hiện của t trong c
- B là số lần xuất hiện của t ở ngoài c
- C là số lần xuất hiện của c khi không có t
Trang 17- N là tổng số các tài liệu thì lượng tin tương hỗ giữa t và cđược định nghĩa như sau:
I(t,c) = log ( )(* () )
5 5
5
c P t P
c t
P
Và được ước lượng bởi
I(t,c) log( )**( )
B A C A
N A
1
),()()
m i
t
Tóm lại: để phân loại văn bản cần dựa trên các đặc trưng xác định Các đặc
trưng đó rất khó bị thay đổi Có rất nhiều kĩ thuật lựa chọn đặc trưng trong vănbản đã được thử nghiệm và kết quả thực tế cũng khả quan
Do kích thước lớn của không gian đặc trưng trong các dữ liệu nguyên bản vàkhả năng co giãn không gian đặc trưng rất kém của các phương pháp phânhoạch mà hiệu quả phân hoạch chưa cao Vì vậy phải có các kĩ thuật co giãnkhông gian đặc trưng của các bộ dữ liệu thô đầu vào
2.4 Biểu diễn văn bản
Trong không gian:
Khi đã lựa chọn được các đặc trưng của văn bản thì văn bản của chúng
ta sẽ được biểu diễn bằng một vector n chiều mỗi chiều là một đặc trưng củavăn bản Dưới dạng không gian nhiều chiều văn bản sẽ được biểu diễn nhưsau:
Trang 18Hình vẽ 2.3: Biểu diễn văn bản bằng hai đặc trưng đồng thời
Hình vẽ 2.4: văn bản biểu diễn bằng ba đặc trưng C-E-D
Trong máy tính: văn bản được biểu diễn là một vector có không gian làcác từ (word) xuất hiện trong văn bản đó Những từ này cũng đã đượclựa chọn nhờ vào hai thông số là DF (document Frequency) và IDF(Inverse Document Frequency)
2.4.1 Khái niệm về tần số từ
Đã có rất nhiều tiến trình xử lí văn bản được đề xuất bởi các nhà nghiêncứu quá trình tìm kiếm và mang lại thông tin Chẳng hạn như là: tìm kiếm vàthu nhận tài liệu, định tuyến văn bản, lọc và phân loại văn bản Với mỗi tiến
Lược đồ
biểu diễn
đặc trưng x
Lược đồ biểu diễn đặc trưng y
Trang 19trình xử lí văn bản, đơn vị thông tin cơ bản được xử lí là các “tài liệu văn bản”.Theo cách đó các từ loại “thông tin” và “tài liệu” sẽ được sử dụng để thay thếcho nhau qua các phần còn lại của báo cáo này.
Trong giai đoạn tiền xử lí văn bản, mỗi văn bản được biểu diễn bởi mộtvector C có N chiều w1, w2 , wN mỗi chiều wi đại diện cho một từ (term)xuất hiện trong văn bản, được đặc trưng bởi một đại lượng gọi là tần suất từ kíhiệu TF (term frequency) là số lần xuất hiện của từ đó trong tài liệu đang xét
2.4.2 Khái niệm về tần suất tài liệu ngược
Kí hiệu DF (document frequency) là đại lượng đặc trưng cho số tài liệu
có sự xuất hiện của từ loại wi và được kí hiệu là DF(wi) Lấy logarit cơ số 2của nghịch đảo của đại lượng này nhân với tổng số tài liệu ta được tần suất tàiliệu ngược kí hiệu là IDF(wi)
Công thức xác định IDF(Inverse document frequency)
IDF(wi) = log | ( | )
i
w DF D
Trong đó |D| là tổng số các tài liệu Tần suất tài liệu ngược của một từ
là thấp nếu từ đó xuất hiện trong nhiều tài liệu và là cao nhất nếu từ đó chỉxuất hiện trong một tài liệu Trọng số của một từ loại wi trong tài liệu d là:
d(i) = TF(wi,d)*IDF(wi)
2.5 Các phương pháp phân loại văn bản
Trước đây khi văn bản còn lưu trữ trên giấy tờ, để phân loại các loại tàiliệu chúng ta cần một đội ngũ nhân lực khá lớn Tuy nhiên sự phân loại củacon người cũng chỉ là tương đối, trong khi lượng thông tin tăng lên một cáchchóng mặt thì sự phân loại tài liệu do con người đảm nhiệm chỉ có thể đáp ứng0.1% lượng thông tin đó Còn bây giờ hầu hết các loại văn bản đều được lưutrữ trên một cơ sở dữ liệu (lưu trữ trên máy tính), vì vậy tự động phân loạithông tin ngày càng đóng vai trò quan trọng
Dựa trên các đặc trưng của văn bản đã xuất hiện nhiều chiến lược phânloại văn bản đã được đề xuất và áp dụng trong các tập tài liệu khác nhau Hiệuquả của các phương pháp đó tuy chỉ là tương đối nhưng đã hỗ trợ rất nhiều
Trang 20trong truy cập, quản lí, lọc thông tin Các phương pháp phân loại văn bản chokết quả tốt thường được sử dụng là:
1 Nguyên mẫu (prototype)
2 Mô hình xác suất Naive Bayes
3 Phương pháp SVM (Support vectors Machines)
4 Phương pháp cây quyết định (Dicision Trees- Lewis and Ringuette,1994)
5 Phương pháp mạng neuron (Neuron network - Wiener et al., 1995;Schutze et al., 1995)
2.5.1 Nguyên mẫu
Nguyên mẫu (prototype) có thể là phương pháp đơn giản nhất được ápdụng trong phân loại văn bản Thuật toán của phương pháp này khá đơn giản,mỗi văn bản đầu vào là một vector D i (w1, w2 ,… wk ) trong đó mỗi chiều
wi đặc trưng cho một từ loại (term) Một tập tài liệu mẫu sẽ được phân chialàm các lớp văn bản khác nhau và được đặc trưng bởi đại lượng cj
(categorization) Có thể có nhiều tài liệu Di trong một lớp tài liệu cj, tuy nhiên
để đơn giản người ta xác định trong ci một vector trung bình (D i) Và sử dụngcosin của góc tạo bởi hai vector (một vector biểu diễn văn bản cần phân loại
D, một vector biểu diễn lớp văn bản ci) làm độ đo sự phù hợp giữa văn bản Dvới loại văn bản ci
cosin(D, D i ) =
i
i
D D
D D
*
*
D sẽ được xác định thuộc vào loại văn bản ci nào mà cosin(D, D i ) là lớn nhất.Mỗi tài liệu D có thể thuộc một hay nhiều loại văn bản tùy thuộc vào giới hạn
mà người quản trị đặt ra
Ưu điểm của nguyên mẫu là có thể áp dụng cho mọi văn bản, tuy nhiên xácsuất của phương pháp này không cao (lí do là có nhiều loại văn bản độ dàigiống nhau nhưng nội dung khác hẳn nhau)
2.5.2 Các mô hình xác suất của Naive Bayes
Kĩ thuật phân hoạch của Naive Bayes dựa trên cơ sở định lí Bayes vàđặc biệt phù hợp cho các trường hợp phân loại có kích thước đầu vào là lớn
Trang 21Mặc dù Naive Bayes khá đơn giản nhưng nó có khả năng phân loại tốt hơn rấtnhiều phương pháp phân hoạch phức tạp khác Với mỗi loại văn bản, thuậttoán Naive Bayes tính cho mỗi lớp văn bản một xác suất mà tài liệu cần phânhoạch có thể thuộc loại đó Tài liệu đó sẽ được gán cho lớp văn bản nào có xácsuất cao nhất Chi tiết về thuật toán Naive Bayes sẽ được trình bày kĩ ởchương 3.
2.5.3 Phương pháp SVM
SVM là một phương pháp tiếp cận gần đúng thường áp dụng để phânloại hai lớp văn bản Phương pháp này được xác định dựa trên một không gianvector mà trong không gian này vấn đề phải tìm ra một “mặt quyết định” giữahai lớp sao cho khoảng cách giữa các điểm dữ liệu giữa hai lớp này là lớnnhất
Nếu văn bản cần phân loại nằm về phía nào của mặt quyết định thì nó đượcphân vào loại văn bản đó Phương pháp SVM thường áp dụng để phân loại hailớp văn bản nhưng vẫn có thể áp dụng để phân loại nhiều lớp văn bản
2.5.4 Cây quyết định
Cây quyết định là một trong những kĩ thuật học máy được nhiều ngườibiết đến Chúng được áp dụng rộng rãi và đa dạng của các lĩnh vực đặc biệt làcác ứng dụng trong trí tuệ nhân tạo Thành công của phương pháp này đượcchứng minh bằng khả năng xử lí các vấn đề phức tạp theo cách trình bày mộtkhả năng có thể chấp nhận được dễ dàng cho việc diễn dịch và thậm chí còn
có khả năng đưa ra các kết luận từ các luật logic Một số phương pháp đã được
Mặt quyết định
x
y
Khoảng cách lớn nhất
Trang 22đề xuất để xây dựng các cây quyết định Những thuật toán này có đầu vào làmột tập các tài liệu mẫu được đưa vào làm ví dụ Ở đó mỗi tài liệu đựơc mô tảbởi việc thiết lập các giá trị thuộc tính và được gán cho các lớp Đầu ra là mộtcây quyết định bảo đảm sự phân hoạch cho các ví dụ đưa vào Vấn đề chínhđược nói rõ trong các thuật toán chuẩn của cây quyết định là kết quả có thểthay đổi bất chợt tùy thuộc vào dữ liệu Sự không chắc chắn đó có thể xuấthiện trong các cấu tử hoặc có thể xuất hiện trong các giai đoạn phân hoạch
Cây quyết định được sử dụng để phân hoạch các đối tượng mới Thuậtgiải trong cây quyết định được bắt đầu từ gốc của cây quyết định Chúng ta sẽđánh giá thử những thuộc tính có liên quan và chọn một nhánh tương ứng với
sự lựa chọn của đó Qui trình này sẽ được lặp đi lặp lại đến khi gặp phải một
lá Như vậy đối tượng mà ta đang xét sẽ thuộc vào loại của lá mà ta vừa gặpphải Điều đó cũng có nghĩa là thuật toán cây quyết định kết thúc khi mà quátrình phân tích gặp được một nút lá
2.5.5 Mạng neuron
Phân loại văn bản bằng mô hình mạng neuron là một cách thức phân loạimới được đề xuất Cấu trúc và hoạt động của mạng neuron cơ bản dựa trên bộnão con người Mạng neuron được áp dụng trong khá nhiều lĩnh vực khácnhau và có khả năng giải quyết các vấn đề phức tạp, phạm vi rộng Trong phânloại tài liệu có thể dùng mạng neuron để phân chia gần đúng các tài liệu trongtập tài liệu thô đầu vào Cấu trúc mạng neuron khá phức tạp, hầu hết các phần
tử cấu thành mạng neuron là các neuron Chúng được phân chia thành các lớpkhác nhau và có mối liên hệ với các neuron trong cùng lớp hoặc khác lớp Mốiquan hệ giữa các neuron được biểu diễn bằng các cung tròn có đầu ra từ mộtneuron này và đầu vào từ một neuron khác, mối quan hệ giữa hai neuron lâncận nhau đặc trưng bằng trọng số w(weight)
2.6 Bài toán phân loại thư rác
Phân loại thư rác thực chất là bài toán phân loại văn bản hai lớp, trongđó: tập tài liệu mẫu ban đầu là các thư rác (spam) và các thư hợp lệ (ham), cácvăn bản cần phân lớp là các Email được gửi đến client Kết quả đầu ra của quátrình phân loại này là hai lớp văn bản: Spam(thư rác), Ham (thư hợp lệ) Môhình phân loại thư rác tổng quát có thể mô tả như sau:
Trang 23Tiến trình phân loại các thư điện tử trong máy lọc văn bản được biểu diễn
như sau:
Các thuật toán áp dụng để phân loại văn bản đều có thể áp dụng để phân loạithư rác Tuy nhiên trong phân loại văn bản, những kiểm nghiệm trong thực tếchứng minh rằng hiệu quả của hai phương pháp {SVM, kNN} luôn đạt hiệuquả cao nhất Các phương pháp mạng neuron và cây quyết định thường ápdụng rộng rãi trong trí tuệ nhân tạo, các thuật toán tìm kiếm đường đi
Phương pháp Naive Bayes mặc dù hiệu quả có thể nhỏ hơn các phương pháp khác nhưng đơn giản Với phương pháp cây quyết định khi mà tập tài
liệu thô ban đầu và không gian đặc trưng lớn thì sẽ xuất hiện nhiều nhánh mớicây quyết định sẽ trở nên phức tạp vì thế rất khó khi chọn lựa đặc trưng tiêubiểu để có kết thúc là một nút lá Với phương pháp này thường thích hợp với
Trang 24các tập tài liệu nhỏ Phương pháp mạng neuron đây là một bước đột phá trongvăn bản, mạng neuron có thể áp dụng cho rất nhiều lĩnh vực khác nhau đặcbiệt trong trí tuệ nhân tạo Với phân loại văn bản mạng neuron cho kết quả tốthơn nhiều phương pháp phân loại khác Nhưng thuật toán trong mạng neuronthường rất phức tạp đặc biệt là khi số nút mạng neuron lớn
Nói chung xây dựng một mô hình phân loại thư rác là một việc khókhăn và phức tạp Hiện nay cũng đã có khá nhiều thuật toán được áp dụng vàhiệu quả khá tốt Mô hình xác suất Naive Bayes cũng là một trong những ứngdụng phổ biến hiện nay Và đây là thuật toán mà tôi lựa chọn để làm cơ sởphân loại thư rác trong đồ án của mình Những ưu điểm của thuật toán phânloại văn bản Naive Bayes sẽ được trình bày chi tiết trong chương tiếp theo
Trang 25Chương III: Thuật toán Naive Bayes và cách phân
loại thư điện tử
3.1 Các công nghệ lọc thư rác hiện nay
Ngày nay có rất nhiều công nghệ lọc thư rác Nó dựa trên các đặc trưng
cơ bản của thư điện tử như: tiêu đề của thư rác, địa chỉ nơi gửi và nhận thư ráchay các cụm từ thường hay sử dụng trong các thư rác Phần tiêu đề và phầnthân được xem xét là quan trọng đối với những người tạo ra các thư rác đó.Thêm một phương pháp dùng để phân loại thư rác mà không cần biết đến địachỉ của các thư rác Phương pháp này so sánh các thư điện tử mẫu với các thưđiện tử nhận được sau đó tìm ra những thư rác thông dụng Và một công nghệkhác có thể là phổ biến ngày nay đó là sử dụng công nghệ học máy để phânloại thư điện tử
Để có hiệu quả trong việc lọc thư rác các công nghệ mới cần có mộtkhả năng thích ứng Phương pháp này phải thật thân thuộc với những ngườitạo thư rác và các thủ đoạn mánh khóe của họ có thể thay đổi theo thời gian.Các bộ lọc thư rác mới hiện nay thường áp dụng thuật toán Bayes đem lại hiệuquả cao và được cải tiến thành máy lọc thư rác Naive Bayes (Naive Bayesfilter)
3.2 Thuật toán phân loại văn bản Bayes
Như đã trình bày ở chương 2 “Naive Bayes” do những giả thuyết nớilỏng phụ thuộc thống kê, coi các từ xuất hiện trong một văn bản là độc lậpthống kê Cơ sở của phương pháp phân loại văn bản Naive Bayes là chủ yếudựa trên các giả định của Bayes Giả thuyết Bayes gán cho mỗi tài liệu vănbản cần phân loại một giá trị xác suất
Xác suất P(ck| di) gọi là xác suất mà tài liệu di có khả năng thuộc vàolớp văn bản ck được tính toán như sau:
) (
)
| (
* ) ( )
| (
i
k i k
i k
d P
c d P c P d c
tài liệu di sẽ được gán cho loại văn bản nào có xác suất hậu nghiệm cao nhất nên được biểu diễn bằng công thức:
Trang 26
) (
)
| (
* )
( max )
| (
max
1
arg 1
arg di
of
Class
i
k i k
N k
i k N
c d P c
P d
Có hai đối tượng GREEN và RED Nhiệm vụ của chúng ta là phân loại các
trường hợp mới khi chúng được đem tới Lựa chọn để gom chúng thành các
đối tượng cụ thể trên cơ sở hai đối tượng đã có là GREEN và RED Như vậy
từ hai đối tượng này ta phải tìm ra được lí do hợp lí để giả thiết cho các đối
tượng mới đó Trong phân tích của Naive Bayes lí do đó được gán cho một đại
lượng đó là P ( Prior propability), P được xác định dựa vào các kinh nghiệm từ
trước đó Trong trường hợp này nó chính là tỉ lệ phần trăm của hai đối tượng
GREEN và RED, chúng được sử dụng để dự đoán kết quả trước khi chúng có
thể xảy ra:
Theo cách đó chúng ta có:
Xác suất có thể của GREEN = T G
Xác suất có thể của RED =
T R
Trong đó:
- G là Số đối tượng GREEN
- R là số đối tượng RED
- T là tổng số các đối tượngTrong ví dụ này theo hình vẽ ta có T = 60; G = 40; R = 20 Thì xác suất có
thể của các ứng viên:
Trang 27P(GREEN) = 6040 P(RED) = 6020
Để có thể xây dựng một công thức xác định xác suất P chúng ta sẽ tiến hànhphân loại các đối tượng WHITE như hình vẽ Từ các đối tượng là các nhómhợp lí, chúng ta có thể giả định đối tượng đã cho thuộc đối tượng RED hoặcGREEN trong vùng lân cận của X, tốt hơn là các đối tượng ta xét có thể thuộcvào màu đặc biệt đó Để giới hạn cho các khả năng có thể xảy ra này chúng ta
sẽ dựng thêm một đường tròn xung quanh X, nó sẽ bao quanh một số điểm màchúng ta sẽ không quan tâm là chúng thuộc đối tượng nào Sau đó chúng ta sẽtính toán số các điểm thuộc vào mỗi loại GREEN và RED có trong vòng tròn,
từ đó có thể tính được khả năng có thể của X
Khả năng X thuộc GREEN =
Khả năng X thuộc GREEN là = 401 Khả năng thuộc RED là = 203Mặc dù xác suất có thể biểu thị rằng X có thể thuộc GREEN (bằng cách sosánh hai xác suất có thể với nhau) nhưng khả năng biểu thị lại khác (rằng ứngviên X là RED) Trong phân tích Bayes, phân hoạch cuối cùng được đưa ra
Trang 28bởi việc phối hợp cả hai nguồn thông tin, mức ưu tiên và khả năng có thể hình
thành xác suất “hậu nghiệm” (posterior probability) sử dụng gọi là luật Bayes
(tên sau của Rev Thomas Bayes 1702-1761)
Xác suất hậu nghiệm của X có thể thuộc GREEN
= Xác suất có thể của GREEN * Khả năng X thuộc GREEN
=
60
1 40
= Xác suất có thể của RED * Khả năng X thuộc RED
= *203 603
60
20
cuối cùng chúng ta phân loại X vào RED vì nó là đạt xác suất hậu nghiệm lớnnhất
Việc phân loại ở ví dụ trên thuộc về trực giác khi sử dụng Naive Bayes.
Nhưng phân hoạch Naive Bayes có thể vận dụng một số các tuỳ biến phụthuộc
Tóm lại phân loại văn bản sử dụng thuật toán Naive Bayes có thể diễn đạt một cách ngắn gọn như sau:
Với mỗi văn bản D (document), người ta sẽ tính cho mỗi loại một xácsuất mà tài liệu D có thể thuộc vào lớp tài liệu đó bằng việc sử dụng luậtBayes:
) (
)
| (
* ) ( )
| (
D P
C D P C P D C
Trong đó: D là tài liệu cần phân loại, Ci là một tài liệu bất kì Theo giả địnhcủa Naive Bayes xác suất của mỗi từ trong tài liệu D là độc lập với ngữ cảnhxuất hiện các từ đồng thời cũng độc lập với vị trí của các từ trong tài liệu Xácsuất P(D|Ci) được tính toán từ tần suất xuất hiện của các từ đơn wj (word)trong tài liệu D
)
| P(w )
C
| P(D
l j 1
l là tổng số từ w trong tài liệu D:
Như vậy biểu thức (1) có thể được viết lại như sau:
Trang 29| P(w )
(
) ( )
| (
l j 1
j i
i
D P
C P D C
3.3 Quá trình hoạt động của bộ lọc thư rác Bayes
Bộ lọc thư Bayes dựa trên một cơ sở tất yếu là hầu hết các sự kiện đềuphụ thuộc và đó là xác suất của các sự kiện xuất hiện trong tương lai, có thểđược suy luận ra từ những sự xuất hiện trước đó của các sự kiện này
Các tiến trình xây dựng một bộ lọc thư rác Bayes
3.3.1 Tạo một cơ sở dữ liệu từ Bayes thích hợp
Trước khi lọc thư cần áp dụng phương thức này, một người sử dụng cóthể cung cấp một cơ sở dữ liệu với tập các từ và các tokens (ví dụ $, địa chỉ IPcủa các vùng ) tập hợp các mẫu thư được coi là các thư rác (spam) và tậpmẫu thư được coi là thư hợp lệ
3.3.2 Tạo một cơ sở dữ liệu cho các thư hợp lệ
(Thích hợp với mỗi người sử dụng hay với công ty riêng): công việcnày có thể được thay đổi theo những người sử dụng ở các cơ quan khác nhau.Nói ngắn gọn là có thể thêm vào một file dữ liệu lưu trữ các cụm từ thườngxuất hiện trong các thư hợp lệ của cơ quan hay người dùng đó làm cơ sở phânloại các thư hợp lệ
Thư hợp lệ
Thư rác
cơ sở dữ liệu của xác suất các từ
Trang 30Một vấn đề quan trọng cần lưu ý là việc phân tích các thư hợp lệ chỉ cóhiệu quả trong các thư điện tử của một cơ quan Ví dụ trong trường Đại họcThủy Lợi hầu hết các thư được gửi trong phân vùng wru đều có chứa ThủyLợi vì thế khi xây dựng bộ lọc hay khi người sử dụng ở miền này những thưhợp lệ đều chứa từ “thủy lợi” hoặc “bộ nông nghiệp và phát triển nông thôn”.Tuy nhiên có thể người sử dụng sẽ nhận được một thư điện tử có chứa từ “bộnông nghiệp và phát triển nông thôn” nhưng không phải của trường thủy lợi
đó là một số phân định sai nếu sử dụng cụm từ đó trong tập các mẫu Mặtkhác máy lọc Bayes nếu hoàn toàn phù hợp với công ty của bạn ở giai đoạnkhởi tạo tập mẫu Cần phải chú ý với các thư điện tử gửi đi nước ngoài củacông ty(và thừa nhận cụm từ “bộ nông nghiệp và phát triển nông thôn” được
sử dụng thường xuyên trong các thư hợp lệ của những người có tài khoảnwru) Và sau đó tỉ lệ thư rác được tìm ra sẽ tốt hơn rất nhiều, tỉ lệ nhầm lẫncũng giảm xuống thấp hơn
3.3.5 Tạo một cơ sở dữ liệu cho thư rác
Ngoài các thư hợp lệ “ham” bộ lọc Bayes cũng dựa trên một file dữ liệuthư rác File dữ liệu thư rác này phải bao gồm một mẫu lớn để hiểu về thư rác
và phải luôn luôn được cập nhật với những thư rác gần đây nhất Điều này sẽchắc chắn rằng bộ lọc Bayes có khả năng nhận biết được các thủ thuật củanhững thư rác gần đây nhất và đem lại một tỉ lệ tìm kiếm thư rác là lớn nhất.Ngắn gọn hơn là tạo một file dữ liệu chứa các cụm từ mà thường xuất hiệntrong các thư rác ví dụ các loại thư rác bằng tiếng anh thì thường chứa những
từ như “Greeting card” hay “$$$” hoặc “Free money” còn những thư rác Việtthì có thể chứa các cụm từ như “giá rẻ bất ngờ”, “hình ảnh sexi” Những cụm
từ đó cũng được gán cho một độ tin cậy nhất định, đây là cơ sở để phân loạicác thư rác Cũng giống như phân loại thư hợp lệ khái niệm thư rác cũng tùythuộc vào người sử dụng rất nhiều Chẳng hạn với các sinh viên ngànhIT(information technology) thì với mỗi thư tuyển dụng của FPTsoftware làmột thư điện tử rất có nghĩa (thư hợp lệ) nhưng đối với những thành phần khác
IT không quan tâm đến công việc thuộc lĩnh vực này thì những thư điện tửtuyển dụng đó lại là thư rác vì thế cơ sở dữ liệu cho thư rác cũng cần được cậpnhật qua những người sử dụng ở các vùng miền khác nhau
Trang 313.4 Sự hoạt động của các bộ lọc thư rác thực tế
Cơ sở dữ liệu về thư hợp lệ hay thư rác sẽ được tạo ra và xác suất các từ
đã được tính toán sau đó được lưu lại và có thể sử dụng Khi một thư điện tửmới được chuyển đến nó sẽ được phân tách thành các từ và hầu hết các từ cóliên quan Chúng là những nhân tố quan trọng nhất để nhận dạng các thư điện
tử có phải là thư rác hay không và sau đó sẽ loại bỏ từng cái ra ngoài Căn cứvào các từ bộ lọc Bayes sẽ tính toán xác suất của các thư điện tử có thể là thưrác Nếu xác suất đó lớn hơn một ngưỡng nào đó đã đặt ra chẳng hạn 0.9 sau
đó các thư điện tử được phân loại Phương pháp Bayes này tiếp cận với cácthư rác một cách có hiệu quả cao Tháng 5/2003 một bài báo BBC cho biếtkết quả của việc tìm kiếm thư rác trong bộ lọc đạt 99.7% có thể hoàn thành vớimột số thấp các sai sót
3.5 Các ưu điểm của bộ lọc thư rác Bayes
Phương pháp Bayes nhận dạng một thư điện tử dựa vào các mô tả, nónhận ra các từ khóa mà những từ đó có thể nhận dạng một thư rác (spam) vàcũng nhận ra các từ chứng tỏ một thư điện tử hợp lệ (ham) Ví dụ không phảitất cả các thư điện tử có chứa các từ như “free” hay “cash” đều là thư rác.Phương pháp Bayes sẽ tìm kiếm các từ “free”, “cash” nhưng nó cũng nhận ratên của người gửi thông điệp và theo cách phân loại đó một thông điệp là hợp
lệ, với các từ khác máy lọc Bayes là một phương pháp tiếp cận khá thôngminh bởi vì nó nghiên cứu tất cả các khía cạnh của một thư điện tử như phảnđối việc kiểm tra từ khóa mà nó nhận dạng được một thư điện tử là thư rác trên
cơ sở một từ đơn
- Bộ lọc Bayes liên tục tự thích nghi bởi sự học tập từ các thư rác mới vàcác thư điện tử hợp lệ đến từ bên ngoài, bộ lọc Bayes giải quyết và thíchnghi với các công nghệ lọc thư rác kiểu mới Lấy ví dụ khi một người tạothư rác sử dụng từ “f-r-e-e” để thay thể cho “free” chúng rất thành côngtrong việc tránh kiểm tra các từ khóa đến tận khi “f-r-e-e” cũng được baohàm trong các từ khóa của cơ sở dữ liệu Mặt khác cũng có thể sử dụng
“5ex” thay thế cho “sex” Bạn sẽ không thể có từ 5ex trong một thư hợp
lệ và sau đó có khả năng xảy ra là các thư rác có thể tăng lên
- Công nghệ lọc thư bằng Bayes rất nhạy cảm với người sử dụng, nó họccác thói quen của các thư điện tử trong công ty và hiểu được điều đó lấy
Trang 32ví dụ: từ “mortgage” sẽ được dùng để nhận dạng một thư rác Nhưngngược lại nó sẽ không chỉ ra nó như là thư rác nếu công ty là một cơ quantài chính được thành lập bẳng tiền thế chấp (mortgage).
Máy lọc thư rác sử dụng thuật toán Naive Bayes cung cấp một chức năng lọcthư tự rác tự động Trên cơ sở sử dụng các xác suất gần đúng để tính toán cáckhả năng một thư điện tử có thể là thư rác hay không Sự tính toán này là quátrình tìm kiếm các từ thường xuất hiện trong các thư điện tử và so sánh chúngvới tập mẫu Thuật toán bắt đầu bằng việc học các nội dung của các thư điện
tử hợp lệ và nội dung của những thư rác Để sau đó khi nhận vào một thư điện
tử mới, các thông tin có sẵn từ tập mẫu, các tiến trình tiền xử lí trước sẽ được
áp dụng trên cơ sở nội dung của các thư điện tử
Nguyên tắc tính các xác suất trong bằng thuật toán Bayes:
- Giả sử nội dung của mỗi thư điện tử là: content
- Lớp thư rác kí hiệu là: spam
- Lớp thư hợp lệ kí hiệu là: ham
- Xác suất để một thư điện tử là thư rác: P(spam|content)
- Word1, word2, word3…wordm là các từ đặc trưng xuất hiện trong content
Ta có:
total
spam P spam content
P content spam
Trong đó total được xác định như sau:
Total = P(content | spam)*P(spam) + P(content | ham)*P(ham)
i spam word
P spam
content P
1
)
| (
)
| (
n i
i ham word P ham
content P
1
)
| (
)
| (
P(spam) = total spam / total messages P(ham) = total ham / total messages
Để đơn giản hóa công thức và tính toán chúng ta giả định rằng xác suất củacác từ đó được bao hàm trong một văn bản là độc lập với các từ khác trongcùng một tài liệu Một cách nhìn khác của giả định này là sự không chính xác.Bởi vì sự chỉ dẫn có hiệu quả để tính toán đơn giản và trả về kết quả vẫn làmột một kết quả gần đúng Giả định này được gọi là giả định Naive Bayes
Trang 333.6 Các bước để xây dựng bộ lọc thư rác sử dụng giải thuật
Naive Bayes
1 Xác định rõ các đặc trưng sử dụng Yêu cầu này chúng ta sẽ xem xét cácthư điện tử và tìm các “từ” hoặc “nhóm từ” mà chúng là dấu hiệu của thưrác hay không phải thư rác, đây có thể coi là cơ sở dữ liệu cho bộ lọc Đây
là một phần quan trọng trong nhiệm vụ này và chúng ta có thể lặp lại mộtvài lần
2 Sử dụng một số phương pháp lựa chọn đặc trưng để phân tích dữ liệu vàchọn đặc trưng, sau đó có thể ước lượng xác suất điều kiện và sử dụng cácluật Bayes để ước lượng xác suất của một thư điện tử có phải là thư rác haykhông?
3 Xác định rõ ngưỡng để loại bỏ tất cả các thư điện tử mà xác suất của chúnglớn hơn xác suất này
4 Thử nghiệm hệ thống lọc thư rác và ước lượng hiệu quả trong thực tế
Hệ thống lọc thư rác khác nhiều so với các công việc của phân loại văn bản
ít nhất ở hai lí do sau:
- Thứ nhất: Các loại văn bản hỗn tạp trong thực tế có thể xuất hiện là dochủ ý của người đọc và một nội dung chỉ có thể có một tiêu đề Các thưđiện tử thì được gửi đi một cách tự nguyện đối với những người gửithư rác nhưng với người nhận thư rác thì hoàn toàn ngoài ý muốn.Tương tự như các loại văn bản các thư điện tử có thể cũng mở rộngmột số các tiêu đề khác nhau đối với cùng một nội dung
- Thứ hai: Việc phân loại nhầm một thư hợp lệ thành thư rác sẽ phát sinhhậu quả nghiêm trọng hơn là phân loại nhầm một thư rác thành thư hợp
lệ Đây là chất lượng khác nhau giữa các lớp mà nó cần được ghi chéplại trong quá trình tính toán
3.6.1 Lựa chọn các đặc trưng
Khi xét đến các vấn đề cụ thể của việc lọc thư rác việc lựa chọn đượctập các đặc trưng của các thư điện tử là rất quan trọng, bên cạnh các từ riêng lẻtrong nội dung của các thông điệp nó cung cấp các dấu hiệu để nhận ra mộtthư điện tử có phải là thư rác hay không Lấy ví dụ các cụm từ đặc biệt như là
“Free money” hay các phép chấm câu nhấn mạnh “!!!!” là ngụ ý của thư rác.Hơn nữa thư điện tử bao gồm nhiều những đặc trưng không phải của văn bảnnhư là loại vùng của các thông điệp được gửi đi (e.g, edu hay com) nó cung
Trang 34cấp các đặc điểm của thông tin hàm chứa trong nội dung giúp cho ta có thểnhận biết một thư điện tử có phải là thư rác hay không
Những thông tin đặc trưng được sử dụng trong các phân hoạch Vấn đềđầu tiên là việc nghiên cứu các thư điện tử văn bản mà có sự xuất hiện của cáccụm từ đặc biệt như là “free!”', “only $'' (cũng như “only $4.95”) và “be over21” Khoảng chừng vài trăm cụm từ “mánh khóe” nó coi như là một cách đặcbiệt thích hợp mà vấn đề này hàm chứa
Trong quá trình thêm vào các cụm từ đặc trưng chúng ta cũng coi nhưvùng miền cụ thể không là đặc trưng văn bản, như là loại vùng của người gửithư (đã đề cập trước đó) Lấy ví dụ, thư rác gần như không bao giờ được gửi
từ các vùng “.edu” Hơn thế nữa nhiều chương trình đọc thư điện tử sẽ giảiquyết các địa chỉ Email gia đình
(i.e thay thế bằng sdumais@microsoft.com với Susan Dumais)
Bằng việc xem xét các thư điện tử được gửi từ những người sử dụng cánhân đến người nhận thư, chúng ta cũng có thể cung cấp thêm các dấu hiệu đểnhận biết một thư điện tử không phải là thư rác Một số sự khác biệt đơn giản
khác chẳng hạn một thư điện tử có đính kèm một tài liệu (hầu hết các thư rác đều không có) hay khi một thư điện tử được gửi đi và được nhận (hầu hết các
thư rác đều được gửi vào buổi tối) cũng chỉ ra sự khác biệt mạnh mẽ giữa thưrác và các thư điện tử hợp lệ Xa hơn nữa chúng ta có thể coi một số các nétđặc biệt hữu dụng khác, nó làm việc khá tốt trong phân hoạch xác suất nhưng
có cũng khó giải quyết nếu chỉ dựa vào hệ thống các luật Những đặc trưngbao gồm cả tỉ lệ các kí tự đặc biệt trong chủ đề của các thư điện tử (thư rác, ví
dụ thường có tiêu đề được mô tả như sau: “$$$$ BIG MONEY $$$$”) nó baogồm một tỉ lệ cao các kí tự đặc biệt Xét về tổng thể chúng ta có thể ước lượngkhoảng chừng vài trăm các cụm từ mánh khóe, các đặc trưng loại vùng cụ thểtrong máy lọc thư rác của chúng ta
Trong các bộ lọc thư rác bằng Naive Bayes sức mạnh của nó có thể phụthuộc vào tập các đặc trưng lựa chọn Chúng ta lựa chọn các đặc trưng bằngviệc sử dụng hai phương pháp:
- Phương pháp kĩ thuật đầu tiên sử dụng trong lĩnh vực phân loại văn
bản Với mỗi từ xuất hiện trong nội dung của các thư điện tử trong tập vănbản mẫu, chúng ta sẽ đưa vào một đặc trưng thích hợp Với mỗi thư điện tử,đặc trưng này sẽ nhận giá trị là 1 nếu nội dung của các thư điện tử có chứa nó
Trang 35và nhận giá trị không trong trường hợp ngược lại Từ các tập đặc trưng nàychúng ta chọn ra 2002 đặc trưng với lượng tin tương hỗ là lớn nhất nhận cácgiá trị [7,5,6,4] chúng ta tính toán lượng tin tương hỗ cho mỗi đặc trưng ứng Xnhư sau:
) ,
( log ) ,
( )
; (
y
y Y x X P y
Y x X P Y
X MI
một lợi thế của phương pháp này là thông tin được tự động hóa một cách dễdàng, các đặc trưng ứng viên và các lượng tin tương hỗ MI của chúng có thểgiữ trong một phạm vi nhất định và có thể cập nhật ở mọi nơi khi dữ liệu mớiđược đưa vào, và khoảng 200 đặc trưng đầu tiên có thể lựa chọn lại nếu cầnthiết Con đường kiểu mới này của thư rác hay thư hợp lệ có thể được kết hợpchặt chẽ trong bộ lọc qua thời gian, để phù hợp với mục đích của chúng ta là
tự động học và thích nghi với thư rác
- Phương pháp thứ hai mà chúng ta sử dụng để lựa chọn các đặc trưng
đưa đến một lĩnh vực kiến thức đặc biệt trong kết quả tính toán, nó đối lập vớiphương pháp đầu tiên, nó có thể hiển thị quá trình lọc thư rác như vấn đềchung của phân loại văn bản Chúng ta chắc chắn các thư rác có khuôn mẫu
mà chúng khác biệt so với các thư điện tử hợp lệ
+ Đầu tiên các khuôn mẫu đó là các kết quả của mục tiêu gửi thư ráctới địa điểm đầu tiên Một cách tường minh những kẻ gửi thư rácthường cố gắng tiếp thị cho người sử dụng một số thứ và như thếthường bao hàm thông tin về giá cả trong các thông điệp của chúng.Như mô hình của sự tiếp thị trực tiếp, các thư rác thường sử dụngHTML để tạo các thông điệp trông hấp dẫn hoặc thu hút sự chú ý
nhất bằng việc sử dụng các đường link trong web
+ Thứ hai sự trình diện của các biện pháp pháp lí chống lại các thưrác gây hại đã tạo ra sự tác động trên định dạng của thư rác Lấy ví
dụ những người gửi thư rác hay làm giả mạo từ địa chỉ và giả mạo
cả phần tiêu đề của các thư rác.
+ Thứ ba những đề xuất kinh nghiệm trong chủ đề thư rác hay bị sa
ngã vào một phạm vi eo hẹp về các loại
Không gian đặc trưng thường có kích thước là rất lớn (thông thườngtrong những yêu cầu có kích thước khoảng vài ngàn từ) Bởi vậy chúng ta phảilựa chọn các đặc trưng với nhiều lí do Đầu tiên để giảm bớt kích thước giúp
Trang 36ích cho việc cung cấp một điều khiển rõ ràng trong mô hình kết quả khác nhau
từ sự ước lượng nhiều tham số Hơn nữa lựa chọn đặc trưng cũng giúp choviệc làm giảm mức độ để nó không phụ thuộc vào các giả định được đưa rabởi phân hoạch Naive Bayes
3.6.2 Biểu diễn các thư điện tử
Sau khi chọn được các đặc trưng văn bản chúng ta tiến hành biểu diễncác thư điện tử thành các vector mà không gian của nó là tập các từ hay cụm
từ đã phân tích Các cụm từ này đã xác định rõ số lần xuất hiện của chúngtrong mỗi thư điện tử Kết hợp các thư điện tử trong mỗi lớp mail ta được mộtvector biểu diễn lớp mail đó (trong trường hợp này sẽ có hai vector được tạo
ra đó là vector biểu diễn lớp thư hợp lệ và vector biểu diễn lớp mail rác) Tiếnhành ghép nối hai vector trên để lấy được một tập các đặc trưng bao gồm: các
từ hay cụm từ và số lần xuất hiện của chúng trong cả hai lớp mail và tính cácxác suất tương ứng ta sẽ được một tập các đặc trưng Tất cả các đặc trưng này
sẽ được lưu vào một bảng mô tả để làm căn cứ phân loại các thư điện tử Mỗithư điện tử được gửi đến sẽ được biểu diễn thông qua tập đặc trưng trên Sửdụng công thức tính xác suất Naive Bayes ta sẽ tính được xác suất một thưđiện tử có phải là thư rác hay không Giá trị xác suất này được dùng để so sánhvới ngưỡng (ranh giới phân định thư rác và thư hợp lệ)
3.6.4 Xác định ngưỡng
Xác định rõ ngưỡng để loại bỏ tất cả các thư điện tử mà xác suất củachúng lớn hơn xác suất này Chẳng hạn coi 0.9 là giới hạn trên khảng định mộtthư điện tử là thư rác hay thư hợp lệ Nếu trong quá trình xác định các giá trịxác suất của các từ khóa chẳng hạn P(spam/content)=0.92 thì khảng định thưđiện tử chứa từ đó là thư rác ngược lại là thư hợp lệ (vì đây là phân loại vănbản hai lớp)
3.6.5 Thử nghiệm hệ thống lọc thư rác hiệu quả trong thực tế
Có thể tiến hành thử nghiệm như sau: Lấy một tập mẫu khoảng vàitrăm thư điện tử trong đó có 75% tổng số thư điện tử được phân loại còn 25%còn lại có thể dùng bộ lọc Naive Bayes để phân loại Hiệu quả thực tế của bộlọc sẽ được đánh giá theo số thư rác mà nó phân loại được Khâu này tiến hànhrất nhiều lần để có thể lấy được “feedback” từ người sử dụng để hoàn chỉnh bộ
Trang 37lọc hay bổ sung cơ sở dữ liệu cho bộ lọc để cải tiến hiệu quả Trong chươngtrình của mình tôi đã tiến hành thử nghiệm hệ thống trên hệ thống mail WRUcủa trường Đại Học Thuỷ Lợi (mail.wru.edu.vn).
Khi xây dựng bộ lọc thư rác bằng Naive Bayes có thể làm tăng thêmhiệu quả của bộ lọc bằng cách kết hợp với việc lọc thư rác qua các cách khácnhư: phân loại theo vùng miền (thư rác hầu như không xuất hiện ở miền địachỉ edu) Có thể kết hợp với lọc thư theo tiêu đề hay địa chỉ của người gửi.Những thông tin đó cũng có thể lưu vào một file dữ liệu để làm cơ sở phânloại thư rác, và nó sẽ làm cho hiệu quả của bộ lọc thư rác tăng lên rất nhiều.Đây là nội dung của máy lọc thư rác mà tôi sẽ áp dụng Email Client của mình
Trang 38Chương IV: Các giao thức truyền nhận thư và thư
viện Javamail API
4.1 Giới thiệu SMTP:
SMTP (từ chữ Simple Mail Transfer Protocol) hay là giao thức
chuyển thư đơn giản Đây là một giao thức lo về việc vận chuyển email giữa
các máy chủ trên đường trung gian, chuyển đến địa chỉ nhận cũng như là loviệc chuyển thư điện tử từ máy khách đến máy chủ Một giao thức mà các nhàcung cấp dịch vụ trên Internet thường sử dụng trong các dịch vụ thư điện tử.Hầu hết các hệ thống thư điện tử gửi thư qua Internet (ISP – Internet servicesprovider) đều dùng giao thức này Các mẫu thông tin có thể được lấy ra bởimột email client
SMTP là giao thức hoạt động ở tầng ứng dụng trong mô hình mạng TCP/IPnhằm cung cấp các dịch vụ về thông báo
Giao thức này được đặc tả trong hai chuẩn là RFC 822 (định nghĩa cấu trúc thư) và RFC 821 (đặc tả giao thức trao đổi thư giữa hai trạm của mạng)
SMTP làm việc ở cổng 25.
4.2 Cách thức hoạt động của giao thức SMTP
SMTP (Simple Mail Transfer Protocol) là một trong các giao thứcInternet nòng cốt được thiết kế để chuyển email một cách tin cậy và hiệu quả
Ý tưởng đằng sau SMTP tương đối đơn giản Một người dùng hay ứng dụng
Trang 39gửi một thông báo bao gồm địa chỉ email người nhận, ví dụ nhan@ten-cong-ty.com”, cùng với chủ đề (subject) và nội dung của thông báo.Việc gửi thông báo được bắt đầu bằng việc chuyển thông báo đến mộtSMTP Server chỉ định Dựa vào tên miền của địa chỉ e-mail nhận (ví dụ, “ten-cong-ty.com”), SMTP Server bắt đầu trao đổi liên lạc với một DNS Server(máy chủ hệ thống tên miền) mà sẽ tìm kiếm và trả về tên (host name) củaSMTP Server đích (ví dụ “mail.ten-cong-ty.com”) cho tên miền đó Cuốicùng, SMTP Server đầu tiên trao đổi thông tin trực tiếp với SMTP Server đíchthông qua cổng 25 của TCP/IP Nếu tên người dùng của địa chỉ email nhậnkhớp với một trong những tài khoản người dùng được phép trong máy chủđích, thông báo e-mail gốc cuối cùng sẽ được chuyển đến máy chủ này, chờngười nhận lấy thông báo thông qua một chương trình gửi nhận mail nhưMicrosoft Outlook chẳng hạn.
“ten-nguoi-Mục đích của giao thức SMTP là truyền mail một cách tin cậy và hiệuquả Giao thức SMTP không phụ thuộc vào bất kỳ hệ thống đặc biệt nào và nóchỉ yêu cầu trật tự của dữ liệu truyền trên kênh truyền đảm bảo tính tin cậy.Giao thức SMTP được thiết kế dựa vào mô hình giao tiếp sau: khi có yêu cầu
từ user về dịch vụ mail, sender-SMTP thiết lập một kênh truyền hai chiều tớireciever-SMTP Reciever- SMTP có thể là đích cuối cùng hoặc chỉ là đíchtrung gian nhận mail Các lệnh trong giao thức SMTP được sender-SMTP gởitới reciever-SMTP và reciever-SMTP gởi đáp ứng trở lại cho sender-SMTP
Sender SMTP
Sender SMTP
Sender - SMTP
Hình 4.1 : Mô hình tổng quát sử dụng giao thức SMTP
Receiver SMTP
Receiver SMTP
Receiver - SMTP
and Mail
File System
File System
User
Trang 40sử dụ một hệ thống email đầy đủ tính năng như Microsoft Exchange Server.Trong khi một hệ thống email với đầy đủ tính năng có thể cung cấp các dịch
vụ để xử lý các thông báo email cả đi và đến, thì dịch vụ SMTP trong
Windows được xem như là một giải pháp hiệu quả và kinh tế cho những nơi
chỉ cần gửi thông báo email chứ không nhận
4.3 Giới thiệu về các giao thức Mail POP3 và IMAP
Port chuẩn dành cho dịch vụ POP3 đươc qui ước là TCP port 110 POP3
server sẽ khởi động và lắng nghe trên port này Một client muốn sử dụngcác dịch vụ của POP3 thì nó phải thiết lập một kết nối tới POP3 server.Khi kết nối được thiết lập thì POP3 server sẽ gởi tới client một lời chào.Sau đó, POP3 Client và POP3 Server sau đó trao đổi các request và replycho đến khi kết nối được đóng hay loại bỏ
Một POP3 session sẽ phải trải qua các trạng thái: xác nhận(Authorization), giao dịch (transaction) và trạng thái cập nhật (Update)
Trong trạng thái xác nhận, client phải thông báo cho server biết nó là ai.Khi server đã xác nhận được client, session sẽ đi vào trạng thái giao dịch.Trong trạng thái này, client hoạt động bằng cách gởi các request tớiserver Khi client gởi lệnh “QUIT”, session sẽ đi vào trạng thái cập nhật(Update) Trong trạng thái này, POP3 server giải phóng các tài nguyên vàgởi lời tạm biệt Sau đó kết nối TCP đóng lại
Một POP3 server có một khoảng thời gian time out Khi xảy ra time out,session không đi vào trạng thái cập nhật (update) mà server sẽ tự đóngkết nối TCP mà không xoá bất kỳ message nào hay gởi đáp ứng choclient