李凱 邵連杰 秦志宇
摘?要:在信息技術(shù)飛速發(fā)展的今天,電子郵件作為一種快捷,經(jīng)濟(jì)的通信方式得到了普及,但隨之而來垃圾郵件問題也愈加嚴(yán)重。郵件中包含的廣告、不良信息甚至是病毒,會對用戶造成更大的危害。本文通過對當(dāng)前反垃圾郵件技術(shù)的研究,選取關(guān)鍵字過濾、黑白名單過濾與貝葉斯過濾三種過濾法來實(shí)現(xiàn)一個(gè)反垃圾郵件管理系統(tǒng),旨在幫助用戶過濾垃圾郵件,獲取更好的郵件使用體驗(yàn)。
關(guān)鍵詞:垃圾郵件識別;特征選擇;貝葉斯算法
1 研究背景
目前,email早已是非常基礎(chǔ)的網(wǎng)絡(luò)交流方式,然而目前卻有大量的人被垃圾郵件所困擾。目前市面上存在的反垃圾郵件方式主要有四種,分別是關(guān)鍵詞過濾技術(shù)、黑名單技術(shù)、白名單技術(shù)以及智能概率過濾技術(shù)。他們都有其優(yōu)點(diǎn),但各自也在應(yīng)用空間上存在一些不足。[1]貝葉斯算法在垃圾郵件的分類上效果是很好的,但訓(xùn)練數(shù)據(jù)集的數(shù)量和質(zhì)量將會非常影響貝葉斯算法的實(shí)際效果。[2]
2 研究目的
本文研究的內(nèi)容為實(shí)現(xiàn)一個(gè)穩(wěn)定的反垃圾郵件管理系統(tǒng),可通過黑名單過濾方式、關(guān)鍵字過濾方式和貝葉斯過濾方式實(shí)現(xiàn)對垃圾郵件的過濾。旨在使用多種技術(shù)來解決垃圾郵件對用戶的困擾,解決垃圾郵件頻繁騷擾用戶的情況,實(shí)現(xiàn)實(shí)用的垃圾郵件過濾管理系統(tǒng)。
3 關(guān)鍵技術(shù)
3.1 中文分詞技術(shù)
對英文進(jìn)行分詞,只需按空格進(jìn)行切片即可將句子拆分為詞語,而中文文本因?yàn)闊o明顯的拆分規(guī)則的特點(diǎn),需要復(fù)雜的算法對文本進(jìn)行分析處理。本系統(tǒng)使用JAVA平臺開源的IKAnalyer工具對文本進(jìn)行分詞。IKAnalyer具有優(yōu)化的詞典存儲,更小的內(nèi)存占用,支持用戶詞典擴(kuò)展定義等優(yōu)點(diǎn)。
3.2 貝葉斯算法
貝葉斯過濾算法是基于貝葉斯概率公式設(shè)計(jì)實(shí)現(xiàn)的一種分類算法,是一種簡單有效的分類算法,在算法處理的對象相互之間的關(guān)系較小時(shí),該算法可獲得非常好的分類效果。而當(dāng)算法處理的對象相互之間的關(guān)系較大時(shí),算法的效果將會變差。使用貝葉斯算法處理垃圾郵件、垃圾短信和垃圾評論可獲得非常好的效果,由于貝葉斯算法可以根據(jù)用戶收到的新郵件以及用戶對郵件的操作來進(jìn)行自我學(xué)習(xí),這使貝葉斯算法對垃圾郵件的識別越來越準(zhǔn)確。
4 系統(tǒng)實(shí)現(xiàn)
4.1 郵件管理模塊
在郵件管理中,主要需要實(shí)現(xiàn)郵件刪除、郵件還原和徹底刪除功能。郵件刪除功能允許用戶刪除自己接收的郵件信息,該郵件刪除功能主要是將郵件移入垃圾箱,而不是徹底刪除郵件信息。郵件還原功能為郵件刪除功能的逆向操作,即將用戶通過郵件刪除功能移入垃圾箱的郵件還原到用戶收件箱。徹底刪除郵件功能允許用戶徹底從數(shù)據(jù)庫和磁盤上刪除用戶接收的郵件信息和郵件附件,且不可恢復(fù)。
4.2 郵件過濾模塊
郵件過濾模塊需要實(shí)現(xiàn)的直接功能主要有設(shè)置過濾方式和添加黑名單功能,還需要實(shí)現(xiàn)三種過濾方式的過濾算法。設(shè)置過濾方式主要設(shè)置當(dāng)前用戶所使用的垃圾郵件過濾方式,主要包括黑名單過濾、關(guān)鍵詞過濾和貝葉斯過濾。用戶在過濾方法設(shè)置界面挑選想使用的過濾規(guī)則,系統(tǒng)根據(jù)用戶的選擇調(diào)用相應(yīng)的過濾規(guī)則進(jìn)行使用。
4.3 郵件收發(fā)模塊
郵件收發(fā)模塊主要實(shí)現(xiàn)了收郵件、發(fā)郵件、郵件存草稿和瀏覽郵件功能。支持從外部郵箱收發(fā)郵件。
收郵件的過程為:首先用戶點(diǎn)擊收取郵件后,程序前臺想后端發(fā)送收件請求,通過IMAP協(xié)議連接上該用戶所在的郵件服務(wù)器,進(jìn)行認(rèn)證后從郵件服務(wù)器上拉取該用戶的未讀郵件,并將郵件加入本系統(tǒng)的數(shù)據(jù)庫中。統(tǒng)計(jì)未讀郵件的數(shù)量,顯示有多少封未讀郵件顯示給用戶。如果未發(fā)現(xiàn)用戶有未讀郵件,則顯示未發(fā)現(xiàn)有未讀郵件。
發(fā)送郵件過程類似于郵件接收過程,在發(fā)送時(shí)檢查發(fā)送用戶是否在本系統(tǒng)中,若沒有,再將郵件發(fā)送到對方的郵件服務(wù)器上。
郵件存草稿功能為用戶在編寫郵件過程中,可點(diǎn)擊存草稿來將郵件內(nèi)容保存到草稿箱,以供以后發(fā)送和編輯。
瀏覽郵件功能允許用戶查看已經(jīng)收到的郵件,并在查看頁面進(jìn)行相應(yīng)的操作,如進(jìn)行郵件刪除、還原、徹底刪除等操作。
4.4 貝葉斯過濾總體設(shè)計(jì)
貝葉斯過濾的過程為首先對訓(xùn)練樣本進(jìn)行分詞處理,然后根據(jù)分詞結(jié)果分別將垃圾郵件中詞的詞頻和正常郵件中詞的詞頻進(jìn)行存儲。然后在收取一份新郵件時(shí),先進(jìn)行分詞,然后根據(jù)數(shù)據(jù)庫中的多個(gè)詞的詞頻在垃圾郵件分類中和正常郵件中的概率進(jìn)行聯(lián)合分析,計(jì)算多個(gè)詞影響下該郵件時(shí)垃圾郵件的概率,如果大于設(shè)置的閥值,則認(rèn)為是垃圾郵件,需要有豐富的垃圾郵件和正常郵件數(shù)據(jù)集作為訓(xùn)練樣本。[3]
實(shí)現(xiàn)貝葉斯分類器的一般步驟為,首先對有標(biāo)記的樣本數(shù)據(jù)進(jìn)行分類,分為50%的訓(xùn)練樣本,25%的驗(yàn)證樣本以及25%的測試樣本,所有的分類均是從數(shù)據(jù)集中隨機(jī)抽取。接著取訓(xùn)練樣本對貝葉斯分離器進(jìn)行訓(xùn)練,得到訓(xùn)練后各個(gè)對象的概率,最后使用訓(xùn)練的結(jié)果對驗(yàn)證樣本進(jìn)行分類,驗(yàn)證正確率和誤判率,最后使用測試樣本對算法進(jìn)行測試。[4]
參考文獻(xiàn):
[1]金彩琴.對垃圾郵件過濾技術(shù)的問題研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,21(9):225-228.
[2]霍軍昌.垃圾郵件過濾中信息增益的改進(jìn)研究[J].計(jì)算機(jī)科學(xué),2014,41(06):214-224.
[3]MA X L.Research of spam-filtering based on optimized native Bayesian algorithm[J].Alication Research of Computer,2012,29(3):1091-1094.
[4]WANG S C,DU R J,LIU Y.The learning and optimization of full Bayes classifiers with continuous attributes[J].Chinese Journal of Computer,2012,35(10):2129-2138.