郭淑敏 朱蓉 王品品 胡勝 陳佳輝
摘要:隨著互聯(lián)網(wǎng)行業(yè)的迅速發(fā)展,電子郵件營銷得到快速發(fā)展,但垃圾郵件的日趨嚴(yán)重浪費(fèi)著網(wǎng)絡(luò)資源,因此過濾垃圾郵件刻不容緩。該文通過介紹樸素貝葉斯算法的原理及它在垃圾郵件過濾這方面的應(yīng)用,基于樸素貝葉斯算法的分類模型設(shè)計(jì)了一個(gè)文本廣告郵件過濾系統(tǒng),能夠有效實(shí)現(xiàn)垃圾郵件過濾。該系統(tǒng)的特點(diǎn)是在中文分詞部分添加了當(dāng)前的網(wǎng)絡(luò)熱詞,從而進(jìn)一步提高了系統(tǒng)的實(shí)用性。本系統(tǒng)通過在包含合法郵件與垃圾郵件的數(shù)據(jù)庫上進(jìn)行實(shí)驗(yàn)測(cè)試,針對(duì)垃圾郵件的分類獲得了較高的正確率。
關(guān)鍵詞:垃圾郵件;貝葉斯算法;過濾器
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)13-0171-03
伴隨著互聯(lián)網(wǎng)時(shí)代的到來,利用科學(xué)技術(shù)傳遞消息的方式多種多樣,電話、QQ、電子郵件、微信、微博等都成了人們?nèi)粘I钪胁豢扇鄙俚慕涣髌脚_(tái)。與之誕生的還有相應(yīng)的電子營銷手段,如今人們發(fā)送電子郵件取代傳統(tǒng)郵件,成為一些電商進(jìn)行宣傳和推廣產(chǎn)品的重要手段,但與此同時(shí)來勢(shì)洶洶的垃圾郵件使得整個(gè)網(wǎng)絡(luò)不堪重負(fù)。面對(duì)垃圾郵件的猖獗,技術(shù)人員開發(fā)各種阻止垃圾郵件的方法。例如:黑名單技術(shù),它將經(jīng)常發(fā)送垃圾的IP地址范圍、域名等屬性都列入一個(gè)黑名單,凡是從黑名單所包含的IP地址發(fā)送來的郵件都被判定為垃圾郵件,但這種方法也會(huì)誤屏蔽IP地址,導(dǎo)致正常的通信無法進(jìn)行。另一種技術(shù)就是過濾技術(shù),它根據(jù)某種算法或規(guī)則,來判斷垃圾郵件,最先出現(xiàn)的是基于模式匹配的算法規(guī)則,它通過關(guān)鍵詞檢索來判斷垃圾郵件,然后是支持正則表達(dá)式的模糊匹配。隨著信息技術(shù)的發(fā)展,基于分類算法的過濾成為現(xiàn)在最流行的技術(shù),其中:基于貝葉斯算法的分類能夠獲得良好的垃圾郵件過濾效果受到廣泛研究者的關(guān)注。這種方法用先驗(yàn)概率對(duì)郵件進(jìn)行判斷,并且可以在分類算法中添加自學(xué)功能,通過不斷地校正先驗(yàn)概率來提高垃圾郵件過濾的準(zhǔn)確性。
1貝葉斯定理
條件概率P(TIC)是指事件C已經(jīng)發(fā)生的前提下,事件T發(fā)生的概率?;厩蠼夤饺缦拢?/p>
條件概率P(CIT)J就是事件T發(fā)生條件下事件C的概率P,貝葉斯定理就是利用式1計(jì)算P(CIT),然而在實(shí)際應(yīng)用中經(jīng)常會(huì)遇到這種情況:容易求解P(TIC)而P(CIT)求解困難,但是P(CIT)可根據(jù)P(TIC)求出。下面給出貝葉斯公式:
貝葉斯定理即當(dāng)已知事件C的概率P(Ci)和事件C已發(fā)生條件下事件T的概率P(T|Ci),則可運(yùn)用貝葉斯定理計(jì)算出在事件T發(fā)生條件下事件Ci的概率P(Ci|T)。將貝葉斯定理應(yīng)用于分類問題時(shí),用集合c={c1,c2…|表示類別,把事物的眾多屬性看做一個(gè)向量,用向量T=(t1,t2,…,tn)來代表這個(gè)事物。所謂將事物分類,即將T歸類為C中的一個(gè)類別。T被稱為屬性集。一般T與C的關(guān)系是不確定的,你只能說在某種程度說T屬于類c1的可能性是多大,這時(shí)可以把T和C看做是隨機(jī)變量,P(CIT)稱為C的后驗(yàn)概率,與之相對(duì)的,P(C)稱為C的先驗(yàn)概率。
在訓(xùn)練階段,根據(jù)從訓(xùn)練數(shù)據(jù)里收集的信息,我們對(duì)T和c的每一種組合計(jì)算后驗(yàn)概率P(CIT)。在分類的時(shí)候,對(duì)于新來的一個(gè)實(shí)例t,我們就要從在之前訓(xùn)練得到的一堆的后驗(yàn)概率里找到所有的P(Clt),計(jì)算C值,在這些C值中找到最大的那個(gè)C,它就是t被判定的可能的所屬分類。根據(jù)貝葉斯公式,后驗(yàn)概率為:
(3)
由于在結(jié)果比較不同的C值的后驗(yàn)概率的時(shí)候,分母P(t)總是常數(shù),因此可以被忽略不計(jì)。而先驗(yàn)概率P(C)則可以通過計(jì)算訓(xùn)練集中屬于每—個(gè)類的訓(xùn)練樣本所占的比例容易地被估計(jì)。
2樸素貝葉斯分類器
樸素貝葉斯分類器在估計(jì)類條件概率時(shí),假設(shè)各屬性之間是條件獨(dú)立的。在進(jìn)行文本分類時(shí),對(duì)于某一個(gè)文本可以用一個(gè)文本特征向量來表示:t=(t1,t2,…,tn)。一般在文本中,各個(gè)單詞之間根據(jù)語義理解是具有一定的上下文聯(lián)系的,并不是相互獨(dú)立的。為了采用樸素貝葉斯對(duì)文本進(jìn)行分類,假定單詞之間沒有聯(lián)系。將輸入t分到后驗(yàn)概率最大的類C。公式如下:
(4)
當(dāng)訓(xùn)練集合比較小時(shí),概率計(jì)算P(tj|ck)的結(jié)果不會(huì)很合理,因?yàn)楦怕手敌枰?jīng)過大量的統(tǒng)計(jì)規(guī)律而得。本文采用另外一種近似方法來計(jì)算,這種方法被稱作拉普拉斯變換。故后驗(yàn)概率計(jì)算公式如下:
(5)
3系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
3.1系統(tǒng)流程介紹
為了驗(yàn)證本文中提出的方法,開發(fā)了一個(gè)基于貝葉斯分類器的郵件過濾系統(tǒng)。由于本文研究對(duì)象主要針對(duì)網(wǎng)絡(luò)營銷類垃圾郵件,故所有垃圾郵件都指的是營銷類垃圾郵件,合法郵件是指除營銷類垃圾郵件以外的所有郵件。郵件過濾系統(tǒng)主要包含:郵件樣本收集、郵件預(yù)處理、中文分詞、郵件過濾四個(gè)部分,系統(tǒng)流程如下圖所示:
在郵件過濾系統(tǒng)中,中文分詞的好壞影響系統(tǒng)有效性。中文分詞是中文信息處理的前提,詞庫是中文自動(dòng)分詞的基礎(chǔ)。中文分詞是將一句話分解成一個(gè)一個(gè)的單詞,這些單詞可以作為特征項(xiàng)來對(duì)文本進(jìn)行區(qū)分。只有建立適當(dāng)?shù)淖值洌到y(tǒng)才能夠依賴于特征項(xiàng)對(duì)文本進(jìn)行合理理解和過濾。常用的分詞算法分為三大類:基于字符串匹配、基于理解和基于統(tǒng)計(jì)的分詞方法。
在基于理解的方法中,分詞系統(tǒng)是由詞庫、知識(shí)庫和推理機(jī)三個(gè)部分組成。推理機(jī)制利用詞庫和知識(shí)庫提供的大量數(shù)據(jù)和知識(shí),來模擬語言學(xué)家的邏輯思維過程,以此實(shí)現(xiàn)自動(dòng)分詞?;谧址ヅ涞姆衷~方法(機(jī)械匹配算法)主要利用字符串匹配的原理,將文檔中的字符串和詞典中的詞條進(jìn)行逐一的匹配,如果在詞典中匹配到一個(gè)字符串,則可以切分?;诮y(tǒng)計(jì)的分詞法的原理是根據(jù)字符串在語料庫中出現(xiàn)的頻率來判斷它是否構(gòu)成單詞,字與字相鄰共現(xiàn)的頻率能夠較好地反映它們成為詞的可信度。本文中采用的就是基于統(tǒng)計(jì)的分詞方法。
3.2特征選擇
特征選擇算法可以降低文本特征向量的維度、去除冗余特征、保持分化特性。在垃圾郵件過濾中,足夠的訓(xùn)練樣本和高覆蓋的單詞有利于垃圾郵件的有效分類。如果特征選擇做得不好,特征庫的維度就變大,向量維數(shù)過高會(huì)造成文本向量計(jì)算困難問題。高維文本向量不僅存在冗余信息,導(dǎo)致誤判,而且影響分類器性能。因此需要經(jīng)過特征選擇的步驟。文檔頻度是指一個(gè)特征項(xiàng)在語料庫中出現(xiàn)的文檔數(shù)量的統(tǒng)計(jì),可以通過設(shè)定一個(gè)特定閾值來實(shí)現(xiàn),如果某一個(gè)特征項(xiàng)的文檔頻度小于給定閾值則被過濾掉,這樣不僅可以從訓(xùn)練集特征詞典中過濾掉一些相對(duì)意義不大的特征項(xiàng),而且可以降低特征項(xiàng)空間維度。通過實(shí)驗(yàn)數(shù)據(jù)表明,中文語料庫的最佳特征集合大小范圍為1200-1800。
3.3添加熱詞
本文中使用的詞庫來源于從網(wǎng)絡(luò)上下載的SDIC.txt文件,包括詞條43970條,基礎(chǔ)詞匯量豐富。然而,由于互聯(lián)網(wǎng)的快速發(fā)展,近期網(wǎng)絡(luò)熱詞傳播速度極快,傳播范圍廣,且被網(wǎng)友廣泛接受并使用,將熱詞添加入詞庫對(duì)于提高中文分詞的準(zhǔn)確度有幫助。因此,本系統(tǒng)在中文分詞模塊中,對(duì)原有基礎(chǔ)詞庫進(jìn)行了擴(kuò)充,如加了當(dāng)前一些廣為人知的熱詞。部分新增詞條比如“壁咚、網(wǎng)紅、Duang、屌絲、小清新、元芳、重口味、吐槽、你妹、正能量、賣萌、點(diǎn)贊、HOLD住、學(xué)生黨、考研狗、單身狗、且行且珍惜、畫面太美我不敢看、我爸是李剛、么么噠、打老虎、上天臺(tái)、也是醉了、也是蠻拼的、神馬、造、臣妾做不到”等等。
3.4實(shí)驗(yàn)結(jié)果與分析
假定被判定為垃圾郵件的營銷類郵件中垃圾郵件個(gè)數(shù)為A、合法郵件個(gè)數(shù)為B;被判定為合法郵件的營銷類郵件中垃圾郵件個(gè)數(shù)為C、合法郵件個(gè)數(shù)為D??偁I銷郵件的個(gè)數(shù)N為:N=A+B+C+D。
其中:召回率(Recall):R=(A/(A+C))*100%;即垃圾郵件檢出率。該指標(biāo)反映了過濾系統(tǒng)發(fā)現(xiàn)垃圾郵件的能力,召回率越高,“漏網(wǎng)”的垃圾郵件就越少。
正確率(Precision):P=(A/(A+B)*100%;即垃圾郵件檢對(duì)率。該指標(biāo)反映了過濾系統(tǒng)“找對(duì)”垃圾郵件的能力,正確率越大,將合法郵件誤判為垃圾郵件的可能性越小。
精確率(Accuracy):A=((A+D)/N)*100%;即對(duì)所有營銷郵件(包括垃圾郵件和合法郵件)的判對(duì)率。
錯(cuò)誤率(Error rate):E=1-A;即對(duì)所有營銷郵件(包括垃圾郵件和合法郵件)的判錯(cuò)率。
F值:召回率和正確率的調(diào)和平均值,它將召回率和正確率綜合成一個(gè)指標(biāo)。
除此之外,還可以采用虛報(bào)率(Fallout)、漏報(bào)率(Miss rate)等指標(biāo)。
本實(shí)驗(yàn)的訓(xùn)練集和測(cè)試集采用了相同數(shù)量的合法郵件和垃圾郵件,當(dāng)被測(cè)郵件為傳統(tǒng)的垃圾郵件時(shí),測(cè)試結(jié)果為94.2%的正確率,這證明了樸素貝葉斯分類器的確準(zhǔn)確又快速。盡管相比于傳統(tǒng)的垃圾郵件過濾無法解決網(wǎng)絡(luò)熱詞,本系統(tǒng)能夠較好地處理包含設(shè)定網(wǎng)絡(luò)熱詞的郵件,但是當(dāng)被檢測(cè)的郵件變成時(shí)下熱門的修改賬號(hào)密碼的門戶網(wǎng)站發(fā)來的回執(zhí)文檔,或者成功注冊(cè)成為某網(wǎng)站會(huì)員的提醒郵件、網(wǎng)上購物訂單號(hào)的告知郵件等郵件時(shí)(如圖2所示),一些應(yīng)當(dāng)被認(rèn)為是合法郵件的郵件被分類器判定為非法郵件。還有一些利用哲學(xué)故事傳播信息或者假借某平臺(tái)傳遞消息的垃圾郵件等,由于與合法郵件關(guān)鍵詞很相似所以被誤判為合法郵件(如圖3所示)。
需要說明的是,在實(shí)驗(yàn)中訓(xùn)練集與測(cè)試集中郵件的數(shù)量比例設(shè)置為1:1。若訓(xùn)練集與測(cè)試集的數(shù)量比例過高,會(huì)導(dǎo)致訓(xùn)練數(shù)據(jù)過擬合,無法正確對(duì)測(cè)試郵件進(jìn)行分類;反之,若訓(xùn)練集與測(cè)試集的數(shù)量比例偏小,分類器學(xué)習(xí)的程度不能達(dá)到預(yù)期效果。這時(shí)由于采集的特征值數(shù)量過小的話,根據(jù)少量特征值去判斷大容量的郵件,就會(huì)導(dǎo)致學(xué)習(xí)獲得的分類器失效,出現(xiàn)機(jī)器的“主觀臆斷”現(xiàn)象。
4結(jié)束語
本文介紹了基于貝葉斯算法過濾垃圾郵件的主要方式,設(shè)計(jì)了一個(gè)簡(jiǎn)單的基于樸素貝葉斯方法的純文本垃圾郵件過濾系統(tǒng),并通過實(shí)驗(yàn)驗(yàn)證了樸素貝葉斯方法在垃圾郵件分類上有著快速且有效的作用。除此之外,本系統(tǒng)存在的不足之處有針對(duì)的對(duì)象是純文本郵件,然而隨著時(shí)代發(fā)展,郵件中多帶有鏈接、附件、圖片等非文本內(nèi)容,為了提升分類器分類性能,后續(xù)應(yīng)該將郵件中的非文本內(nèi)容解析出來并作為特征值存在向量空間模型中。這樣,對(duì)于文本內(nèi)容為空但是帶有附件的郵件,對(duì)于帶有特大型附件并且文本內(nèi)容特別長的這些具有明顯特征的郵件,分類器也能自動(dòng)將其正確分類。