王 暉
摘要:本文的研究目標是設(shè)計一個客戶端的郵件解決方案,通過使用貝葉斯分類算法構(gòu)建貝葉斯分類器,實現(xiàn)一個基于最小風險決策的貝葉斯分類方法的垃圾郵件處理系統(tǒng)。該系統(tǒng)主要完成收發(fā)郵件、識別垃圾郵件的基本功能,詳細闡述了郵件預(yù)處理模塊和郵件過濾模塊的設(shè)計與實現(xiàn)。
關(guān)鍵詞:中文分詞;特征值;郵件過濾
一、 設(shè)計目標
本系統(tǒng)的目標是設(shè)計一個客戶端的郵件解決方案,通過使用貝葉斯分類算法構(gòu)建貝葉斯分類器,實現(xiàn)一個基于最小風險決策的貝葉斯分類方法的垃圾郵件處理系統(tǒng)。該系統(tǒng)主要完成收發(fā)郵件的基本功能,并利用該處理系統(tǒng)來識別垃圾郵件。同時,作為一種客戶端反垃圾郵件解決方案,系統(tǒng)支持電子郵件客戶端軟件Outlook。其次,系統(tǒng)充分考慮了用戶個性化的要求,不同的用戶有自己對垃圾郵件內(nèi)涵的不同理解和定義方式,用戶可以決定對垃圾郵件的處理方式。再次,針對大多數(shù)用戶的實際使用情況,本系統(tǒng)處理的重心主要放在中文郵件。最后,本系統(tǒng)還應(yīng)該具備安裝簡單、容易配置和使用、界面友好等特點,對用戶目前的使用習(xí)慣也充分考慮。
系統(tǒng)應(yīng)具備的功能主要有:(1)接收郵件功能。本系統(tǒng)選擇基于Outlook進行接收郵件,并設(shè)置了友好的界面,用戶接收郵件后,可以使用本系統(tǒng)訪問并讀取用戶郵箱中的郵件,并下載附件。(2)發(fā)送郵件功能。作為一個郵件處理系統(tǒng),發(fā)送郵件功能是必不可少的,系統(tǒng)應(yīng)有編輯郵件文本內(nèi)容并發(fā)送郵件、添加附件的功能。(3)郵件識別功能。這是系統(tǒng)最關(guān)鍵的一項功能,在接收郵件同時,系統(tǒng)應(yīng)有自動對用戶郵件進行掃描、分析和對垃圾郵件識別的功能。要實現(xiàn)這一功能,需要完成對郵件內(nèi)容的分詞、提取特征詞,然后使用預(yù)先訓(xùn)練好的貝葉斯分類器實現(xiàn)對垃圾郵件的識別。
二、 郵件預(yù)處理模塊的設(shè)計與實現(xiàn)
對郵件的預(yù)處理主要分為兩個過程:中文分詞、特征詞提取。
1. 中文分詞設(shè)計與實現(xiàn)
中文分詞在垃圾郵件過濾中擔當著數(shù)據(jù)預(yù)處理的角色。分詞的結(jié)果可以與垃圾郵件特征詞匹配,判斷其是否為垃圾郵件,因此中文分詞的準確性直接影響電子郵件分類的準確度。這一部分的主要功能是選取中文郵件訓(xùn)練樣本集(包括垃圾郵件和正常郵件),對垃圾郵件和正常郵件的文本內(nèi)容進行分詞,存入數(shù)據(jù)庫。系統(tǒng)采用改進的基于詞典的正向最大匹配分詞算法,在正向最大匹配分詞的基礎(chǔ)上引入索引分詞的思想,從而提高了分詞的效率。由于正向最大匹配法是基于詞典的字符串匹配方法,詞典的好壞直接影響分詞的效果,所以詞典的組織加工尤為重要。為了提高分詞的準確性和高效性,本文設(shè)計了三個詞典:常用詞詞典、索引詞典、停用詞詞典。
為了提高分詞速度,對待分詞郵件進行預(yù)處理,刪除文本中的多余符號,將文本切分成句子。對每一個句子按經(jīng)過改進的正向最大匹配方法進行分詞處理,具體設(shè)計方法:(1)對郵件文本進行掃描,刪除英文、數(shù)字、空格及特殊的標志字符。(2)將郵件文本中用于分隔語句的符號用空格代替。(3)取當前首字POS首字節(jié)計算索引值,根據(jù)當前匹配長度讀入LEN個字(初始化LEN=4),根據(jù)索引值查找索引詞典,取得詞典偏移量,查找常用詞詞典。(4)如果未能找到且當前LEN≥2,則長度減一繼續(xù)查找,直到LEN<2,如還未找到則取當前漢字的下一個漢字POS=POS+1,重復(fù)(1)。(5) 如果查找成功,繼續(xù)查找停用詞詞典,找到則去除停用詞,否則更新特征詞庫,然后后移LEN個漢字POS=POS+LEN重復(fù)(3),直到結(jié)束。
2. 特征值選取
通過使用信息增益法對分詞處理后得到的每個詞匯計算信息增益值,根據(jù)計算結(jié)果提取一定數(shù)量的特征詞建立垃圾郵件特征詞庫。
其算法過程如下所列:(1) 初始情況下,該特征項集合包含所有類中出現(xiàn)的詞。(2)除低頻詞和高頻詞。(3)計算每個詞的信息增益值。(4)對于所有的詞,依據(jù)上面計算的信息增益值從大到小進行排序。(5)抽取一定數(shù)量的詞作為特征項,具體需要抽取多少特征項,本文采用了先定初始值,然后根據(jù)實驗測試和統(tǒng)計結(jié)果確定最佳值。本系統(tǒng)最終提取了300個特征詞。(6)根據(jù)抽取出的特征詞,建立特征詞庫。
三、 郵件過濾模塊的設(shè)計與實現(xiàn)
1. 訓(xùn)練過程的設(shè)計與實現(xiàn)
對于訓(xùn)練樣本集和測試樣本集的選取,來源于中國教育科研網(wǎng)絡(luò)中心計算機緊急響應(yīng)小組提供的20 308封垃圾郵件和9 042封正常郵件。分別將語料庫中的400封郵件(包括200封正常郵件、200封垃圾郵件)作為訓(xùn)練樣本集,另外200封(包括100封正常郵件、100封垃圾郵件)作為測試樣本集。
訓(xùn)練過程的基本步驟:(1)建立訓(xùn)練樣本集,把訓(xùn)練樣本集分類成為正常郵件和垃圾郵件,建立正常郵件樣本集和垃圾郵件樣本集。(2)對郵件樣本集中的所有郵件的文本進行分詞處理,在分詞的過程中統(tǒng)計出每個特征詞在正常郵件類和垃圾郵件類中出現(xiàn)的次數(shù),將分詞結(jié)果和統(tǒng)計數(shù)據(jù)存入數(shù)據(jù)庫。(3)分別統(tǒng)計垃圾郵件和正常郵件的類先驗概率P(c=1)和P(c=0)。(4)計算每個詞語的信息增益,將計算結(jié)果寫入數(shù)據(jù)庫。設(shè)定特征維數(shù)n,按從大到小的順序提取n個詞建立特征詞庫。(5)根據(jù)建立的特征詞庫,統(tǒng)計特征詞的類條件概率P(wt|c=1)和 P(wt|c=0),完成后將結(jié)果存入特征詞庫。
2. 分類過程的設(shè)計與實現(xiàn)
一般地,在應(yīng)用貝葉斯分類器進行文本分類時,設(shè)定的文本類別是感興趣與不感興趣兩類。當然,貝葉斯分類器也可以處理多文本類別的情況,例如相關(guān)、不相關(guān)和其他類等。在采用貝葉斯分類法對電子郵件進行分類的過濾系統(tǒng)中,大多數(shù)直接將電子郵件分為垃圾郵件和非垃圾郵件兩類。這種兩值的情況會造成一些非垃圾郵件“誤承認”問題,即將一些非垃圾郵件劃分到垃圾郵件之列。例如一封關(guān)于“化妝品”的正常資料被判斷成為關(guān)于化妝品的宣傳品。對于用戶而言,寧可收到垃圾郵件也不愿意收不到郵件。造成此種問題的原因是,貝葉斯分類器中只是簡單地根據(jù)預(yù)定的閾值將電子郵件分為垃圾郵件和非垃圾郵件。如果貝葉斯分類器將電子郵件處理成多類別的情況,例如非垃圾郵件、垃圾郵件和不確定郵件,那么新的問題又會出現(xiàn):一是閾值為多大,二是不確定類別郵件的存在又會造成過濾效率的降低。本文針對這兩種問題進行了改進。
本文中將采用貝葉斯分類算法處理的郵件分成垃圾郵件、疑似垃圾郵件和正常郵件三種類別。為了減少兩值判斷的誤承認性和誤判斷性,本文中將組合概率處于某個階段的郵件加入到不確定范圍中,即將組合概率分為三個范圍,組合概率分別處在三個范圍中的電子郵件被劃入垃圾郵件、疑似垃圾郵件和正常郵件之類。同時,在系統(tǒng)的運行過程中,根據(jù)過濾的效率不斷地改正三個范圍值,尤其是標志不確定類的范圍值。當誤承認和誤判斷性增高時相應(yīng)地減小其范圍值,相反則適當增大。對于不確定類別郵件的存在造成過濾效率的降低的問題,通過對該郵件的來源地址進行二次過濾的解決方法。如果郵件的來源地址屬于友好范圍之內(nèi),即屬于友好地址數(shù)據(jù)庫,則將其加入到正常郵件范圍中,否則不變。當然,系統(tǒng)設(shè)計時增加了一個友好地址數(shù)據(jù)庫,并在運行中不斷進行維護,以便進行查詢。
在垃圾郵件過濾技術(shù)不斷發(fā)展的同時,垃圾郵件制造者也不斷采用新的方法和手段制造和發(fā)送垃圾郵件。因此,對于垃圾郵件過濾技術(shù),仍然需要花費大量的時間與精力去研究和完善。本文在基于內(nèi)容的中文垃圾郵件的分類方面仍然存在許多不足,系統(tǒng)還有許多技術(shù)有待進一步研究和改進。
(黑龍江司法警官職業(yè)學(xué)院)