123
Đồ á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 Svth: Phạm Thị Thơm -Lớp 43TH -Khoa Công Nghệ Thông Tin

Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

  • Upload
    q2tpro

  • View
    1.350

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 2: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 3: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 4: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 5: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 6: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 7: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 8: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 9: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 10: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 11: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 12: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 13: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 14: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 15: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 16: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 17: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 18: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 19: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 20: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 21: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 22: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 23: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 24: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 25: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 26: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 27: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 28: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 29: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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ừ

Page 30: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 31: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 32: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 33: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 34: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 35: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 36: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 37: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 38: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 39: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 40: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 41: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 42: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 43: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 44: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 45: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 46: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 47: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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 !

To: [email protected]

---------------------------------------------------------------------

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

Page 48: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 49: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 50: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 51: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 52: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 53: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 54: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 55: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 56: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 57: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 58: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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ư

Page 59: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 60: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 61: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 62: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 63: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 64: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 65: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 66: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 67: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 68: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 69: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 70: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 71: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 72: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 73: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 74: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 75: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 76: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 77: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 78: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 79: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 80: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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

Page 81: Ung Dung Phuong Phap Phan Loai Van Ban Naive Bayes Vao Viec Xay Dung Chuong Trinh Mail Client Voi Kha Nang Loc Thu Rac Tu Dong

Đồ á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