1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng việt trên linux

80 33 0

Đ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 80
Dung lượng 1,3 MB

Nội dung

Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Mục đích nội dung ĐATN Nghiên cứu hệ thống thư điện tử, thư rác hệ thống lọc thư rác Áp dụng phương pháp Bayesian để xây dựng, cài đặt chương trình lọc thư rác tiếng Việt Các nhiệm vụ cụ thể ĐATN • Nghiên cứu tổng quát hệ thống thư điện tử • Trình bày tổng quan thư rác, hệ thống lọc thư rác • Nghiên cứu phương pháp lọc thư rác dựa lý thuyết Bayesian • Trình bày kiến thức phân loại văn • Trình bày cơng nghệ lọc thư rác SpamAssassin • Áp dụng kỹ thuật phân loại văn tiếng Việt vào SpamAssassin Lời cam đoan sinh viên: Tơi - Nguyễn Hồi Sơn - cam kết ĐATN cơng trình nghiên cứu thân tơi hướng dẫn ThS Đỗ Văn Uy Các kết nêu ĐATN trung thực, chép tồn văn cơng trình khác Hà Nội, ngày 20 tháng năm 2008 Tác giả ĐATN Nguyễn Hoài Sơn Xác nhận giáo viên hướng dẫn mức độ hoàn thành ĐATN cho phép bảo vệ: Hà Nội, ngày tháng năm Giáo viên hướng dẫn ThS Đỗ Văn Uy Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM -1- Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP Nội dung đồ án gồm chương với bố cục sau: Chương Nghiên cứu tổng quan hệ thống thư điện tử Nội dung chương trình bày kiến thức hệ thống thư điện tử Bao gồm kiến trúc, giao thức hoạt động hệ thống thư điện tử, thành phần thư điện tử Chương Hệ thống lọc thư rác Chương trình bày tổng quan thư rác, hệ thống lọc thư rác Trình bày số vấn đề lý thuyết phân loại văn bản, đặc biệt nghiên cứu phương pháp lọc thư rác dựa lý thuyết Bayesian Chương Cải tiến, cài đặt đánh giá hệ thống học Bayesian Nội dung chương trình bày cơng nghệ lọc thư rác SpamAssassin Áp dụng kỹ thuật phân loại văn tiếng Việt vào SpamAssassin, bao gồm thiết kế tích hợp giải thuật tách từ loại bỏ từ dừng Sau phần trình bày trình huấn luyện, số kết đạt sau trình huấn luyện Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM -2- Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux ABSTRACT OF THESIS Project's contents embodies chapter with the lay out as follows: Chapter General research about e-mail system Contents of this chapter is about e-mail system Include the archietecture, the protocol and the e-mail system' action, the component for an e-mail Chapter Spam mail filtering system This the Chapter what a the general representation to be about garbage epistle, the garbage epistle filtering systems A number of problem representation theoretically about the assortment flowsn the sheet, especially what a the garbage epistle refining method research to base upon theoretically Bayesian Chapter The improvement, install and evaluate to learn Bayesian system This the chapter' contents what a the representation to be about the garbage epistle strainer technology reasonword for SpamAssassin Vietnamese sheet apply taxonomic techniquess dispersedly enter SpamAssassin, Include the design and productp the removal and algorithm magnetic separation from the interrptions Later be the representation share about training process, one cirsium numberst what a process reached fruit to train Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM -3- Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux LỜI CẢM ƠN Trước hết, em xin chân thành cảm ơn thầy giáo ThS Đỗ Văn Uy Giảng viên Bộ Môn Công Nghệ Phần Mềm, Khoa Cơng Nghệ Thơng Tin hết lịng giúp đỡ, dạy tận tình cho em trình em thực tập tốt nghiệp trình em làm đồ án tốt nghiệp Thầy tận tình hướng dẫn, cung cấp tài liệu kiến thức cần thiết giúp em hoàn thành đồ án tốt nghiệp Em xin tỏ lịng biết ơn thầy, giáo môn Công Nghệ Phần Mềm, khoa Công Nghệ Thông Tin thầy, cô giáo trường Đại học Bách Khoa Hà Nội truyền đạt cho em kiến thức tảng quan trọng suốt thời gian em học tập trường Cuối cùng, em xin nói lời cảm ơn đến gia đình bạn bè, người cổ vũ động viên em nhiều suốt thời gian học tập làm đồ án tốt nghiệp Trong trình thực đồ án, thiếu kinh nghiệm thực tế hạn chế kiến thức nên chắn không tránh khỏi thiếu sót, em mong nhận đóng góp ý kiến giúp đỡ thầy, cô bạn Một lần em xin chân thành cảm ơn! Hà Nội, ngày 20 tháng 05 năm 2008 Nguyễn Hoài Sơn Lớp CNPM – K48 Khoa CNTT – ĐH Bách Khoa HN Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM -4- Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux MỤC LỤC DANH MỤC BẢNG .7 DANH MỤC HÌNH DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ .8 LỜI NÓI ĐẦU 10 CHƯƠNG NGHIÊN CỨU TỔNG QUAN VỀ HỆ THỐNG THƯ ĐIỆN TỬ .11 Hệ thống thư điện tử 11 1.1 Tổng quan hệ thống thư điện tử 11 1.2 Các thành phần hệ thống thư điện tử 13 1.2.2 Mail Tranfer Agent 13 1.2.3 Mail Delivery Agent 13 1.2.4 Mail Client (Mail User Agent) 13 1.2.5 Mail Acess Agent .13 1.2.6 Mailstore 13 1.2.7 Webmail .14 1.3 Các giao thức .14 1.4 Máy chủ thư điện tử .17 1.5 Hoạt động hệ thống thư điện tử qua mạng Internet 18 Các thành phần thư 20 2.1 Các thành phần 20 2.2 Phần Header 21 2.3 Phần Body .22 2.4 Phần Envelope 23 Chuẩn MIME 23 3.1 Chuẩn MIME .23 3.2 Các header MIME 24 3.3 Encoded-Word 25 3.4 Cấu trúc định dạng hỗn hợp thư 26 3.5 Các thư tiếng Việt loại mã thông dụng thư tiếng Việt 26 CHƯƠNG HỆ THỐNG LỌC THƯ RÁC .29 Tổng quan hệ thống lọc thư rác .29 1.1 Các vấn đề thư rác 29 1.2 Các nguyên lý hoạt động hệ thống chống thư rác 29 1.3 Vị trí thành phần lọc thư rác hệ thống thư điện tử 31 1.3.1 Kiểm tra thư MTA 31 1.3.2 Kiểm tra MDA 31 1.3.3 Kiểm tra POP Proxy 32 1.3.4 Kết hợp mơ hình 32 Phân loại văn 32 2.1 Lý thuyết chung phân loại văn 32 2.1.1 Bài toán phân loại văn 32 2.1.2 Quá trình phân loại phân loại văn .33 2.2 Phương pháp phân loại dựa lý thuyết xác suất Bayesian 33 2.2.1 Phân loại phương pháp Bayesian 34 2.2.2 Mơ hình học thống kê Naive Bayes 35 2.3 Bài toán phân loại văn tiếng Việt .36 2.3.1 Một số đặc điểm tiếng Việt 36 Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM -5- Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux 2.3.2 Phân tách từ văn tiếng Việt 38 Phương pháp lọc thư rác dựa lý thuyết Bayesian 40 3.1 Cơ sở lý thuyết 40 3.1.1 Phương pháp phân loại dựa lý thuyết xác suất Bayesian 40 3.1.2 Phân loại Bayesian với phương pháp tổng hợp xác suất từ từ khóa: 41 3.2 Nguyên lý 44 3.2.1 Quá trình học 45 3.2.2 Quá trình quét thư .46 3.2.3 Cấu hình cho Bayesian .48 3.3 Lưu trữ liệu phương pháp Bayesian 50 CHƯƠNG CẢI TIẾN, CÀI ĐẶT VÀ ĐÁNH GIÁ HỆ THỐNG HỌC BAYESIAN 53 Hệ thống lọc thư rác SpamAssassin 53 1.1 Cơ SpamAssassin .53 1.1.1 Giới thiệu 53 1.1.2 Các thành phần 53 1.1.3 Cấu hình 55 1.1.4 Tích hợp SpamAssassin với Procmail .56 1.2 Luật sử dụng SpamAssassin 57 1.2.1 Biểu thức quy 57 1.2.2 Cấu trúc luật SpamAssassin 57 1.2.3 Quy tắc tạo luật 58 1.2.4 Các tập luật xây dựng sẵn SpamAssassin 60 1.3 Whitelist/Blacklist 63 1.4 Autowhitelist- Danh sách tự động .63 Áp dụng kỹ thuật phân loại văn tiếng Việt vào SpamAssassin 64 2.1 Các hạn chế lọc Bayesian với thư tiếng Việt giải pháp 64 2.2 Xây dựng mô đun tách từ 65 2.2.1 Phân tích 65 2.2.2 Xây dựng từ điển 66 2.2.3 Xây dựng mô đun tách từ 67 2.2.4 Xây dựng mô đun loại bỏ từ dừng .68 2.3 Xây dựng mô đun tạo luật 69 Quá trình huấn luyện đánh giá 71 3.1 Các yêu cầu môi trường .71 3.2 Cài đặt cấu hình 71 3.3 Chiến lược công cụ huấn luyện 72 3.4 Vận hành 73 3.5 Đánh giá 73 3.5.1 Tiêu chí đánh giá: .73 3.5.2 Nguồn liệu dùng cho thí nghiệm đánh giá .75 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 76 TÀI LIỆU THAM KHẢO .77 MÔ TẢ NỘI DUNG ĐĨA CD KÈM THEO .79 Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM -6- Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux DANH MỤC BẢNG Bảng Tên trường header 22 Bảng Các phận thư thị 59 Bảng Các cờ luật SpamAssassin 60 Bảng Một số từ dừng điển hình văn tiếng Việt 65 DANH MỤC HÌNH Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình 10 Hình 11 Hình 12 Hình 13 Hình 14 Hình 15 Hình 16 Mơ hình Internet mail 11 Hoạt động hệ thống thư điện tử 12 Các giao thức hệ thống thư điện tử 15 Các bước thực giao thức SMTP 15 Giao thức IMAP 16 Giao thức Pop 17 Các thành phần máy chủ thư điện tử 18 Hoạt động gửi thư qua mạng sử dụng hệ thống tên miền 19 Hai thành phần thư Header Body 20 Con đường thông thường thư điện tử 31 Ví dụ đồ thị phân tách câu 39 Một tình nhập nhằng phân tách câu 40 Quá trình học thư mô đun lọc Bayesian SpamAssassin 45 Quá trình quét thư phương pháp lọc Bayesian 47 Tích hợp SpamAssassin vào Procmail 56 Q trình chuyển thư khơng gian véc tơ dạng Boolean 65 Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM -7- Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ STT Viết tắt Tiếng Việt/Ý nghĩa Tiếng Anh Because It's Time Network UNIX - to - UNIX Connection Protocol Mail Delivery Agent Một consortium giáo dục phi lợi nhuận, thành lập để truyền thông trường BITNET UUCP MDA MUA Mail User Agent MAA Mail Acess Agent K-NN Phương pháp K- láng giềng gần POP IMAP SMTP 10 Regex K- Nearest Neighbor Post Office Protocol Internet Mail Acess Protocol Simple Mail Transfer Protocol Regular Expression 11 ISP Nhà cung cấp dịch vụ Internet 12 DNS 13 MX Internet Service Provider Domain Name system Mail eXchange record 14 15 16 17 18 19 Kết nối máy Unix Phần mềm trạm vận chuyển thư điện tử Phần mềm nhận gửi thư điện tử phía người dùng Phần mềm truy cập thư Giao thứ nhận gửi thư POP Giao thức truy cập thư IMAP Giao thức chuyển thư đơn giản Biểu thức quy Hệ thống tên miền Một ghi DNS xác định máy xử lý thư điện tử cho một tên miền xác định, chẳng hạn mx.yahoo.com SPF Sender Policy Một framework để công khai thông tin Framework thông qua DNS, mô tả danh sách địa IP phép gửi thư điện tử RBL Realtime Black List Các danh sách đen thời gian thực, xác định địa chỉ, tên miền nghi vấn nguồn phát tán thư rác DNSRBL Domain Name Các danh sách đen thời gian thực, xác định system Realtime địa chỉ, tên miền nghi vấn nguồn phát Black List tán thư rác dựa DNSs SVM Support Vector Phương pháp máy véc tơ hộ trợ, dùng Machine phân loại văn ESMTP Extended Simple Là giao thức gửi thư SMTP mở rộng Mail Tranfer Protocol MIME Multipurpose Mở rộng đa chức cho thư điện tử Đó Internet Mail mở rộng định dạng thư điện tử Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM -8- Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux Extensions dùng cho đa ngôn ngữ đa phương tiện Giao thức điều khiển truyền liệu 20 TCP 21 UDP 22 ASCII 23 RFC 24 FP Transmission Control Protocol User Datagram Protocol American Standard Code for Information Interchange Request for Comments False Positive 25 FN False Negative 26 TP True Positive 27 TN True Negative Giao thức gói liệu người dùng Chuẩn mã trao đổi thông tin Hoa Kỳ Các tài liệu chuẩn mạng Internet Số lượng thư bị hệ thống nhầm thư rác Số lượng thư rác bị hệ thống nhầm thư Số lượng thư hệ thống xem thư Số lượng thư rác bị hệ thống đánh dấu thư rác Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM -9- Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux LỜI NÓI ĐẦU Sự phát triển dịch vụ thông tin Internet nhu cầu trao đổi thông tin làm cho hệ thống thư điện tử phát triển mạnh ngày phổ biến Song song với phát triển đó, nạn thư rác ngày gây nhiều thiệt hại khó thống kê cho cộng đồng người sử dụng Nó làm hao phí tài ngun mạng máy tính, làm thời gian người dùng mang nhiều thơng tin văn hóa độc hại Vì vậy, đơi với việc phát triển hệ thống thư điện tử cần phát triển hệ thống chống thư rác sách mang tính pháp chế xử lý nạn thư rác Cuộc chiến chống thư rác ngày diễn cách nóng bỏng, kẻ gửi thư rác ngày có kỹ thuật phức tạp công cụ mạnh để vượt qua hệ thống lọc thư rác Những công cụ ngăn thư rác thủ công cách cho phép người dùng xây dựng luật lọc thư ngày không đáp ứng tốc độ phát triển số lượng lẫn kỹ thuật gửi thư rác Do đó, hệ thống tự động thực lọc thư rácáp dụng thành tựu nghiên cứu lĩnh vực học máy (Machine Learning) ngày phát triển đóng vai trị quan trọng hệ thống thư điện tử Các hệ thống dựa phương pháp phân loại văn triển khai phát triển để lọc thư rác với nhiều thứ tiếng nhiều lĩnh vực khác SpamAssassin, Dspam … Nhưng ngôn ngữ đặc thù tiếng Việt, tiếng Trung, tiếng Nhật … phương pháp triển khai hệ thống gặp phải hạn chế sau: • Hầu hết thuật toán tách từ hệ thống tách từ khoảng trắng không hoạt động hiệu với thư rác tiếng Việt, ngôn ngữ mà số lớn từ có nghĩa ghép nhiều tiếng • Các từ dừng (stopword) thường xuất với tần suất cao phần lớn văn Nếu việc tách từ khóa khơng loại từ dừng gây sai lệch q trình áp dụng thuật tốn phân loại văn bản, đặc biệt với phương pháp thống kê Bayesian • Không hỗ trợ loại mã tiếng Việt khác Windows1252, UTF-8, TCVN, • Khơng hỗ trợ việc tạo luật lọc để chia sẻ cho hệ thống khác Từ điểm hạn chế trên, thấy cần phải xây dựng phương pháp lọc thư rác riêng cho ngôn ngữ đặc thù tiếng Việt Để xây dựng hệ thống lọc thư rác cho tiếng Việt, em chọn giải pháp cải tiến phương pháp lọc Bayesian SpamAssassin để hoạt động tốt với thư tiếng Việt Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM - 10 - Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux Thư dạng chuẩn 1.Tiền xử lý thư 4.Thống kê từ khoá 2.Tách từ khoá 3.Loại từ dừng Văn biểu diễn theo tần suất dạng Boolean Trong trình xử lý thư, SpamAssassin thực tiền xử lý tốt Đó nhờ vào khả xử lý biểu thức quy Perl Sau tiền xử lý, có thư dạng văn “sạch” Văn văn gồm ký tự Tiếng Việt, dấu cách dấu chấm Văn chuyển thành dạng xâu chuẩn, xâu ngăn cách dấu chấm Vì vậy,chúng ta tập trung vào xử lý hai phần tách từ khóa loại bỏ từ dừng 2.2.2 Xây dựng từ điển Xây dựng từ điển tách từ theo từ điển phương pháp hiệu đê thực tách từ phục vụ cho phân loại văn tiếng Việt Từ điển tiếng Việt dùng từ điển khoảng 65000 từ thông dụng Hiện tại, từ điển sử dụng để tách từ lưu trữ CSDL MySQL Sở dĩ MySQL chọn MySQL hệ quản trị CSDL nguồn mở có hiệu cao nữa, lựa chọn MySQL để đồng với sở liệu từ khóa (bayes_token) lưu SpamAssassin Chúng ta sử dụng hai từ điển có mã Unicode, từ điển tách từ từ điển từ dừng với lược đồ sau: • Từ điển từ dừng: CREATE TABLE `vistopword` ( `value` varchar(40) character set utf collate utf 8_unicode_ci NOT NULL def ault '', `hash` varbinary(15) NOT NULL def ault '', `f lag` tinyint(1) NOT NULL def ault '0', PRIMARY KEY (`value`) ) ENGINE=InnoDB DEFAULT CHARSET=utf COLLATE=utf 8_bin; Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM - 66 - Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux • Từ điển tách từ: CREATE TABLE `viword` ( `value` varchar(60) collate utf 8_bin NOT NULL def ault '', `hash` varbinary(5) NOT NULL def ault '', `f lag` tinyint(1) NOT NULL def ault '0', PRIMARY KEY (`value`) ) ENGINE=InnoDB DEFAULT CHARSET=utf COLLATE=utf 8_bin; Trong đó: o Value : dùng để ghi giá trị từ o Hash : dùng để ghi giá trị năm byte cuối giá trị sau hàm băm sha1 value o Flag cờ xác định xem từ có dùng hay khơng Với từ điển có 70000 từ, nạp từ điển vào nhớ cách dùng trỏ Với từ,chúng ta cần byte trỏ byte ghi giá trị băm từ Vì vậy, với kích thước từ điển 1510 KB, phải tiêu tốn lượng nhớ: 1510+70000*(5+8)/1024 = 2393(KB) Điều chấp nhận hệ thống ngày Vì vậy, hiệu thuật toán phụ thuộc nhiều vào yếu tố thời gian giải thuật 2.2.3 Xây dựng mô đun tách từ Thuật tốn tách từ sử dụng mơ đun tách từ thuật toán tách từ trái qua phải Tuy trình tách văn theo phương pháp tách từ trái qua phải có gặp phải số trường hợp nhập nhằng câu lại hiệu trường hợp yêu cầu cao tốc độ xử lý ▪ Đầu vào: Là nội dung tiêu đề thư dạng văn “sạch” ▪ Nhiệm vụ: Bao gồm o Tách thư thành từ nằm từ điển theo phương pháp tách từ trái sang phải o Nếu xuất từ mới, thêm vào từ điển • Đầu ra: Đầu biểu diễn không gian véc tơ dạng Boolean thư hay đơn giản mảng từ có thư nằm từ điển Chúng ta định nghĩa MAX_SYL số lượng tiếng tối đa từ khóa mà tách • Giải thuật: o Lần lượt lấy xâu chuẩn tệp thư @msg o Đối với xâu chuẩn $XCi, thực việc tách từ khoá xâu sau: Đếm số tiếng xâu = $numSyllable Nếu số tiếng $numSyllable MAX_SYL thì thực hàm GreaterThanMaxSylls($XCi) o Lấy xâu chuẩn $XCi+1 thư, quay trở lại bước Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM - 67 - Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux Hàm LessThanOrEqualMaxSylls(): hàm thực phân tách từ khố xâu chuẩn có kích thước nhỏ MAX_SYL Dưới giải thuật hàm: Bắt đầu $XC1 = @_; (Lấy tham số hàm) Tìm kiếm $XC1 từ điển Nếu có từ điển tách từ khố → nhảy sang bước Nếu khơng có 4.1 Giảm dần số tiếng $XC1 tìm thấy từ điển khơng tìm thấy từ 4.2 Nếu tìm thấy cắt bỏ từ khố tách, đặt $XC2 = tiếng lại, gọi đệ quy hàm với $XC2: LessThanOrEqualMaxSylls($XC2) 4.3 Nếu khơng tìm thấy từ có nghĩa phải loại bỏ tiếng xâu chuẩn ban đầu, đặt $XC2 tiếng lại xâu chuẩn, tương tự gọi đệ quy hàm với $XC2: LessThanOrEqualMaxSylls($XC2) Kết thúc Hàm GreaterThanMaxSylls (): Hàm thực phân tách xâu có số tiếng lớn MAX_SYL Bắt đầu $cwa=@_(Lấy tham số hàm) Tính số tiếng xâu chuẩn $cwa $numSylls Nếu ($numSylls MAX_SYL 3.1 Lấy MAX_SYL tiếng xâu chuẩn $XC1 = MAX_SYL tiếng 3.2 Tách từ khố từ xâu $XC1 Nếu tìm thấy thực tách từ khố Nếu khơng tìm thấy từ bỏ từ 3.3 Đặt $XC1 phần lại xâu 3.4 Gọi đệ quy hàm $XC1 GreaterThanMaxSylls ($XC1) Kết thúc 2.2.4 Xây dựng mơ đun loại bỏ từ dừng • Đầu vào: Biểu diễn không gian véc tơ dạng Boolean thư hay đơn giản mảng từ có thư nằm từ điển • Nhiệm vụ Bao gồm o Loại bỏ từ dừng nằm từ điển từ dừng Nếu xuất từ dừng mới, thêm vào từ điển Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM - 68 - Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux • Đầu ra: Đầu biểu diễn không gian véc tơ dạng Boolean thư không chứa từ dừng hay đơn giản mảng từ có thư nằm từ điển tách từ mà khơng nằm từ điển từ dừng • Giải thuật: o Lấy từ điển dừng tư CSDL, đưa từ điển từ dừng vào nhớ theo thứ tự từ điển o Đối với từ tách văn bản, tìm kiếm phương pháp nhị phân o Nếu từ xuất mảng từ dừng loại từ Do thuật tốn dùng phương pháp tìm kiếm nhị phân nên độ phức tạp thuật toán O(mlogn) với n số từ dừng m số lượng từ khóa tách từ thư Với thơng số thơng thường, ước lượng độ phức tạp thuật toán N=100 m=511 ta có độ phức tạp 100.O(log511)=100 * 9= 900 2.3.Xây dựng mô đun tạo luật Như trình bày phần trên, mơ đun tạo luật dựa vào liệu học phương pháp Bayesian để tạo luật dùng cho hệ thống SpamAssassin khác Vì vậy, cần lấy giá trị ban đầu từ khóa tương ứng với từ khóa có MI cao chọn từ từ khóa học Bayesian Dữ liệu Bayesian lưu bảng bayes_token có trường sau: CREATE TABLE bayes_token ( username varchar(200) NOT NULL default '', token varchar(200) binary NOT NULL default '', spam_count int(11) NOT NULL default '0', ham_count int(11) NOT NULL default '0', atime int(11) NOT NULL default '0', PRIMARY KEY (username,token) ) TYPE=MyISAM; Bảng từ điển có lược đồ: CREATE TABLE `viword` ( `value` varchar(60) collate utf8_bin NOT NULL default '', Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM - 69 - Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux `hash` varbinary(5) NOT NULL default '', `flag` tinyint(1) NOT NULL default '0', PRIMARY KEY (`value`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; Vì có giải thuật tạo tập luật sau: Đầu vào: Dữ liệu từ khóa phương pháp Bayesian, từ điển từ, tập luật chuyển đổi không gian xác suất sang không gian điểm (20_bayes.cf) Đầu ra: Đưa tập luật theo chuẩn SpamAssassin dạng chuẩn Custom RuleSet Spamassassin Ví dụ: body describe score SALE_OFF SALE_OFF SALE_OFF /^\s*giá ưu đãi đặc biệt\b/i Giá ưu đãi thường thư quảng cáo 0.542 Giải thuật: Nhận yêu cầu số lệnh người dùng (n) Độ phức tạp O(1) Lấy n giá trị băm từ khóa từ bảng bayes_token có MI cao Độ phức tạp O(n) Tìm kiếm nhị phân từ có giá trị băm cá giá trị nhận bước để nhận giá trị thật từ khóa Độ phức tạp n.O(logm) Tính tốn xác suất từ khóa Độ phức tạp O(1) Chuyển từ không gian xác suất sang không gian điểm Độ phức tạp O(1) Đối với từ khóa, sinh luật dạng Độ phức tạp O(n) body describe score RULE_NAME RULE_NAME RULE_NAME /^\s* \b/i Chú thích từ khóa Thuật tốn có độ phức tạp n.O(logm) với n số luật muốn nhận m số từ từ điển Với thông số thơng thường: N=150 m=70000 ta có: Giải thuật cần đến 150.O(log70000)=150 * 16= 2414(phép tính bản) Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM - 70 - Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux Quá trình huấn luyện đánh giá 3.1 Các yêu cầu môi trường SpamAssassin hệ mã nguồn mở SpamAssassin chạy tốt Windows hệ điều hành mã nguồn mở khác Để dễ dàng tích hợp với hệ thống máy chủ thư điện tử nguồn mở khác Qmail, Sendmail, Postfix, Exim cài đặt SpamAssassin hệ thống mã nguồn mở Và cấu hình hướng đến sử dụng hệ thống SpamAssassin cải tiến dựa phiên SpamAssassin Mail-SpamAssassin-3.2.4 • Hệ điều hành: Linux (Fedora, Red Hat,….) • Máy chủ thư điện tử : Một máy chủ Qmail, Sendmail, Postfix, Exim • Perl: Perl 5.8.8 Đã cài đặt Mô đun: o o o o o o o o o HTML::Parser >= 3.24 (from CPAN) DB_File DBI DBD::mysql Net-DNS IP-Country Mail-SPF Error Digest-SHA • Máy chủ CSDL MySQL server • Máy chủ web Apache Ngồi ra, mơ đun Perl tùy chọn khác cài đặt để tăng hiệu SpamAssassin 3.2 Cài đặt cấu hình Chúng ta thực cài đặt cấu hình với yêu cầu mục thỏa mãn Thật vậy, bước cài đặt thực sau: Cài đặt Mail-SpamAssassin-3.2.4 Thêm hai gói cho phần tách từ cho thư tiếng Việt Thay Mô đun Mail:SpamAssassin:Bayes Mail-SpamAssassin3.2.4 Mô đun cải tiến Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM - 71 - Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux Tạo CSDL cho SpamAssassin MySQL hai bảng viword vistopword câu SQL Cập nhật hai từ điển tiếng Việt, từ điển tách từ từ điển từ dừng 3.3.Chiến lược cơng cụ huấn luyện Có hai chiến lược huấn luyện cho hệ thống phân loại Bayesian huấn luyện tất huấn luyện có lỗi Trong chiến lược huấn luyện tất cả, bạn huấn luyện cho hệ thống tất thư bạn nhận Chiến lược đáp ứng thay đổi thư rác lại nhạy cảm với biến đổi xấu xu hướng thay đổi Hơn cịn chiến lược tốn tài nguyên công sức Trong chiến thuật huấn luyện có lỗi, bạn phải huấn luyện lại hệ thống cho thư bị phân loại sai Chiến thuật tiết kiệm tài nguyên không đáp ứng tốt thay đổi thư rác Dựa vào thử nghiệm Greg Louis ( http://www.bgl.nu/bogofilter/), ông chiến lược hợp lý áp dụng chiến thuật huấn luyện tất thời gian đầu chuyển sang huấn luyện có lỗi giai đoạn sau Giới hạn chuyển đổi mà ông đưa 10.000 thư Để nhận độ xác phương pháp, cấu hính SpamAssassin hoạt động với phương pháp Bayesian Mơ đun sa-learn giao diện bạn thực huấn luyện hệ thống Bước sưu tập sở liệu thư rác thư Các thư lưu trữ định dạng maildir (mỗi thư tệp) mbox format (mỗi tệp có nhiều thư) Chú ý rằng, thư rác nên sưu tập thời điểm đạt hiệu tốt Bước tiếp theo, dùng mô đun sa-learn thư mục thư với tham số spam ham Trong đoạn lệnh sau kịch của trình học với thư mục dạng mbox với giả thiết chạy cho người dùng Ví dụ Huấn luyện qua thư mục thư dạng mbox $ ls -F Mail spam myproject $ sa-learn mbox spam Mail/spam $ sa-learn mbox ham mail/myproject $ sa-learn mbox ham /var/spool/mail/$LOGNAME Ví dụ 2: Huấn luyện qua thư mục thư dạng maildirs $ ls -F mail Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM - 72 - Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux INBOX/ spam/ myproject/ $ sa-learn no-rebuild spam mail/spam $ sa-learn no-rebuild ham mail/INBOX $ sa-learn no-rebuild ham mail/myproject $ sa-learn rebuild 3.4 Vận hành Trong lần sử dụng đầu tiên, hệ thống phân loại Bayesian, bạn thấy thay đổi cách thư kiểm tra Khi huấn luyện với số lượng đủ thư rác thư sạch, điểm cho thư thay đổi theo hai hướng: • • Bạn thấy thư đụng phải luật BAYES_44 hay BAYES_80 Các luật chẳng hạn tệp 23_bayes.cf thử mà hệ thống phân loại Bayesian gán xác suất thư thư rác Ví dụ, luật BAYES_44 thỏa mãn thư có xác suất thư rác từ 0.44 đến 0.4999; luật BAYES_80 thỏa mãn thư có xác suất thư rác từ 0.80 đến 0.90 Luật mà có xác suất thư rác lớn 0.5 làm tăng điểm cho giả thuyết thư thư rác ngược lại Hầu hết luật luật hệ thống phân loại Bayesian sinh gán điểm khác cách cố định Trong nhiều trường hợp luật tĩnh cho kết khơng mềm dẻo, hệ thống phân loại Bayesian tỏ hiệu hẳn hệ thống luật cố định Việc tiếp tục huấn luyện quan trọng với việc đảm bảo hiệu hệ thống Giống việc huấn luyện ban đầu, phải bổ sung thư xác định thư rác thư Nếu điểm thư cao ngưỡng tự động học hệ thống tự thực bạn cấu hình Ngồi bạn cịn dùng lệnh sa-learn spam sa-learn ham để thực Việc thực thủ cơng dùng chương trình đọc thư webmail thao tác trực tiếp lên thư mục bạn có đủ quyền Trong hệ thống định xây dựng, trình tự động thư rác cịn phản hồi từ người dùng từ nhiều nguồn khác 3.5 Đánh giá 3.5.1 Tiêu chí đánh giá: Có nhiều tiêu chí để đánh giá hiệu hệ thống lọc thư rác độ xác, tỉ lệ lỗi, thời gian không gian nhớ Nhưng thông thường để đánh giá hiệu hệ thống lọc thư rác, người ta sử dụng thông số([15]-trang 5): • FN (False Negative): Số lượng thư rác xem thư sạch, ký hiệu NSH • FP(False Positive): Số lượng thư bị đánh dấu nhầm thư rác, ký hiệu NHS Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM - 73 - Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux • TN (True Negative): Số lượng thư xem thư sạch, ký hiệu NHH • TP (True Positive):Số lượng thư rác đánh dấu thư rác, ký hiệu NSS Do tham số không thuận tiện để so sánh hệ thống, lần huấn luyện có số lượng liệu mẫu khác nên ta đưa tiêu chí thể tỷ lệ để thuận tiện cho việc so sánh Chẳng hạn [13], Tran Anh Quang sử dụng hai tiêu chuẩn SR(Spam recall), HE (Ham Error) N SS TP = TP + FN N SS + N HS N HS FP HE = = TP + FP NSS + N HS SR = (4.1) (4.2) Nhưng với thơng số độc lập tỷ lệ chưa đánh giá đủ toàn hệ thống Tuy nhiên, với phương pháp khác có công thức đặc thù riêng để đánh giá, chẳng hạn [2]- trang 6, tác giả sử dụng TCR (Total Cost Ratio) để đánh giá hệ thống Nhưng để dễ dàng so sánh phù hợp với hệ thống học trình huấn luyện thử nghiệm, em đánh giá theo tiêu chí định lượng khơng định lượng sau: Tiêu chí Sự thay đổi liệu học thực học Tiêu chí R(Recall) R= N SS TP = TP + FP N SS + N SH Tiêu chí P(Precision) N SS TP P= = TP + FN N SS + N HS Tiêu chí E(Error) E= (4.3) (4.4) N SH + N HS FP + FN = TP + TN + FP + FN N SS + N HH + N HS + NSH Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM (4.5) - 74 - Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux 3.5.2 Nguồn liệu dùng cho thí nghiệm đánh giá Các nguồn thư rác thu thập trang rao vặt, hãng bất động sản, hãng mỹ phẩm, máy tính, số tờ báo phản động Nguồn thư nguồn thư cá nhân gồm thư chọn từ thư thân, thư trao đổi thông tin hàng ngày Một loại thư gửi không đối tượng, gửi với nội dung phản động quảng cáo coi thư rác Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM - 75 - Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết luận Trong trình thực đồ án tốt nghiệp này, em đạt kết sau: • Tìm hiểu kiến thức hệ thống thư điện tử, thành phần thư điện tử, cách thức hoạt động hệ thống • Tìm hiểu hệ thống lọc thư rác, phương pháp lọc thư rác, đặc biệt phương pháp lọc thư rác dựa lý thuyết Bayesian • Tìm hiểu lý thuyết chung phân loại văn • Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt công nghệ SpamAssassin Bên cạnh đó, đồ án cần khắc phục số điểm chưa tốt • Giao diện dịng lệnh SpamAssassin cịn khó dùng với người chưa thơng thạo • Chưa huấn luyện hệ thống với liệu mẫu đủ lớn (trên 1000 thư), đa dạng để có kết xác ổn định Hướng phát triển Trong thời gian tới em dự kiến tiếp tục nghiên cứu phát triển hệ thống theo hướng: • Xây dựng giao diện quản trị hệ thống giúp cho việc thao tác, quản lý dễ dàng, trực quan • Huấn luyện cho hệ thống với liện đủ lớn • Hỗ trợ thêm số loại mã tiếng Việt khác (VNI Windows, TCVN3, ) • Nghiên cứu thêm thuật toán tách từ khác hiệu cho thư tiếng Việt Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM - 76 - Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux TÀI LIỆU THAM KHẢO [1] Jonathan A Zdziarski, Ending Spam: Bayesian Content Filtering and the Art of Statistical Language Classification, No Starch Press 2005 [2] Quang-Anh Tran, Real-time statistical rules for spam detection, Haixin Duan, Xing Li Network Research Center, Tsinghua University, Beijing 100084 , China Email: qa@ccert.edu.cn [3]Androutsopoulos I., Koutsias, J., Chandrinos, K.V., Paliouras, G., Spyropoulos, C.D., 2000 An evaluation of Naive Bayesian anti-Spam filtering Proceedings of the Workshop on Machine Learning in the New Information Age, 11th European Conference on Machine Learning, Barcelona, Spain [4] Christian Kaul, Johannes Knabe, Tobias Lang, Volker Sperschneider Filtering Spam E-mail with Support Vector Machines, Publications of the Institute of Cognitive Science Volume 8-2004 [5] Alan Schwartz, SpamAssassin, O'Reilly-July 2004- 0-596-00707-8 [6]RFC2822, Internet Message Format [7]RFC2045-RFC2046-RFC2047-RFC2048-RFC2049, Multipurpose Internet Mail Extensions [8]Tống Đình Quỳ, Giáo trình xác suất thống kê tốn học, Đại Học Bách Khoa Hà Nội, 2000 [9] Vũ Ngọc Tiệp, Tìm hiểu giải thuật trích chọn từ khố , Đồ án Tốt nghiệp đại học Khoa Công nghệ Thông tin, Đại học Bách Khoa Hà Nội, 2004 [10] Gary Robinson, A Statistical Approach to the Spam Problem , The Original Monthly Magazine of the Linux Community 2003-03-01 [11] Graham, P., Better Baysian Filtering In Proceedings of Spam Conference (2003) http://spamconference.org/proceedings2003.html [12] T.M Mitchell, Machine Learning, Mc Graw Hill (1997) [13] Eui-Hong (Sam) Han, George Karypis, Vipin Kumar, Text Categorization Using Weight Adjusted k-Nearest Neighbor Classification, 1999 [14] Sahami, M., Dumais,S., Heckerman, D., and Horvitr E, A Bayesian Apprach to Filtering Junk E-Mail In Learning For Text Categorization , Papers form AAAI Workshop Madison Wisconsin AAAI Techniacal Report WS-98-05,1998 [15] Gary Robinson , A Statistical Approach to the Spam Problem , Linux Journalhttp://www.linuxjournal.com/article/6467 Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM - 77 - Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux [16] Cormac O’Brien & Carl Vogel, Spam Filters: Bayes vs Chi-squared; Letters vs Words Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM - 78 - Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux MÔ TẢ NỘI DUNG ĐĨA CD KÈM THEO Trong đĩa CD kèm theo có thư mục : Doc, Presentation, Application, References, Abstract • Doc: thư mục chứa báo cáo đồ án tốt nghiệp • Presentation: chứa file PowerPoint trình bày luận văn • Application : thư mục chứa chương trình, hướng dẫn sử dụng, liệu thử mã nguồn • References : thư mục chứa tài liệu tham khảo • Abstract : thư mục chứa tóm tắt đồ án tốt nghiệp Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM - 79 - Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM - 80 - ... đồng Việt Nam Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM - 28 - Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux CHƯƠNG HỆ THỐNG LỌC THƯ RÁC 1.Tổng quan hệ thống lọc thư rác. .. - Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux Việc định nghĩa xác thư thư rác hay khơng khơng thể, việc xác định sở, đặc điểm thư thư rác điểm định thành cơng hệ thống lọc thư rác. .. tiếng Việt Sinh viên thực hiện: Nguyễn Hoài Sơn – K48 – Lớp CNPM - 10 - Nghiên cứu thiết kế hệ thống lọc thư rác tiếng Việt Linux CHƯƠNG NGHIÊN CỨU TỔNG QUAN VỀ HỆ THỐNG THƯ ĐIỆN TỬ Các hệ thống lọc

Ngày đăng: 13/06/2022, 21:19

HÌNH ẢNH LIÊN QUAN

Hình 1. Mơ hình Internet mail - Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng việt trên linux
Hình 1. Mơ hình Internet mail (Trang 11)
Hình 2. Hoạt động của hệ thống thư điện tử - Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng việt trên linux
Hình 2. Hoạt động của hệ thống thư điện tử (Trang 12)
Hình 3. Các giao thức trong hệ thống thư điện tử - Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng việt trên linux
Hình 3. Các giao thức trong hệ thống thư điện tử (Trang 15)
Hình 4. Các bước thực hiện giao thức SMTP - Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng việt trên linux
Hình 4. Các bước thực hiện giao thức SMTP (Trang 15)
Hình 5. Giao thức IMAP - Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng việt trên linux
Hình 5. Giao thức IMAP (Trang 16)
Hình 7. Các thành phần của máy chủ thư điện tử - Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng việt trên linux
Hình 7. Các thành phần của máy chủ thư điện tử (Trang 18)
Hình 8. Hoạt động gửi thư qua mạng sử dụng hệ thống tên miền - Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng việt trên linux
Hình 8. Hoạt động gửi thư qua mạng sử dụng hệ thống tên miền (Trang 19)
Bảng 1.Tên các trường trong header - Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng việt trên linux
Bảng 1. Tên các trường trong header (Trang 22)
Hình 10. Con đường thơng thường của một bức thư điện tử - Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng việt trên linux
Hình 10. Con đường thơng thường của một bức thư điện tử (Trang 31)
Hình 12. Một tình huống nhập nhằng trong phân tách câu - Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng việt trên linux
Hình 12. Một tình huống nhập nhằng trong phân tách câu (Trang 40)
Hình 13. Quá trình học một bức thư của mơđun lọc Bayesian trong SpamAssassin  - Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng việt trên linux
Hình 13. Quá trình học một bức thư của mơđun lọc Bayesian trong SpamAssassin (Trang 45)
Hình 14. Quá trình quét một thư bằng phương pháp lọc Bayesian - Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng việt trên linux
Hình 14. Quá trình quét một thư bằng phương pháp lọc Bayesian (Trang 47)
Hình 15. Tích hợp SpamAssassin vào Procmail - Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng việt trên linux
Hình 15. Tích hợp SpamAssassin vào Procmail (Trang 56)
Bảng 2.Các bộ phận của thư và các chỉ thị. - Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng việt trên linux
Bảng 2. Các bộ phận của thư và các chỉ thị (Trang 59)
Chúng ta cĩ bảng các cờ và ý nghĩa của các cờ: - Nghiên cứu và thiết kế hệ thống lọc thư rác tiếng việt trên linux
h úng ta cĩ bảng các cờ và ý nghĩa của các cờ: (Trang 60)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w