2. Phân loại văn bản
3.2.2. Quá trình quét một thư
Đối với phương pháp Bayesian, các cơng thức của giải thuật xây dựng được hầu hết được áp dụng cho quá trình quét một thư và xác định xem thư đĩ cĩ phải là thư rác hay khơng. Vì vậy quá trình quét một thư rác phức tạp hơn rất nhiều so với quá trình học.
Cụ thể, nĩ gồm các quá trình sau:
• Tách từ khĩa từ bức thư cần quét
• Lấy tần suất cho mỗi từ khĩa xuất hiện trong thư từ CSDL đã học được
• Xác định điểm của mỗi bức thư thơng qua tổng hợp xác suất xuất hiện của các từ khĩa trong thư bằng các phương pháp P.Graham, Gary Robinson, hay Chi Square
Sơ đồ quá trình quét một bức thư:
Hình 14. Quá trình quét một thư bằng phương pháp lọc Bayesian
Trong đĩ:
• Quá trình từ : Bĩc tách thư đến – Làm sạch thư hồn tồn giống quá
trình học
• Kiểm tra từ: là quá trình kiểm tra các từ cĩ chỉ số MI (Mutual
Information) cao nhất trong CSDL của SpamAssassin cĩ xuất hiện trong thư hay khơng. Nếu cĩ xuất hiện thì sẽ được đem đi để tổng hợp xác suất để chuyển sang hệ thống tính điểm. Số từ được kiểm tra cĩ thể được cấu hình. Nhưng mặc định sẽ là 150 từ.
• Quá trình tổng hợp xác suất: Là quá trình sử dụng các cơng thức
của phương pháp P.Graham, Gary Robinson, hay Chi Square. SpamAssassin đã sử dụng 2 mơ đun
Mail::SpamAssassin::Bayes::CombineChi và
Mail::SpamAssassin::Bayes::CombineNaiveBayes tương ứng với hai phương pháp là Chi Squared và Gary Robinson. Mơ đun được sử dụng được chỉ ra trong chỉ thị cấu hình bayes_use_chi2_combining.
• Chuyển sang khơng gian điểm: do SpamAssassin sử dụng lọc
Bayesian cùng với các phương pháp khác nên các giá trị xác suất Bĩc tách thư
Làm sạch thư Kiểm tra từ
Giải mã MIME Spam/Ham
Tính xác suất của từ Tổng hợp xác suất Chuyển sang khơng gian điểm
Xác định Spam/Ham
được chuyển sang khơng gian điểm. Các luật chuyển được định nghĩa trong tệp 23_bayes.cf.
Ví dụ:
body BAYES_00 eval:check_bayes('0.00', '0.01') body BAYES_05 eval:check_bayes('0.01', '0.05') body BAYES_20 eval:check_bayes('0.05', '0.20') body BAYES_40 eval:check_bayes('0.20', '0.40') body BAYES_60 eval:check_bayes('0.60', '0.80') body BAYES_80 eval:check_bayes('0.80', '0.95') body BAYES_95 eval:check_bayes('0.95', '0.99') body BAYES_99 eval:check_bayes('0.99', '1.00') Và điểm của các luật này được ghi trong tệp 50_scores.cf
score BAYES_00 0.0001 0.0001 -2.312 -2.599 score BAYES_05 0.0001 0.0001 -1.110 -1.110 score BAYES_20 0.0001 0.0001 -0.740 -0.740 score BAYES_40 0.0001 0.0001 -0.185 -0.185 score BAYES_50 0.0001 0.0001 0.001 0.001 score BAYES_60 0.0001 0.0001 1.0 1.0 score BAYES_80 0.0001 0.0001 2.0 2.0 score BAYES_95 0.0001 0.0001 3.0 3.0 score BAYES_99 0.0001 0.0001 3.5 3.5