báo cáo đề tài phân loại thư rác dùng thuật toán nave bayes cải tiến của paul

22 1.4K 10
báo cáo đề tài phân loại thư rác dùng thuật toán nave bayes cải tiến của paul

Đ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 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 HỌC PHẦN: XỬ LÍ NGƠN NGỮ TỰ NHIÊN ĐỀ TÀI: PHÂN LOẠI THƯ RÁC DÙNG THUẬT TỐN NẠVE BAYES CẢI TIẾN PAUL GRAHAM Giáo viên hướng dẫn: PGS TS Lê Thanh Hương Sinh viên thực Nguyễn Đình Dũng Nguyễn Thành Lâm Vũ Đơng Lâm Đồn Ngọc Sơn 20086079 20081487 20081496 20082211 Trần Huy Hưng 20081307 Lời nói đầu Ngày phát triển khơng ngừng công nghệ thông tin, đặc biệt đời Internet đưa người lên tầm cao Sự đời dịch vụ Internet làm cho nhu cầu trao đổi thơng tin, tìm kiếm thông tin người đáp ứng cách tốt nhanh Có nhiều dịch vụ phát triển 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 Một dịch vụ góp phần khơng nhỏ vào việc giúp người trao đổi thông tin cách nhanh chóng dịch vụ thư điện tử (electronic mail) Tốc độ phát triển dịch vụ thư điện tử ngày lợi ích mà mang lại cho lớn Qua thư điện tử người dùng không nhận thông tin mong muốn mà cịn nhận âm hình ảnh, đồ họa kho liệu khổng lồ mà trước việc trao đổi thư từ qua tay khơng có Tuy nhiên, thư điện tử không mang đến cho người nhiều lợi ích mà cịn nhiều tác hại vơ bổ khác, gây thiệt hại to lớn khơng biết cách loại bỏ phịng chống Một vấn đề nghiêm trọng cần giải thư điện tử nạn thư rác hay cịn gọi “spam” Đó thư từ quảng cáo, hay thư điện tử mà nội dung thường có hại cho người dùng Qua trình học tập tìm hiểu Xử lí ngơn ngữ tự nhiên, cụ thể phương pháp phân loại văn nhóm em chọn đề tài: “PHÂN LOẠI THƯ RÁC DÙNG THUẬT TOÁN NAÏVE BAYES CẢI TIẾN PAUL GRAHAM” Qua đề tài này, nhóm em cố gắng nắm bắt tốt phương pháp phân loại văn thuật toán Naive Bayes từ xây dựng chương trình ứng dụng lọc thư rác hiệu với dịch vụ thư điện tử 2 I Giới thiệu Bài toán phân loại thư rác Khái niệm thư rác 1.1 Thư rác gì? Thư rác hay cịn gọi spam mail thư điện tử vô bổ thường chứa loại quảng cáo gửi cách vô tội vạ chất lượng loại thư thường thấp Đơi khi, dẫn dụ người nhẹ dạ, tìm cách đọc số thể tín dụng tin tức cá nhân họ Có thể nói thư rác hình thức “tra người dùng thư điện tử” quảng cáo Các thư rác vơ hại ngày người thư rác mà bị đầy hộp thư (có người nhận trăm thư rác ngày mà có ba nội dung khác nhau!!!) Có thể thắc mắc người ta lại lặp lặp lại thư quảng cáo chục lần cho người, đơn giản họ muốn dùng hiệu ứng tâm lí… Khi hình ảnh sản phẩm đập vào mắt đến lúc cần mua thứ có chức tương tự (hay loại) hình ảnh thương hiệu thư rác lên óc trước tiên Hoặc giả dụ đơi “lỡ tay” hay tị mị người đọc “click” vào link “lưới nhện giăng sẵn chờ mồi ” Như vậy, theo định nghĩa thư rác có hại cho máy tính (hiểu theo nghĩa vật chất), đơi cịn làm bực khó chịu làm cho thư từ khác (nhất thư gửi có nghĩa quan trọng) bị lẫn lộn đống thư mà chủ yếu thư rác Khiến cho việc tìm kiếm thời gian xố thư rác lại xố nhầm thư quan trọng 1.2 Sự cần thiết phải phân loại thư rác 3 Spam coi vấn đề “lớn” mạng Internet Con số “spam” gia tăng hàng ngày nghiện cứu chiếm tỉ lệ lớn tổng số lượng email gửi toàn giới Tốc độ tăng trưởng Spam thống kê theo lược đồ sau: Ngày nay, spam mail trở thành hình thức quảng cáo chuyên nghiệp, phát tán virus, ăn cắp thơng tin … chương trình anti-spam cho email cần thiết Chúng ta phải nhiều thời gian để xóa email “khơng mời mà đến”, vơ ý cịn bị nhiễm virus, trojan, spyware … nặng nề thơng tin thẻ tín dụng, tài khoản ngân hàng qua email dạng phishing Đối với người dùng “checkmail” mà gặp phải thư rác gây cảm giác khó chịu làm tốn thời gian để xóa thư đơi cịn gây hậu nghiệm trọng người dùng có 4 tính tị mị… Vì việc xây dựng hệ thống lọc thư rác cá nhân tự động cần thiết 1.3 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ị số biện pháp đối phó với spam, có việc thông qua 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 trung tâm phản ứng nhanh liên kết ISP (Internet service Provider) toàn cầu, đồng thời tăng cường chiến dịch tuyên truyền cộng đồng nguy hại cách đối phó với thư rác Hiện giải pháp sử dụng nhiều dùng phần mềm tích hợp với hệ thống thư hoạt động theo chế “lọc theo nội dung” “lọc theo danh sách website chuyển tiếp” - Lọc email qua nội dung: Một chương trình thu thập thơng tin nằm phần nội dung email để giúp cho quản trị viên máy chủ email tách thư rác khỏi hệ thống Phần mềm lướt qua tồn thơng điệp để tìm kiếm từ khóa có liên quan đến thư rác Chẳng hạn bạn bác sĩ, thư bạn mong nhận có liên quan đến vấn đề giới tính Vì vậy, “viagra” từ khóa lọc thư quan trọng Các chế lọc thư phức tạp lọc nguyên đoạn mã lệnh đầu thông điệp, đoạn mã bám theo suốt trình luân chuyển email cung cấp thơng tin chuyến Nếu site spam có tên lịch trình đó, phần mềm tự động chặn thông điệp lại - Lọc theo danh sách website chuyển tiếp: Một công nghệ lọc khác dựa danh sách site chuyển tiếp Công nghệ lọc kiểm tra chặn thông điệp truyền tải qua 5 điểm chuyển tiếp mở rộng, tức hệ thống Internet cho phép người sử dụng dùng chúng điểm cảnh thư Những kẻ công spam (spammer) thường xuyên sử dụng điểm chuyển tiếp mở để che dấu tung tích xuất xứ Trong nhiều trường hợp, tin tặc tận dụng lỗ hổng bảo mật để “ra lệnh” cho máy chủ chuyển tiếp làm công việc spammer  Đối với email cá nhân phương pháp lọc thư rác phổ biến “phân loại qua nội dung email” việc ứng dụng phương pháp phân loại văn Phân loại email thực chất phương pháp “phân loại văn hai lớp” dựa vào nội dung email gửi đến Trong đề tài nhóm em xin trình bày phương pháp phân loại văn phổ biến “Naive Bayes” ứng dụng phương pháp để phân loại email cá nhân Email Client Bài toán phân loại văn 2.1 Định nghĩa Có nhiều cách định nghĩa khác phân loại văn nói cách ngắn gọn dễ hiểu: Phân loại văn phân loại không cấu trúc tài liệu văn dựa tập hợp hay nhiều loại văn định nghĩa trước Quá trình thường thực thi hệ thống tự động gán cho tài liệu văn loại Trong thực tế ứng dụng quan trọng phân loại văn 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 tài liệu họ tập trung vào số loại văn có liên quan đến thơng tin mà họ cần tìm kiếm) Phân loại 6 văn góp phần quan trọng việc tổ chức thơng tin quản lí tài liệu Ứng dụng phổ biến phân loại văn trợ giúp cho việc tìm kiếm lọc văn tăng tốc độ truy cập thông tin Phân loại văn đóng vai trị quan trọng việc đa dạng hóa chun nghiệp hóa cơng việc quản lí thơng tin là: việc xếp loại thư điện tử file hệ thống, xác minh chủ đề để trợ giúp cho tiến trình hoạt động xử lí, tìm kiếm hay duyệt cấu trúc, để tìm kiếm loại tài liệu mà người dùng quan tâm Như làm để phân loại văn bản? Câu trả lời làm rõ ta sâu vào tìm hiểu tiến trình phân loại văn 2.2 Tiến trình thực phân loại văn Vấn đề đặt cho toán phân loại văn bắt đầu sau: Đưa tập tài liệu mẫu D, cần phân bổ thành số loại tài liệu định - tài liệu cần gán cho loại văn Nhiệm vụ tìm hệ thống phân hoạch, mà cung cấp cho ta nhãn y phù hợp cho số tài liệu D vừa đưa vào từ nguồn tài nguyên giống văn mẫu Tổng quát với hệ thống phân loại điển mơ tả sơ đồ sau gồm có tiến trình: 7 Trong thực tế khâu tiền xử lí khâu lựa chọn đặc trưng cho văn (đặc trưng dấu hiệu quan trọng để nhận biết văn bản) Có thể coi khâu tiền đề cần thiết cho việc học phân loại • Các bước tiến trình phân loại văn bản: - Lựa chọn đặc trưng văn - Biểu diễn văn - Học phân loại văn - Tiến hành phân loại văn Trong đó, lựa chọn đặc trưng văn q trình phân tích văn thành từ hay cụm từ Biểu diễn văn cách thể văn dạng vector mà khơng gian tập đặc trưng lựa chọn Căn vào đặc trưng chọn học phân loại văn Naive Bayes hay kNN… Đầu trình máy dùng để phân loại tài liệu cần thiết (tiến hành phân loại văn bản) 2.3 Phương pháp PLVB – Mơ hình xác suất Nạve Bayes Dựa đặc trưng văn xuất nhiều chiến lược phân loại văn đề xuất áp dụng tập tài liệu khác Hiệu phương pháp tương đối hỗ trợ nhiều truy cập, quản lí, lọc thơng tin Các phương pháp phân loại văn cho kết tốt thường sử dụng như: - Nguyên mẫu (prototype) - Mơ hình xác suất Naive Bayes - Phương pháp SVM (Support Vectors Machines) - Phương pháp định (Decision Trees) 8 - Phương pháp mạng neuron (Neuron Network) Trong phạm vi đề tài, nhóm em xin trình bày cụ thể phương pháp phân loại văn sử dụng mơ hình xác suất Nạve Bayes Kĩ thuật phân hoạch Naive Bayes dựa sở định lí Bayes đặc biệt phù hợp cho trường hợp phân loại có kích thước đầu vào lớn Mặc dù Naive Bayes đơn giản có khả phân loại tốt nhiều phương pháp phân hoạch phức tạp khác Với loại văn bản, thuật tốn Naive Bayes tính cho lớp văn xác suất mà tài liệu cần phân hoạch thuộc loại Tài liệu gán cho lớp văn có xác suất cao Chi tiết thuật toán Naive Bayes trình bày kĩ phần sau Bài tốn phân loại thư rác Phân loại thư rác thực chất tốn phân loại văn hai lớp, đó: tập tài liệu mẫu ban đầu thư rác (spam) thư hợp lệ (ham), văn cần phân lớp Email gửi đến client Kết đầu trình phân loại 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 qt mơ tả sau: 9 Tiến trình phân loại thư điện tử máy lọc văn biểu diễn sau: 10 10 Các thuật tốn áp dụng để phân loại văn áp dụng để phân loại thư rác Phương pháp Naive Bayes hiệu nhỏ phương pháp khác đơn giản 11 11 II Thuật tốn Nạve Bayes lọc thư rác (Spam Filter) Thuật toán phân loại văn Bayes Như trình bày phần trước “Naive Bayes” giả thuyết nới lỏng phụ thuộc thống kê, coi từ xuất văn độc lập thống kê Cơ sở phương pháp phân loại văn Naive Bayes chủ yếu dựa giả định Bayes Giả thuyết Bayes gán cho tài liệu văn cần phân loại giá trị xác suất Xác suất P(ck| di) gọi xác suất mà tài liệu di có khả thuộc vào lớp văn ck tính tốn sau: tài liệu di gán cho loại văn có xác suất hậu nghiệm cao nên biểu diễn cơng thức: N tổng số tài liệu Tóm lại phân loại văn sử dụng thuật tốn Naive Bayes diễn đạt cách ngắn gọn sau: Với văn D (document), người ta tính cho loại xác suất mà tài liệu D thuộc vào lớp tài liệu việc sử dụng luật Bayes: 12 12 Trong đó: D tài liệu cần phân loại, Ci tài liệu Theo giả định Naive Bayes xác suất từ tài liệu D độc lập với ngữ cảnh xuất từ đồng thời độc lập với vị trí từ tài liệu Xác suất P(D|Ci) tính tốn từ tần suất xuất từ đơn wj (word) tài liệu D l tổng số từ w tài liệu D: Như biểu thức (1) viết lại sau: Giá trị lớn xác suất P(Ci | D) đưa nguời làm công tác phân loại Giá trị gọi ngưỡng hay ranh rới lớp văn mà chúng chứa tài liệu D Quá trình hoạt động lọc thư rác Bayes Bộ lọc thư Bayes dựa sở tất yếu hầu hết kiện phụ thuộc xác suất kiện xuất tương lai, suy luận từ xuất trước kiện 3.1 Tạo sở liệu từ Bayes thích hợp 13 13 Trước lọc thư cần áp dụng phương thức này, người sử dụng cung cấp sở liệu với tập từ tokens (ví dụ $, địa IP vùng ) tập hợp mẫu thư coi thư rác (spam) tập mẫu thư coi thư hợp lệ 3.2 Tạo sở liệu cho thư hợp lệ (Thích hợp với người sử dụng hay với công ty riêng): cơng việc thay đổi theo người sử dụng quan khác Nói ngắn gọn thêm vào file liệu lưu trữ cụm từ thường xuất thư hợp lệ quan hay người dùng làm sở phân loại thư hợp lệ Một vấn đề quan trọng cần lưu ý việc phân tích thư hợp lệ có hiệu thư điện tử quan 3.3 Tạo sở liệu cho thư rác Ngoài thư hợp lệ “ham” lọc Bayes dựa file liệu thư rác File liệu thư rác phải bao gồm mẫu lớn để hiểu thư rác phải luôn cập nhật với thư rác gần Điều chắn lọc Bayes có khả nhận biết thủ thuật thư rác gần đem lại tỉ lệ tìm kiếm thư rác lớn Ngắn gọn tạo file liệu chứa cụm từ mà thường xuất 14 14 thư rác ví dụ loại thư rác tiếng anh thường chứa từ “Greeting card” hay “$$$” “Free money” Những cụm từ gán cho độ tin cậy định, sở để phân loại thư rác Cũng giống phân loại thư hợp lệ khái niệm thư rác tùy thuộc vào người sử dụng nhiều 3.4 Tính giá trị xác suất thuật tốn Nạve Bayes Máy lọc thư rác sử dụng thuật toán Naive Bayes cung cấp chức lọc thư tự rác tự động Trên sở sử dụng xác suất gần để tính tốn khả thư điện tử thư rác hay khơng Sự tính tốn trình tìm kiếm từ thường xuất thư điện tử so sánh chúng với tập mẫu Thuật toán bắt đầu việc học nội dung thư điện tử hợp lệ nội dung thư rác Để sau nhận vào thư điện tử mới, thông tin có sẵn từ tập mẫu, tiến trình tiền xử lí trước áp dụng sở nội dung thư điện tử Nguyên tắc tính xác suất thuật toán Bayes: - Giả sử nội dung 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 để thư điện tử thư rác: P(spam|content) - Word1, word2, word3…wordm từ đặc trưng xuất content Ta có: 15 15 Trong total xác đị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 tính tốn giả định xác suất từ bao hàm văn độc lập với từ khác tài liệu Một cách nhìn khác giả định khơng xác Bởi dẫn có hiệu để tính tốn đơn giản trả kết một kết gần Giả định gọi giả định Naive Bayes Thuật tốn Nạve Bayes cải tiến (theo phương pháp Pau Graham) Phương pháp cài đặt thuật tốn Nạve Bayes theo cách Paul Gram (trích viết A Plan For Spam link nguồn sau http://www.paulgraham.com/spam.html) Theo tác giả viết Paul Graham, để giải toán thư rác, ta sử dụng thuật tốn Nạve Bayes với vài thay đổi hay gọi cải tiến so với thuật toán ban đầu 16 16 Ý tưởng thuật toán cải tiến sử dụng xác suất kết hợp từ xuất mail Vẫn cách tiếp cận theo hướng xác suất thống kê giải thuật Naïve Bayes, cơng thức có khác cơng thức ban đầu Nhóm em trình bày cơng thức chi tiết giải thích cơng thức phần Dễ thấy, có từ thường xuất thư rác xuất thường xun làm trở thành dấu hiệu để nhận biết thư rác Những từ có xác suất xuất thư rác lớn xác suất xuất thư thường Các xác suất P(SPAM|w) có giá trị lớn (gần 1) có xuất từ mail làm tăng thêm xác suất mail spam, có nhiều từ mức độ nghi ngờ thư thư rác tăng Thêm điều cần lưu ý vấn đề “vứt nhầm thư đúng” – false positives – có nghĩa email thư thường (còn gọi HAM) lại bị gán nhầm mác SPAM bị cho vào SPAM Folder – nơi mà người sử dụng email kiểm tra tới Đối với hầu hết người dùng, việc “vứt nhầm thư đúng” có tác hại nghiêm trọng nhiều so với việc họ phải nhận thư rác Nếu người nhận nhiều thư rác khó tìm nhận thư thường bị “lạc” mục Thư rác Và dĩ nhiên, lọc thư rác hiệu tức xác suất gán mác cho thư lớn (cái tốt rồi) đồng nghĩa với việc gặp nhiều khó khăn việc lục lọi hịm thư rác để xem có thư quan trọng bị vứt nhầm khơng! Sau đây, nhóm em xin trình bày chi tiết thuật tốn Nạve Bayes cải tiến theo phương pháp Paul Graham: Cũng giống giải thuật Nạve Bayes bản, thuật tốn cải tiến 17 17 dựa nguyên tắc sử dụng giải thuật học máy để làm sở: - - - o o 4.1 PHA HUẤN LUYỆN (TRAINING PHRASE) Từ tập liệu mẫu file text (mỗi file chứa nội dung email) file index lưu giữ thông tin nhãn email (dùng cho việc tối ưu tham số tạo báo cáo), ta chia file text (email) làm tập: tập huấn luyện (Training Set) tập kiểm tra (Test Set) Đọc nội dung email Training Set, đọc file index để tìm nhãn email Nếu email SPAM ghi thêm nội dung mail (không bao gồm tiêu đề thông tin khác) vào file SPAM.txt, ngược lại nội dung mail ghi thêm vào file HAM.txt Sau tiến hành đọc này, ta thu file có kích thước tương đối lớn Mục đích bước lưu tất nội dung mail nhóm (SPAM vs HAM) vào file lớn để tiện cho việc đếm tần số tính xác suất Đến đây, ta bắt đầu đếm số lần xuất từ nhóm SPAM vs HAM, từ tính xác suất từ xuất SPAM Sau lưu giá trị xác suất vào danh sách xếp theo giá trị xác suất (kiểu SortedList) gọi danh sách Bảng xác suất Tuy nhiên, đến chưa có khác so với thuật tốn Nạve Bayes ban đầu Có vài lưu ý cần quan tâm thực bước đếm tần số tính xác suất trên: Dịch chuyển (thay đổi) xác suất chút để ngăn chặn False Positives, cách tăng gấp đôi số lần xuất từ thư thường Điều làm xác suất P(spam|w) giảm Chỉ lưu xác suất từ có tổng số lần xuất hai nhóm > giá trị cho trước Việc để bỏ qua từ 18 18 o o o o xuất q khơng có ảnh hưởng đáng kể đến việc phân loại Bằng phép thử sai, tác giả Paul Graham chọn giá trị Nếu từ xuất nhóm khơng xuất nhóm tác giả gán cho giá trị gần 0.01 0.99 xác suất 0.0 1.0 tương ứng Xác suất từ xuất thư rác tính cơng thức: P (SPAM|w) = P(w|SPAM) / ((P(w|SPAM) + P(w|HAM) Trong đó: - P(w|SPAM) = số lần xuất w SPAM / số từ tập SPAM - P(w|HAM) = (trọng số) * số lần xuất w HAM / số từ tập HAM Xác suất tồn email tính dựa vào xác suất 15 từ “đáng quan tâm” thư (15 most interesting words) khơng phải tất từ thư Trong đó, mức độ đáng quan tâm từ tính dựa vào độ chênh lệch xác suất P(SPAM|w) với giá trị trung lập 0.5, tức là 15 từ đặc trưng cho email này, giá trị xác suất gần giá trị xác suất tuyệt đối có ảnh hưởng lớn đến việc phân loại email Con số 15 Paul Graham lựa chọn, thay đổi để đánh giá hiệu theo tham số Cuối cùng, phần quan trọng cơng thức tính xác suất tồn email Như trình bày phần trên, ý tưởng thuật toán cải tiến sử dụng xác suất kết hợp từ xuất mail Để hiệu rõ xác suất kết hợp, ta lấy ví dụ: Một người có chiều cao 1m9 xác suất có chơi bóng rổ 60% Một người cầm bóng rổ xác suất chơi bóng 19 19 rổ lên đến 80% Hỏi người vừa cao 1m9, vừa cầm bóng rổ tay xác suất chơi bóng rổ bao nhiêu? Bài toán cho ta cách hiểu dễ dàng khái niệm xác suất kết hợp Trong phạm vi đề tài, nhóm em đưa cơng thức tính xác suất mà khơng giải thích mặt toán học Nếu gọi a, b hai xác suất đơn Thì xác suất kết hợp chúng tính bằng: ab / (ab + (1-a)*(1-b)) Trong ví dụ trên, ta có: a = 0.6, b = 0.8  Xác suất kết hợp = 0.6*0.8/(0.6*0.8 + 0.4*0.2) = 0.857 > hai xác suất đơn Tổng qt hóa cơng thức xác suất kết hợp xác suất đơn p1, p2, …, pn: p1*p2*…*pn / (p1*p2*…*pn +(1-p1)*(1-p2)*…*(1-pn)) Như vậy, áp dụng cơng thức vào tốn phân loại thư rác, xác suất từ đáng quan tâm (interesting word) ứng với pi – xác suất đơn P(SPAM|Mail) = xác suất kết hợp xác suất đơn p1, p2,…, p15 - Đến đây, ta tính xác suất email SPAM Nên nhớ ta pha huấn luyện, việc ta làm tính tất xác suất email tập huấn luyện phân loại hay gán nhãn cho chúng SPAM HAM Cần giá trị ngưỡng để thực điều Lẽ việc chọn ngưỡng thuộc pha tối ưu (Cross Validation) dựa vào việc đánh giá hiệu pha huấn luyện với giá trị ngưỡng khác (trong 20 20 toán Học máy ngưỡng tham số học – learning parameter - cần xác định pha Tối ưu) Tuy nhiên thời gian có hạn nên nhóm em xin bỏ qua bước lấy giá trị ngưỡng chọn = 0.9, nghĩa xác suất email SPAM: P(SPAM|Mail) > 0.9 thư phân loại thư rác, trái lại thư thường 4.2 PHA KIỂM THỬ (TEST PHRASE) - Cơng việc khó khăn huấn luyện hay học từ liệu giải Việc lại dùng tập liệu kiểm tra (Test Set) để đánh giá hiệu việc học - Công việc nạp tất email tập Test vào lọc thư rác, để lọc phân loại trả nhãn email dựa kinh nghiệm - mà lọc “học” từ ví dụ tập huấn luyện - để đánh giá email mà “chưa học” - Cuối so sánh kết nhãn mà lọc trả với nhãn email lưu file index để đưa đánh giá hiệu thuật toán phân loại cách thống kê viết báo cáo III Ứng dụng Demo lọc thư rác SpamFilterSample Giới thiệu; SpamFilterSample chương trình ứng dụng C# để cài đặt thuật tốn phân loại thư rác Nạve Bayes theo cách Paul Graham Chương trình nguồn tham khảo Internet, phần thuật toán pha huấn luyện nhóm em kế thừa có thay đổi chút Về bản, thuật tốn cài đặt chương trình thuật tốn cải tiến trình bày Tuy nhiên, phần kiểm thử Testing Phrase cịn đơn giản: khơng có tập kiểm thử, kiểm tra email nên khó thực đánh giá số lượng test nhỏ Vì vậy, nhóm em thiết kế lại tồn 21 21 phần Test: tìm tập mẫu khác, phân chia tập mẫu thành tập Training Set Test Set có kích thước khác để đánh giá so sánh hiệu thuật tốn, thiết kế thêm tính kiểm tra hàng loạt Test Batch tự động so khớp kết nhãn thu để đưa số đặc trưng hiệu năng: Precision Recall, với tập huấn luyện tập kiểm thử xác định Chương trình: Có lớp cần quan tâm: - Lớp Corpus: đọc file văn cần kiểm tra (coi email dạng văn text), sau tiến hành lưu trữ từ với tần số xuất chúng file văn - Lớp SpamFilter: lớp cài đặt thuật tốn Nạve Bayes Nó đọc liệu huấn luyện (training data) từ hai file SPAM.txt HAM.txt tương ứng mẫu email phân loại sẵn thư rác thư rác (ham) Dữ liệu lưu trữ hai file tương đối lớn, để đảm bảo tính đắn việc phân loại Sau đọc liệu, tiếp tục tiến hành tính tốn giá trị xác suất từ w xuất thư rác: P(SPAM|w) lưu vào bảng Bảng xác suất - Lớp Form1: lớp cài đặt giao diện thiết kế phần kiểm thử hàng loạt đánh giá hiệu thuật tốn Hướng dẫn sử dụng chương trình: Để chương trình chạy cần có thư mục \Test Data chứa: - Tập liệu mẫu: 6000 file, file lưu nội dung email - File index.txt: lưu nhãn email tập mẫu, 22 22 - Các file SPAM.txt, HAM.txt, SPAM2000.txt, HAM2000.txt: lưu tập huấn luyện với kích thước tương ứng 4000 thư 2000 thư tập mẫu - File ProbList.txt lưu trữ Bảng xác suất, sinh thực nạp liệu huấn luyện - File Result.txt lưu kết gán nhãn lọc thực kiểm tra hàng loạt (Test Batch) Giao diện chương trình: Training Phrase: Trước tiên, cần nạp liệu huấn luyện cách bấm vào nút: “Load…” Chọn nút Load Training Data để tiến hành nạp liệu huấn luyện với kích thước khác Đợi vài giây để chương trình tính tốn giá trị xác suất từ hiển thị Text Box Ngồi ra, thay nạp liệu tính tốn trực tiếp trên, nạp giá trị xác suất từ Bảng xác suất cách bấm chọn nút Load Processed Data, (nếu liệu lưu file ProbList.txt) Nếu chưa có liệu bấm chọn nút Save Processed Data để lưu lại (tránh việc nạp liệu từ đầu tính tốn lại, gây thời gian) 23 23 Testing Phrase: Có hai cách thực kiểm thử: test hàng loạt test thủ công - Test hàng loạt: thực cách chọn bấm nút “Test Batch…” để tiến hành test hàng loạt (các file chứa nội dung email) với kích thước khác (các file chọn lấy từ 2000 thư cuối – khác với file tập huấn luyện) 24 24 Các giá trị đánh giá hiệu thuật toán cài đặt Text Box: - Test thủ công: người dùng nhập dán toàn nội dung thư cần kiểm tra vào Text Box Sau bấm nút Manual Test để kiểm tra Kết phân loại bảng thơng báo sau 25 25 Kết đánh giá thuật toán: 26 26 Nhận xét: kích thước tập huấn luyện tăng (trong giới hạn đó) thuật tốn có hiệu phân loại tốt Các số đánh giá với TestSize = 800; Các số đánh giá với TestSize = 1000; Các số đánh giá với TestSize = 1200; IV Kết luận Nhìn chung, chương trình thiết kế đơn giản, chủ yếu để kiểm tra hiệu thuật tốn phân loại thư rác Nạve Bayes theo phương pháp Paul Graham 27 27 Chương trình xây dựng lõi quan trọng lọc thư rác dựa giải thuật Naïve Bayes cải tiến, đồng thời tự đánh giá hiệu hoạt động cách sử dụng tập mẫu có sẵn, đồng thời giúp người dùng tự kiểm định nội dung email có phải thư rác hay không với vài thao tác đơn giản Tuy nhiên, chương trình dừng lại việc phục vụ mục đích tìm hiểu ngun cứu đánh giá giải thuật chưa xây dựng thành ứng dụng hồn chỉnh hoạt động mail client thực chức lọc thư rác Vì vậy, định hướng phát triển chương trình, nhóm em xin đề xuất mục tiêu hồn thiện chương trình theo hướng xây dựng ứng dụng trực tuyến V Tài liệu tham khảo “A Plan For Spam” – Paul Graham – August 2002 http://www.paulgraham.com/spam.html “Nghiên cứu lọc thư spam sở mạng Bayes” http://tailieu.vn/xem-tai-lieu/nghien-cuu-bo-loc-thu-spamtren-co-so-mang-bayes.897209.html http://www.codeproject.com/Articles/23472/A-NaiveBayesian-Spam-Filter-for-C 28 28 ... pháp phân loại văn nhóm em chọn đề tài: “PHÂN LOẠI THƯ RÁC DÙNG THUẬT TỐN NẠVE BAYES CẢI TIẾN PAUL GRAHAM” Qua đề tài này, nhóm em cố gắng nắm bắt tốt phương pháp phân loại văn thuật tốn Naive Bayes. .. lọc thư rác hiệu với dịch vụ thư điện tử 2 I Giới thiệu Bài toán phân loại thư rác Khái niệm thư rác 1.1 Thư rác gì? Thư rác hay cịn gọi spam mail thư điện tử vô bổ thư? ??ng chứa loại quảng cáo. .. cao Chi tiết thuật tốn Naive Bayes trình bày kĩ phần sau Bài toán phân loại thư rác Phân loại thư rác thực chất toán phân loại văn hai lớp, đó: tập tài liệu mẫu ban đầu thư rác (spam) thư hợp lệ

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

Từ khóa liên quan

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

Tài liệu liên quan