FREEDOM

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            6 隨筆 :: 0 文章 :: 1 評論 :: 0 Trackbacks

          一. 貝葉斯過濾算法的基本步驟

          1) 收集大量的垃圾郵件和非垃圾郵件,建立垃圾郵件集和非垃圾郵件集。
          2) 提取郵件主題和郵件體中的獨立字串例如 ABC32,¥234等作為TOKEN串并統(tǒng)計提取出的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)= P1(ti)/[(P1(ti)+ P2(ti)];
          6) 建立新的哈希表 hashtable_probability存儲TOKEN串ti到P(A|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)=(P1*P2*。。。。PN)/[P1*P2*。。。。。PN+(1-P1)*(1-P2)*。。。(1-PN)]
          當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
          由此可推出該郵件為非垃圾郵件

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

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


          網站導航:
           
          主站蜘蛛池模板: 白玉县| 望谟县| 安义县| 尼勒克县| 汤原县| 太湖县| 昌江| 沅陵县| 临泉县| 渑池县| 墨江| 延吉市| 格尔木市| 通州区| 浦城县| 慈利县| 托里县| 沽源县| 丰镇市| 瑞金市| 新泰市| 常山县| 泰兴市| 临猗县| 乌拉特中旗| 遂川县| 康乐县| 乡城县| 汝阳县| 灵璧县| 内江市| 嘉定区| 华坪县| 黑河市| 临湘市| 边坝县| 集贤县| 鱼台县| 哈密市| 吉木乃县| 五原县|