本發(fā)明涉及一種基于tf-idf中文分詞的貝葉斯垃圾郵件過濾方法,尤其涉及在中文電子郵件進(jìn)行垃圾郵件過濾過程中,通過tf-idf中文分詞算法對(duì)中文郵件內(nèi)容進(jìn)行分詞,并提取特征詞及計(jì)算特征詞權(quán)值,之后把特征詞及其權(quán)值輸入到貝葉斯分類器中判定郵件是否為垃圾郵件,實(shí)現(xiàn)對(duì)垃圾郵件的過濾。
背景技術(shù):
網(wǎng)絡(luò)已經(jīng)成為當(dāng)今社會(huì)人類生活不可分割的一部分。網(wǎng)絡(luò)技術(shù)的高速發(fā)展,讓人類的生活以及工作方式有了巨大的改變,人類的生活質(zhì)量和工作的效率得到了巨大的提升。近些年,電子郵件作為網(wǎng)絡(luò)技術(shù)中新興的通信技術(shù),改變了以往書信等浪費(fèi)人力、物力和財(cái)力的通信方式。人與人之間的溝通、學(xué)習(xí)和工作變得簡單高效。但電子郵件給我們的生活帶來便捷的同時(shí),也讓一些為獲得某種利益而發(fā)送大量不合法郵件的個(gè)人或企業(yè)困擾著電子郵件用戶。垃圾郵件的泛濫對(duì)電子郵件用戶的生活和工作產(chǎn)生了巨大的負(fù)面影響。用戶郵箱中如果充斥著大量的垃圾郵件,這不僅沒有對(duì)電子郵件用戶的學(xué)習(xí)和工作帶來更高的效率,反而會(huì)使電子郵件用戶浪費(fèi)大量的時(shí)間和精力去處理垃圾郵件。面對(duì)日益增多的垃圾郵件的困擾,一種可靠有效的垃圾郵件過濾技術(shù)已經(jīng)成為了發(fā)展必要。
貝葉斯算法以其高效、易于實(shí)現(xiàn)、擴(kuò)展性好的特點(diǎn),已廣泛的應(yīng)用在垃圾郵件過濾技術(shù)中。此外,貝葉斯算法能夠通過對(duì)郵件樣本的訓(xùn)練,自動(dòng)學(xué)習(xí)樣本內(nèi)容來對(duì)垃圾郵件進(jìn)行過濾。在現(xiàn)有的垃圾郵件過濾技術(shù)中,貝葉斯算法在垃圾郵件過濾中顯現(xiàn)出了極好的應(yīng)用效果。尤其在對(duì)英文電子郵件分類時(shí),較簡單的貝葉斯垃圾郵件過濾器的準(zhǔn)確率已經(jīng)達(dá)99%以上。而在對(duì)中文郵件的垃圾郵件判定及過濾中,由于中文的特殊性,誤報(bào)率一直很高。如果在中文郵件進(jìn)行分類之前,能夠做到郵件內(nèi)容的精確分詞,將會(huì)大大降低中文郵件分類的誤報(bào)率。
tf-idf(termfrequency–inversedocumentfrequency)分詞算法由兩部分構(gòu)成:tf(termfrequency,特性項(xiàng)頻率即詞頻)和idf(inversedocumentfrequency,逆向文檔頻率)。其中,詞頻(tf)指的是特征詞在所選取的文檔中出現(xiàn)的次數(shù),這就說明當(dāng)計(jì)算詞頻時(shí),需要對(duì)文本中的詞語組合進(jìn)行劃分,劃分后再統(tǒng)計(jì)詞語的個(gè)數(shù)。逆向文檔頻率(idf)指的是特征詞普遍重要性的度量。估量特征詞的逆向文檔頻率是通過對(duì)建立的語料庫統(tǒng)計(jì)特征詞出現(xiàn)的程度。逆向文檔頻率(idf)可以有效降低作用較小的高頻特征詞的權(quán)值,從而削弱對(duì)文本分類的影響,同時(shí)也對(duì)詞頻比較低而作用比較大的特征詞進(jìn)行評(píng)估賦予較大權(quán)值,提高文本分類的準(zhǔn)確性。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明為降低中文郵件中垃圾郵件過濾的誤報(bào)率,以提高準(zhǔn)確性,在樸素貝葉斯垃圾郵件過濾方法的基礎(chǔ)上,引入tf-idf中文分詞算法對(duì)郵件內(nèi)容進(jìn)行特征詞精確提取以及特征詞權(quán)值的估量,實(shí)現(xiàn)一種針對(duì)中文內(nèi)容的垃圾郵件高效過濾方法。
為達(dá)到上述目的,提出的一種基于tf-idf中文分詞的貝葉斯垃圾郵件過濾方法,主要包括以下步驟:
(1)收集中文郵件訓(xùn)練樣本集,包括垃圾郵件及合法郵件,建立中文郵件訓(xùn)練文本集;
(2)根據(jù)停用詞詞庫對(duì)中文郵件訓(xùn)練文本集進(jìn)行tf-idf中文分詞,并更新停用詞詞庫;
(3)通過tf-idf中文分詞算法對(duì)中文郵件訓(xùn)練文本集中的垃圾郵件和合法郵件進(jìn)行特征詞提取,根據(jù)提取的特征詞以及特征詞權(quán)值更新特征詞詞庫;
(4)把tf-idf中文分詞后的特征詞及特征詞權(quán)值輸入到貝葉斯過濾器;
(5)貝葉斯分類器根據(jù)輸入的中文郵件內(nèi)容中的特征詞及特征詞權(quán)值判斷郵件是否為垃圾郵件,并把結(jié)果反饋到日志庫。
所述步驟(2)中,在中文郵件內(nèi)容進(jìn)行分詞過程中,調(diào)用中科院ictclas中文分詞插件以及停用詞詞庫,過濾掉中文郵件內(nèi)容中的停用詞,進(jìn)而實(shí)現(xiàn)中文郵件內(nèi)容特征詞的精準(zhǔn)提取,并對(duì)中文郵件內(nèi)容中出現(xiàn)的新的停用詞進(jìn)行停用詞詞庫更新。
所述步驟(3)中,對(duì)于中文郵件進(jìn)行特征詞提取過程,通過tf-idf中文分詞對(duì)郵件內(nèi)容提取的特征詞和統(tǒng)計(jì)后的特征詞權(quán)值與特征詞詞庫內(nèi)包含的特征詞進(jìn)行比對(duì),如果存在相同的特征詞,更新詞庫中相應(yīng)的特征詞權(quán)值,如果不存在,添加新的特征詞及其權(quán)值到特征詞詞庫。
所述步驟(4)中,把經(jīng)過tf-idf中文分詞后的中文郵件訓(xùn)練集或者新郵件產(chǎn)生的特征詞以及特征詞權(quán)值輸入到貝葉斯分類器中,通過輸入的特征詞和建立的特征詞詞庫計(jì)算電子郵件屬于垃圾郵件的概率,當(dāng)垃圾郵件的概率大于設(shè)定的閾值時(shí),可判斷電子郵件為垃圾郵件,否則為合法郵件。
所述步驟(5)中,為降低噪聲特征詞對(duì)郵件分類準(zhǔn)確率的影響,在貝葉斯分類器對(duì)電子郵件分類之后建立條件反饋,把電子郵件的內(nèi)容和分類結(jié)果反饋至日志庫,之后把日志庫作為樣本訓(xùn)練集進(jìn)行樣本訓(xùn)練。
以上技術(shù)方案可以看出,在本發(fā)明中,較之現(xiàn)有的針對(duì)中文郵件的貝葉斯垃圾郵件過濾方法而言,把tf-idf中文分詞算法與貝葉斯分類算法相結(jié)合,通過tf-idf中文分詞算法直接自動(dòng)對(duì)中文郵件內(nèi)容進(jìn)行特征詞精確提取,無需人工收集垃圾郵件特征詞來建立特征詞庫,從而避免了人工處理中主觀性導(dǎo)致的不準(zhǔn)確性,提高垃圾郵件過濾中的準(zhǔn)確率。
此外,經(jīng)過貝葉斯分類之后的電子郵件會(huì)反饋到日志庫,通過定期把日志庫記錄的郵件類型以及郵件內(nèi)容自動(dòng)建立新的規(guī)則訓(xùn)練集,用于重構(gòu)垃圾郵件過濾中特征詞詞庫的關(guān)鍵特征詞及其權(quán)值,進(jìn)而自動(dòng)更新垃圾郵件的分類規(guī)則,提高垃圾郵件過濾的可靠性和準(zhǔn)確性。
附圖說明
為了更清楚的說明本發(fā)明實(shí)施例中的技術(shù)方案,下面結(jié)合附圖與具體實(shí)施方案對(duì)本發(fā)明做進(jìn)一步說明:
圖1為發(fā)明公開的基于tf-idf中文分詞的貝葉斯垃圾郵件過濾方法流程圖;
圖2為發(fā)明公開的tf-idf中文郵件分詞流程圖;
圖3為發(fā)明公開的基于tf-idf中文分詞的貝葉斯垃圾郵件過濾方法反饋流程圖。
具體實(shí)施方式
請(qǐng)參閱圖1,其為本發(fā)明基于tf-idf中文分詞的貝葉斯垃圾郵件過濾方法流程圖。
步驟(1):收集中文郵件訓(xùn)練樣本集,包括垃圾郵件及合法郵件,建立中文郵件訓(xùn)練文本集。
所述步驟(1)的中文郵件訓(xùn)練樣本集是一定數(shù)量的垃圾郵件和合法郵件的集合。垃圾郵件過濾是根據(jù)郵件內(nèi)容中特定文本的表達(dá),對(duì)郵件進(jìn)行是否為垃圾郵件的判斷,進(jìn)而進(jìn)行垃圾郵件過濾。在基于貝葉斯分類器的垃圾郵件分類過程中,首先要收集一定數(shù)量的郵件建立訓(xùn)練樣本集。根據(jù)訓(xùn)練樣本集建立特征庫,進(jìn)而依據(jù)郵件中的某些特征在特征庫中的表現(xiàn)統(tǒng)計(jì)屬于某個(gè)類別的概率,從而實(shí)現(xiàn)郵件的分類。例如存在一個(gè)郵件訓(xùn)練樣本集m={m1,m2,…,mn}。其中,該郵件訓(xùn)練樣本集中能夠表現(xiàn)出自身類別的文本集假設(shè)為w={w1,w2,…,wn}。此外,假設(shè)郵件文本集的內(nèi)容類別表示為c={c1,c2,…,cn}。那么m={m1,m2,…,mn}為待分類文本mq的特征向量。根據(jù)貝葉斯分類器對(duì)文本內(nèi)容進(jìn)行分類的過程,可令p={p1,p2,…,pn}表示w={w1,w2,…,wn}屬于特定類別c={c1,c2,…,cn}的概率值。
步驟(2):根據(jù)停用詞詞庫對(duì)中文郵件訓(xùn)練文本集進(jìn)行tf-idf中文分詞,并更新停用詞詞庫。
所述步驟(2)中,在中文郵件內(nèi)容進(jìn)行分詞過程中,調(diào)用中科院ictclas中文分詞插件以及停用詞詞庫,過濾掉中文郵件內(nèi)容中的停用詞,進(jìn)而實(shí)現(xiàn)中文郵件內(nèi)容特征詞的精準(zhǔn)提取,并對(duì)中文郵件內(nèi)容中出現(xiàn)的新的停用詞進(jìn)行停用詞詞庫更新。
在中文郵件文本集進(jìn)行tf-idf中文分詞過程中,首先需要把構(gòu)建的停用詞詞庫數(shù)據(jù)和訓(xùn)練文本集數(shù)據(jù)錄入到tf-idf中文分詞模塊中。請(qǐng)同時(shí)參照?qǐng)D2所示tf-idf中文郵件分詞流程圖。在tf-idf中文分詞模塊中,通過調(diào)用中科院ictclas中文分詞插件和建立的停用詞詞庫,把郵件內(nèi)容分詞得到的虛詞、介詞等無用詞語過濾。針對(duì)無用的詞語過濾后產(chǎn)生的關(guān)鍵詞即為垃圾郵件判定的特征詞,再經(jīng)過tf-idf算法統(tǒng)計(jì)出特征詞在垃圾郵件判定中所擁有的權(quán)值。經(jīng)tf-idf中文分詞算法對(duì)特征詞權(quán)值計(jì)算主要過程如下:
在此假定接收到的郵件建立的文本集為d,郵件內(nèi)容中的特征詞為t。經(jīng)過中文分詞后的首先進(jìn)行計(jì)算的是特征詞在某個(gè)郵件文本中的頻度:
其中,tf(t,d)是特征詞t在文本集d中的頻度。avgtf(d)是文本集中所有特征詞的平均頻度值。
在公式(2)中,文本集包含的文檔出現(xiàn)某個(gè)特定的特征詞的數(shù)量越多,分母值就會(huì)越大,進(jìn)而求得的idf(逆文檔頻率)越小。
weighttf-idf=tf(t,d)×inft(t,d)(公式4)
假定n表示文檔集中文檔的總數(shù)量,t表示文檔中出現(xiàn)特征詞,n表示類別為i的特征詞的總數(shù)量,那么tf-idf的歸一化公式為:
步驟(3):通過tf-idf中文分詞算法對(duì)中文郵件訓(xùn)練文本集中的垃圾郵件和合法郵件進(jìn)行特征詞提取,根據(jù)提取的特征詞以及特征詞權(quán)值更新特征詞詞庫及詞庫。
所述步驟(3)中,對(duì)于中文郵件進(jìn)行特征詞提取過程,通過tf-idf中文分詞對(duì)郵件內(nèi)容提取的特征詞和統(tǒng)計(jì)后的特征詞權(quán)值與特征詞詞庫內(nèi)包含的特征詞進(jìn)行比對(duì),如果存在相同的特征詞,更新詞庫中相應(yīng)的特征詞權(quán)值,如果不存在,添加新的特征詞及其權(quán)值到特征詞詞庫。
步驟(4):把tf-idf中文分詞后的特征詞及特征詞權(quán)值輸入到貝葉斯過濾器。
所述步驟(4)中,把經(jīng)過tf-idf中文分詞后的中文郵件訓(xùn)練集或者新郵件產(chǎn)生的特征詞以及特征詞權(quán)值輸入到貝葉斯分類器中,通過輸入的特征詞和建立的特征詞詞庫計(jì)算電子郵件屬于垃圾郵件的概率,當(dāng)垃圾郵件的概率大于設(shè)定的閾值時(shí),可判斷電子郵件為垃圾郵件,否則為合法郵件。
假定輸入的郵件集合m={f1,f2,…,fn},其郵件類別為c={good,spam}。其中,特征詞彼此之間是完全獨(dú)立的,對(duì)于特征詞的概率計(jì)算可描述為:
p(f)是消息中對(duì)于任何特征詞的概率值,
步驟(5):貝葉斯分類器根據(jù)輸入的中文郵件內(nèi)容中的特征詞及特征詞權(quán)值判斷郵件是否為垃圾郵件,并把結(jié)果反饋到日志庫。
所述步驟(5)中,為降低噪聲特征詞對(duì)郵件分類準(zhǔn)確率的影響,在貝葉斯分類器對(duì)電子郵件分類之后建立條件反饋,把電子郵件的內(nèi)容和分類結(jié)果反饋至日志庫,之后把日志庫作為樣本訓(xùn)練集進(jìn)行樣本訓(xùn)練。
在貝葉斯分類器對(duì)郵件樣本分類中,需要根據(jù)統(tǒng)計(jì)的先驗(yàn)概率來計(jì)算后驗(yàn)概率,進(jìn)而對(duì)郵件分類進(jìn)行決策。請(qǐng)同時(shí)參看圖3基于tf-idf中文分詞的貝葉斯垃圾郵件過濾方法反饋流程圖。在貝葉斯分類器對(duì)郵件進(jìn)行分類之后,使用反饋機(jī)制可以有效處理郵件分類中由于噪聲特征詞產(chǎn)生錯(cuò)誤分類的影響。根據(jù)反饋至日志庫的郵件內(nèi)容和分類結(jié)果,可以定期組建新的郵件訓(xùn)練文本集。根據(jù)組建的新文本集,可以有效解決傳統(tǒng)樸素貝葉斯垃圾郵件過濾方法中由于特征組合不斷變化導(dǎo)致分類錯(cuò)誤率高的缺陷。
以上將基于tf-idf中文分詞的貝葉斯垃圾郵件過濾方法基本步驟進(jìn)行了詳細(xì)描述。在此方案下的垃圾郵件過濾方法,通過將tf-idf中文分詞算法應(yīng)用于貝葉斯垃圾郵件過濾方法中,旨在將中文郵件內(nèi)容進(jìn)行精確分詞,從而解決貝葉斯垃圾郵件過濾方法由于中文分詞的影響造成錯(cuò)誤率高的問題。此外在貝葉斯分類器對(duì)垃圾郵件分類過程中添加反饋機(jī)制,可以有效解決不斷變化的特征導(dǎo)致垃圾郵件過濾失效或精確度差的問題。