Phân lớp văn bản với Naive Bayes và ứng dụng trong xây dựng bộ lọc mail rác

14 1.4K 8
Phân lớp văn bản với Naive Bayes và ứng dụng trong xây dựng bộ lọc mail rác

Đ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

Đại học Quốc Gia Thành phố Hồ Chí Minh Đại học Công Nghệ Thông Tin TIỂU LUẬN CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG Đề tài: Phân lớp văn bản với Naïve Bayes và ứng dụng trong xây dựng bộ lọc mail rác GVHD: GS. TSKH. Hoàng Văn Kiếm HVTH: Trần Cảnh Khánh CH1301093 Tháng 10 năm 2014 MỤC LỤC CHƯƠNG I KHÁI QUÁT VỀ PHÂN LỚP VĂN BẢN 3 1.1 Khái niệm về phân lớp – phân loại văn bản (Document /categorization classification) 3 1.1.1 Phân lớp văn bản dựa trên cách tiếp cận hệ chuyên gia 3 1.1.2 Phân lớp văn bản dựa trên cách tiếp cận máy học 3 CHƯƠNG II PHÂN LỚP VĂN BẢN VỚI NAÏVE BAYES 5 2.1 Giới thiệu về phân lớp Naïve Bayes 5 2.2 Mô hình xác suất Naïve Bayes 5 2.2.1 Các mô hình tham số ước lượng và sự kiện 7 2.2.2 Điều chỉnh mẫu 8 2.3 Mô hình Naïve Bayes cho phân lớp văn bản 8 CHƯƠNG III XÂY DỰNG BỘ LỌC THƯ RÁC NAÏVE BAYES 10 3.1 Xử lý 10 3.2 Phương thức thực hiện 10 3.3 Chương trình trình lọc thư rác 12 TÀI LIỆU THAM KHẢO 14 CHƯƠNG I KHÁI QUÁT VỀ PHÂN LỚP VĂN BẢN 1.1 Khái niệm về phân lớp – phân loại văn bản (Document /categorization classification) Phân loại văn bản là công việc phân tích nội dung của văn bản và sau đó ra quyết định (hay dự đoán) văn bản này thuộc nhóm nào trong các nhóm văn bản đã cho trước. Văn bản được phân loại có thể thuộc một nhóm,nhiều nhóm, hoặc không thuộc nhóm văn bản mà ta đã định nghĩa trước. Có hai cách tiếp cận bài toán phân loại văn bản: 1.1.1 Phân lớp văn bản dựa trên cách tiếp cận hệ chuyên gia. Theo cách tiếp cận này, việc phân lớp văn bản tự động được điều khiển bằng tay bởi các chuyên gia tri thức và hệ chuyên gia có khả năng đưa ra quyết định phân lớp. Hệ chuyên gia bao gồm một tập các luật logic định nghĩa bằng tay, cho mỗi loại, có dạng: If (DNF formula) then (category). Công thức DNF (“Disjunctive Normal Form”) là hợp của các mệnh đề liên kết, tài liệu được phân lớp vào category nếu nó thỏa mãn công thức, nghĩa là, nếu nó thỏa mãn ít nhất một mệnh đề trong công thức. Điều trở ngại của cách tiếp cận này là hạn chế trong quá trình thu nhận tri thức từ tài liệu của các hệ thống chuyên gia. Nghĩa là, các luật phải được định nghĩa bằng tay bởi kỹ sư tri thức với sự giúp đỡ của chuyên gia về lĩnh vực được nêu trong tài liệu. Nếu tập hợp của các loại được cập nhật, thì hai nhà chuyên gia phải can thiệp lại, và nếu phân lớp được chuyển hoàn toàn sang một phạm vi khác, một chuyên gia về lĩnh vực này cần thiết phải can thiệp vào và công việc phải được bắt đầu lại từ tập tài liệu hỗn tạp ban đầu. 1.1.2 Phân lớp văn bản dựa trên cách tiếp cận máy học. Theo cách tiếp cận này, một quá trình xử lý quy nạp chung (cũng được gọi là quá trình học) xây dựng tự động một phân lớp cho một loại ci bằng quan sát các đặc trưng của tập hợp các tài liệu đã được phân bằng tay vào ci hay i c bởi chuyên gia về lĩnh vực này; từ đó, quá trình qui nạp thu lượm các đặc trưng để phân lớp một tài liệu mới (không nhìn thấy) vào ci. Trong kỹ thuật máy học, bài toán phân lớp là hoạt động học có giám sát, quá trình học được “giám sát” bởi tri thức của các phân lớp và của các mẫu huấn luyện thuộc chúng. (Học có giám sát là một kĩ thuật của ngành học máy để xây dựng một hàm (function) từ dữ liệu huấn luyện. Dữ liệu huấn luyện bao gồm các cặp gồm đối tượng đầu vào (thường dạng vec-tơ), và đầu ra mong muốn. Đầu ra của một hàm có thể là một giá trị liên tục (gọi là hồi qui), hay có thể là dự đoán một nhãn phân loại cho một đối tượng đầu vào (gọi là phân loại). Nhiệm vụ của chương trình học có giám sát là dự đoán giá trị của hàm cho một đối tượng bất kì là đầu vào hợp lệ, sau khi đã xem xét một số ví dụ huấn luyện (nghĩa là, các cặp đầu vào và đầu ra tương ứng). Để đạt được điều này, chương trình học phải tổng quát hóa từ các dữ liệu sẵn có để dự đoán được những tình huống chưa gặp phải theo một cách "hợp lí") CHƯƠNG II PHÂN LỚP VĂN BẢN VỚI NAÏVE BAYES 2.1 Giới thiệu về phân lớp Naïve Bayes Phân lớp Naïve Bayes giả định rằng sự hiện diệ hoặc vắng mặt của một đặc tính là độc lập với sự hiện diện và vắng mặt của các đặc tính khác, mà được quy định bởi các tham số phân lớp, ví dụ: một loại trái cây được phân lớp là trái táo nếu nó màu đỏ, tròn, có đường kính 3 decimet. Một phân lớp Naïve Bayes xem xét các đặc tính này tham gia một cách độc lập để xác định xác suất mà loại trái cây này là quả táo, bất kể sự hiện diện hay vắng mặt của các đặc tính khác. Đối với một số mô hình xác suất, phân lớp Naïve Bayes có thể được huân luyện một cách hiệu quả trong môi trường học có giám sát. Trong nhiều ứng dụng thực tế, ước lượng thâm số cho mô hình Naïve Bayes sử dụng phương pháp hợp lý cực đại, nghĩa là khi sử dụng mô hình Naïve Bayes ta phải chấp nhậ xác suất Bayes. Mặc dù sử dụng các giả định tương đối đơn giản, nhưng phân lơp Naïve Bayes có thể áp dụng rất tốt trong nhiều trường hợp phức tạp trong thế giới thực. Một ưu điểm của mô hình Naïve Bayes là chỉ cần sử dụng khối lượng nhỏ dữ liệu huấn luyện để ước lượng các tham số cần thiết để phân lớp. Bởi vì các biến độc lập được giả định, chỉ có sự thay đổi các biến cho mỗi lớp cần được xác định chứ không phải trên toàn bộ hiệp phương sai. 2.2 Mô hình xác suất Naïve Bayes Mô hình xác suất cho một phân lớp là mô hình có điều kiện: p (C|F 1 ,F 2 , ,F n ) thông qua các lớp phụ thuộc vào biến C với một số lượng nhỏ các kết quả hoặc các lớp, có điều kiện trên nhiều tham số đặc tính từ F 1 tới F n . Vấn đề là khi số lượng n đặc tính là rất lớn hoặc khi một đặc tính có quá nhiều giá trị thì việc dựa vào mô hình xác suất là không khả thi. Do đó, phải tái cấu trúc lại mô hình để dễ xử lý hơn. Định lý Bayes liên quan đến xác suất có điều kiện và xác suất biên của các sự kiện ngẫu nhiên C và F: )Pr( )Pr()|Pr( )|Pr( F CCF FC = (1) Trong đó, P(C) là xác suất ưu tiên của giả thuyết C; P(F) là xác suất ưu tiên của dữ liệu huấn luyện F; P(C|F) là xác suất ưu tiên với F cho trước; P(F|C) là xác suất ưu tiên của F với C cho trước. Sử dụng định lý Bayes cho tham số đặc tính F n , ta có thể viết lại như sau: (2) Trong thực tế ta chỉ cần quan tâm tới tử số, vì mẫu số không phụ thuộc vào C và các giá trị của đặc tính F i cho trước, do đó mẫu số có giá trị không đổi, tử số tương đương với mô hình xác suất (1) có thể viêt lại bằng các sử dụng phương pháp lặp của định nghĩa xác suất có điều kiện như sau: p(C,F 1 , ,F n ) = p(C)p(F 1 |C)p(F 2 |C,F 1 ),p(F 3 |C,F 1 ,F 2 ) p(F n |C,F 1 ,F 2 , ,F n-1 ) (3) Điều này nghĩa là đặc tính F i độc lập có điều kiện với thuộc tính F j với j ≠ i và p(F i |C,F j ) = p(F i |C), mô hình (1) có thể được diễn giải như sau: ∏ == i in CFpCpCFpCpCFpCpFFCp )|()(), |()()|()(), ,,( 211 (4) Điều này nghĩa là theo các giả định độc lập ở trên, phân phối có điều kiện thông qua biến phân lớp C có thể được thể hiện như sau: ∏ = = n i in CFpCp Z FFCp 1 1 )|()( 1 ), ,,( (5) Trong đó Z là một yếu tố tỷ lệ chỉ phụ thuộc vào F 1 ,F 2 ,…,F n , là một hằng số nếu các biến đặc tính đã xác định giá trị. Sự phân lớp tương ứng với mô hình này là một hàm phân lớp được định nghĩa như sau: ∏ = ==== n i iicn cCfFpcCPffclassify 1 1 )|()(maxarg), ,( (6) 2.2.1 Các mô hình tham số ước lượng và sự kiện Tất cả các tham số của mô hình (như độ ưu tiên của lớp và sự phân phối xác suất của các đặc tính) có thể xấp xỉ với tần số tương đối của tập huấn luyện. Đây là những ước tính khả năng tối đa của xác suất. Độ ưu tiên của một lớp có thể được tính bằng các giả sử các lớp có xác suất ngang nhau (ví dụ: độ ưu tiên = 1/số lượng các lơp), hoặc bằng các tính ước lượng độ ưu tiên của lớp từ tập huấn luyện (ví dụ: độ ưu tiên của một lớp cụ thể = số mẫu trong lớp / tổng số mẫu). Để ước lượng các tham số cho sự phân phối của một đặc tính, ta phải giả định sự phân phối hoặc phát sinh các mô hình phi tham số có các đặc tính từ tập huấn luyện. Các giả định về sự phân phối của các thuộc tính được gọi là mô hình sự kiện của phân lớp Naïve Bayes. Đối với các đặc tính rời rạc thường gặp phải trong phân loại văn bản (bao gồm lọc thư rác) mô hình đa thức và Bernoulli thường được sử dụng. Trong khi đó nếu làm việc với dữ liệu liên tục, một giả thiết điển hình là các giá trị liên tục kết hợp với mỗi lớp được phân phối theo các phân phối Gaussian. Ví dụ, giả sử dữ liệu huấn luyện có một thuộc tính liên tục x. Trước tiên cần phân đoạn dữ liệu của lớp, sau đó tính toán gia trị trung bình và phương sai của x trong mỗi lớp. Cho c µ là giá trị trung bình của x trong lớp c. Sau đó, mật độ xác suất của các giá trị của một lớp cho trước P(x = v | c) có thể được tính bằng cách đưa v vào phương trình cho một phân phối Gaussian bằng c µ và 2 c σ . 2 2 2 )( 2 1 )|( c c v c ecvxP σ µ πσ − − == Một kỹ thuật phổ biến khác để xử lý các giá trị liên tục là sử dụng phương pháp chia khoảng rời rạc hóa các giá trị của đặc tính, để có được một tập mới của các đặc tính được phân phối theo mô hình Bernoulli. Tóm lại, phương pháp phân phối là lựa chọn tốt nhất nếu dữ liệu huấn luyện là nhỏ, hoặc nếu xác định được dữ liệu phân phối chính xác. Phương pháp rời rạc hóa có xu hướng làm tốt hơn nếu dữ liệu huấn luyện lớn bởi vì nó sẽ được học để phù hợp với việc phân phối dữ liệu lớn. 2.2.2 Điều chỉnh mẫu Nếu một lớp và giá trị của đặc tính chưa từng xuất hiện cùng nhau trong dữ liệu huấn luyện thì tần số dựa vào ước lượng xác suất sẽ bằng 0. Đây là một vấn đề bởi vì nó sẽ xóa sạch tất các thông tin trong các xác suất khác khi được nhân với nó. Do đó, nó thường được kết hợp với việc điều chỉnh mẫu nhỏ, gọi là Pseudocount, trong tất cả các ước lượng xác suất như vậy sẽ không có xác suất nào có giá trị là 0. 2.3 Mô hình Naïve Bayes cho phân lớp văn bản Xét đến vấn đề phân loại văn bản theo nội dung, văn bản được rút từ lớp các văn bản được mô hình hóa thành tập các từ trong đó xác suất (không phụ thuộc) của từ thứ i của một văn bản cho trước xuất hiện trong một văn bản thuộc lớp C có thể được viết như sau p(w i | C). (Đơn giản, chúng ta giả định xác suất một từ trong văn bản là không phụ thuộc vào chiều dài của văn bản hoặc tất cả các vằn bản đều có cùng độ dài). Khi đó xác suất của một vằn bản cho trước D trong một lớp cho trước C là: ∏ = i i CwpCDp )|()|( Sử dụng kết quả của định lý Bayes, và giả định rằng chỉ có 2 lớp, S và ⌐S (ví dụ spam và non spam), ta có thể viết như sau: ∏ ¬¬ = ¬ i i i Swp Swp Sp Sp DSp DSp )|( )|( )( )|( )|( Như vậy tỷ lệ xác suất p(S |D) / p(¬S | D) có thể được thể hiện bằng một loạt các tỷ lệ có khả năng. Xác suất thực sự của p(S | D) có thể được tính bằng log(p(S| D) / p(¬S | D)) dựa trên cơ sở p(S | D) + p(¬S | D) = 1. Áp dụng cho tất cả các tỷ lệ, ta có ∑ ¬¬ = ¬ i i i Swp Swp Sp Sp DSp DSp )|( )|( ln )( ln )|( )|( ln Cuối cùng các văn bản có thể được phân loại như sau: nó được phân loại là spam nếu 0 )|( )|( ln > ¬ DSp DSp và ngược lại là non-spam. CHƯƠNG III XÂY DỰNG BỘ LỌC THƯ RÁC NAÏVE BAYES 3.1 Xử lý Đối với một từ cụ thể sẽ có một xác suất cụ thể xuất hiện trong mail rác hoặc mail hợp lệ. Ví dụ hầu hết người sử dụng mail đều thấy từ “Viagra” xuất hiện trong mail rác mà rất hiếm khi xuất hiện trong mail hợp lệ. Bộ lọc sẽ không biết xác suất trước, mà phải trải qua quá trình huấn luyện. Đối với tất cả các từ trong quá trình huấn luyện email, bộ lọc sẽ điều chỉnh xác suất của mỗi từ xuất hiện trong mail rác và mail hợp lệ vào cơ sở dữ liệu của nó. Sau khi huấn luyện, xác suất của từ được sử dụng để tính xác suất mà một email với một tập từ cụ thể thuộc về một trong hai loại. Mỗi từ trong email sẽ góp phần vào xác suất spam của email hoặc chỉ những từ được quan tâm nhất. Sự góp phần này được gọi là xác suất sau và nó được tính bởi định lý Bayes. Sau đó, xác suất spam của email sẽ được tính trên tất các các từ trong email, và nếu tỷ lệ tổng vượt quá một ngưỡng nhất định (ví dụ 95%), bộ lọc sẽ đánh dấu đó là mail rác. Quá trình huấn luyện ban đầu có thể được tinh chế khi có xác nhận về sự đánh giá sai của bộ lọc. Điều này cho phép bộ lọc tự động thích ứng với môi trường phát triển của mail rác. 3.2 Phương thức thực hiện Để đánh giá 1 email ta phải 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à giá trị các thuộc tính X 1 , X 2 …X n trong không gian vector đặc trưng X. Mỗi thuộc tính được thể hiện bởi một token đơn. Theo phương pháp đơn giản nhất ta có thể lập ra một từ điển chứa các token. Sau đó với mỗi token trong email nếu nó xuất hiện trong từ điển thì giá trị thuộc tính sẽ là 1, ngược lại thì là 0. Tuy nhiên trên thực tế, tập huấn luyện của ta không thường là một bộ từ điển như vậy. Thay vào đó tập huấn luyện lúc này sẽ gồm có 2 kho ngữ liệu. Kho ngữ liệu Spam sẽ chứa một list các email đã [...]... ) ) ns: số email chứa token trong kho spam nn: số email chứa token trong kho non-spam s: số lần token xuất hiện trong kho spam n: số lần token xuất hiện trong kho non-spam Ns: tổng số email trong kho spam Nn: tổng số email trong kho non-spam 3.3 Chương trình trình lọc thư rác Trước tiên, nhập dữ liệu huấn luyện, chọn file dữ liệu mail hợp lệ trong phần Good mail (ví dụ chọn file good.txt trong Training... của một token xuất hiện 100 lần ở 100 email khác nhau là bằng với khả năng spam của một token xuất hiện 100 lần chỉ ở trong 1 email Thay vào việc tính xác suất này dựa theo số lần xuất hiện của token trong từng kho ngữ liệu ta có thể dựa vào số email chứa token trong từng kho ngữ liệu Ví dụ một token w có số email chứa nó trong kho ngữ liệu spam và non-spam là ns và nn thì xác suất spam của token w này... đó Xác suất này tương đương với xác suất spam của 1 email chỉ chứa token đó và là email spam Việc tính xác suất này thì có nhiều phương pháp Ta có thể tính dựa trên số lần xuất hiện của token này trong mỗi kho ngữ liệu học ban đầu Ví dụ một token w có số lần xuất hiện trong kho ngữ liệu spam là s và non-spam là n, số email tổng cộng ở kho spam và non-spam tương ứng là Ns và Nn thì xác suất spam của... hiện trong kho ngữ liệu non-spam và ngược lại Cách thích hợp thì ta sẽ gán cho chúng một giá trị phù hợp Với những token chỉ xuất hiện trong kho ngữ liệu spam thì ta gán xác suất spam cho nó là giá trị N gần với 1 ( chẳng hạn 0,9999) và ngược lại thì gán xác suất spam là giá trị M gần với 0 ( chẳng hạn 0,0001) Như vậy ta có công thức tính xác suất spam của token dựa trên số lần xuất hiện và số email... phương pháp này là khả năng spam của một token xuất hiện 1 lần trong 1 email là bằng với khả năng spam của một token xuất hiện 100 lần trong 1 email Vì vậy chúng ta sử dụng cách thứ ba là tổng hợp của hai cách trên : P(X=w | C=spam) = ((s*ns)/Ns)/((ns*s)/Ns+(nn*n)/Nn)) Còn đối với các token chỉ xuất hiện trong kho ngữ liệu này mà không xuất hiện trong kho ngữ liệu kia thì không thể kết luận một token chỉ... spam trong phần Spam mail( ví dụ file spam.txt trong training data), sau đó nhấn load để có được dữ liệu huấn luyện Giao diện chính chương trình Để test một mail có phải là spam hay không, ta chọn file dữ liệu trong mục Test file (có thể chọn các file trong thưc mục Test data), sau đó nhấn test, chương trình sẽ tính xác suất của mail đó Nếu xác suất là 1 nghĩa là mail đó làm spam, xác suất càng gần với. .. gần với 1 thì khả năng mail đó là spam càng cao TÀI LIỆU THAM KHẢO [1] McCallum, Andrew, and Kamal Nigam "A comparison of event models for Naive Bayes text classification." AAAI-98 workshop on learning for text categorization Vol 752 1998 [2] Metsis, Vangelis, Ion Androutsopoulos, and Georgios Paliouras "Spam filtering with Naive Bayes which Naive Bayes? " Third conference on email and anti-spam (CEAS)...được xác định là spam trước đó, và tương tự với kho ngữ liệu Non-spam sẽ chứa các email hợp lệ Như vậy nếu ta vẫn để giá trị các thuộc tính là 0 hoặc 1 thì sẽ rất khó đánh giá được 1 email là spam hay không Đặc biệt nếu email nhận được là dài, khi đó nếu ta vẫn sử dụng giá trị thuộc tính là 0 hoặc 1 thì sự xuất hiện của 1 token 100 lần cũng tương đương với việc xuất hiện chỉ 1 lần Để khắc phục... Georgios Paliouras "Spam filtering with Naive Bayes which Naive Bayes? " Third conference on email and anti-spam (CEAS) Vol 17 2006 [3] 2000 Mathematics Subject Classification: 60-04, 65C60 Keywords: Naive Bayesian classifier, document classification, Web Mining . Thông Tin TIỂU LUẬN CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG Đề tài: Phân lớp văn bản với Naïve Bayes và ứng dụng trong xây dựng bộ lọc mail rác GVHD: GS. TSKH. Hoàng Văn Kiếm HVTH: Trần Cảnh Khánh CH1301093. VỀ PHÂN LỚP VĂN BẢN 3 1.1 Khái niệm về phân lớp – phân loại văn bản (Document /categorization classification) 3 1.1.1 Phân lớp văn bản dựa trên cách tiếp cận hệ chuyên gia 3 1.1.2 Phân lớp văn. trình lọc thư rác 12 TÀI LIỆU THAM KHẢO 14 CHƯƠNG I KHÁI QUÁT VỀ PHÂN LỚP VĂN BẢN 1.1 Khái niệm về phân lớp – phân loại văn bản (Document /categorization classification) Phân loại văn bản là

