字體:小 中 大 | |
|
|
2008/09/11 00:53:48瀏覽1188|回應0|推薦2 | |
你想都想不到的反垃圾信技術【讓EDM代發業者頭疼的反垃圾信技術:貝斯運算法】 一、 貝斯介紹 貝斯是基於概率的一種算法,是Thomas Bayes:一位偉大的數學大師所創建的,目前此種算法用於過濾垃圾郵件得到了廣泛地好評。貝斯過濾器是基於「自我學習」的智能技術,能夠使自己適應垃圾郵件製造者的新把戲,同時為合法電子郵件提供保護。在智能郵件過濾技術中,貝斯(Bayesian)過濾技術取得了較大的成功,被越來越多地應用在反垃圾郵件的產品中。 二、 貝斯過濾算法的基本步驟
2. 提取郵件主題和郵件體中的獨立字符串,例如 ABC32,¥234等作為TOKEN串並統計提取出的TOKEN串出現的次數即字頻。按照上述的方法分別處理垃圾郵件集和非垃圾郵件集中的所有郵件。 3. 每一個郵件集對應一個哈希表,hashtable_good對應非垃圾郵件集而hashtable_bad對應垃圾郵件集。表中存儲TOKEN串到字頻的映射關係。 4. 計算每個哈希表中TOKEN串出現的概率P=(某TOKEN串的字頻)/(對應哈希表的長度) 5. 綜合考慮hashtable_good和hashtable_bad,推斷出當新來的郵件中出現某個TOKEN串時,該新郵件為垃圾郵件的概率。數學表達式為: A 事件 ---- 郵件為垃圾郵件; t1,t2 …….tn 代表 TOKEN 串 則 P ( A|ti )表示在郵件中出現 TOKEN 串 ti 時,該郵件為垃圾郵件的概率。 設 P1 ( ti ) = ( ti 在 hashtable_good 中的值) P2 ( ti ) = ( ti 在 hashtable_ bad 中的值) 則 P ( A|ti ) =P2 ( ti ) /[ ( P1 ( ti ) +P2 ( ti ) ] ;
7. 至此,垃圾郵件集和非垃圾郵件集的學習過程結束。根據建立的哈希表 hashtable_probability可以估計一封新到的郵件為垃圾郵件的可能性。 當新到一封郵件時,按照步驟2,生成TOKEN串。查詢hashtable_probability得到該TOKEN 串的鍵值。 假設由該郵件共得到N個TOKEN 串,t1,t2…….tn,hashtable_probability中對應的值為 P1 , P2 , ……PN , P(A|t1 ,t2, t3……tn) 表示在郵件中同時出現多個TOKEN串t1,t2……tn時,該郵件為垃圾郵件的概率。 由復合概率公式可得 當 P(A|t1 ,t2, t3……tn) 超過預定閾值時,就可以判斷郵件為垃圾郵件。
例如:一封含有 「 法輪功 」 字樣的垃圾郵件 A 和一封含有 「 法律 」 字樣的非垃圾郵件 B 。 根據郵件 A 生成 hashtable_bad ,該哈希表中的記錄為 法: 1 次 輪: 1 次 功: 1 次 計算得在本表中: 法出現的概率為 0.3 輪出現的概率為 0.3 功出現的概率為 0.3 根據郵件B生成hashtable_good,該哈希表中的記錄為: 法: 1 次 律: 1 次 計算得在本表中: 法出現的概率為 0.5 律出現的概率為 0.5 綜合考慮兩個哈希表,共有四個 TOKEN 串:法 輪 功 律 當郵件中出現「法」時,該郵件為垃圾郵件的概率為: P = 0.3/ ( 0.3 + 0.5 ) = 0.375 出現「輪」時,該郵件為垃圾郵件的概率為: P = 0.3/ ( 0.3 + 0 ) = 1 出現「功」時,該郵件為垃圾郵件的概率為: P = 0.3/ ( 0.3 + 0 ) = 1 出現「律」時,該郵件為垃圾郵件的概率為: P = 0/ ( 0 + 0.5 ) = 0 由此可得第三個哈希表 hashtable_probability ,其數據為: 法: 0.375 輪: 1 功: 1 律: 0 當新到一封含有「功律」的郵件時,我們可得到兩個TOKEN串:功 律 查詢哈希表 hashtable_probability 可得: P (垃圾郵件 | 功) = 1 P (垃圾郵件 | 律) = 0 此時該郵件為垃圾郵件的可能性為: P= ( 0*1 ) /[0*1+ ( 1-0 ) * ( 1-1 ) ] = 0 由此可推出該郵件為非垃圾郵件。 四、總結 不過,儘管貝斯過濾器非常有效,但它仍需要進行優化才能真正完美。比如它可以結合 「白名單」降低誤報率,結合「黑名單」降低漏過率,還可以利用其他技術如源址認證使其成為更加精確的垃圾郵件過濾器。 |
|
( 休閒生活|生活情報 ) |