FREEDOM

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            6 隨筆 :: 0 文章 :: 1 評(píng)論 :: 0 Trackbacks

          一. 貝葉斯過(guò)濾算法的基本步驟

          1) 收集大量的垃圾郵件和非垃圾郵件,建立垃圾郵件集和非垃圾郵件集。
          2) 提取郵件主題和郵件體中的獨(dú)立字串例如 ABC32,¥234等作為TOKEN串并統(tǒng)計(jì)提取出的TOKEN串出現(xiàn)的次數(shù)即字頻。按照上述的方法分別處理垃圾郵件集和非垃圾郵件集中的所有郵件。
          3) 每一個(gè)郵件集對(duì)應(yīng)一個(gè)哈希表,hashtable_good對(duì)應(yīng)非垃圾郵件集而hashtable_bad對(duì)應(yīng)垃圾郵件集。表中存儲(chǔ)TOKEN串到字頻的映射關(guān)系。
          4) 計(jì)算每個(gè)哈希表中TOKEN串出現(xiàn)的概率P=(某TOKEN串的字頻)/(對(duì)應(yīng)哈希表的長(zhǎng)度)
          5) 綜合考慮hashtable_good和hashtable_bad,推斷出當(dāng)新來(lái)的郵件中出現(xiàn)某個(gè)TOKEN串時(shí),該新郵件為垃圾郵件的概率。數(shù)學(xué)表達(dá)式為:
          A事件----郵件為垃圾郵件;
          t1,t2 …….tn代表TOKEN串
          則P(A|ti)表示在郵件中出現(xiàn)TOKEN串ti時(shí),該郵件為垃圾郵件的概率。
          設(shè)
          P1(ti)=(ti在hashtable_good中的值)
          P2(ti)=(ti在hashtable_ bad中的值)
          則 P(A|ti)= P1(ti)/[(P1(ti)+ P2(ti)];
          6) 建立新的哈希表 hashtable_probability存儲(chǔ)TOKEN串ti到P(A|ti)的映射
          7) 至此,垃圾郵件集和非垃圾郵件集的學(xué)習(xí)過(guò)程結(jié)束。根據(jù)建立的哈希表 hashtable_probability可以估計(jì)一封新到的郵件為垃圾郵件的可能性。
          當(dāng)新到一封郵件時(shí),按照步驟2)生成TOKEN串。查詢hashtable_probability得到該TOKEN 串的鍵值。
          假設(shè)由該郵件共得到N個(gè)TOKEN串,t1,t2…….tn, hashtable_probability中對(duì)應(yīng)的值為P1,P2,。。。。。。PN,
          P(A|t1 ,t2, t3……tn)表示在郵件中同時(shí)出現(xiàn)多個(gè)TOKEN串t1,t2…….tn時(shí),該郵件為垃圾郵件的概率。
          由復(fù)合概率公式可得
          P(A|t1 ,t2, t3……tn)=(P1*P2*。。。。PN)/[P1*P2*。。。。。PN+(1-P1)*(1-P2)*。。。(1-PN)]
          當(dāng)P(A|t1 ,t2, t3……tn)超過(guò)預(yù)定閾值時(shí),就可以判斷郵件為垃圾郵件。

          二. 貝葉斯過(guò)濾算法舉例

          例如:一封含有“法 輪 功”字樣的垃圾郵件 A
          和 一封含有“法律”字樣的非垃圾郵件B
          根據(jù)郵件A生成hashtable_ bad,該哈希表中的記錄為
          法:1次
          輪:1次
          功:1次
          計(jì)算得在本表中:
          法出現(xiàn)的概率為0。3
          輪出現(xiàn)的概率為0。3
          功出現(xiàn)的概率為0。3
          根據(jù)郵件B生成hashtable_good,該哈希表中的記錄為:
          法:1
          律:1
          計(jì)算得在本表中:
          法出現(xiàn)的概率為0。5
          律出現(xiàn)的概率為0。5
          綜合考慮兩個(gè)哈希表,共有四個(gè)TOKEN串: 法 輪 功 律
          當(dāng)郵件中出現(xiàn)“法”時(shí),該郵件為垃圾郵件的概率為:
          P=0。3/(0。3+0。5)=0。375
          出現(xiàn)“輪”時(shí):
          P=0。3/(0。3+0)=1
          出現(xiàn)“功“時(shí):
          P=0。3/(0。3+0)=1
          出現(xiàn)“律”時(shí)
          P=0/(0+0。5)=0;
          由此可得第三個(gè)哈希表:hashtable_probability 其數(shù)據(jù)為:
          法:0。375
          輪:1
          功:1
          律:0

          當(dāng)新到一封含有“功律”的郵件時(shí),我們可得到兩個(gè)TOKEN串,功 律
          查詢哈希表hashtable_probability可得
          P(垃圾郵件| 功)=1
          P (垃圾郵件|律)=0
          此時(shí)該郵件為垃圾郵件的可能性為:
          P=(0*1)/[0*1+(1-0)*(1-1)]=0
          由此可推出該郵件為非垃圾郵件

          posted on 2006-06-12 11:41 FNST 閱讀(252) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 博乐市| 来凤县| 临清市| 巴林左旗| 通海县| 宁陵县| 龙山县| 仲巴县| 永丰县| 和硕县| 西平县| 湾仔区| 石林| 关岭| 岳普湖县| 榆树市| 乐东| 景泰县| 墨竹工卡县| 金湖县| 崇礼县| 双流县| 响水县| 天镇县| 岳池县| 平南县| 福州市| 延川县| 博兴县| 渭南市| 胶南市| 雷波县| 常山县| 凤冈县| 交城县| 长春市| 太和县| 巴东县| 九寨沟县| 甘泉县| 亚东县|