Ngày đăng: 20/05/2015, 10:26

Từ khóa liên quan

Mục lục

  • CHƯƠNG I KHÁI QUÁT VỀ PHÂN LỚP VĂN BẢN

    • 1.1 Khái niệm về phân lớp – phân loại văn bản (Document /categorization classification)

      • 1.1.1 Phân lớp văn bản dựa trên cách tiếp cận hệ chuyên gia.

      • 1.1.2 Phân lớp văn bản dựa trên cách tiếp cận máy học.

      • CHƯƠNG II PHÂN LỚP VĂN BẢN VỚI NAÏVE BAYES

        • 2.1 Giới thiệu về phân lớp Naïve Bayes

        • 2.2 Mô hình xác suất Naïve Bayes

          • 2.2.1 Các mô hình tham số ước lượng và sự kiện

          • 2.2.2 Điều chỉnh mẫu

          • 2.3 Mô hình Naïve Bayes cho phân lớp văn bản

          • CHƯƠNG III XÂY DỰNG BỘ LỌC THƯ RÁC NAÏVE BAYES

            • 3.1 Xử lý

            • 3.2 Phương thức thực hiện

            • 3.3 Chương trình trình lọc thư rác

            • TÀI LIỆU THAM KHẢO

Tài liệu cùng người dùng

Tài liệu liên quan