2. Phân loại văn bản
3.2.1. Quá trình học
Quá trình học của hệ thống tuân theo lý thuyết chung của quá trình phân loại văn bản. Trong phần trước, chúng ta đã trình bày các bước của quá trình phân loại văn bản. Đối với phân loại thư rác bằng Bayesian thì quá trình học một thư (spam/ham) là quá trình phân tách bức thư và ghi lại tần suất xuất hiện các từ khĩa vào cơ sở dữ liệu.
Sơ đồ chung của quá trình học một bức thư:
Hình 13. Quá trình học một bức thư của mơ đun lọc Bayesian trong SpamAssassin
Trong đĩ:
• Spam/Ham:
Là thư ở dạng chuẩn đâu vào, thơng thường được lưu ở hai dạng mbox và mdir. Các thư này được người dùng đưa vào bằng cách chỉ trong dịng lệnh sa-learn hoặc được bẫy bởi một địa chỉ thư từ thư phản hồi của người dùng hoặc là một thư trong quá trình học cĩ điểm thỏa mãn ngưỡng học chỉ ra bởi tham số
bayes_auto_learn_threshold_nonspam bayes_auto_learn_threshold_spam
• Bĩc tách thư
Là mơ đun tách từng phần của các thư trên về dạng cĩ cấu trúc. Chúng ta sẽ trích ra các thơng tin cần thiết cho các mơ đun sau. Ví dụ Bĩc tách thư Làm sạch thư Tách từ Cập nhật CSDL Bayesian Giải mã MIME CSDL Bayesian Spam/Ham Băm SHA1
như các thống tin về người gửi, người nhận, tiêu đề, nội dung…
Trong SpamAssassin, đĩ là mơ đun
Mail::SpamAssassin::ArchiveIterator. • Giải mã
Nếu các thư được mã hĩa ở dạng chuẩn MIME thì mơ đun này làm nhiệm vụ giải mã bức thư về dạng chuẩn. Bao gồm cả việc chuyển dạng thư HTML về Plain Text
• Làm sạch thư: Là quá trình xử lý các thư đã sau giải mã. Bao gồm các cơng đoạn như xử lý chữ hoa, các ký tự lạ, loại bỏ các khoảng trắng thừa. • Tách từ: Là mơ đun thực hiện việc tách từ. Hiện tại SpamAssassin
đang thực hiện tách từ theo khoảng trắng. Được thực hiện bởi mơ đun Mail::SpamAssassin::Bayes
• Băm theo SHA1: Để tiện trong việc tìm kiếm và lưu trữ, các từ khĩa (token) được băm và rút ngắn trước khi thực hiện lưu vào CSDL.
Cụ thể, việc băm được thực hiện bởi dùng mơ đun
Digest::SHA1 của PERL:
foreach my $token (@tokens) {
next unless length($token); # skip 0 length tokens $tokens{substr(sha1($token), -5)} = $token;
}
• Cập nhật CSDL:
Đây là cơng đoạn cập nhật các từ khĩa nhận được vào CSDL. Được thực hiện bởi Mail::SpamAssassin::BayesStore. Cĩ ba dạng lưu trữ CSDL Bayesian là tệp, CSDL SQL, và LDAP, tương ứng với chúng ta cĩ 3 thư viện của PERL thực hiện việc lưu trữ.