王文霞
(運城學(xué)院計算機科學(xué)與技術(shù)系,山西運城044000)
基于貝葉斯文本分類算法的垃圾短信過濾系統(tǒng)
王文霞
(運城學(xué)院計算機科學(xué)與技術(shù)系,山西運城044000)
目前,手機短信成為了人們所喜愛的一種通信方式,同時也成為了商業(yè)廣告或詐騙信息的載體,對人們的生活,甚至對社會的安定造成了嚴重的威脅。因此本文采用貝葉斯文本分類算法對垃圾短信進行了分類,進而實現(xiàn)其過濾,并結(jié)合黑白名單技術(shù)模擬實現(xiàn)了一垃圾短信過濾系統(tǒng)。通過測試,該系統(tǒng)不僅能較為準確的實現(xiàn)對垃圾短信的過濾,還能減少對合法短信的誤判率。
垃圾短信;文本分類;短信過濾;黑白名單;貝葉斯分類算法
短信由于其簡短、方便、便宜、快捷等特點,成為了目前重要的通信手段之一。據(jù)統(tǒng)計,中國的手機用戶數(shù)量于2010年就達到近7.4億,全國日均短信發(fā)送兩竟達21億條,全年總量達到了約7840億條[1]。但據(jù)互聯(lián)網(wǎng)協(xié)會2008年調(diào)查的結(jié)果,用戶接受到的垃圾短信平均每周多達8.29條,其中每周收到40條以上的用戶比例居然占到了6.25%。這樣,飛速發(fā)展的短信業(yè)務(wù)在給用戶帶了方便的同時,也存有垃圾短信、詐騙短信、謠言短信等給用戶帶來很大的困擾,甚至危害。因此,對用戶接受到的短信進行分類,從而實現(xiàn)對垃圾短信的過濾是非常必要的。
針對該問題,本文首先采用了黑白名單技術(shù)進行短信的初步過濾,接著再采用貝葉斯分類算法對短信文本進行分類,實現(xiàn)再次過濾,從而提高對垃圾短信過濾的準確性,降低其誤判率,最后基于Android平臺模擬實現(xiàn)了一垃圾短信過濾系統(tǒng)。
黑名單(BlackList)是現(xiàn)有垃圾短信發(fā)送者的信息列表,該列表中的用戶發(fā)送的短信將會被禁止。白名單(WhiteList)是不受限制的信用度很高的發(fā)送者列表,該列表中用戶發(fā)送的短信默認是合法的,將不受限制。黑白名單技術(shù)簡單易實現(xiàn)、占用資源少、效率高,但不足的是需用戶手動維護,且當(dāng)白名單中的用戶發(fā)送垃圾短信時不會被禁止,從而給用戶帶了麻煩。所以本文采用黑名單技術(shù)只實現(xiàn)對短信的初步過濾,發(fā)揮其輔助作用。
垃圾短信一般采用文本形式表示信息,因此要對其進行處理,就需要首先把它轉(zhuǎn)變成計算機可以識別的形式[2]。本文采用了基于空間向量模型(Vector Space Model,VSM)的文本表示形式。下面介紹一些VSM的基本概念[3]:
(1)特征項,它是指文本中能夠代表該文本特征的基本單位;
(2)特征項權(quán)值,它是指特征項代表文本的能力的大小。特征項權(quán)值計算方法有很多,例如:布爾權(quán)重計算、平方根權(quán)重計算、TF-IDF權(quán)重計算等。其中TD-IDF權(quán)重計算最為常用,本文就采用了該方法進行了特征項的加權(quán)計算[4];
(3)文本向量,它是指由文本特征項的權(quán)值所構(gòu)成的向量[5]。
關(guān)鍵詞提取的目的是去除原選特征集中的不能有效的表示短信類型的特征詞,以提高分級精度,降低計算復(fù)雜度。其主要思想是:對原特征項集中的每個特征,構(gòu)造一個評價函數(shù),獨立計算其評價值,然后按評價值進行排序。目前,國內(nèi)外學(xué)者已經(jīng)研究出了多種關(guān)鍵詞提取方法,比如文檔頻率、互信息與信息增益等[6]。本文采用了互信息關(guān)鍵詞提取法(Mutual Information,MI)。
互信息是信息理論中詞條和類之間的相關(guān)程度的一個關(guān)鍵概念,基本過程是先計算每一個詞條和每一個類別的互信息數(shù)量;然后利用這些互信息值計算詞條的總的互信息量;最后移除原始特征空間中低于某特定閾值的詞條,保留高于閾值的詞條。其優(yōu)點是考慮了低頻詞的信息含量,即低頻詞比常用詞的互信息值要高。
如果手機號碼不在黑名單中,要做的工作就是進行短信內(nèi)容的辨識。本文采用了貝葉斯文本分類算法。它基于貝葉斯定理,其算法可以預(yù)測出某些樣本屬于每類成員的可能性。該算法實現(xiàn)的垃圾短信過濾具體步驟如下:
(1)統(tǒng)計訓(xùn)練樣本集的不同類別的短信的數(shù)量;
(2)預(yù)處理短信的文本內(nèi)容以去除沒有關(guān)系的字符對文本分詞的一些影響;
(3)去除后,接下來把訓(xùn)練樣本短信先進行分詞處理,隨后讀入分類器進行文本具體分類;
(4)收集垃圾短信關(guān)鍵詞,同時利用特征項降維技術(shù)以更加高效的判定短信類型。本文采用互信息(MI)進行文本中的關(guān)鍵詞進行提取;
(5)用訓(xùn)練好的分類器測試樣本短信庫中的短信;
(6)基于該分類器對未知類別的短信進行分類識別,進而獲得各短信的分類。
基于貝葉斯算法和黑白名單技術(shù)相結(jié)合的方法,使用Java語言,基于Android平臺,模擬并實現(xiàn)了一個垃圾短信過濾系統(tǒng)。其核心處理過程如下:
(1)攔截短信發(fā)送的手機號碼;
(2)查詢該號碼是否存在于設(shè)置的黑名單中,如果為真,信息直接會給用戶一個提示:出現(xiàn)垃圾短信,并按用戶意愿決定什么時候刪除掉并投入垃圾箱;
(3)若黑名單中沒有該號碼,就基于貝葉斯分類算法,查看并確定短信是垃圾短信嗎。如果最終給出的判斷結(jié)果為垃圾短信,并在信息屏幕上出現(xiàn)收到垃圾短息的提示,詢問用戶是否要刪除。
該系統(tǒng)的整體結(jié)構(gòu)模塊劃分如圖1所示。下面將對各個模塊做一個簡單說明[5]:
圖1 系統(tǒng)功能模塊圖
(1)插入模塊:實現(xiàn)的功能是將一個從來沒有出現(xiàn)過的新電話號碼加入到黑名單中;
(2)更新模塊:修改黑名單中的電話號碼;(3)刪除模塊:刪除黑名單中的電話號碼;
(4)短信預(yù)處理模塊:預(yù)處理短信文本,如去除單個字符、符號、停用詞以及數(shù)字等幾乎對文本類別沒有影響的詞匯;
(5)中文分詞模塊:實現(xiàn)短信文本的分割;
(6)特征增益模塊:指提取短信中的特征向量。系統(tǒng)根據(jù)分詞后的結(jié)果,采用相應(yīng)的特征抽取策略,各類短信的特征向量為:具有代表性的詞;
(7)測試模塊:主要是為了測試分類器的精確程度;
(8)分類器應(yīng)用模塊:應(yīng)用分類器,對未知短信進行分類。
(1)Android模擬器
Android Emulator可以像Android手機一樣運行Android應(yīng)用程序,是一個Dalvik虛擬機的運行工具,無需安裝到手機,運行的結(jié)果可以在電腦上看到[7]。
(2)Android資源打包工具
Android的資源打包工具為AAPT(AAPT,Android Asset Packaging Tool)。APK.即為Android系統(tǒng)手機中的安裝格式。可以通過AAPT,將編好的程序打包成.apk文件。
(3)系統(tǒng)開發(fā)環(huán)境
本系統(tǒng)采用Eclipse3.6開發(fā)環(huán)境,基于Android平臺進行給短信過濾系統(tǒng)的模擬實現(xiàn)。
完成源代碼編輯和工程創(chuàng)建后運行程序。在Eclipse平臺中選擇Run→Open Run Dialog→type filter text→Android Application→SMS,點擊對話框中的Run按鈕,應(yīng)用程序就能被加載運行,系統(tǒng)運行界面如圖2所示。
圖2 系統(tǒng)運行界面
我們自行收集短信410條,分成兩部分,測試數(shù)據(jù)與訓(xùn)練數(shù)據(jù)。其中正常短信200條,垃圾短信2l0條。110條垃圾短信和100條正常短信組成訓(xùn)練樣本,其余的短信測試用。
文本分類的分類模型是根據(jù)訓(xùn)練數(shù)據(jù)得到的,進一步實現(xiàn)對不能確定類別的短信文本分類。其評價文本分類的準確度主要有正確率和查全率。
正確率:正確率是指分類系統(tǒng)對垃圾短信的識別能力,其值越大,將正常短信誤判為垃圾短信的概率越大。計算公式為:
其中:
A——為被正確歸類為垃圾短信的文本數(shù),
B——為不屬于垃圾短息但被被認定為垃圾短信的文本數(shù),
C——為是垃圾短信但被歸為正常短信的文本數(shù),
查全率:即召回率。也表明系統(tǒng)對垃圾短信過濾的能力,召回率越高,將垃圾短信誤判為正常短信的概率越小。計算公式為:
基于實驗數(shù)據(jù),啟動Android模擬器,其模擬界面和我們平常使用手機的接收短信功能一樣的。當(dāng)判斷為垃圾短信后,會顯示提示接收方是否刪除的界面。垃圾短信過濾系統(tǒng)對所有測試短信處理后的結(jié)果,如表1所示。
基于上節(jié)給出的評價標準,對該系統(tǒng)的短信過濾結(jié)果分析如下:
表1 垃圾短信過濾結(jié)果
(1)正常短信的正確率=95/(95+2+1+2+5)=95/105=90.5%;
(2)垃圾短信的正確率=(18+19+18+35)/(18+19+18+35+5)=90/95=94.74%;
(3)正常短信的召回率=95/(95+5)=95%;
(4)垃圾短信的召回率=(18+19+18+35)/(18+19+18+35+2+1+2+5)=90%。
從上述分析結(jié)果可知,該分類系統(tǒng)在分類垃圾短信的正確率和召回率都較高,實現(xiàn)了絕大部分垃圾短信的過濾功能。
本文針對目前垃圾短信的泛濫以及其所帶來的危害,設(shè)計開發(fā)了一垃圾短信過濾系統(tǒng)。該系統(tǒng)將黑白名單技術(shù)和貝葉斯分類算法兩者相結(jié)合,先對短信進行了類別分類,進一步實現(xiàn)對垃圾短信的過濾;并基于Android模擬器對系統(tǒng)進行了模擬實現(xiàn)。最后,通過自行收集的實驗數(shù)據(jù)對該系統(tǒng)進行了測試,結(jié)果表明該系統(tǒng)能夠獲得較好過濾效果,具有較高的準確率。
[1]劉國香,張鈞鋒.垃圾短信分類方式的探討[J].滄州師范??茖W(xué)校學(xué)報,2011,27(4):122-124.
[2]張啟宇,朱玲,張雅萍.中文分詞算法研究綜述[J].情報探索,2008(11):53-56.
[3]包金龍.基于向量空間模型的信息檢索系統(tǒng)的設(shè)計[J].情報雜志,2007(7):44-49.
[4]任姚鵬,陳立潮,張英俊,等.結(jié)合語義的特征權(quán)重計算方法研究[J].計算機工程與設(shè)計,2010,31(10):2381-2383.
[5]付克志.基于N-Level VSM在Web信息檢索中的研究[J].計算機工程與應(yīng)用,2006(16):158-160.
[6]關(guān)娜.基于文本分類算法的垃圾短信過濾技術(shù)[D].成都:電子科技大學(xué),2008.
[7]董月琴.基于Android的垃圾短信處理系統(tǒng)的研究與設(shè)計[D].淮南:安徽理工大學(xué),2011.
〔責(zé)任編輯 高?!?/p>
Spam Filtering System Based on Bayes Text Classificaiton Algorithm
WANG Wen-xia
(Department of Computer Science and Technology,Yuncheng University,Yuncheng Shanxi,044000)
At present,SMS(Short Message Service)has become a favourite communication way for people.Meanwhile,SMS has become a carrier of commercial advertisement and fraud information too.Thereby these spam messages have brought serious threat for people’s life and even social stability.So the Bayes text classification algorithm is adopted to classify the spam message,and even to achieve its filtering.And a spam filtering system is simulatively implemented combined with black and white list technology.Through test,this system can not only accurately achieves the spam filtering,but also reduce the misjudgment rate for legal texts.
spam message;text classification;message filtering;black and white list;bayes classifiction algorithm
TP391
A
1674-0874(2016)03-0017-03
2015-10-10
運城學(xué)院教學(xué)改革研究項目[JG201418]
王文霞(1979-),女,山西運城人,碩士,講師,研究方向:算法分析與數(shù)據(jù)挖掘。