1. Trang chủ
  2. » Công Nghệ Thông Tin

báo cáo đề tài phân loại thư, lọc thư rác áp dụng giải thuật naive bayes.

14 1,6K 7

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 485,98 KB

Nội dung

Có nhiều định nghĩa khác nhau về phân loại văn bản, nhưng đơn giản nhất có thể hiểu phân loại văn bản là sự phân loại các tài liệu văn bản dựa trên một tập hợp các văn bản đã được phân l

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

─────── * ──────

BÀI TẬP LỚN MÔN HỌC

XỬ LÝ NGÔN NGỮ TỰ NHIÊN

Đề tài: Phân loại thư, lọc thư rác áp dụng giải thuật Naive Bayes

Giảng viên hướng dẫn:

PGS TS Lê Thanh Hương

Sinh viên thực hiện:

Đặng Văn Oai 20081948 Đào Văn Long 20081576 Đinh Văn Đức 20080723 Đào Quang Đức 20080720

Lã Hữu Thành 20082375

Lớp: Hệ thống thông tin K53

Hà Nội, tháng 5/2012

Trang 2

Mục Lục

I Bài tốn phân loại văn bản 3

I.1 Tổng quan về phân loại văn bản 3

I.2 Tiến trình phân loại văn bản 3

I.2.1 Trích chọn các đặc trưng của văn bản 4

I.2.2 Biểu diễn văn bản 4

I.2.3 Các phương pháp phân loại văn bản 5

II Thư rác và bài tốn lọc thư rác 5

II.1 Thư rác 5

II.2 Bài tốn phân loại thư rác 6

III Phương pháp phân loại văn bản Naive Bayes 7

III.1 Cơ sở lý thuyết 7

III.2 Thuật tốn phân loại Naive Bayes 7

III.3 Áp dụng thuật tốn Nạve Bayes vào phân loại thư điện tử 8

III.4 Quá trình xây dựng một bộ lọc thư rác, sử dụng giải thuật Nạve Bayes 9

IV Cài đặt chương trình 10

IV.1 Kiến trúc tổng quan 10

IV.2 Tạo lập bộ dữ liệu mẫu 10

IV.3 Giao diện chương trình 11

IV.4 Cơng cụ lập trình 13

V Kết luận, phân chia cơng việc trong nhĩm 13

Trang 3

I Bài toán phân loại văn bản

I.1 Tổng quan về phân loại văn bản

Bài toán phân loại văn bản là một bài toán quan trọng trong xử lý ngôn ngữ

tự nhiên Có rất nhiều bài toán phân loại trong xử lý ngôn ngữ tự nhiên như gán nhãn từ loại, khử nhập nhằng nghĩa từ vựng , mỗi bài toán đều có những đối tượng thao tác khác nhau và mục tiêu phân loại khác nhau Cụ thể trong bài toán phân loại văn bản thì đối tượng thao tác là tài liệu văn bản

Có nhiều định nghĩa khác nhau về phân loại văn bản, nhưng đơn giản nhất

có thể hiểu phân loại văn bản là sự phân loại các tài liệu văn bản dựa trên một tập hợp các văn bản đã được phân loại trước đó để gán cho văn bản cần phân loại thuộc một lớp nào đó, công việc này sẽ được thực hiện tự động bởi một chương trình máy tính Ứng dụng đáng kể 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 thông tin, làm 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 quản lý thông tin như việc sắp xếp, phân loại thư điện tử, hoặc các file trong hệ thống

Bài toán phân loại văn bản có thể được phát biểu như sau:

Cho một tập các lớp đã định nghĩa C = {c1, c2, …, cn}, và tập các văn bản đã được phân lớp sắn D = {d1, d2, …, dm} , cho một văn bản mới vào, nhiệm vụ là phải chỉ ra văn bản đó thuộc vào lớp nào trong số các lớp ban đầu

Có rất nhiều hướng tiếp cận bài toán phân loại văn bản đã được nghiên cứu như : dựa trên lý thuyết đồ thị, tiếp cận sử dụng lý thuyết tập thô, cách tiếp cận thống kê…, và tất cả các phương pháp trên đều dựa vào các phương pháp học máy: học có giám sát, học không giám sát, học tăng cường Vấn đề phân loại văn bản theo phương pháp thống kê dựa trên kiểu học có giám sát và bao gồm hai giai đoạn: giai đoạn huấn luyện và giai đoạn phân lớp

I.2 Tiến trình phân loại văn bản

Ta có thể chia tiến trình phân loại văn bản thành các bước như sau:

i) Trích chọn các đặc trưng của văn bản

ii) Biểu diễn văn bản

iii) Học một bộ phân loại văn bản

iv) Tiến hành phân loại văn bản

Trang 4

Trong đĩ, lựa chọn đặc trưng của 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 một 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 như Nạve Bayes hay k-NN

I.2.1 Trích chọn các đặc trưng của văn bản

Quá trình trích chọn đặc trưng văn bản sẽ giúp nâng cao hiệu quả phân loại,

cĩ thể nĩi khâu này là tiền đề cần thiết cho việc học một bộ phân loại Do đĩ hiệu quả của các bộ phân loại văn bản phụ thuộc rất nhiều vào tập các đặc trưng mà chúng ta sử dụng

Trong bước trích chọn đặc trưng văn bản cịn cĩ khâu tiền xử lý văn bản, tùy vào mục đích bộ phân loại mà chúng ta cĩ những phương pháp tiền xử lý văn bản khác nhau như:

- Chuyển tồn bộ văn bản về dạng chữ thường

- Loại bỏ các ký tự đặc biệt, các chữ số, các phép tốn

- Loại bỏ các từ dừng, là các từ thường xuyên xuất hiện trong các văn bản

- …

I.2.2 Biểu diễn văn bản

Một trong những nhiệm vụ đầu tiên của việc xử lý văn bản là phải chọn được một mơ hình biểu diễn văn bản thích hợp Một văn bản ở dạng chuỗi thơng thường cần được chuyển sang một mơ hình khác để tạo thuận lợi cho việc biểu diễn và tính tốn Tùy thuộc vào từng thuật tốn phân loại khác nhau mà chúng ta

cĩ những mơ hình biểu diễn khác nhau Một trong những mơ hình đơn giản và được sử dụng nhiều là mơ hình khơng gian vector Mỗi văn bản sẽ được biểu diễn dưới dạng một vector n chiều

Theo mơ hình này, mỗi văn bản sẽ được biểu diễn trong một khơng gian vector cĩ số chiều lớn, trong đĩ mỗi chiều của khơng gian tương ứng với một từ trong văn bản Ta ký hiệu vector X = (x1, x2, …, xn) là vector đặc trưng cho văn bản D, n là số chiều hay số lượng đặc trưng của vector văn bản, xi là trọng số của đặc trưng thứ i

Trang 5

Cĩ nhiều cách khác nhau để tính trọng số cho vector đặc trưng, trong đĩ cĩ một cách đơn giản là tính trọng số tần số từ, là số lần xuất hiện của từ đĩ trong văn bản đang xét

I.2.3 Các phương pháp phân loại văn bản

Dựa trên các đặc trưng của văn bản, đã cĩ nhiều phương pháp phân loại văn bản được dề xuất và áp dụng trong các tập tài liệu khác nhau Một số phương pháp phân loại văn bản cho kết quả tốt và thường được sử dụng như:

 Mơ hình xác suất Nạve Bayes

 Nguyên mẫu

 Phương pháp SVM

 Phương pháp cây quyết định

 Phương pháp mạng neuron

Trong các phương pháp trên thì kỹ thuật phân hoạch của Nạve Bayes là khá đơn giản nhưng đem lại hiệu quả phân loại cũng khá cao.Kỹ thuật này phù hợp với các trường hợp phân loại cĩ kích thước đầu vào lớn Thuật tốn Nạve Bayes sẽ 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

II Thư rác và bài tốn lọc thư rác

II.1 Thư rác

Thư rác hay cịn gọi là Spam mail là những thư điện tử khơng cần thiết đối với người sử dụng cụ thể nào đĩ, những thư này thường được gửi tới nhiều người

và thường mang nội dung quảng cáo, chất lượng thấp, đơi khi cịn mang những thơng tin lừa đảo.Các thư rác cĩ thể vơ hại đối với người sử dụng nhưng sẽ gây cảm giác khĩ chịu khi những thư này lẫn với những thư cần thiết, và người dùng phải mất thời gian để xĩa, đơi khi cĩ thể xĩa nhầm những thư cần thiết

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 đề thư, địa chỉ người gửi, hay các cụm từ thường xuất hiện trong các thư rác Hoặc cũng cĩ thể 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 Và một cơng nghệ nữa là sử dụng cơng nghệ học máy để phân loại thư điện tử

Trang 6

Bên cạnh virus, spyware, thì thư rác cũng là một điều rất khó chịu với người

sử dụng máy tính, 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, Do đó việc lọc thư rác trước khi đến với người dùng là rất cần thiết

II.2 Bài toán phân loại thư rác

Yêu cầu của bài toán là ngăn chặn thư rác bằng cách phân loại một email gửi đến là spam hay non-spam (Ham mail), hiệu quả phân loại phải khả quan, và giảm thiểu lỗi sai phân loại Ham mail thành Spam mail

Phân loại thư rác chính là bài toán phân loại văn bản hai lớp, hai lớp văn bản

là Ham(thư hợp lệ) và Spam (thư rác) Tập tài liệu mẫu ban đầu là các thư đã được phân thành thư rác và thư hợp lệ, văn bản cần phân lớp là các email nhận được Ta

có thể dựa vào một số đặc điểm hoặc thuộc tính nào đó của email để tăng hiệu quả phân loại Các đặc điểm của một email như: tiêu đề, địa chỉ gửi, nội dung thư, thư

có tệp đính kèm hay không…Khi càng tận dụng được các thông tin như vậy thì khả năng phân loại càng chính xác, và kết quả phân loại cũng phụ thuộc rất nhiều vào kích thước của tập mẫu huấn luyện

Mô hình phân loại thư rác có thể biểu diễn như hình dưới đây:

Vì bài toán phân loại thư rác cũng là bài toán phân loại văn bản, do đó 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ư điện

Trang 7

tử, hiện nay cĩ nhiều phương pháp đã được kiểm chứng là cho kết quả cao như: SVM, k-NN Phương pháp Nạve Bayes cho hiệu quả tuy nhỏ hơn nhưng giải thuật khá đơn giản, được áp dụng khá phổ biến, và được cải tiến thành máy lọc thư rác Nạve Bayes Do đĩ nhĩm chúng em đã chọn mơ hình xác suất Nạve Bayes để cài đặt giải thuật phân loại thư rác trong bài tập lớn mơn học

III Phương pháp phân loại văn bản Naive Bayes

III.1 Cơ sở lý thuyết

Cơ sở lý thuyết của phương pháp là định lý Bayes về xác suất cĩ điều kiện:

Hay

III.2 Thuật tốn phân loại Naive Bayes

Phương pháp phân loại Naive Bayes coi các từ xuất hiện trong một văn bản

là độc lập thống kê Giả thuyết Bayes gán cho mỗi tài liệu văn bản một giá trị xác suất, P(ci | d) là xác suất mà tài liệu d thuộc vào lớp văn bản ci , và được tính bởi cơng thức sau:

) (

)

| (

* ) ( )

| (

d P

c d P c P d c

Tài liệu d sẽ được gán cho lớp văn bản nào cĩ xác suất hậu nghiệm cao nhất: Lớp c* là lớp của văn bản d:

Trang 8

 

) (

)

| (

* )

( max )

| ( max

1

arg 1

arg

* C

d P

c d P c P d

c

n i

i n i

Trong đĩ n là số lớp văn bản

Theo giả thiết của Nạve Bayes thì xác suất của mỗi từ trong tài liệu di là độc lập với ngữ cảnh xuất hiện của 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 từ tần suất xuất hiện của từng từ đơn wj

(word thứ j) trong tài liệu d

P(d |ci ) = P(w1|ci)*P(w2|ci)*… *P(wn|ci)

Hay: P(d | c ) P(w | )

m j 1

j

Trong đĩ P(wj|ci) là xác suất xuất hiện của từ wj trong lớp văn bản ci , m là tổng số

từ trong tài liệu d

) (

) ( )

| (

m j 1

i

d P

c P d c

III.3 Áp dụng thuật tốn Nạve Bayes vào phân loại thư điện tử

Thuật tốn bắt đầu bằng việc họ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 Khi nhận được một thư mới, dựa vào thơng tin cĩ sẵn từ tập mẫu, quá trình xử lý sẽ được áp dụng trên nội dung của các thư điện tử

Giả sử:

 Nội dung của thư gửi đến là content

 Lớp thư rác ký hiệu là spam

 Lớp thư hợp lệ kí hiệu là ham

 Ta cần tính P(spam | content), là xác xuất thư điện tử là thư rác

 w1, w2, …, wn là các từ đặc trưng xuất hiện trong nội dung của thư

Khi đĩ xác suất email này là thư rác được tính như sau:

Trang 9

) (

* )

| (

) (

* )

| (

)

| (

* ) (

)

|

(

ham P ham content P

spam P

spam content

P

spam content

P spam P

content spam

P

Trong đĩ :

 P(spam) = (tổng số thư rác)/(tổng số thư)

 P(ham) = (tổng số thư hợp lệ)/(tổng số thư)

 P(content | spam) = P(w1 | spam)*P(w2 | spam)*…*P(wn | spam)

 P(content | ham) = P(w1 | ham)*P(w2 | ham)*…*P(wn | ham)

Sau khi tính được P(spam | content), nếu xác suất này lớn hơn giá trị ngưỡng t nào đĩ thì email này là thư rác

III.4 Quá trình xây dựng một bộ lọc thư rác, sử dụng giải thuật Nạve Bayes

i) Tạo cơ sở dữ liệu cho các thư hợp lệ: Ta sẽ dùng một file để lưu trữ danh

sách các thư hợp lệ của người dùng, file dữ liệu này là khác nhau đối với những người sử dụng khác nhau

ii) Tạo cơ sở dữ liệu cho các thư rác: Ta sẽ dùng một file để lưu trữ danh

sách các thư mà người dùng đánh dấu là thư rác, file dữ liệu này là khác nhau đối với những người sử dụng khác nhau File này phải bao gồm một mẫu lớn để hểu về thư rác và thường xuyên được cập nhật những thư rác mới nhất Điều này giúp cho 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à cho kết quả tìm kiếm thư rác lớn nhất

iii) Tạo file lưu trữ danh sách các từ và kèm với nĩ là số lần xuất hiện trong

tập thư rác và thư hợp lệ

Khi một thư mới được chuyển đến, nội dung của nĩ sẽ được phân tách thành các từ, căn cứ vào các từ này, bộ lọc Bayes sẽ tính tốn xác xuất nĩ là thư rác, nếu xác suất đĩ lớn hơn một ngưỡng t nào đĩ đặt ra thì thư này sẽ được gán là thư rác, ngược lại thì là thư hợp lệ Như ta đã biết, khi phân loại một email, cĩ thể sẽ xảy ra hai lỗi: phân loại nhầm thư rác thành thư hợp lệ và phân loại nhầm thư hợp lệ thành thư rác, trong đĩ lỗi thứ hai là nghiêm trọng hơn nên ta cần phải xác định một ngưỡng t để phân loại

t = n/(n + 1) với n = 1,2,…100,…

Trang 10

IV Cài đặt chương trình

IV.1 Kiến trúc tổng quan

Chức năng lọc thư rác của chương trình được mô tả như sau:

Các email được lấy về từ server sẽ thông qua bộ lọc Bayes, và được phân loại thành spam mail và ham mail, nếu là spam mail thì sẽ không hiển thị cho

người dùng

IV.2 Tạo lập bộ dữ liệu mẫu

Việc tạo lập bộ dữ liệu mẫu là rất quan trọng, là cơ sở để bộ lọc Bayes hoạt động, người dùng sẽ phải cung cấp những thư điện tử mà họ cho là thư rác, những thư này sẽ được lưu trong file SpamMail.txt, còn lại những thư hợp lệ sẽ được lưu trong file HamMail.txt Căn cứ vào bộ dữ liệu mẫu để xây dựng một tập các đặc trưng bao gồm các từ và số lần xuất hiện từ đó trong tập thư rác và thư hợp lệ.Từ

đó làm cơ sở để phân loại các thư về sau Mỗi lần phân loại thì tập các đặc trưng lại được cập nhật, đây là khả năng tự học của bộ lọc Bayes

Trang 11

IV.3 Giao diện chương trình

 Giao diện đầu tiên: Tại đây người dùng có thể chọn các chức năng gửi và nhận email

 Giao diện gửi mail: tại đây người dùng có thể thay đổi thông tin Outgoing

Mail Server, có thể nhập địa chỉ email người gửi, mật khẩu, địa chỉ người

nhận và gửi email đi

Trang 12

 Giao diện chính, nhận thư: Tại đây người dùng sẽ nhập thông tin địa chỉ

email và mật khẩu của mình, sau đó kết nối đến server và nhận thư về, trong danh sách những thư được hiển thị người dùng có thể chọn một thư nào đó

và thông báo đó là thư rác Để xem chi tiết nội dung của thư, người dùng sẽ

click chuột vào thư đó trên danh sách thư đến

Trang 13

IV.4 Công cụ lập trình

- Ngôn ngữ lập trình Java

- IDE : Netbeans 7.0.1

- Thư viện sử dụng: Java Mail, giúp lập trình gửi và nhận email

V Kết luận, phân chia công việc trong nhóm

 Những kết quả đạt được:

o Cài đặt được chương trình gửi và nhận thư điện tử

o Thực hiện được chức năng lọc thư rác tự động

 Những hạn chế:

o Chương trình chỉ xử lý được những email có nội dung định dạng text

thông thường, không xử lý được những email có file đính kèm

Ngày đăng: 23/10/2014, 23:36

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w