Upload
q2tpro
View
1.350
Download
1
Embed Size (px)
Citation preview
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
Lờ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
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
Mụ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ản2.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
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
Chươ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
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
Chươ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
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
Chươ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ủa
các dịch vụ trên Internet làm cho nhu cầu trao đổi thông tin, tìm kiếm thông
tin của con người được đáp ứng một cách tốt nhất và nhanh nhất. Có rất nhiều
dịch vụ mới phát triển cùng công nghệ thông tin nhằm giúp công nghệ thông
tin 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ông
nhỏ 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ừ qua
tay không bao giờ có được. Tuy nhiên, thư điện tử không chỉ mang đến cho
con 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 ra
nhữ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ột
trong 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, hay
cá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 Naive
Bayes 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ử
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ- 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ằng
phươ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ểu
bao 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(Simple
Mail 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ến
hiệ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 Email
1.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à được
chuyển qua các mạng máy tính đặc biệt là mạng Internet. Nó có thể chuyển
mẫ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ùng
lú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, và
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộđặ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ủa thư
đ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ủa
bạ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ặc
qua 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 danh
sách được dùng để bán lại hoặc dùng các danh sách email làm email
marketing 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ại
hoặc những kẻ muốn dùng virus để phá hoại một loạt những hệ thống
computer 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ường
tấ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ất
toà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 spam
nhữ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ứa
cá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ày
thườ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ọ.
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
Hì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ác
trong 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ần
cho 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” hay
chỉ vì tò mò người đọc sẽ “click” vào cái link và thế là “lưới nhện đã giăng sẵn
chỉ 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ặc
là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ộn
trong một đống thư mà chủ yếu là các thư rác. Khiến cho việc tìm kiếm cũng
mấ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)
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng TộSpam đ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àng
tuần. Theo báo cáo của Ủy ban thương mại liên bang (Federal Trade
Commission - 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àng
ngà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ệc
là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ên
nghiệp, phát tán virus, ăn cắp thông tin … thì một chương trình anti-spam cho
email là rất cần thiết. Chúng ta sẽ phải mất khá 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, 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ân
hàng qua các email dạng phishing. Đối với người dùng khi “checkmail” mà
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộgặ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óa
thư đôi khi còn gây ra những hậu quả nghiệm trọng hơn đối với những người
dù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 Economic
Co-operatation Development) khuyến nghị một số biện pháp đối phó với
spam, 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ác
ISP (Internet service Provider) toàn cầu, đồng thời tăng cường các chiến dịch
tuyên truyền cộng đồng về sự nguy hại và cách đối phó với thư rác. Hiện giải
phá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ống
thư hoạt động theo cơ chế “lọc theo nội dung” và “lọc theo danh sách website
chuyể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 (International Business
Machines) tại Watson, Mỹ, phương pháp chống spam hiệu quả 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ới danh 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ển
email đế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ộ
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộthô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ạn
mong 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ủa
email 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ụng
dùng chúng như những điểm quá cảnh thư. Những kẻ tấn công bằng
spam (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, tin
tặ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ện
nay là “phân loại qua nội dung của các email” bằng việc ứng dụng các phương
phá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ại
văn bản hai lớp” dựa vào nội dung của các email được gửi đến. Trong đồ án
nà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 “Naive
Bayes” và ứng dụng phương pháp này để phân loại các email cá nhân trong
một Email Client.
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
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
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ột
phá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ài
dạ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ác
phầ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ên
Internet 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ết
quả là hàng triệu văn bản được phát sinh trong mỗi ngày. Điều này đem đến
cho 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ớn
các thông tin và phân phối các thông tin đó cho mọi người (đây là một
lợ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ải
thông tin. Mặt khác, lượng thông tin có sẵn và sự gia tăng của các
thô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ại
thông tin ngày càng có vai trò quan trọng. Chẳng hạn khi tìm kiếm thông tin
trê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ên
sẵn có trên mạng sau đó tiến hành lọc thông tin để đưa ra những thông tin cần
thiế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ông
tin 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
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộquan đến thông tin tìm kiếm. Như vậy thời gian tìm kiếm sẽ được giảm đi rất
nhiều. Để đáp ứng được yêu cầu này thì trước tiên phải tiến hành phân loại
vă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ói
mộ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úc
cá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ới
hạ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ài
liệ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ức
thô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ác
loại thư điện tử hoặc các file trong các hệ thống, xác minh chủ đề để trợ giúp
cho 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ến
trì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ài
liệ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ấp
cho 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.
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
Hình vẽ 2.1
Trong thực tế khâu tiền xử lí cũng chính là khâu lựa chọn đặc trưng cho
các văn bản (đặc trưng ở đây là các dấu hiệu quan trọng để nhận biết văn bản).
Có thể coi khâu này là tiền đề cần thiết cho việc học một bộ phân loại. Vì thế
hiệu quả của các bộ phân loại văn bản phụ thuộc rất cao vào tập các đặc trưng
mà chúng ta sử dụng. Trong các mô hình phân loại điển hình và phức tạp
thường có một số các phương pháp có sẵn để lựa chọn đặc trưng. Với những
phương pháp này, tập hợp các dữ liệu thô được miêu tả bằng một số các tập
hợp đặc trưng. Chúng đặt ra một vấn đề là làm thế nào để sử dụng những đặc
trưng ấy cho phân hoạch tài liệu. Hiện nay có hai cơ cấu tổ chức để giải quyết
các vấn đề đó.
Phươ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ất
nhiề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ải
tiến quan trọng. Điều đó nghĩa là ta không chỉ sử dụng một đặc trưng để phân
loạ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 “vector
phứ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ương
phá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ân
loạ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ập
tà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ập
cá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ối
hợ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
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Tập dữ liệu mẫu
Tiền xử lí
Học một bộ phân loại
Phân loại
Kết quả
Chọn đặc trưng
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộnhư 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ới
mộ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ác mứ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ột
vector 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 hay
kNN… Đầ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ệu
cầ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ất
nhiề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ông
thườ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)
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Tập dữ liệu mẫu
Tiền xử lí
Chọn đặc trưng 1
Học một bộ phân loại
Kết quả
Chọn đặc trưng k
..
.Phân loại
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ2. 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ừ đặc
trưng. Với không gian này thì các từ phổ biến (xuất hiện thường xuyên trong
mọ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ại
hiế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ạp
tuyế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ện
củ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
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ- 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
Và được ước lượng bởi
I(t,c)
Để giới hạn các từ có trong toàn bộ các đặc trưng đã lựa chọn thì chúng ta tập
hợp những điểm đặc biệt của một từ loại bằng hai sự luân phiên.
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ăn
bả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ân
hoạ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ãn
khô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ủa
vă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:
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
Hì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 đã được
lự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ên
cứ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
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Lược đồ biểu diễn
đặc trưng x
Lược đồ biểu diễn đặc trưng y
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộtrì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ột
vector 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ố 2
củ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ài
liệu ngược kí hiệu là IDF(wi)
Công thức xác định IDF(Inverse document frequency)
IDF(wi) = log
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ài
liệ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ủa
con người cũng chỉ là tương đối, trong khi lượng thông tin tăng lên một cách
chóng mặt thì sự phân loại tài liệu do con người đảm nhiệm chỉ có thể đáp ứng
0.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ưu
trữ 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ại
thô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ân
loạ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ệu
quả của các phương pháp đó tuy chỉ là tương đối nhưng đã hỗ trợ rất nhiều
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộtrong 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 cho
kế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 áp
dụ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 (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 chia làm
các lớp văn bản khác nhau và được đặc trưng bởi đại lượng c j (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 ( ). Và sử dụng cosin 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 D với loại
văn bản ci.
cosin( ) =
D sẽ được xác định thuộc vào loại văn bản ci nào mà cosin( ) 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ác
suấ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ài
giố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.
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng TộMặc dù Naive Bayes khá đơn giản nhưng nó có khả năng phân loại tốt hơn rất
nhiề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ật
toá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ân
hoạ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ác
suấ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ân
loạ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 gian
vector mà trong không gian này vấn đề phải tìm ra một “mặt quyết định” giữa
hai 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ớn
nhấ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ó được
phân vào loại văn bản đó. Phương pháp SVM thường áp dụng để phân loại hai
lớ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ười
biế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 được
chứ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ột
khả 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
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Mặt quyết định
x
y
Khoảng cách lớn nhất
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộđề 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ột
câ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ất
hiệ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ật
giả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ặp
phả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ại
mớ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ác
nhau và có khả năng giải quyết các vấn đề phức tạp, phạm vi rộng. Trong phân
loại tài liệu có thể dùng mạng neuron để phân chia gần đúng các tài liệu trong
tậ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ớp
khá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ối
quan hệ giữa các neuron được biểu diễn bằng các cung tròn có đầu ra từ một
neuron này và đầu vào từ một neuron khác, mối quan hệ giữa hai neuron lân
cậ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ác
vă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:
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
Tiế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ại
thư 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ệu
quả cao nhất. Các phương pháp mạng neuron và cây quyết định thường áp
dụ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ới
câ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êu
biể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
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộcác tập tài liệu nhỏ. Phương pháp mạng neuron đây là một bước đột phá trong
văn bản, mạng neuron có thể áp dụng cho rất nhiều lĩnh vực khác nhau đặc
biệ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ốt
hơn nhiều phương pháp phân loại khác. Nhưng thuật toán trong mạng neuron
thườ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 ứng
dụ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ân
loại văn bản Naive Bayes sẽ được trình bày chi tiết trong chương tiếp theo.
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
Chươ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ác
hay các cụm từ thường hay sử dụng trong các thư rác. Phần tiêu đề và phần
thâ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 địa
chỉ 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ân
loạ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ột
khả năng thích ứng. Phương pháp này phải thật thân thuộc với những người
tạ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ệu
quả cao và được cải tiến thành máy lọc thư rác Naive Bayes (Naive Bayes
filter).
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ới
lỏ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ập
thống kê. Cơ sở của phương pháp phân loại văn bản Naive Bayes là chủ yếu
dựa trên các giả định của Bayes. Giả thuyết Bayes gán cho mỗi tài liệu văn
bả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 d i có khả năng thuộc vào
lớp văn bản ck được tính toán như sau:
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:
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
trong đó N là tổng số tài liệu. Để chứng minh cho ý tưởng của Naive Bayes
ta xét ví dụ sau:
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 =
Xác suất có thể của RED =
Trong đó:- G là Số đối tượng GREEN
- R là số đối tượng RED
- T là tổng số các đối tượng
Trong 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:
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
P(GREEN) = P(RED) =
Để 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ành
phân loại các đối tượng WHITE như hình vẽ. Từ các đối tượng là các nhóm
hợp lí, chúng ta có thể giả định đối tượng đã cho thuộc đối tượng RED hoặc
GREEN 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ộc
và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 RED =
Trong đó:- GX là số GREEN có trong vòng tròn X
- RX là số RED có trong vòng tròn X
- G là tổng số các trường hợp GREEN
- R là tổng số các trường hợp RED
Từ minh họa ở trên thật dễ dàng xác định đuợc là khả năng X thuộc GREEN là
lớn hơn khả năng X thuộc RED . Trong vùng bao quanh vừa vẽ có 1 đối tượng
GREEN và 3 đối tượng RED như vậy:
Khả năng X thuộc GREEN là =
Khả năng thuộc RED là =
Mặc dù xác suất có thể biểu thị rằng X có thể thuộc GREEN (bằng cách so
sá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 ứng
viên X là RED). Trong phân tích Bayes, phân hoạch cuối cùng được đưa ra bởi
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ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
=
Xác suất hậu nghiệm của X có thể thuộc RED
= Xác suất có thể của RED * Khả năng X thuộc RED
=
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ớn
nhấ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ác
suấ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ật
Bayes:
(1)
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ả định
củ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ảnh
xuấ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ác
suất P(D|Ci) được tính toán từ tần suất xuất hiện của các từ đơn w j (word)
trong tài liệu D
(2)
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:
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
Giá trị lớn nhất của xác suất P(Ci | D) được đưa ra bởi nguời làm công tác phân
loại. Giá trị này được gọi là ngưỡng hay ranh rới giữa các lớp văn bản mà
chúng có thể chứa tài liệu D.
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 đều
phụ 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ỉ IP
củ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ập
mẫ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ệc
nà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ường
xuất hiện trong các thư hợp lệ của cơ quan hay người dùng đó làm cơ sở phân
loại các thư hợp lệ.
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Thư hợp lệ
Thư rác
cơ sở dữ liệu của xác suất các từ
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng TộMộ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ọc
Thủy Lợi hầu hết các thư được gửi trong phân vùng wru đều có chứa Thủy
Lợ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ặt
khá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ạn
khở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ủa
cô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ản
wru). 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ẫn
cũ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ệu
thư 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ủa
nhữ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ện
trong 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ệt
thì 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ại
cá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ùy
thuộc vào người sử dụng rất nhiều. Chẳng hạn với các sinh viên ngành
IT(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ập
nhật qua những người sử dụng ở các vùng miền khác nhau.
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
3.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ác
thư rác một cách có hiệu quả cao. Tháng 5/2003 một bài báo BBC cho biết
kế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ới
mộ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ải
tấ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 ra
tê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ông
minh 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ích
nghi 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ạo
thư rác sử dụng từ “f-r-e-e” để thay thể cho “free” chúng rất thành công
trong việc tránh kiểm tra các từ khóa đến tận khi “f-r-e-e” cũng được bao
hà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ọc
các thói quen của các thư điện tử trong công ty và hiểu được điều đó lấy
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộví dụ: từ “mortgage” sẽ được dùng để nhận dạng một thư rác. Nhưng
ngược lại nó sẽ không chỉ ra nó như là thư rác nếu công ty là một cơ quan
tà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ọc
thư 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ác
khả 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úng
vớ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ó:
Trong đó total được xác định như sau:
Total = P(content | spam)*P(spam) + P(content | ham)*P(ham)
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ủa
các từ đó được bao hàm trong một văn bản là độc lập với các từ khác trong
cù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.
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
3.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ác
thư đ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ột
và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ác
luật Bayes để ước lượng xác suất của một thư điện tử có phải là thư rác hay
khô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úng
lớ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à do
chủ ý 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ửi
thư 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ộng
mộ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 sinh
hậ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ép
lạ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 được
tậ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ột
thư đ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ản
như là loại vùng của các thông điệp được gửi đi (e.g, edu hay ..com) nó cung
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộcấ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ác
cụm từ đặc biệt như là “free!”', “only $'' (cũng như “only $4.95”) và “be over
21”. Khoảng chừng vài trăm cụm từ “mánh khóe” nó coi như là một cách đặc
biệ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ửi
thư (đã đề 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ải
quyết các địa chỉ Email gia đình.
(i.e. thay thế bằng [email protected] 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ưng
bao 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ó bao
gồ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ượng
khoả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ằng
việ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ăn
bả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ó
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộvà nhận giá trị không trong trường hợp ngược lại. Từ các tập đặc trưng này
chú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ác
giá 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 X
như sau:
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ần
thiế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ợp
chặ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ới
phươ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ác
tới địa điểm đầu tiên. Một cách tường minh những kẻ gửi thư rác
thườ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ụng
HTML để 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ường
trong 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ải
lự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
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộí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 cho
việc làm giảm mức độ để nó không phụ thuộc vào các giả định được đưa ra
bở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ễn
cá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úng
trong 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ột
vector 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ến
hà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ác
xá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ỗi
thư đ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ánh
vớ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ủa
chú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ột
thư đ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ăn
bả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ài
tră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ành
rất nhiều lần để có thể lấy được “feedback” từ người sử dụng để hoàn chỉnh bộ
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộlọc hay bổ sung cơ sở dữ liệu cho bộ lọc để cải tiến hiệu quả. Trong chương
trình của mình tôi đã tiến hành thử nghiệm hệ thống trên hệ thống mail WRU
củ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êm
hiệ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ác
như: phân loại theo vùng miền (thư rác hầu như không xuất hiện ở miền địa
chỉ .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ân
loạ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.
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
Chươ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à lo
việ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 services
provider) đều dùng giao thức này. Các mẫu thông tin có thể được lấy ra bởi
một email client.
SMTP là giao thức hoạt động ở tầng ứng dụng trong mô hình mạng TCP/IP
nhằ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ức
Internet 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
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộgửi một thông báo bao gồm địa chỉ email người nhận, ví dụ “ten-nguoi-
[email protected]”, 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ột
SMTP 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ủa
SMTP Server đích (ví dụ “mail.ten-cong-ty.com”) cho tên miền đó. Cuối cùng,
SMTP Server đầu tiên trao đổi thông tin trực tiếp với SMTP Server đích thông
qua cổng 25 của TCP/IP. Nếu tên người dùng của địa chỉ email nhận khớ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.
Mục đích của giao thức SMTP là truyền mail một cách tin cậy và hiệu
quả. 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ới
reciever-SMTP. Reciever- SMTP có thể là đích cuối cùng hoặc chỉ là đích
trung gian nhận mail. Các lệnh trong giao thức SMTP được sender-SMTP gởi
tới reciever-SMTP và reciever-SMTP gởi đáp ứng trở lại cho sender-SMTP.
Tóm lại, do những yêu cầu gửi thư điện tử được xử lý rất đơn giản
thông qua SMTP và bảo đảm việc sử dụng máy chủ email của riêng mình hoặc
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
File System
File System
SMTP
Commands / RepliesSender SMTPSender 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 MailFile
SystemFile
System
UserUser
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộsử 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
4.3.1 POP3
Hiểu ngắn gọn, POP3 (post office protocol version 3) là giao thức để
một user (người dùng) nhận thư từ một mail server. Đây là một giao thức dịch
vụ mail cơ bản được sử dụng bởi ISPs – nhà cung cấp Internet và các dịch vụ
mail cơ bản tới người sử dụng POP3 là chuẩn thông dụng nhất. Nó hoạt động
theo kiểu offline, các thông điệp trên máy Server sẽ được tải hết về máy Client
mỗi khi kết nối và sau khi tải xuống xong các thông điệp nầy sẽ bị xoá khỏi
máy Server. Các đặc điểm của POP3 có thể nhận xét như sau:
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ụng
cá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à reply
cho đế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ới
server. 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ự đóng
kết nối TCP mà không xoá bất kỳ message nào hay gởi đáp ứng cho
client.
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
Hình 4.2 : Mô hình phân phối thư điện tử sử dụng giao thức POP3
4.3.2 IMAP4
(Internet Message Access Protocol version 4)
Là một giao thức lưu trữ và cấp mail kiểu mới. Nó mạnh hơn POP3 và
được sử dụng bởi nhiều nhà cung cấp dịch vụ trên Internet (ISPs) . IMAP cung
cấp dịch vụ cấp tin an toàn và hiệu quả bởi các tin nhắn điện tử khi được gửi
tới máy khách là phiên bản copy của nó còn bản gốc vẫn được lưu trữ trên
máy chủ. Vì thế mà máy chủ IMAP mail server đòi hỏi phải có dung lượng lưu
trữ rất lớn. IMAP đặc biệt phù hợp với đa mục đích của MIME (Internet mail
extentsion) là mẫu tin nhắn chuẩn trên Internet. Nó cũng cho phép truy xuất và
quản lí các tin nhắn từ nhiều máy tính khác nhau. Thậm chí các phần mềm
máy khách còn không cần thiết phải hiểu về các định dạng file lưu trữ trên
máy chủ
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng TộVậy giá trị của IMAP là gì? Nói một cách đơn giản, IMAP đặt sự kiểm soát
email lên server trong khi nhiệm vụ duy nhất của POP3 là “ném” toàn bộ
thông điệp email về chỗ trình client yêu cầu, và xong là “phủi tay”.
Cụ thể, IMAP cung cấp truy cập email theo ba chế độ khác nhau: offline
(ngoại tuyến), online (trực tuyến), và disconnected (ngắt kết nối).
Truy cập ở chế độ offline chính là POP3, trong đó các thông điệp được
truyền đến máy client, xóa khỏi server, và mối liên kết bị ngắt. Sau đó
người dùng đọc, trả lời, làm các việc khác ở chế độ ngoại tuyến, và nếu
muốn gửi thư mới đi họ phải kết nối lại.
Truy cập online, như tên gọi của nó, là chế độ truy cập mà người dùng
đọc và làm việc với thông điệp email trong khi họ đang kết nối với
server (kết nối mở). Các thông điệp này vẫn nằm ở server cho đến khi
nào người dùng quyết định xóa nó đi. Chúng đều được gắn nhãn hiệu
cho biết loại để “đọc” hay “trả lời”.
Trong chế độ disconnected người dùng lưu tạm thông điệp ở client, làm
việc với chúng, sau đó cập nhật trở lại vào server ở lần kết nối sau. Chế
độ này hữu ích cho những ai dùng laptop hay vào mạng bằng liên kết
quay số điện thoại, đồng thời không muốn bỏ phí những lợi điểm của
kho chứa thư ở server.
Hơn nữa, với các thông điệp email được lưu giữ ở server, tất cả các
cách thao tác trên thông điệp đều có thể thực hiện được, chẳng hạn như có thể
chỉ đọc phần header của thông điệp. Ngoài khả năng thao tác trên thông điệp,
dùng IMAP còn có những lợi ích khác nữa. Ví dụ, khi người dùng làm việc
trên hai hay nhiều máy PC, chẳng hạn một máy để bàn, một máy di động, họ
không cần phải lo lắng về việc thư từ nằm vương vãi trên các máy client khác
nhau. Cũng vậy, đối với những cơ quan có người dùng di động và cả những
máy PC để cố định, chẳng hạn như các trường học hay cơ quan y tế, IMAP là
một giải pháp lý tưởng tốt theo ý kiến của một chuyên gia phụ trách công
nghệ.
Một lợi điểm khác của IMAP là email có thể được tự động sao dự
phòng trong server của xí nghiệp và tại máy cá nhân. Những thông điệp quan
trọng sẽ được người dùng chép về máy client, và bản sao vẫn để lưu tại máy
server. Tuy nhiên, phần lớn người dùng có khuynh hướng để lại các thông điệp
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộở server. Làm như vậy sẽ giúp cơ quan có thể có kế hoạch tổ chức việc sao dự
phòng (backup) cho toàn bộ e-mail của cơ quan một cách dễ dàng. Tất nhiên
việc quyết định tổ chức sao dự phòng tập trung phụ thuộc chủ yếu vào mức độ
quan trọng của nội dung e-mail, nhưng nếu email nằm rải rác trên các máy
client thì khi cần thực hiện sao dự phòng bạn sẽ gặp rất nhiều khó khăn.
IMAP cũng làm giảm nhu cầu mà e-mail đòi hỏi trên mạng. Người
dùng trước đây phải tải xuống toàn bộ email họ có, dù email đó có chứa file
gắn kèm lớn nhiều megabyte, thì giờ đây họ có thể tải xuống một cách có chọn
lọc toàn bộ hay một phần nào đó của bức thư. Kết quả, theo ý kiến các nhà
cung cấp, thì phần lớn người dùng ít tải thư về hơn. Kỹ thuật email trên server
còn có nghĩa là chi phí thiết lập server sẽ tăng lên khá nhiều.
“Yêu cầu về mạng sẽ giảm đi rất nhiều. Chạy client với đường liên lạc
9600 bps không gặp vấn đề gì; trong khi với POP3 thì gặp khó khăn nghiêm
trọng”, theo Greg Balmer kỹ sư của Sun Microsystems Computer. “IMAP hạ
thấp dải tần cần thiết và đòi hỏi tăng sức ngựa trên server. Đây là một điều tốt.
Nâng cấp server rẻ hơn là mở rộng dải tần mạng”.
Ví dụ, một công ty có khoảng 40.000 hộp thư (mailbox) và vẫn đang
tiếp tục phát triển. Khi cài IMAP, họ mua Sun E/4000 với ổ cứng 200GB và
gần một terabyte RAID-array chuyên dùng cho email server. Như thế vẫn chưa
đủ dung lượng lưu trữ nếu tính về lâu về dài. Các nhà cung cấp nói rằng cách
tốt nhất để thiết lập cấu hình server thích hợp là phải tổ chức một nhóm nhỏ
thử nghiệm trên IMAP, để cho người quản trị email nghiên cứu lưu lượng liên
lạc và đánh giá được sức ép về công suất của server. Ví dụ, một trường đại học
có thể nhận thấy rằng sinh viên của họ thường xuyên trao đổi email có gắn
kèm các file ảnh đồ họa dung lượng rất lớn được lấy từ Web (chẳng hạn như
ảnh phi thuyền con thoi), khiến cho không gian lưu trữ bị đầy lên nhanh
chóng.
“Không thể hy vọng rằng server trước đây dùng cho POP3 mà bây giờ lại
đủ dùng cho IMAP. Triển khai từng bước sẽ cho phép bạn hiểu được cần tăng
cường chỗ nào. Với IMAP, thư có thể để lại trên server. Điều này cũng làm
thay đổi nhu cầu về dung lượng lưu trữ”.
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
Những tính năng xuất sắc nhất của IMAP
Thật ra thì nhiều tính năng trong danh sách sau đây có thể có trong các
trình client email riêng. Nhưng Internet Messaging Access Protocol (IMAP)
cung cấp một thứ mà các chương trình kia không có: độc lập với nhà cung cấp,
và đang được chuẩn hóa.
Người dùng có thể chỉ cần xem phần header của thông điệp để xác định
thông điệp nào cần đọc.
IMAP có thể chèn các thông điệp vào folder ở xa.
Nó cho phép tạo ra các nhãn hiệu chuẩn hay được định nghĩa bởi người
dùng cho thông điệp. Ví dụ, nhãn hiệu có thể dùng để định danh các
nhóm làm việc, các dự án, v.v...
Do các thông điệp IMAP có khuynh hướng được giữ lại tại server chứ
không phải ở các máy client riêng lẻ, có thể cập nhật được chúng.
IMAP hỗ trợ cập nhật đồng thời trong các folder dùng chung và thông
báo cho người dùng về việc cập nhật.
Người dùng có thể có nhiều folder trong một hộp thư đến (inbox), và có
thể thiết lập chúng theo nhiều cách, như tạo cây thư mục.
Người dùng có thể lựa chọn để đọc các phần của thông điệp MIME,
như truy cập phần thân của thông điệp và bỏ qua phần gắn kèm.
Người dùng có thể tìm kiếm các thông điệp trên server.
LDAP - thành phần đi kèm IMAP
LDAP là một thành phần không thể thiếu đối với IMAP. Lightweight
Directory Access Protocol (LDAP - Giao thức truy cập thư mục đơn giản) trở
thành một phần bổ sung quan trọng cho bất kỳ phương thức cài đặt IMAP nào
bởi vì chính nó quản lý thành phần quan trọng của IMAP: các folder (thư
mục). LDAP thực hiện chức năng đối với cấu trúc thư mục hệt như IMAP làm
đối với các hệ thống e-mail riêng.
Thông qua việc sử dụng cấu trúc thông dụng theo chuẩn công nghiệp, việc quản lý lưu trữ khối lượng dữ liệu vô cùng lớn (mà IMAP sẽ phải tạo ra) trở nên dễ dàng hơn. Nhờ đó các ứng dụng khác cũng có thể truy xuất thông tin thư mục một cách thuận tiện. Người dùng sử dụng IMAP như chiến lược
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộcộng tác trong việc cài đặt các sản phẩm theo chuẩn sẽ có cơ hội tốt để chuyển sang dùng giao thức dịch vụ thư mục đang được thiết lập và triển khai.
4.4 Quá trình chuyển nhận thư
Quá trình chuyển nhận thư được thực hiện theo nguyên tắc của một client/server. Trong mô hình này nếu máy khách có yêu cầu máy chủ sẽ đáp ứng. Ví dụ về mô hình gửi nhận thư
Với các máy chủ Mailserver, nhiệm vụ là lắng nghe kết nối từ máy khách, lưu trữ các thư điện tử của người dùng, đáp ứng các yêu cầu của máy khách khi kết nối thành công. Với các mailclient muốn thực thi các yêu cầu của người dùng và thao tác với Mailserver phải thông qua một kết nối (store). Chúng sử dụng các giao thức POP3, IMAP và SMTP để kết nối với máy chủ Mail và theo cơ chế yêu cầu – đáp ứng. Tùy theo các giao thức sử dụng ở Mailserver và mailclient mà các hỗ trợ của Mailserver với các trình khách là khác nhau. Và cũng vì thế cấu hình và yêu cầu về phần cứng cho các Mailserver có thể khác nhau. Người ta có thể lập trình cho một Mailserver chỉ hỗ trợ SMTP và POP3 hay hỗ trợ cả SMTP và POP3 lẫn IMAP. Tuy nhiên thông thường POP3 và SMTP vẫn là hai giao thức thông dụng được sử dụng mô các dịch vụ thư điện tử ngày nay.
Hình vẽ 4.3: Mô tả cơ chế hoạt động của các thư điện tử sử dụng hai giao
thức POP3 và SMTP.
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ 4.4.1 Cấu trúc của thư điện tử
Về cơ bản, một thư điện tử bao gồm 3 phần chính:
Phần phong bì: Mô tả thông tin về người gửi và người nhận. Do hệ
thống tạo ra.
Phần tiêu đề (header): chứa đựng các thông tin về người gửi, người
nhận, chủ đề bức Mail, địa chỉ hồi âm .v.v.. Các thông tin này, một số được
người sử dụng cung cấp khi gửi thư điện tử, một số khác được chương trình
Mail thêm vào, và số còn lại do hệ thống điền thêm.
Phần nội dung (body): chứa đựng nội dung của thư điện, là nội dung
được tạo ra bởi trình soạn thảo Editor của chương trình Mail. Sau đây là chi
tiết của từng phần:
Phong bì (Envelope)
Phần này do các MTA (Message transfer Agent) tạo ra và sử dụng,
nó chứa các thông tin để chuyển nhận email như địa chỉ của nơi nhận, địa chỉ
của nơi gửi. Hay nói cách khác, giao thức SMTP sẽ quy định thông tin của
phong bì, các hệ thống Email cần những thông tin này để chuyển dữ liệu từ
một máy tính này sang một máy tính khác.
Phần tiêu đề (header)
- Phần này cung cấp những thông tin tổng quát về Email như người nhận,
người gửi, ngày giờ nhận...
- Cấu tạo gồm nhiều trường (field) cấu trúc mỗi trường là một dòng văn
bản ASCII chuẩn 7 bit như sau: <tên trường >: <nội dung của trường>.
- Sau đây là một số trường thông dụng và ý nghĩa của nó:
Date: chỉ ngày giờ nhận mail.
From: chỉ người gửi.
To: chỉ người nhận.
Cc: chỉ người những nhận bản copy của mail.
Bcc: chỉ ra những người nhận bản copy của bức mail, nhưng
từng người không biết những người nào sẽ nhận bức thư này
Return-path: chứa các thông tin để người nhận có thể trả lời lại (thường nó chính là địa chỉ người gởi).
Subject: chủ đề của nội dung Email.
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng TộCác trường trên là các trường chuẩn do giao thức SMTP quy định,
ngoài ra trong phần header cũng có thể có thêm một số trường khác do chương
trình Email tạo ra nhằm quản lý các email mà chúng tạo. Các trường này được
bắt đầu bằng ký tự X- và thông tin theo sau là cũng giống như ta thấy trên một
trường chuẩn.
Phần nội dung (body)
Để phân biệt phần tiêu đề và phần nội dung của thư điện tử, người ta
qui ước đặt ranh giới là một dòng trắng (chuỗi ký tự “\r\n”). Kết thúc của phần
nội dung là chuỗi ký tự kết thúc thư: “\r\n.\r\n”. Như vậy nội dung của một thư
điện tử nằm trong khoảng giữa dòng trắng đầu tiên và ký tự kết thúc thư, và
trong phần nội dung của bức thư không được phép tồn tại chuỗi ký tự kết thúc.
Mặt khác do môi trường truyền thông là mạng Internet nên các ký tự cấu thành
phần body của bức cũng phải là các ký tự ASCII chuẩn.
Khi xem xét cấu trúc của một thư điện tử (dựa trên RCF 822) thường
xét hai phần: phần đầu thư (header) và phần thân thư (body). Phần đầu thư
chứa các thông tin điều khiển cần thiết như là địa chỉ người gửi, người nhận,
ngày gửi, chủ đề của thư…
From : [email protected]
To : [email protected]
Subject: Thu Nghiem
Day la phan noi dung cua e-mai thu nghiem.
Ví Dụ:
From: [email protected]
Subject: Hello every body !
---------------------------------------------------------------------
Dear everybody,
I’m Pham Thom, I’m a last year student….
Mỗi hệ điều hành sẽ có các chương trình email khác nhau mặc dù chúng
đều có nguyên lý như nhau.
4.4.2 Mô hình gửi và nhận thư điện tử
Muốn trao đổi thư điện tử giữa các máy khách trước tiên trên các máy
khách chúng ta phải có các chương trình đọc và viết thư. Thông thường với
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộcác dịch vụ webmail người ta thường sử dụng yahoomail hay gmail hoặc
hotmail để nhận và gửi thư. Các dịch vụ mail trên desktop phải kể đến
Microsoft outlook 2000 hoặc các phiên bản mới hơn. Các thư điện tử được
soạn thảo có cấu trúc chuẩn gọi là MIME, tiếp đó nhờ giao thức truyền thư
đơn giản SMTP được chuyển và lưu trên hộp thư, tại đây nhờ vào giao thức
POP3 hoặc IMAP thư điện tử sẽ được truyền đến đúng địa chỉ cần gửi, cuối
cùng phải có một chương trình để đọc thư (chẳng hạn IE của window hay
naescape hoặc mozilla …) trên máy khách. Như vậy quá trình gửi và nhận một
thư điện tử được mô tả như sau:
Trên Internet các máy khách (Client) muốn gửi và nhận thư ngoài việc sử
dụng các giao thức truyền nhận thư như SMTP với POP3 hay IMAP… còn
cần đến các máy chủ (mail server). Nhiệm vụ của các mail server là lưu trữ và
nhận yêu cầu kết nối từ máy khách để truyền và phát thư theo đúng địa chỉ đã
yêu cầu. Mô hình yêu cầu – phục vụ thư điện tử được thể hiện rõ trong hình vẽ
dưới đây:
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
Hình 4.5 : Mô hình gửi nhận thư điện tử sử dụng giao thức truyền nhận thư
Đặc điểm của dịch vụ thư điện tử là không tức thời (off-line) - tất cả
các yêu cầu gửi đi không đòi hỏi phải được xử lý ngay lập tức. Khi người sử
dụng gửi một bức thư, hệ thống sẽ chuyển thư này vào một vùng riêng (gọi là
spool) cùng với các thông tin về người gửi, người nhận, địa chỉ máy nhận... Hệ
thống sẽ chuyển thư đi bằng một chương trình không đồng bộ. Chương trình
gửi thư này sẽ xác định địa chỉ IP máy cần gửi tới, tạo một liên kết với máy
đó. Nếu liên kết thành công, chương trình gửi thư sẽ chuyển thư tới vùng
spool của máy nhận. Nếu không thể kết nối với máy nhận thì chương trình gửi
thư sẽ ghi lại những thư chưa được chuyển và sau đó sẽ thử gửi lại một lần khi
nó hoạt động.
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
4.4.3 Ví dụ về gửi nhận thư điện tử qua Internet bằng Mail Client
1. Người dùng A1 sử dụng mail client của mình để soạn thảo một tin nhắn gửi đến người nhận có địa chỉ email xác định thuộc một miền nào đó (chẳng hạn từ [email protected] gửi đến người nhận A2 có địa chỉ mail là [email protected] ) khi hành động gửi thư diễn ra mail client mà mà A1 sử dụng sẽ sử dụng giao thức truyền thư SMTP để gửi tin nhắn đến máy chủ của thư điện tử của mình (trong trường hợp này là mail.wru.edu.vn được cung cấp từ dịch vụ Internet của A1).
2. Máy chủ sẽ đọc địa chỉ mail của người nhận ([email protected]) dựa vào phần tên miền nó sẽ tìm hỏi địa chỉ của tên miền này, nơi có máy chủ sẽ nhận gửi thư đến, thông qua hệ thống tên miền
3. Máy chủ DNS (domain name Server) của người nhận A2 sẽ trả lời về một bản tin trao đổi thư từ, đây là bản ghi chỉ ra cách thức làm thế nào để định tuyến cho email này. Trong ví dụ thì pop3.gmail.com là máy chủ từ dịch vụ cung ứng Internet của [email protected]
4. Mail.wru.edu.vn sẽ gửi mẫu thông tin tới pop3.gmail.com nhờ giao thức SMTP, điều này sẽ phân phối lá thư của A1 tới hộp thư của A2
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ5. Khi đọc thư A2 kích hoạt nhận thư trên client của mình điều này
tạo ra việc lấy mẫu về thông tin bằng cách áp dụng giao thức POP3.
4.4 Javamail và các các hỗ trợ gửi nhận thư điện tử
4.4.1 Tổng quan về ngôn ngữ java
Giống như hầu hết những ngôn ngữ lập trình hướng đối tượng khác,
Java bao gồm: một ngôn ngữ, một môi trường, một giao diện ứng dụng Java
và nhiều lớp thư viện. Những lớp riêng này có đặc tính riêng là tái sử dụng lại,
đây cũng là điểm mạnh mà Java khác với ngôn ngữ khác. Ngoài những tính
năng trên Java còn có khả năng xử lý đa luồng. Ngôn ngữ này thật sự cơ động
nên nó rất thích hợp cho các ứng dụng trên mạng và một số ứng dụng desktop
khác. Ngoài ra nó còn có các đặc tính cần thiết như: Hỗ trợ chuỗi, đồ hoạ,
kiểm soát lỗi, đa phương tiện, làm việc theo mô hình client/server, linh động
và hiệu quả… các tính năng trên thực sự là những gì mà các doanh nghiệp và
tổ chức hiện nay đang cần, để đáp ứng chính xác các yêu cầu xử lý thông tin
của họ.
- Java có một sức mạnh đầy ấn tượng và là chủ đề đang được tranh luận
nhiều nhất hiện nay. Java có những tính năng vượt trội hơn so với các
ngôn ngữ khác như sau.
o Là một ngôn ngữ chạy trên môi trường độc lập, mã nguồn mở do
hãng Sun cung cấp.
o Chiếm rất ít dung lượng lưu trữ so với các ngôn ngữ khác.
o Là một ngôn ngữ lập trình đơn giản, hướng đối tượng, an toàn, độc
lập với cấu trúc, dễ di chuyển, hiệu suất cao, đa luồng, và có tính
động.
- Java là một môi trường độc lập, đó là một lợi thế quan trọng cho phép
Java hơn hẳn những ngôn ngữ khác, đặc biệt là cho những hệ thống cần
làm việc trên nhiều môi trường khác nhau, Java là một môi trường độc
lập ở cả trên nền hệ thống lẫn dưới mức thấp như hệ xử lý nhị phân. Nó
có khả năng chuyển từ hệ thống máy tính này sang hệ thống máy tính
khác không phụ thuộc vào cấu trúc của máy hay hệ điều hành hoạt động
trên máy.
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ- Tuy nhiên Java có nhược điểm là thực thi chương trình chậm (do phải
thông dịch lại và chạy trên một máy ảo) khi cài đặt các ứng dụng Java
thường rất phức tạp. Vì thế sức cạnh tranh trong các ứng dụng trên máy
tính rất thấp.
Nhưng với những ưu điểm tuyệt vời trên nên Java rất mạnh trong các thiết bị
điện tử cầm tay và trên máy chủ như các hỗ trợ tương đối với các trình khách
từ các thư viện riêng điển hình như Javamail thì việc lựa chọn ngôn ngữ java
là rất xác đáng.
Javamail
Javamail cung cấp một API chuẩn và thông dụng để quản lí thư điện tử.
Nó cho phép các nhà cung cấp dịch vụ cung cấp các cho người dùng một giao
diện chuẩn cho các hệ thống tin nhắn sử dụng ngôn ngữ lập trình java dựa trên
các chuẩn hoặc các đặc quyền. Sử dụng API này các ứng dụng có thể truy cập
tới các kho chứa tin nhắn và soạn các tin nhắn để gửi đi.
Javamail được xây dựng trên một tập các lớp ảo. Các lớp này tạo nên
một mô hình là tập hợp các mảnh của hệ thống thư chuẩn. Những lớp này bao
gồm:
- Tin nhắn: Lớp ảo thể hiện một tin nhắn thư điện tử. Javamail thực hiện
chuẩn nhắn tin MIME Internet và RFC822. Lớp MIMEMessage mở
rộng lớp Message để diễn tả một tin nhắn điện tử kiểu MIME.
- Lưu trữ: lớp ảo này thể hiện một cơ sở dữ liệu các tin nhắn được được
duy trì bởi một máy chủ thư điện tử (Mail server) và được nhóm lại bởi
người dùng. Mỗi Store sử dụng một phương thức truy cập riêng có thể là
POP3, IMAP hay SMTP.
- Folder: lớp ảo này cung cấp một cách thức để các tin nhắn được tổ chức
theo cấu trúc phân cấp. Mỗi Folder(cây thư mục) có thể chứa nhiều tin
nhắn hay có thể chứa các Folder khác. Một máy chủ thư điện tử cung
cấp cho mỗi người dùngmột Folder (thư mục) mặc định và người dùng
có thể tạo thêm các thư mục con cũng như các file trong thư mục đó.
- Trasport: lớp ảo này thể hiện một phương thức giao vận nhất định. Một
đối tượng Transport dùng một giao thức giao vận riêng để gửi tin nhắn.
Mỗi nhà cung cấp dịch vụ, thực thi các lớp phải theo hệ thống hay giao
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộthức cụ thể của mình. Ví dụ một nhà cung cấp IMAP thực thi Javamail
API sử dụng giao thức IMAP4. Các máy khách sử dụng thực thi này để
thao tác với thư điện tử.
IMAP
SMTP
Hình vẽ: chỉ ra một máy khách sử dụng thực thi IMAP4 để đọc thư điện tử và một thực thi SMTP để gửi thư đi. (chúng có thể từ một hay nhiều nhà cung cấp khác nhau)
4.4.2 Cấu trúc của môt Message
Lớp Message mô phỏng một tin nhắn thư điện tử. nó là một lớp trừu
tượng thực thi một giao diện Part.
Lớp Message định nghĩa một tập các thuộc tính và nội dung cho một
tin nhắn thư điện tử. Các thuộc tính, các cặp giá trị tên, xác định các thông tin
định địa chỉ và định nghĩa cấu trúc nội dung của một tin nhắn điện tử (kiểu nội
dung của một tin nhắn). Tin nhắn có thể chứa một đối tượng nội dung đơn lẻ
hoặc gián tiếp là một đối tượng đa nội dung khác. Trong trường hợp nào thì
nội dung cũng đuợc chứa trong một đối tượng DataHandler.
Mỗi tin nhắn có một nội dung riêng. Nội dung này được gói gọn trong
một đối tượng DataHandler
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
Hình 3: Cấu trúc của một tin nhắn đơn giản (Simple Message)
Bên cạnh cấu trúc đơn giản, tin nhắn cũng có thể chứa nhiều đối tượng nội
dung. Trong trường hợp này đối tượng DataHandler chứa một đối tượng
MultiPart thay vì chỉ đơn thuần là một khối dữ liệu nội dung đơn lẻ.
Một đối tượng MultiPart chứa nhiều đối tượng BodyPart. Cấu trúc của
một đối tượng Message bởi vì chúng đều sử dụng giao diện Part.
Mỗi đối tượng BodyPart chứa các thuộc tính và nội dung nhưng các
thuộc tính của một đối tượng BodyPart bị giới hạn bởi các thuộc tính được
định nghĩa bởi giao diện Part. Một thuộc tính quan trọng là kiểu nội dung của
phần này của nội dung tin nhắn. Nội dung của một BodyPart là một
DataHandle có chứa dữ liệu hoặc một đối tượng MultiPart khác.
Lớp Message này sẽ là đối tượng chính được thao tác bởi người sử
dụng trong chương trình Mail Client của em. Chi tiết về chương trình được
trình bày trong chương V của đồ án này.
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
Chươ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
Chức năng lọc thư rác của chương trình MailClient mà tôi xây dựng
được mô hình hóa như hình vẽ sau: các messge được lấy về từ server sẽ qua
bộ lọc Bayes và được chứa trong (yellow mail) tại đây nó có thể được loại bỏ
một lần nữa qua các dấu hiệu về sender và subject, cuối cùng nó sẽ được phân
bổ vào hai thư mục Spam và Ham, trong đó Ham là thư mục chứa các thư hợp
lệ, còn Spam là thư mục chứa các thư rác
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Ham
Sp
am
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
5.1 Cơ sở dữ liệu cho chương trình
5.1.1 Tài khoản người sử dụng
Để thực hiện được chức năng gửi nhận thư chương trình cần một bộ dữ
liệu đầu vào đó là thông tin về người sử dụng các thông tin đó bao gồm:
o Tên người sử dụng
o Địa chỉ mail
o Incoming server: đây là địa chỉ của máy chủ nơi chứa các thư điện
tử trong hòm thư có địa chỉ mail tương ứng ở trên (POP3 server)
o Outcoming server đây là tên máy chủ đảm nhận việc chuyển thư
điện tử đến địa chỉ cần gửi (SMTP server)
o Password người sử dụng: mật khẩu đảm bảo tính bảo mật trong hòm
thư của người sử dụng
Các thông tin này trong chương trình thiết kế sẽ yêu cầu người dùng nhập từ
bàn phím và được lưu lại trong một file text có tên là user.prf trong đó user là
tên của người sử dụng
5.1.2 Bộ dữ liệu mẫu
(Đây là cơ sở để bộ lọc Bayes hoạt động). Để phân loại thư rác ban đầu người sử dụng cần phải cung cấp một bộ dữ liệu
mẫu bao gồm: một số thư điện tử mà họ cho là thư rác và một số thư điện tử
coi là thư hợp lệ (những thư điện tử này sẽ được chứa trong hai folder là HAM
và SPAM).
Khi chức năng Bayes được kích hoạt thì chức năng phân loại thư rác được áp
dụng. Công việc này không đơn giản, ban đầu căn cứ vào bộ dữ liệu mẫu bộ
lọc sẽ xây dựng một tập các đặc trưng bao gồm các xác suất hiện của các từ
mẫu có trong cả hai lớp mail rác và mail hợp lệ. Từ đó làm cơ sở để phân loại
các thư sau. Mỗi lần chức năng Bayes được kích hoạt thì tập các đặc trưng lại
được xây dựng lại vì thế hiệu quả phân loại thư rác sẽ lớn dần lên, quá trình
này gọi là khả năng tự học của bộ lọc Bayes.
Việc xây dựng các tập đặc trưng dựa trên tập mẫu ban đầu diễn ra như sau:
o Ban đầu mỗi thư điện tử sẽ được phân tách thành tập các từ (tất nhiên là
đã có sự giảm bớt các từ thường xuyên xuất hiện trong các thư điện tử
và những từ có thể coi là tần số xuất hiện thấp). Sau đó sẽ tiến hành xác
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộđịnh xác suất xuất hiện của mỗi từ đó trên mỗi lớp văn bản ta sẽ tìm
được một tập đặc trưng mẫu. Các đặc trưng này sẽ được lưu vào một
file có tên là feature.txt để làm tiêu chuẩn đánh giá các thư điện tử tiếp
theo.
o Các thư điện tử sau cũng được biểu diễn thành vector các từ dựa trên
các tập đặc trưng đó.
o Bước tiếp theo là việc sử dụng công thức Bayes để xác định xác suất
một thư điện tử mới là thư rác hay thư hợp lệ.
o Cuối cùng để xác định thư điện tử là thư rác hay thư hợp lệ ta sẽ định ra
một ngưỡng xác suất nhất định (0.9) chẳng hạn. Nếu xác suất vừa tính
được >0.9 thì thư điện tử đó sẽ được coi là thư rác và chuyển vào folder
SPAM ngược lại nó sẽ được chuyển vào folder HAM.
Vector biểu diễn thư điện tử
Vector biểu diễn một thư điện tử là một tập các từ hay cụm từ xuất
hiện trong thư điện tử đó với số lần xuất hiện tương ứng. Còn vector đặc
trưng là một tập các từ hay cụm từ xuất hiện trong toàn bộ tập thư. Với xác
suất xuất hiện tương ứng của từ hay cụm từ đó trong hai lớp thư hợp lệ và lớp
thư rác. Các thư điện tử sau sẽ được biểu diễn thông qua tập đặc trưng này.
Sau đó sử dụng luật xác suất Naive Bayes để xác định khả năng thư đó có phải
là thư rác hay không.
Quá trình biểu diễn một thư điện tử thành vector :
Thư điện tử khi nhận về từ server có nhiều thành phần khác nhau như
tiêu đề, địa chỉ người gửi, phần nội dung của thư… Phương pháp Bayes chỉ sử
dụng đến nội dung của thư. Trong chương trình của tôi nội dung của các thư
khi nhận về từ server sẽ được lưu vào máy client để là dữ liệu phục vụ cho
việc lọc các thư tiếp theo. Ban đầu khi chưa có tập đặc trưng các thư lấy về sẽ
được coi là các thư hợp lệ (và lưu cả vào thư mục HamMail trên máy client).
Hiển thị trên màn hình qua note HAM của cây thư mục Localhost phía trái
màn hình. Người sử dụng sẽ có một lựa chọn Move các thư điện tử (coi là thư
rác) sang note SPAM của cây thư mục. Như thế folder SpamMail trong máy
client sẽ có thêm một lượng mẫu nhất định. Việc xây dựng tập đặc trưng bắt
đầu bằng việc biểu diễn nội dung của một thư điện tử được mô tả như sau:
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
Biểu diễn loại stopwords đếm spamword
Sau khi biểu diễn các thư điện tử, công việc tiếp theo là đi xây dựng tập các
đặc trưng từ các mẫu thư ban đầu. Tập đặc trưng này phụ thuộc rất nhiều vào
số lượng mẫu thư có trong hai folder SpamMail và HamMail trong máy client.
Và cũng phụ thuộc nhiều vào độ ngắn dài của một bức thư. Vector đặc trưng
chứa các từ hay cụm từ được phân tách từ nội dung của các thư điện tử với xác
suất xuất hiện tương ứng của các từ đó trên cả hai lớp thư rác và thư hợp lệ.
Ví dụ một phần tử trong vector đặc trưng :
Từ
(cụm từ)
Xác suất xuất hiện
trong lớp thư hợp lệ
Xác suất xuất hiện
trong lớp thư rác
Free 0.012 0.25
Khuyến mãi 0.02 0.045
Có thể mô hình hoá quá trinh xây dựng vector đặc trưng từ các vector biểu
diễn vector biểu diễn các thư điện tử như sau:
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Thư điện
tử
Xâu kí tự
Xâu kí tự
Tập các Từ spam
Tập các từ đơn
Vector biểu diễn mộtthư
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
Chương trình mà tôi xây dựng là một ứng dụng desktop chạy trên các máy tính
client. Hoạt động phân loại thư rác của nó được diễn ra trước khi các thư điện
tử được hiển thị cho người dùng. Có thể mô tả chi tiết như sau: khi thư điện tử
được nhận về từ server nó sẽ được bộ lọc Bayes phân loại và phân bổ vào hai
thư mục HamMail và SpamMail trên máy client. Trong đó HamMail là thư
mục chứa các thư hợp lệ còn SpamMail chứa các thư được coi là thư rác. Mọi
hiển thị cho người sử dụng sau đó sẽ dựa trên hai thư mục này. Điều đó có
nghĩa là các thư điện tử sẽ được lấy về từ server và nội dung của nó được lưu
ngay trên máy client mỗi thư điện tử được lưu dưới dạng một file text. Các thư
điện tử được sắp xếp có thứ tự theo thời gian. Nếu thư mới sẽ được xếp sau
các thư cũ.
Bộ dữ liệu đính kèm theo chương trình là các file dữ liệu ở dạng text – người
sử dụng có khả năng thay đổi lại nội dung của các file này. Các file đó bao
gồm:
1. StopwordsDB.txt: Đây là file chứa các từ thông dụng thường xuất
hiện trong mọi thư điện tử. Những từ này khi xây dựng các tập đặc
trưng sẽ bị loại bớt để giảm bớt kích thước của không gian đặc trưng.
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Vector biểu diễn mộtthư
Vector biểu diễn mộtthư
Vector biểu
diễn lớp mail
hợp lệ
Vector biểu
diễn lớp mail rác
Vector biểu diễn
hai lớp mail
Vector biểu diễn các đặc
trưng
Loại bỏ các từ xuất hiện ít
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ2. SpamwordsDB.txt: Đây là file chứa các từ và cụm từ thường xuyên
xuất hiện trong các thư rác (các đặc trưng của thư rác)- nó là một phần
quan trọng để phân loại thư rác.
3. SpammerDB.txt: chứa danh sách các spammer mà người sử dụng yêu
cầu. File dữ liệu này phục vụ cho việc kết hợp nhiều tri thức khác
nhau để lọc thư rác.
4. SubjectDB.txt: Chứa danh sách các tiêu đề thường xuất hiện trong các
thư rác. Đây cũng là một lĩnh vực để kết hợp lọc thư rác có hiệu quả
hơn. Với file dữ liệu này người dùng cũng có thể thay đổi thêm bớt bổ
sung cho phù hợp với mình.
Nói chung là tiến trình phân loại thư rác của bộ lọc Bayes mà tôi xây dựng
diễn ra như sau:
Hình 5.2: Bộ lọc Bayes
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
5.3 Giao diện của hệ thống
Giao diện chính của chương trình: Khi người sử dụng đăng nhập thành
công vào chương trình bằng tài khoản đã đăng kí giao diện chính của chương
trình sẽ có dạng như sau:
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng TộCây thư mục bên trái màn hình:
- INBOX : đây là một note chứa tất cả các thư điện tử của người dùng
có ở trên server. Kích đúp vào note này để xem danh sách các thư điện
tử có trong hòm thư của mình. Các thao tác trên INBOX được ánh xạ
trực tiếp lên server không liên quan đến client.
- LocalFolder : là một cây thư mục trong client bao gồm các folder nhỏ
chứa các thư điện tử sau khi đã được phân loại. Trong đó note SPAM
chứa các thư điện tử được coi là thư rác. Note HAM chứa các thư
điệnt tử được coi là thư hợp lệ. Khi nhấn đúp vào SPAM hay HAM ta
cũng sẽ có một danh sách các thư điện tử
Các trình đơn menu:
Chương trình có bốn menu chính, mỗi menu chứa một tập các lệnh giúp người
dùng thao tác với hệ thống..
- Menu File tích hợp các chức năng login logout và khả năng import hay
export một thư điện tử thành một file tùy chọn.
- Menu Parameters tích hợp một số chức năng thao tác với thư mục và tạo
số địa chỉ, lọc thư điện tử theo địa chỉ người gửi.
- Menu Mail tích các chức năng thao tác với thư điện tử bao gồm chức
năng gửi thư, reply, forward và các chức năng, tùy chọn lọc thư rác
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ- Menu Look &feel cho phép thay đổi giao diện của chương trình theo môi
trường.
- Menu help trợ giúp người dùng cách cấu hình và sử dụng chương trình
Popup menu :
Khi click chuột phải vào một thư điện tử bên phải màn hình thì sẽ hiện
một popup menu. Mục đích giúp người sử dụng thao tác nhanh trên các thư
chọn lựa.
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
Menu File:
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng TộMenu Parameters:
Chứa một tập các thao tác trên folder chứa mail. Các chức năng trong
menu này dùng cho dịch vụ truy cập thư mục đơn có trong các dịch vụ mail sử
dụng IMAP. Bao gồm các thao tác: copy, move, xoá thư mục. Nếu dịch vụ
mail của bạn sử dụng POP3 thì các chức năng sẽ bị mờ đi.
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng TộMenu Mail:
Người dùng có thể thao tác trên các thư điện tử thông qua menu Mail.
Các thao tác gửi thư, reply hay forward một thư điện tử được thực hiện trong
menu này. Ngoài ra nó còn chứa menu kích hoạt khả năng tự học của bộ lọc
Bayes và một tuỳ chọn lọc thư theo địa chỉ và theo tiêu đề. Giao diện của
menu Mail như sau:
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
Menu Look & Feel :
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng TộMenu Help:
Trợ giúp người dùng cách sử dụng chương trình và cung cấp thông tin
về tác giả. Có hai sự trợ giúp tiếng Anh và tiếng Việt người dùng có thể tùy
chọn một trong hai trợ giúp này. Đặc biệt người sử dụng có thể đến thăm
website của trường Đại Học Thủy Lợi thông qua mục Visit mySite
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
5.3 Một số chức năng tiêu biểu Chức năng tạo tài khoảnĐầu vào
+ Tên người sử dụng+ Địa chỉ Email người sử dụng+ Password+ Incoming server+ Outcoming server (SMTP server)
Đầu ra
+ Giao diện login vào chương trình (nếu thành công)+ Thông báo lỗi nếu việc tạo tài khoản gặp vấn đề
Mô tả
- Người dùng bắt buộc phải tạo một tài khoản riêng thì mới có thể sử dụng được chương trình
- Điền các thông tin theo mẫuMàn hình
Chức năng login vào hệ thống:Đầu vào Tài khoản người dùng đã được khởi tạo thành công Đầu ra + Giao diện chính của chương trình (nếu thành công)
+ Thông báo lỗi nếu đăng nhập thất bại Mô tả Người sẽ lựa chọn một trong các tài khoản mà minh đã khởi tạo và
nhấn nút OK để đăng nhập vào chương trìnhMàn hình
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
Chức năng soạn thảo và gửi thư:Đầu vào
+ Địa chỉ email của người nhận thư (bắt buộc phải có)+ chủ đề của bức thư (tùy chọn)+ File dữ liệu đính kèm nếu cần thiết(tùy chọn)
Đầu ra+ Thông báo message được gửi (nếu thành công)+ Lỗi gây ra nếu message không được gửi
Mô tả Người dùng bắt buộc phải đăng nhập địa chỉ email của người nhận thư thì mới có thể gửi thư được thư. Trong quá trình soạn thảo thư người sử dụng có thể sử dụng thêm các chức năng copy, paste để việc soạn thảo thư diễn ra nhanh chóng hơn. Có thể gửi kèm theo thư các file dữ liệu với kích thước phù hợp
Màn hình
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ Chức năng configureĐầu vào + thông tin người dùng muốn thêm, sửa, xóa …Đầu ra +File dữ liệu sau khi được updateMô tả Nếu muốn thêm, sửa xóa hay cập nhật các thôn tin về Spammer
hay thêm vào tập mẫu spam các từ cần thiết có thể sử dụng chức năng này
Màn hình
Chức năng tạo sổ địa chỉ:Đầu vào
+ Tên + Địa chỉ Mail
Đầu ra
Danh sách các user trong addressbook
Màn hình
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
Chức năng lọc thư theo địa chỉ:
Đầu vào Tên và địa chỉ mail của người muốn lọc thư Đầu ra Danh sách các uer cần lọcMàn hình
Việc kết hợp lọc thư rác theo nhiều cách khác nhau giúp cho việc lọc thư rác
có hiệu quả hơn. Đó là sự kết hợp giữa thuật toán Naive Bayes với việc lọc thư
qua địa chỉ người gửi, qua tiêu đề của thư. Mà cơ sở dữ liệu của nó người
dùng có thể tùy chọn cấu hình lại cho phù hợp qua chức năng “configures”.
Đây cũng là một kết quả đáng kể mà chương trinh đã đạt được
Giao diện mô tả việc lọc thư rác qua địa chỉ người gửi và tiêu đề của thư như
sau:
Đầu vào Lựa chọn của người sử dụngĐầu ra Kết hợplọc thư rác theo tùy chọn đã nhấnMàn hình
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
5.5 Sử dụng chương trìnhChương trình có tổng cộng ba gói: Mail.jar, activation.jar và MailClient.jar
- Mail.jar: đây là gói của hãng sun đi kèm theo trong trình dịch java, ứng
dụng của gói này là dùng để hỗ trợ cho việc đọc mail và gởi mail dựa vào
gói này người lập trình viên có thể viết một chương trình client như đọc
mail và gởi mail một cách dễ dàng thông qua các lớp sẵn có trong gói tin.
- activation.jar: gói này chủ yếu là sử lý các biến cố liên quan tới mail như
khi đọc mail thì gói này làm nhiệm vụ phân tích mail đó có file đi kèm
không hay mail được định dạng theo kiểu nào, cò khi gởi mail thì cần gọi
các thủ tục trong gói tin này ra để định dạng mail theo một dạng chuẩn rồi
tiến hành gởi đi. Ngoài ra còn nhiều tính năng khác tuỳ theo mục đích sử
dụng trong chương trình.
- MailClient.jar: là gói chứa cả source code của chương trình đã được biên
dịch thành các file .class.
5.5.1 Cài đặt và chạy chương trình
Vì chương trình được viết bằng ngôn ngữ Java mã nguồn mở, nên để
chạy được chương trình thì điều kiện cần trước tiên là hệ điều hành dùng để
chạy chương trình phải hiểu Java nghĩa là trên máy phải có máy ảo Java đang
chạy. Để có được máy ảo Java tốt nhất nên cài đặt JDK mọi phiên bản của
hãng Sun, (khuyến cáo nên sử dụng JDK 1.5.0) khi cài đặt xong JDK chỉ cần
copy các gói trên vào một thư mục trên ổ đĩa cứng và chạy File run.bat thì
chương trình MailClient sẽ được thực thi.
5.5.2 Hướng dẫn sử dụng:
Để sử dụng mail client này người dùng phải có một tài khoản nhất
định. Khi khởi động chương trình yêu cầu người dùng chọn tài khoản (nếu đã
cõ sẵn một số tài khoản nhất định) nếu không sẽ phải tạo một tài khoản mới.
Để tạo cho mình một tài khoản kích hoạt nút “create” rồi làm theo chỉ dẫn để
tạo tài khoản. Nếu thành công sẽ đăng nhập vào chương trình theo tài khoản
đã lập. Tất cả các hướng dẫn cụ thể đều có trong mục Help vietnamese. Các
bạn có thể sử dụng chức năng này để xem chi tiết hơn.
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
5.6 Kết luận và định hướng phát triển
5.6.1 Những kết quả đạt được
Nhìn chung chương trình được thực hiện khá hoàn thiện cho một MailClient trên desktop và đạt được những kết quả đáng kể sau:
- Các chức năng của một chương trình Email
1. Nhận - Soạn - Gửi E-mail.
2. Cho phép kèm theo files trong thư.
3. Cho phép tạo Address book.
4. Cho phép chọn lựa giao thức POP3 (Default), IMAP hay SMTP.
5. Cho phép Import hoặc Export (thư và địa chỉ E-mail) sang chương
trình Email khác hoặc sang dạng text, ...( các chức năng forward,
reply, replyall…)
6. Có tính bảo mật chặt chẽ (password được mã hóa thành các kí tự
khác nhau)
7. Dễ hiểu dễ sử dụng( giao diện thân thiện với người sử dụng)
8. Hỗ trợ thư HTML, Plain Text với định dạng MIME, Unicode.
- Chức năng lọc thư rác
1. Thực hiện được chức năng lọc thư rác tự động bằng giải thuật Naive
Bayes.
2. Kết hợp lọc thư rác qua địa chỉ (sender) và qua tiêu đề của thư
(subject).
3. Hỗ trợ giao thức truy cập thư mục đơn LDAP (đi kèm với IMAP)
5.6.2 Những hạn chế
Mặc dù có nhiều ưu điểm nhưng do thời gian và hạn chế về kiến thức
chương trình MailClient của tôi vẫn còn những hạn chế sau:
- Chương trình mới chỉ thử nghiệm trên một số hòm thư wru của trường
đại học Thủy Lợi vì thế chưa có điều kiện tiếp thu “feedBack” từ người
sử dụng để có thể thay đổi cho phù hợp với yêu cầu thực tế.
- Mỗi khi logon chương chỉ hỗ trợ một user chưa hỗ trợ nhiều hòm thư.
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ- Bộ từ điển mẫu ban đầu còn khá sơ sài và mang tính cá nhân vì thế khi
sử dụng chương trình tùy theo những người dùng khác nhau có thể cấu
hình lại cho phù hợp với hòm thư của mình.
- Quá trình phân loại mail bỏ qua nội dung của các file đính kèm vì thế
cần được hoàn thiện và phát triển để phân loại mail một cách chính xác
hơn đó là việc phân lọc mail kết hợp với các hình thức lọc mail khác
nhằm nâng cao hiệu quả phân loại.
Định hướng phát triển
Để thấy rõ được hiệu quả của phân loại thư rác tự động trong chương
trình MailClient mà tôi đã xây dựng, với đề tài này có thể ứng dụng ngay trên
dịch vụ mail của trường Đại Học Thủy Lợi cũng như các dịch vụ mail khác.
Có thể kết hợp lọc thư rác qua các đặc trưng khác nhau khác của thư điện tử
và hoàn thiện thêm các chức năng trong chương trình để nghĩa thực tế của
chương trình được cao hơn.
Một lần nữa tôi xin được gửi lời cảm ơn tới PGS.TS Nguyễn Đăng Tộ
và KS Nguyễn Mạnh Hiển đã nhiệt tình giúp đỡ tôi hoàn thành đồ án này.
Xin cảm ơn các thầy cô trong khoa cùng bạn bè đã giúp đỡ tôi trong thời gian
vừa qua.
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
Phụ lục
Các thuật ngữ tiếng Anh dùng trong chương trình:OECD: Organization for Economic Co-operatation Development: tổ chức
hợp tác phát triển kinh tế
FTC : Federal Trade Commission - Ủy ban thương mại liên bang
Ferris Research: hãng nghiên cứu thị trường Ferris
ISP: Internet services provider - nhà cung cấp dịch vụ Internet
DF: document frequency - tần suất tài liệu
MI: Manual Information - lượng tin tương hỗ
CF-DF (catagorization frequency- DF)
IDF: Inverse document frequency - tần suất tài liệu ngược
Prototype: Nguyên mẫu
SVM: Support vectors Machines - vector trợ giúp
Dicision Trees: cây quyết định
Neuron network: mạng neuron
User: Người sử dụng
Spam mail: thư rác
Ham mail: thư hợp lệ
SMTP: Simple Mail Transfer Protocol - Giao thức chuyển thư đơn giản
POP3: Post office protocol Version 3 - Giao thức phân phát thư
IMAP4: Internet Message Access Protocol version 4 - Một giao thức phân
phối thư điện tử
DNS : Domain Service System - dịch vụ quản lí tên miền
MUA: Messge User Agents - tác nhân người sử dụng
MAT: Message Transfer Agent - tác nhân truyền thông điệp
User Profile: Hiện trạng người sử dụng
RFC 822 (Request for Comments) - Chuẩn định nghĩa cấu trúc thư
RFC 821 đặc tả giao thức trao đổi thư giữa hai trạm của mạng
MIME (Multipurpose Internet Mail Extension) – Mẫu x tin nhắn chuẩn trên
Internet
Host name: Tên của máy tính
Mailing list: danh sách gửi thư
LDAP (Lightweight Directory Access Protocol ) - Giao thức truy cập thư mục
đơn giản đi kèm theo IMAP
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng TộCc (Carbon copy) cho biết địa chỉ của những người nhận kế tiếp (còn gọi là
địa chỉ đồng gửi)
Bcc: (Blind carbon copy)
Thư mục và nội dung đĩa CD đính kèm:
JDK 1.5.0 Đây là chương trình cài đặt máy ảo java trên máy tính. Các
phiên bản mới hơn của java có thể tham khảo tại địa chỉ website java.sun.com
MailClient – thư mục chứa chương trình
Baocao – là thư mục chứa nội dung báo cáo tốt nghiệp
Huongdan – là thư mục chứa các trợ giúp của chương trình
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ
Tài liệu tham khảo
1. Yiming Yang và Xin Liu – School of computer science, Carnegie
Mellon University – A re- examination of text categorization method
2. YmingYang – Carnegie Mellon University – A Study on Thresholding
Strategies for Text Categorization
3. Heide Brücher, Gerhard Knolmayer, Marc-André Mittermayer - University
of Bern Institute of Information Systems – Document Classification
Methods for Organizing Explicit Knowledge
4. Thorsten Joachims School of computer science, Carnegie Mellon
University – A Probabilistic Analysis of the Rocchio Algorithm tháng
3/1996
5. KathrinEichler [email protected] Seminarfur Sprach wissen
schaft Eberhard-Karls-Universitat Tubingen - Automatic Classification of
Swedish EmailMessage - 17thAugust2005
6. Bart Calder, Bill Shannon, JavaBeans Activation Framework
Specification vesion 1.0a
7. Mehran Sahami – Computer Science Department Stanford University –
Inductive Learning Algorithms and Representations for Text
Categorization
8. Yming Yang – School of computer science, Carnegie Mellon University –
A comparative study on feature selection in categorization
9. T.A Meyer and B Whateley Meyer:- IIMS, Massey University, Auckland,
New Zealand [email protected] Whateley:- Dark Indigo, Inc.,
Fremont, California, USA [email protected]
SpamBayes-Effective open-source, Bayes based, email classification
system
10. JohanHovold Department of ComputerScience LundUniversity
Box118, 22100Lund, Sweden [email protected]
Naive Bayes Spam Filtering Using Word-Position-Based Attributes
11. KathrinEichler [email protected]
Seminarfur Sprachwissenschaft Eberhard-Karls-UniversitatTubingen
Automatic Classification of Swedish Email Messages
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ12. Copyright StatSoft, Inc., 1984-2004 STATISTICA is a trademark of
StatSoft, Inc – Naive Bayes Classifier
13. Trần Tiến Dũng – java giáo trình lí thuyết và bài tập
14. WWW.GFI.COM – Why Bayes filtering is the most effective anti-spam
technology
15. John Zukowski - [email protected] JZ Ventures, Inc – JavaMail API
Fundamentals
16. ChengXiang Zhai - Department of Computer Science
University of Illinois, Urbana-Champaign – Retrieval Models: Vector Space
17. Ben Kamens [email protected] Fog Creek Software, Inc.
Bayes Filtering: Beyond Binary Classification
18. Yu-Han Chang .T. A.I. Lab & L.C.S.ambridge, MA 02139
[email protected] December 10, 1999
Email Filtering: Machine Learning Techniques and an
Implementation for the UNIX Pine Mail System
19. DanielLowd [email protected]
DepartmentofComputerScienceandEngineering UniversityofWashington
Seattle,WA98195-2350USA January17,2005
Naive Bayes Models for Probability Estimation
20. JeffersonProvost DepartmentofComputerSciences
TheUniversityofTexasatAustin [email protected]
Naive-Bayes vs.Rule-Learning in Classification of Email
21. SeJune Hong, Jonathan Hosking, Ramesh Natarajan Multiplicative
Adjustment of Class Probability: Educating Naive Bayes
22. Yirong Shenand Jing Jiang CS224N Spring 2003
Improving the Performance of NaiveBayes for TextClassification
23. Mehran Sahami, Lambda Susan Dumais y David Heckerman Eric Horvitz,
Lambda Gates – A Baysian Approach to filter Junk E-Mail
24. AndrewMcCallum [email protected] - KamalNigam
[email protected] - A Comparison of Event Models for Naive Bayes
Text Classification
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin
Đồ án tốt nghiệp Gvhd: PGS.TS Nguyễn Đăng Tộ25. David D. Lewis, Ph.D.Ornarose, Inc. & David D. Lewis Consulting
www.daviddlewis.com -Naive Bayes Text Classification for Spam
Filtering
26. School of Information Technology and Engineering – University of
Ottawa, ON, Canada - Email Classification with Co-Training
27. KaiWei [email protected] - Improving spamfiltering by combining
Naive Bayes with simple-k nearest neighbor searches
Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin