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

báo cáo sử lý ngôn ngữ tự nhiên đề tài phân loại văn bản lọc thư rác

17 560 1

Đ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 17
Dung lượng 578,37 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ta có thể dựa vào các thơng tin này để nâng cao hiệu quả phân loại email spam.. 2.4.1 Phân loại email dựa trên thuật tốn Nạve Bayesian Gỉa thiết mỡi một email được đại diện bởi m

Trang 1

ĐẠI HỌC BÁCH KHOA HÀ NỘI

BÁO CÁO BÀI TẬP LỚN

Xử lý ngôn ngữ tự nhiên

Đề tài: Phân loại văn bản: Lọc thư rác

Nhóm sinh viên thực hiện :

Giáo viên hướng dẫn :

PGS.TS Lê Thanh Hương

Hà Nội, Tháng 4 năm 2012

Trang 2

M C L C ỤC LỤC ỤC LỤC

LỜI MỞ ĐẦU 3

NỘI DUNG 4

I Lý thuyết học máy 4

1.1 Giới thiệu về học máy 4

1.1.1 Các định nghĩa về học máy (Machine learning) 4

II Thuật toán Naive Bayesian và ứng dụng trong phân loại email 5

2.1 Một vài khái niệm xác suất cĩ liên quan 5

2.2 Xác suất cĩ điều kiện,cơng thức xác suất đầy đủ,cơng thức xác suất Bayes 6

2.3 Phương pháp phân loại Nạve Bayesian: 7

2.4 Phân loại email bằng phương pháp Nạve Bayesian 8

III Các chỉ tiêu đánh giá phân loại email 11

3.1 Tỉ lệ Recall và tỉ lệ Precision 11

3.2 Tỉ lệ lỗi Err(Error) và tỉ lệ chính xác Acc(Accuracy) 12

3.3 Tỉ lệ lỗi gia trọng WErr(Weighted Error) và tỉ lệ chính xác gia trọng(Weighted Accuracy). 12 3.4 Tỉ số chi phí tổng hợp TCR(Total Cost Ratio) 13

IV Kho ngữ liệu email chữ 14

V Cài đăt chương trình phân loại email dựa trên phương pháp phân loại Nạve Bayesian: 14

5.1 Khái niệm “Token” 14

5.2 Vector thuộc tính 14

5.3 Chọn ngưỡng phân loại 15

5.4 Cách thực hiện 15

5.5 Kết quả thử nghiệm 16

VI TÀI LIỆU THAM KHẢO 17

Trang 3

LỜI MỞ ĐẦU

Thời đại ngày nay là thời đại bùng nổ thông tin, Internet đã trở nên quen thuộc và không thể thiếu với mỗi quốc gia và xã hội Liên lạc qua Internet đã trở nên phổ biến, và email là một phương tiên liên lạc có chi phí thấp, nhanh chóng và hiệu quả nhất trên Internet Hằng ngày mỗi người sử dụng email đều nhận được một lượng lớn email, tuy nhiên không phải tất cả các email mà ta nhận được đều chứa thông tin mà ta quan tâm Những email mà ta không muốn nhận là email spam Ngược lại, những email không phải spam gọi là non-spam (email hợp lệ được người dùng chấp nhận)

Những email spam gây cản trở công việc của người sử dụng, gây cho họ cảm giác bực bội, tốn thời gian và tiền bạc để xóa chúng,đôi khi họ có thể mất những email quan trọng vì bị xóa nhầm…

Xuất phát từ thực trạng đó,nhóm chúng em đã chọn đề tài Phân loại văn

bản – Lọc thư rác với mục đích tìm hiểu ,thử nghiệm các phương pháp tiếp cận

cho bài toán phân loại email,từ đó thực hiện phân loại email giúp ngăn chặn email spam hiệu quả

Chúng em xin chân thành cảm ơn sự hướng dẫn của cô Lê Thanh Hương cả về chuyên môn cũng như định hướng trong quá trình chúng em thực hiện đề tài Vì kiến thức còn hạn hẹp nên báo cáo của nhóm không thể tránh khỏi thiếu sót Chúng em rất mong được sự góp ý của cô để báo cáo của chúng em đươc hoàn thiện hơn

Trang 4

NỘI DUNG

I Lý thuyết học máy.

1.1 Giới thiệu về học máy.

1.1.1 Các định nghĩa về học máy (Machine learning).

Có rất nhiều các định nghĩa về học máy:

- Theo Mitchell- 1997: “Học máy là quá trình mà một chương trình máy

tính cải thiện hiệu suất của nó trong một công việc thông qua kinh nghiệm”.

- Theo Alpaydin- 2004“Học máy là việc lập trình các máy tính để tối ưu

hóa một tiêu chí hiệu suất dựa trên các dữ liệu ví dụ hoặc kinh nghiệm trong quá khứ”.

- Theo wikipedia: “Học máy, có tài liệu gọi là Máy học, (tiếng Anh là:

machine learning) là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc phát triển các kĩ thuật cho phép các máy tính có thể "học" Cụ thể hơn, học máy là một phương pháp để tạo ra các chương trình máy tính bằng việc phân tích các tập dữ liệu Học máy có liên quan lớn đến thống kê, vì cả hai lĩnh vực đều nghiên cứu việc phân tích dữ liệu, nhưng khác với thống kê, học máy tập trung vào sự phức tạp của các giải thuật trong việc thực thi tính toán Nhiều bài toán suy luận được xếp vào loại bài toán NP-khó, vì thế một phần của học máy là nghiên cứu sự phát triển các giải thuật suy luận xấp xỉ mà có thể xử lí được.

Học máy có tính ứng dụng rất cao bao gồm máy truy tìm dữ liệu, chẩn đoán y khoa, phát hiện thẻ tín dụng giả, phân tích thị trường chứng khoán, phân loại các chuỗi DNA, nhận dạng tiếng nói và chữ viết, dịch tự động, chơi trò chơi và cử động rô-bốt (robot locomotion)”.

Biểu diễn một bài toán học máy.

Theo Mitchell- 1997 : Học máy là cải thiện hiệu quả của một công việc thông qua kinh nghiệm:

Trang 5

- Một công việc (nhiệm vụ) T.

- Đối với các tiêu chí đánh giá hiệu suất P.

- Thông qua (sử dụng) kinh nghiệm E.

Quá trình học máy.

Ta có thể biểu diễn theo sơ đồ sau:

II Thuật toán Naive Bayesian và ứng dụng trong phân loại email.

2.1 Một vài khái niệm xác suất có liên quan

2.1.1 Định nghĩa biến cố, xác suất:

II.1.1.1 Định nghĩa phép thử và biến cố:

Gieo một đồng xu trên mặt phẳng: đó là phép thử.Kết quả có thể xảy ra khi gieo đồng tiền : “Xuất hiện mặt sấp” hoặc “Xuất hiện mặt ngửa”.Và ta định nghĩa “xuất hiện mặt sấp” hay “xuất hiện mặt ngửa” là một biến cố

II.1.1.2 Định nghĩa xác suất:

Dạng cổ điển: Xác suất của biến cố A là một số không âm, ký hiệu P(A),

biểu thị khả năng xảy ra biến cố A và được xác định như sau:

P(A) =m n = Số trường hợp xảy ra A chia cho số trường hợp có thể xảy

ra khi thực hiện phép thử

Trang 6

 Định nghĩa xác suất theo phương pháp thống kê:

Làm đi làm lại một phép thử nào đó n lần mà có m lần biến cố A xuất hiện

thì tỷ số m/n gọi là tần suất của biến cố A Khi n thay đổi, tần suất m/n cũng

thay đổi nhưng nó luôn dao động quanh một số cố định đó Số cố định ấy được gọi là xác suất của biến cố A theo nghĩa thống kê Trên thực tế khi n đủ lớn ta xấp xỉ P(A) bỏi m/n

- Là các phương pháp học phân lớp có giám sát và dựa trên xác suất

2.2Xác suất có điều kiện,công thức xác suất đầy đủ,công thức xác suất Bayes 2.2.1 Xác suất có điều kiện

Xác suất có điều kiện của biến cố A với điều kiện biến cỗ B đã xảy ra là một con số không âm,được ký hiệu P(A|B) nó biểu thị khả năng xảy ra biến cố A trong tình huống biến cố B đã xảy ra

Suy ra:

P(A|B) x P(B)= P(B|A) x P(A) =P(AB)

2.2.2 Công thức xác suất đầy đủ

Gỉa sử B1,B2,……,Bn là một nhóm đầy đủ các biến cố Xét biến cố A sao cho A xảy ra chỉ khi một trong các biến cố B1,B2,….,Bn xảy ra

Khi đó :

Trang 7

2.2.3 Cơng thức Bayes

2.3Phương pháp phân loại Nạve Bayesian:

Phân loại Bayesian là phương pháp phân loại sử dụng tri thức các xác suất đã qua huấn luyện Phương pháp này thích hợp với những lớp bài tốn địi hỏi phải dự đốn chính xác lớp của mẫu cần kiểm tra dựa trên những thơng tin từ tập huấn luyện ban đầu

Theo Charles Elkan, cho X1,….,Xn là các thuộc tính với các giá trị rời rạc được dùng để dự đốn một lớp riêng biệt C cho một mẫu,tập các lớp mà mẫu có thể thuộc về là C={c1,c2,….,cm} Cho một mẫu huấn luyện với giá trị các thuộc tính

tương ứng là x 1 ,……,x n , dự đốn mẫu thuộc về lớp c ϵ C khi xác suất

có giá trị lớn nhất Sử dụng cơng thức xác suất Bayes ta có:

Xác suất P(C=c) được tính dễ dàng từ tập dữ liệu huấn luyện Xác suất …… Khơng thích hợp để dùng cho việc quyết định lớp của C bởi vì giá trị này như nhau đới với mỡi lớp c Như vậy căn cứ để dự đốn lớp của C là dựa vào xác suất

Trang 8

Tuy nhiên việc tính tốn xác suất này rất phức tạp Một phương pháp đơn giản và được đưa ra sớm nhất là phương pháp phân loại Nạve Bayesian,theo đó giả thiết rằng mỡi Xi độc lập với các Xj (i # j ), như vậy ta sẽ có:

thật vậy,sử dụng cơng thức xác suất Bayes ta có :

bằng cách đệ quy viết thừa sớ thứ 2 trong tích trên như sau :

Và cứ tiếp tục như vậy Phương pháp phân loại Nạve Bayesian giả thiết rằng với mỡi Xi kết quả tác động của nó độc lập với các Xj khác Như vậy,chúng ta thừa nhận rằng

và tương tự như vậy đới với X2 … X n

Mỡi thừa sớ trong tích trên có thể được tính dễ dàng từ tập huấn luyện ban đầu Như vậy phương pháp Nạve Bayesian giảm sự phức tạp của việc tính tốn giá trị xác suất

2.4Phân loại email bằng phương pháp Nạve Bayesian

Trang 9

Ở đây mỡi mẫu mà ta xét chính là một email, tập các lớp mà mỡi email có thể thuộc về là C ={spam,non-spam}

Khi ta nhận được một email,nếu ta khơng biết một sớ thơng tin gì về nó thì khó có thể quyết định chính xác email này là spam hay khơng

Nếu như ta có thêm đặc điểm hay thuộc tính nào đó là email thì ta có thể nâng cao hiệu quả nhận được email là spam Một email có nhiều đặc điểm như : tiêu đề,nội dung,có tập đính kèm hay khơng… Ta có thể dựa vào các thơng tin này để nâng cao hiệu quả phân loại email spam

2.4.1 Phân loại email dựa trên thuật tốn Nạve Bayesian

Gỉa thiết mỡi một email được đại diện bởi một vector thuộc tính đặc trưng

là giá trị của các thuộc tính X1,X2,….,Xn tương úng trong khơng gian vector đặc trưng X Ta sử dụng giá trị nhị phân Xi = 1 nếu các đặc điểm của Xi có trong email,ngược lại Xi =0

Ta tính giá trị tương hỡ MI(X,C) (Mutual Information) mà mỡi một đại diện của X thuộc về loại C như sau :

Sau đó ta chọn các thuộc tính có giá trị MI cao nhất Các xác suất P(X),P(C),P(X,C) được tính dựa trên dữ liệu học

Dựa vào cơng thức xác suất Bayes và cơng thức xác suất đầy đủ ta có được

xác suất một email với vector đặc trưng x thuộc về loại c là :

Trang 10

Thực tế thì rất khó tính được xác suất P(X|C) bởi vì giá trị sớ lượng của các vector rất nhiều và nhiều vector hiếm khi hay thậm chí khơng xuất hiện trong tập

dữ liệu huấn luyện Như đã nói phương pháp Nạve Bayesian giả thiết rằng X1,X2,

… ,Xn là những biến cớ độc lập,do đó chúng ta có thể tính được xác suất ở trên như sau :

Với P(Xi|C) và P(C) được tính dựa trên dữ liệu học,việc tính này dựa vào tập huấn luyện ban đầu

Từ xác suất này ta so sánh với một giá trị ngưỡng t mà ta cho là ngưỡng để phân loại một email là spam hay khơng,nếu xác suất này lớn hơn t thì email đó là spam,ngược lại thì ta xem email đó là non-spam

2.4.2 Chọn ngưỡng phân loại email.

Trong phân loại email có hai loại sai lầm :

- Một email được nhận là spam mặc dù thực tế nó là non-spam(false positive)

- Một email được nhận là non-spam mặc dù nó là spam(false negative)

Rõ rang sai lầm thứ nhất là nghiêm trọng hơn bởi vì người sử dụng có thể chấp nhận một email spam vượt qua bộ lọc nhưng khơng chấp nhận một email quan trọng lại bị chặn bởi bộ lọc

Gỉa sử N S và S N tương ứng với hai lỡi trên.Ta giả sử rằng lỡi NS có chi phí gấp λ lần lỡi SN,chúng ta phân loại một email là spam dựa vào tiêu chuẩn sau :

Trang 11

III Các chỉ tiêu đánh giá phân loại email

3.1 Tỉ lệ Recall và tỉ lệ Precision.

- Spam Recall là tỉ lệ phần trăm giữa số email- được bộ lọc coi là spam bị chặn

lại và tổng số email spam(thực sự) đến bộ lọc

- Spam Precision là tỉ lệ phần trăm giữa số email bị chặn thực sự là spam với

số email bị chặn- được bộ lọc coi là spam, precision đánh giá mức độ an toàn của bộ lọc

- Trong đó:

nS→S : Là số email là spam mà bộ lọc nhận là spam

nS→N : Là số email là spam mà bộ lọc nhận là ham

nN→S : Là số email là ham mà bộ lọc nhận là spam

nN→N : Là số email là ham mà bộ lọc nhận là ham

Trang 12

3.2Tỉ lệ lỗi Err(Error) và tỉ lệ chính xác Acc(Accuracy).

- Trong việc phân loại email, hiệu quả phân loại dựa vào tỉ lệ chính xác (Acc)

hoặc tỉ lệ lỗi (Err) Công thức tính tỉ lệ chính xác và tỉ lệ lỗi như sau:

Công thức tính tỉ lệ lỗi

Công thức tính tỉ lệ chính xác

- Trong đó:

NN và N S là số email ham và số email spam cần phận loại

nS→S : Là số email là spam mà bộ lọc nhận là spam

nS→N : Là số email là spam mà bộ lọc nhận là ham

nN→S : Là số email là ham mà bộ lọc nhận là spam

nN→N : Là số email là ham mà bộ lọc nhận là ham

3.3ơTỉ lệ lỗi gia trọng WErr(Weighted Error) và tỉ lệ chính xác gia trọng(Weighted Accuracy).

Trong phân loại email có hai lỗi: lỗi nhận spam ra ham (false negative) và lỗi nhận ham ra spam (false positive) Lỗi false positive là lỗi nghiêm trọng hơn, bởi người dùng có thể chấp nhận một email spam vượt qua bộ lọc nhưng khó có thể chấp nhận một email hợp lệ lại bị bộ lọc chặn lại Để biểu thị tác động của hai loại lỗi này đối với tỉ lệ chính xác và tỉ lệ lỗi, ta sẽ xem mối một email hợp lệ như là λ email hợp lệ Do đó khi một email hợp lệ bị phân loại sai, thay vì ta xem như có một lỗi, ta xem như λ lỗi, và khi phân loại đúng ta xem như là λ lần thành công Ta

Trang 13

có hia tỉ lệ: tỉ lệ chính xác gia trọng WAcc(Weighted Accuracy Rate) và tỉ lệ lỗi gia trọng WErr (Weighted Error Rate) (WErr = 1 - WAcc)

- Trong đó:

Công thức tính tỉ lệ chính xác gia trọng

Công thức tỉ lệ lỗi gia trọng

- Trong đó:

NN và N S là số email ham và số email spam cần phận loại

nS→S : Là số email là spam mà bộ lọc nhận là spam

nS→N : Là số email là spam mà bộ lọc nhận là ham

nN→S : Là số email là ham mà bộ lọc nhận là spam

nN→N : Là số email là ham mà bộ lọc nhận là ham

3.4Tỉ số chi phí tổng hợp TCR(Total Cost Ratio).

Giá trị của tỉ lệ chính xác và tỉ lệ lỗi thường có sự sai lệch cao Để thấy rõ được hiệu quả của cách phân loại, người ta thường so sánh tỉ lệ chính xác hoặc tỉ lệ lỗi giữa bộ phân loại với trường hợp đơn giản nhất được xem là trường hợp ranh giới (baseline) “Baseline” được chọn là trường hợp không sử dụng bộ lọc nào, các email hợp lệ không bao giờ bị chặn lại và các email là spam thì luôn luôn đi qua Như vậy tỉ lệ chính xác và tỉ lệ lỗi gia trọng của trường hợp “Baseline” là:

Trong đó:

Trang 14

- Tỉ sớ chi phí tồn bộ TCR (total cost ratio) cho phép ta so sánh được hiệu quả

của trường hợp sử dụng bộ lọc so với trường hợp “Baseline”:

Cơng thức tính tỉ sớ chi phí tởng hợp

- Giá trị của TCR càng lớn thì hiệu quả phân loại càng cao, với TCR nhỏ hơn 1

thì rõ ràng khơng sử dụng bộ lọc cịn tớt hơn

IV Kho ngữ liệu email chữ

- Tập huấn luyện :

o sớ email spam:594

o sớ email non-spam:922

- Tập kiểm thử:

o sớ email spam :47

o sớ email non-spam :73

V Cài đăt chương trình phân loại email dựa trên phương pháp phân loại

Nạve Bayesian:

5.1 Khái niệm “Token”

Để xem xét nội dung email chúng tơi dùng khái niệm “token”

Các “token” có thể xem như là các từ cần xem xét mà ta tách ra từ nội dung của email Với các kí tự chữ,kí tự sớ,kí tự $,kí tự gạch ngang ‘-’,kí tự gạch dưới

‘_’,kí tự nháy đơn ‘ ‘ ’ là những kí tự cấu tạo thành token Cịn những kí tự cịn lại như khoảng trắng ,kí tự ‘*’, kí tự ‘:’….được xem là kí tự để tách từ hay phân cách các từ Với những từ tách được mà gồm tồn kí sớ thì khơng được xem là token( ví dụ ‘12345’)

5.2 Vector thuộc tính

Ta chuyển mỡi một email sang một vector x=(x 1 ,x 2 ,….,x n )với x 1 , x 2 ,… ,x n là các giá

trị thuộc tính X1,… ,Xn trong khơng gian vector đặc trưng X các thuộc tính có thể

là một token ,nhóm các token… Trong trường hợp đơn giản nhất,mỡi một thuộc tính được thể hiện bởi một token đơn và tất cả các thuộc tính có giá trị luận lý (Boolean),như vậy Xi =1 nếu email chứa token,trường hợp ngược lại Xi =0

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

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w