版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘 要隨著Internet的發(fā)展, 電子郵件已成為用戶最便捷和經(jīng)濟(jì)的交流方式之一,由于發(fā)送電子郵件非常容易、 成本又非常之低, 使得電子郵件成為一種電子化的手段被人利用,垃圾郵件制造者出于商業(yè)性或其它各種目的而大量向用戶發(fā)送電子郵件。我們呼吁有關(guān)人士必須逐漸從立法、行政和規(guī)范角度出發(fā)采取全面有效的措施,但目前主要依靠的還是反垃圾郵件技術(shù)。典型的郵件過(guò)濾技術(shù)有黑白名單、規(guī)則過(guò)濾、概率統(tǒng)計(jì)分類等。為了降低誤判,更好的適應(yīng)多變和形式多樣的垃圾郵件,本文采用基于統(tǒng)計(jì)(Bayes算法)的反垃圾郵件技術(shù)。利用已知的郵件,建立垃圾郵件和非垃圾郵件關(guān)鍵詞的貝葉斯概率模型,然后利用該模型判斷郵件是否為垃圾郵件。
2、為了提高過(guò)濾模塊性能,本系統(tǒng)采用支持首字Hash的分詞算法。對(duì)于詞首字的查找,根據(jù)漢字機(jī)內(nèi)碼編碼規(guī)律,GB2312編碼表中的每一個(gè)漢字在首字Hash表中都有唯一的一項(xiàng)與其對(duì)應(yīng)。關(guān)鍵詞:Bayes算法;郵件過(guò)濾;反垃圾郵件ABSTRACTWith the development of Internet, e-mail has become the user the most convenient and economical means of communication is one of very easy as sending e-mail, the cost and very low, m
3、aking the e-mail as a means of being used, spam manufacturer for commercial purposes or a large number of various other e-mail to the user. We call on people to be gradually shifted from the legislative, administrative and normative point of view to take comprehensive and effective measures, but sti
4、ll rely mainly on the anti-spam technology. The typical black and white list of email filtering technology, rules filtering, probability and statistics classification. In order to reduce false positives and better adapt to changing and diverse forms of spam, this paper, based on statistics (Bayes al
5、gorithm) of the anti-spam technology. Using the known e-mail, the establishment of spam and non-Bayesian spam probability model keywords and then use the model to determine whether the message is spam. To improve the performance of filter modules, the system uses to support the first sub-word word H
6、ash Algorithm. Find the first word for word, according to Chinese law machine coding, GB2312 encoding table in the first word of each character has a unique Hash table with the corresponding one.Keywords: Bayes algorithm;mail filtering; anti-spam目 錄1 緒論11.1 論文背景11.2 課題研究的意義21.3 課題研究的主要內(nèi)容21.4 本文的主要結(jié)構(gòu)
7、22 電子郵件相關(guān)內(nèi)容42.1 電子郵件系統(tǒng)42.2電子郵件相關(guān)的協(xié)議52.3 電子郵件常用的編碼標(biāo)準(zhǔn)73 需求分析和系統(tǒng)設(shè)計(jì)103.1 需求分析103.2 系統(tǒng)的流程103.3 系統(tǒng)相關(guān)技術(shù)介紹113.4 系統(tǒng)框架143.5 系統(tǒng)設(shè)計(jì)144 基于Bayes的反垃圾郵件系統(tǒng)實(shí)現(xiàn)174.1 預(yù)處理模塊的實(shí)現(xiàn)174.2 過(guò)濾模塊的實(shí)現(xiàn)194.3 數(shù)據(jù)模塊中對(duì)漢語(yǔ)字典的加載235 測(cè)試及測(cè)試結(jié)果顯示245.1主界面介紹245.2訓(xùn)練245.3 選擇測(cè)試郵件255.4測(cè)試結(jié)果顯示265.5 添加合法(非法)郵件庫(kù)27結(jié)論29致謝30參考文獻(xiàn)311 緒論1.1 論文背景 垃圾郵件的現(xiàn)狀隨著Interne
8、t的發(fā)展,電子郵件已經(jīng)成為人們相互交流、獲取信息的重要渠道。但是,電子郵件給人們帶來(lái)諸多方便的同時(shí),也被一些別有用心的人所利用。主觀上,垃圾郵件由此產(chǎn)生。Internet的開(kāi)放性和郵件傳輸協(xié)議本身的缺陷是導(dǎo)致垃圾郵件泛濫的客觀因素。迄今位置,垃圾郵件在國(guó)際上并沒(méi)有一個(gè)標(biāo)準(zhǔn)的定義。同時(shí),垃圾郵件的判定和郵件的接收者有很大的關(guān)系,不同用戶對(duì)同一封郵件的判斷結(jié)果可能會(huì)存在很大的差異。其基本特征是“不請(qǐng)自來(lái)”,而大部分帶有商業(yè)或者其他宣傳目的。近些年來(lái),垃圾郵件問(wèn)題日益嚴(yán)重。2007年1月,CNNIC(中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心)發(fā)布的第十九次中國(guó)互聯(lián)網(wǎng)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告顯示:在網(wǎng)民對(duì)互聯(lián)網(wǎng)最反感的方面,垃圾
9、郵件排在第四位(前三位為網(wǎng)絡(luò)病毒、網(wǎng)絡(luò)入侵/攻擊、彈出式廣告/窗口),占7.8%。 垃圾郵件的危害垃圾郵件帶來(lái)的危害主要體現(xiàn)在:1)對(duì)用戶的影響垃圾郵件的常見(jiàn)類型主要是商業(yè)宣傳郵件、政治宣傳郵件、非法色情郵件和病毒郵件,具有數(shù)量多、反復(fù)性、強(qiáng)制性、欺騙性、不健康和傳播速度快等特點(diǎn),嚴(yán)重干擾了用戶的正常生活,侵犯收件人的隱私權(quán)和郵箱空間,并耗費(fèi)收件人的時(shí)間、精力和金錢(qián)。特別是非法色情郵件和不健康郵件將嚴(yán)重侵害青少年的身心健康,給社會(huì)主義精神分明建設(shè)造成不良的影響。2) 對(duì)ISP的影響占用大量網(wǎng)絡(luò)、存儲(chǔ)和運(yùn)算資源,造成郵件服務(wù)器擁堵,嚴(yán)重影響了運(yùn)營(yíng)商的服務(wù)質(zhì)量和用戶的滿意度。3)對(duì)社會(huì)的影響垃圾郵
10、件的蔓延,容易被不法黑客所利用,它通過(guò)大面積的病毒傳播和突發(fā)性的郵件攻擊,造成服務(wù)器、網(wǎng)絡(luò)的癱瘓,特別是非法反動(dòng)、色情暴力郵件的傳播,給社會(huì)經(jīng)濟(jì)帶來(lái)嚴(yán)重的損失、給政府行政安全管理帶來(lái)極大的隱患,給人們?nèi)粘I顜?lái)嚴(yán)重的影響,給社會(huì)造成一定的不穩(wěn)定性。另外,由于國(guó)內(nèi)垃圾郵件的泛濫現(xiàn)狀導(dǎo)致我國(guó)許多IP網(wǎng)段遭受?chē)?guó)外反垃圾郵件組織的封殺,嚴(yán)重影響了國(guó)內(nèi)郵件服務(wù)的正常通信。從2004年到2006年3月上旬,中國(guó)被國(guó)外反垃圾郵件組織列入黑名單的IP地址段共計(jì)2527個(gè)。而自2005年11月至2006年3月上旬期間,中國(guó)被國(guó)外反垃圾郵件組織列入黑名單的IP地址段共計(jì)479個(gè),比2005年最后一次調(diào)查的結(jié)果被
11、封的323個(gè)多出156個(gè)。我們可以通過(guò)一些權(quán)威組織發(fā)布的垃圾郵件統(tǒng)計(jì)數(shù)據(jù)來(lái)看出垃圾郵件來(lái)說(shuō)明問(wèn)題:根據(jù)中國(guó)互聯(lián)網(wǎng)信息中心的中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)調(diào)查第十七次對(duì)用戶每周收發(fā)郵件數(shù)量和收到的垃圾郵件數(shù)量的統(tǒng)計(jì)結(jié)果是,2006年1月中國(guó)網(wǎng)民平均每周收到27.8封電子郵件(不包括垃圾郵件),收到垃圾郵件57.5封,發(fā)出電子郵件12.1封。這些數(shù)字足以表明近幾年來(lái)垃圾郵件迅猛增加,網(wǎng)民每周收到的垃圾郵件比非垃圾郵件還要多得多,這就在一定程度上給網(wǎng)民造成了嚴(yán)重的困擾。圖1-1是摘自中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)反垃圾郵件中心2006年第一次的反垃圾郵件狀況調(diào)查報(bào)告,統(tǒng)計(jì)了從2004年4月到2006年3月期間中國(guó)網(wǎng)民收到
12、垃圾郵件的增長(zhǎng)情況。此次調(diào)查還統(tǒng)計(jì)了各個(gè)郵件服務(wù)商,根據(jù)規(guī)模不同,每天服務(wù)商收到的垃圾郵件從15萬(wàn)封-3800萬(wàn)封不等,垃圾郵件站總郵件的比例也都近乎80%以上。1.2 課題研究的意義隨著垃圾郵件的泛濫,反垃圾郵件技術(shù)越來(lái)越被人們所重視,出現(xiàn)了很多的過(guò)濾技術(shù)和過(guò)濾系統(tǒng);基于服務(wù)器端的過(guò)濾;基于客戶端的過(guò)濾;基于內(nèi)容的過(guò)濾;基于地址的過(guò)濾;基于信封和信頭的過(guò)濾等等。這些技術(shù)都在處理垃圾郵件問(wèn)題上發(fā)揮了一定的作用。基于服務(wù)器端和基于客戶端的垃圾郵件過(guò)濾各有優(yōu)勢(shì),但是相對(duì)來(lái)說(shuō)基于服務(wù)器端的過(guò)濾更能解決垃圾郵件泛濫的問(wèn)題,因?yàn)榈鹊搅死]件到達(dá)客戶端,就已經(jīng)造成了資源的浪費(fèi),對(duì)垃圾郵件的處理越早實(shí)施,
13、就越能減少它帶來(lái)的損失。本文主要介紹Bayes郵件過(guò)濾系統(tǒng)是基于服務(wù)器端進(jìn)行過(guò)濾的垃圾郵件過(guò)濾系統(tǒng)的一部分,其中內(nèi)容過(guò)濾采用Bayes算法進(jìn)行過(guò)濾。1.3 課題研究的主要內(nèi)容在全面系統(tǒng)學(xué)習(xí)、總結(jié)了國(guó)內(nèi)外在反垃圾郵件領(lǐng)域的研究成果的基礎(chǔ)上,深入細(xì)致地研究了反垃圾郵件技術(shù),本文提出了一種基于Bayes算法的垃圾郵件過(guò)濾系統(tǒng),并采用一種支持首字Hash的分詞算法。同時(shí),介紹了電子郵件的工作原理,郵件過(guò)濾系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)。1.4 本文的主要結(jié)構(gòu)第2章 將介紹電子郵件的相關(guān)內(nèi)容,包括電子郵件系統(tǒng)的介紹,電子郵件常用協(xié)議,電子郵件常用編碼標(biāo)準(zhǔn)。第3章 將介紹系統(tǒng)的設(shè)計(jì),包括設(shè)計(jì)的目的流程,相關(guān)技術(shù)的介紹,
14、具體模塊的設(shè)計(jì)。第4章 將介紹系統(tǒng)的實(shí)現(xiàn),包括幾個(gè)模塊的具體實(shí)現(xiàn)。第5章 將介紹系統(tǒng)的具體操作和測(cè)試以及測(cè)試結(jié)果的顯示。2 電子郵件相關(guān)內(nèi)容電子郵件(簡(jiǎn)稱Email)是一種用電子手段提供信息交換的通信方式。它萌芽于Internet出現(xiàn)的早期,1972年,Ray Tomlinson寫(xiě)了第一個(gè)電子郵件程序SNDMSG,在Internet的前身APPANET上使用。隨著電子郵件技術(shù)與標(biāo)準(zhǔn)不斷改進(jìn)和成熟,Internet的飛速發(fā)展和普及,電子郵件以其簡(jiǎn)單,快捷,方便,低成本的特點(diǎn),得到了廣泛的應(yīng)用,成為Internet上應(yīng)用最廣的服務(wù)。2.1 電子郵件系統(tǒng)要設(shè)計(jì)出好的垃圾郵件過(guò)濾方案,首先要對(duì)電子郵件
15、系統(tǒng)有深入的了解。從理論上講,電子郵件系統(tǒng)主要由四個(gè)主要部分組成:信件、郵件傳送代理(MTA:Mail Transmit Agent)、郵件投遞代理(MDA:Maik Deliver Agent)和用戶代理(MUA:Mauk User Agent)。信件即寫(xiě)信的信紙,MTA用于路由信件,MDA用于投遞信件,MUA提供用戶創(chuàng)建和處理郵件的界面。郵件服務(wù)器是有MTA和MDA架設(shè)而成,是電子郵件系統(tǒng)的基礎(chǔ)和根本。 電子郵件系統(tǒng)的傳輸流程電子郵件的傳輸流程如圖2-1所示。圖2-1 電子郵件傳輸流程在郵件傳輸過(guò)程中,MTA、MDA、MUA都有自己的功能職責(zé),完成各自的特定任務(wù),下面將分別對(duì)MTA、MDA
16、、MUA這三個(gè)代理進(jìn)行敘述。 電子郵件系統(tǒng)涉及到的代理.1 郵件傳送代理MTA從各種來(lái)源接收郵件。每收到一封郵件,MTA就確定這封郵件要路由到哪里和如何路由。必要的話,還會(huì)改寫(xiě)地址,然后把郵件交給MDA投遞??刂艻netenet郵件路由的主要機(jī)制是DNS域名服務(wù)協(xié)議,DNS提哦那個(gè)一個(gè)分布式的數(shù)據(jù)庫(kù),把域名映射到幾個(gè)類型的信息中,包括郵件路由指令。大多數(shù)的MTA還提供他們自己的機(jī)制直接控制路由作為DNS路由的補(bǔ)充,這對(duì)于解決臨時(shí)的DNS路由問(wèn)題是有作用的。.2 郵件投遞代理當(dāng)MTA處理完一封郵件,兵確定了他的路由之后,就把它交給MDA。MDA負(fù)責(zé)把該郵件投遞到另外一個(gè)位子,這個(gè)位置可以是令一個(gè)
17、MDA,也可以死用戶的信箱或者執(zhí)行特殊任務(wù)的程序。根據(jù)這次投遞是成功還是產(chǎn)生永久或臨時(shí)的故障,MDA決定這次事務(wù)是完成、產(chǎn)生一個(gè)錯(cuò)誤返回給發(fā)信人,還是在將來(lái)重新發(fā)送。最簡(jiǎn)單類型的MDA是一些系統(tǒng)用于投遞到本地信箱的MDA,他簡(jiǎn)單的把到達(dá)信件放到本地用戶的收件箱。但是,在投遞時(shí),可以對(duì)信件做一些其他的事。一些MDA不是簡(jiǎn)單地附加到達(dá)的電子郵件,而是提供過(guò)濾特性,而是提供過(guò)濾特性,對(duì)到達(dá)的信件提供額外的操作。其他MDA可以把電子郵件傳遞到另外一個(gè)及其。如果一個(gè)MTA決定信件需要路由到另外一個(gè)MDA,它把信件提交給一個(gè)使用SMTP簡(jiǎn)單郵件傳輸協(xié)議的MDA,這個(gè)協(xié)議定義一組把信件傳遞到遠(yuǎn)程MDA的命令
18、,這樣的MDA常常在MTA中創(chuàng)建。.3郵件用戶代理MTA和MDA負(fù)責(zé)信件的路由和傳送,而郵件用戶代理負(fù)責(zé)為用戶提供管理郵件的見(jiàn)面。這個(gè)管理通常包括查看信件、管理郵件夾、寫(xiě)和發(fā)送新信件,以及回復(fù)信件和把現(xiàn)有的信件發(fā)送給其他用戶。它通常是與信件直接打交道的唯一程序。在早期的電子郵件中,MUA通常在用戶接收郵件的相同機(jī)器上,最終創(chuàng)建了兩個(gè)協(xié)議:POP協(xié)議和IMAP協(xié)議,允許使用MUA閱讀位于遠(yuǎn)程機(jī)器上的電子郵件。POP為MUA提供一個(gè)協(xié)議,從遠(yuǎn)程服務(wù)器下載用戶的收件箱,允許用戶使用不總是連接到網(wǎng)絡(luò)的機(jī)器;IMPA為MUA提供一個(gè)協(xié)議,操作遠(yuǎn)程服務(wù)器上的郵件文件夾。實(shí)現(xiàn)該協(xié)議的MUA可以連接到遠(yuǎn)程IM
19、AP服務(wù)器,兵執(zhí)行對(duì)信箱和信件需要做的各種任務(wù)。這允許用戶的郵件文件夾和MUA放在不同的機(jī)器上。2.2電子郵件相關(guān)的協(xié)議 SMTP協(xié)議SMTP(Simple Mail Transfer Protocol)即簡(jiǎn)單郵件傳輸協(xié)議,是一種提供可靠且有效電子郵件傳輸?shù)膮f(xié)議。SMTP是建立在FTP文件傳輸服務(wù)上的一種郵件服務(wù),主要用于傳輸系統(tǒng)之間的郵件信息并提供與來(lái)信有關(guān)的通知。SMTP目前已是事實(shí)上的在Internet傳輸E-Mail的標(biāo)準(zhǔn),是一個(gè)相對(duì)簡(jiǎn)單的基于文本的協(xié)議。在其之上指定了一條消息的一個(gè)或多個(gè)接收者(在大多數(shù)情況下被確定是存在的),然后消息文本就傳輸了??梢院芎?jiǎn)單地通過(guò)Telnet程序來(lái)測(cè)
20、試一個(gè)SMTP服務(wù)器,SMTP使用TCP端口25。要為一個(gè)給定的域名決定一個(gè)SMTP服務(wù)器,需要使用MX(Mail eXchange)DNS。SMTP的基本結(jié)構(gòu)SMTP協(xié)議是為了保證電子郵件的可靠和高效傳送。TCP/IP 協(xié)議的應(yīng)用層中包含有SMTP協(xié)議,但事實(shí)上它與傳輸系統(tǒng)和機(jī)制無(wú)關(guān),僅要求一個(gè)可靠的數(shù)據(jù)流通道。它可以工作在TCP上,也可以工作在NCP, NITS 等協(xié)議上。在TCP上,它使用端口25進(jìn)行傳輸。SMTP的一個(gè)重要特點(diǎn)是可以在可交互的通信系統(tǒng)中轉(zhuǎn)發(fā)郵件。SMTP的模型SMTP提供了一種郵件傳輸?shù)臋C(jī)制,當(dāng)收件方和發(fā)件方都在一個(gè)網(wǎng)絡(luò)上時(shí),可以把郵件直傳給對(duì)方;當(dāng)雙方不在同一個(gè)網(wǎng)絡(luò)上
21、時(shí),需要通過(guò)一個(gè)或幾個(gè)中間服務(wù)器轉(zhuǎn)發(fā)。SMTP首先由發(fā)件方提出申請(qǐng),要求與接收方SMTP建立雙向的通信渠道,收件方可以是最終收件人也可以是中間轉(zhuǎn)發(fā)的服務(wù)器。收件方服務(wù)器確認(rèn)可以建立連接后,雙發(fā)就可以開(kāi)始通信。下圖2-2是SMTP的模型示意圖。圖2-2 SMTP的基本模型SMTP協(xié)議命令:DATA、EXPN、HELO、HELP、MAIL FROM、NOOP、QUIT、RCPT TO、REST、SAML FROM、SEND FROM、SOML FROM、TURN、VRFY。2.2.2 POP3協(xié)議POP的全稱是 Post Office Protocol,即郵局協(xié)議,用于電子郵件的接收,它使用TCP
22、的110端口?,F(xiàn)在常用的是第三版 ,所以簡(jiǎn)稱為POP3。POP3仍采用Client/Server工作模式,Client被稱為客戶端,一般我們?nèi)粘J褂秒娔X都是作為客戶端,而Server(服務(wù)器)則是網(wǎng)管人員進(jìn)行管理的。舉個(gè)形象的例子,Server(服務(wù)器)是許多小信箱的集合,就像我們所居住樓房的信箱結(jié)構(gòu),而客戶端就好比是一個(gè)人拿著鑰匙去信箱開(kāi)鎖取信一樣的道理。一起來(lái)看看電子郵件軟件收取電子郵件的過(guò)程,一般我們?cè)陔娮余]件軟件的賬號(hào)屬性上設(shè)置一個(gè)POP服務(wù)器的URL(比如),以及郵箱的賬號(hào)和密碼。這個(gè)在收信過(guò)程中都是用得到的。當(dāng)我們按下電子郵件軟件中的收取鍵后,電子郵件軟件首先會(huì)調(diào)用DNS協(xié)議對(duì)PO
23、P服務(wù)器進(jìn)行解析IP地址,當(dāng)IP地址被解析出來(lái)后,郵件程序便開(kāi)始使用TCP協(xié)議連接郵件服務(wù)器的110端口,因?yàn)镻OP服務(wù)器是比較忙的,所以在這個(gè)過(guò)程中我們相對(duì)要等比較長(zhǎng)的時(shí)間。當(dāng)郵件程序成功地連上POP服務(wù)器后,其先會(huì)使用USER命令將郵箱的賬號(hào)傳給POP服務(wù)器,然后再使用PASS命令將郵箱的密碼傳給服務(wù)器,當(dāng)完成這一認(rèn)證過(guò)程后,郵件程序使用STAT命令請(qǐng)求服務(wù)器返回郵箱的統(tǒng)計(jì)資料,比如郵件總數(shù)和郵件大小等,然后LIST便會(huì)列出服務(wù)器里郵件數(shù)量。然后郵件程序就會(huì)使用RETR命令接收郵件,接收一封后便使用DELE命令將郵件服務(wù)器中的郵件置為刪除狀態(tài)。當(dāng)使用QUIT時(shí),郵件服務(wù)器便會(huì)將置為刪除標(biāo)志
24、的郵件給刪了。通俗地講,郵件程序從服務(wù)器接收郵件,其實(shí)就是一個(gè)對(duì)話過(guò)程,POP協(xié)議就是用于電子郵件的一門(mén)語(yǔ)言。 IMAP協(xié)議Internet Mail Access Protocol(交互式郵件存取協(xié)議)IMAP是斯坦福大學(xué)在1986年開(kāi)發(fā)的研發(fā)的一種郵件獲取協(xié)議。它的主要作用是郵件客戶端(例如MS Outlook Express)可以通過(guò)這種協(xié)議從郵件服務(wù)器上獲取郵件的信息,下載郵件等。當(dāng)前的權(quán)威定義是RFC3501。IMAP協(xié)議運(yùn)行在TCP/IP協(xié)議之上,使用的端口是143。它與POP3協(xié)議的主要區(qū)別是用戶可以不用把所有的郵件全部下載,可以通過(guò)客戶端直接對(duì)服務(wù)器上的郵件進(jìn)行操作。2.3 電
25、子郵件常用的編碼標(biāo)準(zhǔn) 編碼的必要性Email只能傳送ASCII碼(美國(guó)國(guó)家標(biāo)準(zhǔn)信息交換碼)格式的文字信息,ASCII碼是7位代碼,非ASCII碼格式的文件在傳送過(guò)程中就需要先編成7位的ASCII代碼,然后才能通過(guò)Email進(jìn)行傳送;如果不經(jīng)過(guò)編碼,則在傳送過(guò)程中會(huì)因?yàn)锳SCII碼7位的限制而被分解,分解之后只會(huì)讓收信方看到一堆雜亂的ASCII字符。經(jīng)過(guò)編碼后的文件,在傳送過(guò)程中可順利傳送,不會(huì)有“被截掉一位”的危險(xiǎn)。但是收信方必須具有相應(yīng)的解碼程序,將這份經(jīng)過(guò)編碼的東西還原,才能看到發(fā)信人要傳送的信息是什么。有一點(diǎn)要注意:大部分的人認(rèn)為“文本文件不需要編碼”,但我們的中文是屬于8位代碼的文字,
26、并不是標(biāo)準(zhǔn)的ASCII碼格式,由于在國(guó)內(nèi)中文是通行的文字,所以大部分的郵件服務(wù)器都已能夠處理GB內(nèi)碼的文件,因而不需要做這種編碼/解碼的操作,可以直接傳送。但如果要送中文郵件到國(guó)外,就需要經(jīng)過(guò)這種轉(zhuǎn)換才能傳送,因?yàn)閲?guó)外的郵件服務(wù)器是無(wú)法辨認(rèn)中文內(nèi)碼的。中文碼在經(jīng)過(guò)一些不支持中文內(nèi)碼的傳遞主機(jī)時(shí),依然會(huì)被截掉一位,造成文件支離破碎無(wú)法讀齲而經(jīng)過(guò)編碼的中文郵件,收信人收到后將文件解碼還原,也需要有中文系統(tǒng)才能看所寫(xiě)的中文信息。 UU編碼(UnixtoUnixencoding)uuencode和uudecode原來(lái)是unix系統(tǒng)中使用的編碼和解碼程序,后來(lái)被改寫(xiě)成為在DOS中亦可執(zhí)行的程序。在早期傳
27、送非ASCII碼的文件時(shí),最常用的便是這種UU編碼方式。使用的方法是:發(fā)郵件前,在DOS下先用uuencode.exe程序?qū)⒃募幋a成ASCII碼文件,然后將郵件發(fā)出。收信人收到郵件后,用uudecode.exe程序?qū)⑽募€原?;赪indows的類似程序有wincode和winzip等。wincode的使用原理和DOS下的uuencode和uudecode沒(méi)什么兩樣,只是在Windows的界面下操作更為簡(jiǎn)便。wincode除支持UU編碼外也支持MIME、Binhex等編碼格式,應(yīng)用范圍頗為廣泛。以上介紹的UU編碼并非只能編中文文字。任何你要寄送的文件包括exe等二進(jìn)制文件都可以按照編碼發(fā)送
28、收信方收信解碼還原的步驟傳送。2.3.3 MIME標(biāo)準(zhǔn)(Multipurpose Internet Mail Extentions)UU編碼解決了Email只能傳送ASCII文件的問(wèn)題。但這種方式其實(shí)并不是很方便,因而又發(fā)展出一種新的編碼標(biāo)準(zhǔn),其全名是Multipurpose Internet Mail Extentions,一般譯作“多媒體郵件傳送模式”。顧名思義,它可以傳送多媒體文件,在一封電子郵件中附加各種格式文件一起送出。MIME標(biāo)準(zhǔn)現(xiàn)已成為Internet電子郵件的主流。它的好處是以物件作為包裝方式,可將多種不同文件一起打包后傳送。發(fā)信人只要將要傳送的文件選好,它在傳送時(shí)即時(shí)編碼,收
29、信人的軟件收到也是即時(shí)解碼還原,完全自動(dòng)化,非常方便。當(dāng)然先決條件是雙方的軟件都必須具有這種功能,要不然發(fā)信人很方便地把信送出去了,但收信人的軟件如果沒(méi)有這種功能,無(wú)法把它還原,看到的也就是一大堆亂碼了。使用這種方式,用戶根本不需要知道它是如何編碼/解碼的。即使只是用文字寫(xiě)的信,一樣是打好包便寄出。如果是要寄多媒體文件,只要做選文件的動(dòng)作,選完后寄出,其余的工作由電子郵件軟件自動(dòng)完成。由于MIME的方便性,愈來(lái)愈多的電子郵件軟件采用這種方式。(我們現(xiàn)在最常使用的電子郵件軟件Eudora、NetscapeMail、InternetMail等就是采用MIME方式,所以我們才能如此輕松地收發(fā)電子郵件
30、。)MIME定義的是一種規(guī)格,也可以說(shuō)是一種統(tǒng)稱。其實(shí)能夠符合這種規(guī)格的編碼方式并不是單一的一種,只要符合這種MIME規(guī)格便可順利傳送。以貨運(yùn)作為比喻,若貨運(yùn)公司規(guī)定送交貨運(yùn)的規(guī)格是1立方米大小的箱子便可托運(yùn),它并沒(méi)有限制一定要用木箱或是鐵皮箱,只要是1立方米大小,貨運(yùn)公司就幫你送達(dá)。至于箱子里你是裝食品或是書(shū)本或是衣服或是混合著裝也沒(méi)有限定,也就是說(shuō),多種格式的文件可以一起寄送。 Binhex編碼Binhex的編碼方式常用于Mac機(jī)器,在PC上是較少使用的一種編碼方式。一般PC上的電子郵件軟件,亦多數(shù)支持MIME的規(guī)格,很少有支持Binhex格式。在常用的電子郵件軟件中,唯Eudora具有這
31、種功能,可直接解讀Binhex的編碼,如果你收到了這種由Binhex所編碼的郵件,而且你的mail軟件并不是Eudora或其他支持Binhex格式的軟件。那也得用一個(gè)解讀Binhex的程序解碼。有一個(gè)共享軟件Binhex3.exe具有這個(gè)功能,它在許多FTP站點(diǎn)都能找到。在Windows下,你還可以用我們前面所介紹的wincode來(lái)解碼。本文介紹的UU編碼、MIME以及Binhex都可以用它來(lái)處理。但可惜的是,對(duì)于MIME,它只處理Base64的編碼。如果能再加上QP的功能,真的可以靠它走遍天下了。在MIME幾乎已成標(biāo)準(zhǔn)規(guī)格的現(xiàn)在,用一套支持MIME的軟件來(lái)做收發(fā)Email的工作,這些編碼/解
32、碼工作就會(huì)自動(dòng)完成,不會(huì)給你帶來(lái)麻煩。3 需求分析和系統(tǒng)設(shè)計(jì)3.1 需求分析 系統(tǒng)需求從業(yè)務(wù)和全局來(lái)分析,應(yīng)有以下需求:(1)系統(tǒng)的設(shè)計(jì)思想應(yīng)圍繞算法的具體實(shí)現(xiàn)和改進(jìn),已達(dá)到降低誤判的要求;(2)系統(tǒng)的設(shè)計(jì)工具應(yīng)該具有先進(jìn)性、穩(wěn)定性;(3)設(shè)計(jì)時(shí)候必須考慮到能夠處理非常大的事務(wù)量,保證系統(tǒng)長(zhǎng)時(shí)間高效快速運(yùn)轉(zhuǎn);(4)系統(tǒng)必須支持對(duì)郵件庫(kù)進(jìn)行增加,修改等功能;(5)系統(tǒng)各模塊必須能夠統(tǒng)一執(zhí)行;(6) 一旦系統(tǒng)出現(xiàn)故障,必須能在最短時(shí)間內(nèi)恢復(fù); 性能需求在性能需求這部分,我們根據(jù)成本和效率要求,定義系統(tǒng)的特性及實(shí)現(xiàn)的約束和限制條件。 產(chǎn)品需求法規(guī):根據(jù)相關(guān)的商業(yè)軟件條例實(shí)行??捎眯?Usabilit
33、y)基本要求:人機(jī)界面友好、使用舒適、可理解性好:用戶界面美觀大方,一目了然,系統(tǒng)實(shí)時(shí)響應(yīng)。可靠性(Reliability)基本要求:每千行代碼錯(cuò)誤率(Defects/KLOC)不超過(guò)2個(gè)。強(qiáng)大故障處理和系統(tǒng)恢復(fù)能力,提供數(shù)據(jù)備份功能??梢浦残?Portability)操作系統(tǒng):Windows XP。性能(Performance)要求:降低系統(tǒng)的誤判,減少合法郵件被判為垃圾郵件的概率,提高準(zhǔn)確性。3.2 系統(tǒng)的流程首先對(duì)郵件進(jìn)行解碼,提取正文,進(jìn)行分詞處理,構(gòu)造特征向量,然后進(jìn)行郵件過(guò)濾。系統(tǒng)流程如3-1圖所示:圖3-1系統(tǒng)流程圖3.3 系統(tǒng)相關(guān)技術(shù)介紹 貝葉斯算法貝葉斯算法是以著名數(shù)學(xué)家托馬
34、斯.貝葉斯(Thomas Bayes)(1702-1763)命名的一種基于概率分析的可能性推理理論,通過(guò)分析過(guò)去事件的知識(shí),來(lái)預(yù)測(cè)未來(lái)的事件。貝葉斯過(guò)濾對(duì)大量用戶已經(jīng)判定的垃圾郵件和合法郵件進(jìn)行學(xué)習(xí),根據(jù)垃圾郵件和合法郵件中相同詞語(yǔ)以及短語(yǔ)出現(xiàn)的概率對(duì)比來(lái)確定垃圾郵件的可能性。貝葉斯定理:貝葉斯定理是決策邏輯學(xué)的一個(gè)分支,使用理論統(tǒng)計(jì)學(xué)研究概率推論,即根據(jù)已經(jīng)發(fā)生的事件來(lái)預(yù)測(cè)將來(lái)可能發(fā)生的事件。被意思理論假設(shè),如果過(guò)去試驗(yàn)中事件出現(xiàn)的概率已知,那么根據(jù)數(shù)學(xué)方法可以計(jì)算出來(lái)未來(lái)試驗(yàn)中時(shí)間出現(xiàn)的概率。貝葉斯理論指出,如果事件的結(jié)果不確定,那么量化它的唯一方法就是時(shí)間的發(fā)生概率。 垃圾郵件過(guò)濾其實(shí)就
35、是郵件分類問(wèn)題,把郵件分為垃圾郵件和正常郵件。這就可以應(yīng)用貝葉斯定理,通過(guò)對(duì)已經(jīng)正確分類的郵件來(lái)預(yù)測(cè)新接收的郵件是否為垃圾郵件。貝葉斯定理的描述如下:對(duì)于一個(gè)統(tǒng)計(jì)試驗(yàn),樣本中間s是所有可能結(jié)果的集合,并且B1,B2.Br是s的一個(gè)劃分,令p(A):AS表示定義在s中所有事件上的一個(gè)概率分布,則對(duì)于s中的任意事件A和B,都有p(A)>0,p(B|A)=p(AB)/p(A)表示條件概率,即在已知A發(fā)生的情況下B發(fā)生的概率。貝葉斯定理可以表示為: 公式(3-1)其中p(A)>0,由全概率公式可得 公式(3-2)在公式(3-1)中,p(BI/A)為后驗(yàn)概率,p(A|Bi)為似然概率,p(B
36、i)為先驗(yàn)概率。先驗(yàn)概率是指根據(jù)以往經(jīng)驗(yàn)和分析得到的概率,如全概率公式,它往往作為“由因求果”問(wèn)題中的“因”出。后驗(yàn)概率是信息理論的基本概念之一,在一個(gè)通信系統(tǒng)中,在收到某個(gè)消息之后,接收端所了解到的該消息發(fā)送的概率稱為后驗(yàn)概率。 分詞的實(shí)現(xiàn)本系統(tǒng)使用了常用詞詞典、停用詞詞典和常用詞首字Hash表(簡(jiǎn)稱Hash表)。其中,常用詞詞典和Hash表在內(nèi)存中的格式如圖3-2所示:圖3-2 詞典組織結(jié)構(gòu)對(duì)首字Hash表的結(jié)構(gòu)稍作改動(dòng)。在詞典正文中保存所有的詞及單獨(dú)成詞的漢字,首字Hash表中保存詞典正文中出現(xiàn)的所有首字,及這些首字的屬性。1) Hash表GB2312中出現(xiàn)的每一個(gè)漢字在Hash中均有唯
37、一的一項(xiàng)與其對(duì)應(yīng),Hash表中每一項(xiàng)的結(jié)構(gòu)如下:CPonMax其中,C:該漢字,Po:首字為該字的首詞在詞典中的位置,n:首字為該字的詞的所有數(shù)目,Max:首字為該字的詞的最大長(zhǎng)度。如果Max和n均為1,表示C單獨(dú)成詞。2) 常用詞詞典正文詞典正文是以詞為單位的有序表,相同首字的詞聚集在一起,按字母先后順序排列。構(gòu)造常用詞詞典,詞典采用一行一詞的模式以文件的形式保存,并且要將首字相同的詞排列在一起。按照詞的長(zhǎng)度排列,將多字詞排列在前面;長(zhǎng)度相同,首字也相同的詞按照字母順序排列。分詞時(shí),將詞典載入數(shù)組。對(duì)于Hash表,其構(gòu)造過(guò)程如下所示:1) 將常用詞詞典載入內(nèi)存;2) 依次讀詞典中的詞,判斷該
38、詞是否為相同首字的一組詞中的第一個(gè)詞。如果是,計(jì)算首字的Hash值作為該字在Hash表中的偏移值:Offset(C)=(C1-176)*94+(C2-161),C表示詞的首字,C1表示C的高字節(jié),C2表示C的低字節(jié);將該詞的位置存入Po。否則,繼續(xù)讀詞。3) 將相同首字的一組詞的詞數(shù)存入n,將長(zhǎng)度最大的詞的長(zhǎng)度存入Max,繼續(xù)讀其余首字的詞。4) 保存Hash表。繼續(xù)2)直到詞典結(jié)束。停用詞詞典主要包括對(duì)郵件特征表現(xiàn)無(wú)用的詞,例如虛詞(了、的)、常用的人名、地名、國(guó)家名等。由于它們不能表達(dá)具體的意思,對(duì)文本分詞結(jié)果影響不大,因此需要在分詞時(shí)首先去掉。 系統(tǒng)分詞流程將解碼后的郵件讀入內(nèi)存,同時(shí)將
39、Hash表和停用詞詞典也讀入內(nèi)存。首先判斷首字節(jié)的數(shù)值,如果不是屬于16-87區(qū)(漢字區(qū))的漢字,則直接輸出后,跳過(guò),解析下面的郵件內(nèi)容;否則,首先在停用詞詞典中查找,如果找到,則刪除查找到的詞,繼續(xù)解析下面的內(nèi)容;否則,進(jìn)行分詞。計(jì)算首字Hash值,從Hash表中得到此字所有可能組詞的偏移位置,以及最長(zhǎng)詞長(zhǎng)度等屬性;在常用向右減字法進(jìn)行查找。具體如下:查找前Max個(gè)字的詞是否在詞典中出現(xiàn),如果完全匹配,則找到該詞;否則,查找前Max-1個(gè)字的詞,知道Max為2。特定詞條查找采用上述算法。如果找到該詞,記錄下來(lái),并從郵件內(nèi)容中移去,繼續(xù)解析;否則,跳過(guò)該字,繼續(xù)解析其余內(nèi)容。直到郵件內(nèi)容結(jié)束。
40、 文本分類中特征值提取在介紹文本分類特征值提取前,首先介紹向量模型(Vector Space Model,VSM),因?yàn)楹芏嗟奈谋痉诸惙椒ǘ疾捎眠@個(gè)模型表示文本,在這個(gè)模型中,文檔被表示成向量的形式:d = <t1,w1;t2,w2;.tn,wn> d 或 d = <W1,W2,.Wn>,其中ti是詞條,wi是ti在文檔中的詞頻或者僅用權(quán)值“0、1”表是特征項(xiàng)是否在文檔中。如果wi表示詞頻,詞頻可分為絕對(duì)詞頻和相對(duì)詞頻,絕對(duì)詞頻是特征項(xiàng)在文檔中出現(xiàn)的頻率,相對(duì)詞頻是歸一化的詞頻。文本分類中的特征選擇(Feature Selection)和特征抽?。‵eature Ext
41、raction)就是通過(guò)構(gòu)造一個(gè)特征評(píng)價(jià)函數(shù),把測(cè)量空間的數(shù)據(jù)投影到特征空間,得到在特征空間的值,然后根據(jù)特征空間中的值對(duì)每個(gè)特征進(jìn)行評(píng)估,特征選擇就是選擇值最高的若干個(gè)特征。它是用機(jī)器學(xué)習(xí)方法進(jìn)行文本分類的首要任務(wù)和關(guān)鍵問(wèn)題。3.4 系統(tǒng)框架綜合系統(tǒng)需要完成的目標(biāo)和處理流程,設(shè)計(jì)出系統(tǒng)的框架,郵件截獲模塊完成截獲郵件數(shù)據(jù)包、數(shù)據(jù)包編解碼和郵件轉(zhuǎn)發(fā)的功能;預(yù)處理模塊完成郵件正文提取和分詞、特征提取、以及構(gòu)造特征向量的功能;過(guò)濾模塊采用Bayes分類器將郵件過(guò)濾;數(shù)據(jù)模塊是系統(tǒng)下所用到的詞典、關(guān)鍵詞表、訓(xùn)練樣本集、規(guī)則庫(kù)等信息。圖3-3所示為系統(tǒng)的框架:圖 3-3 系統(tǒng)的框架3.5 系統(tǒng)設(shè)計(jì) 預(yù)
42、處理模塊 因?yàn)檫^(guò)濾器是基于VSM模型(Vector Space Model),需要對(duì)郵件進(jìn)行預(yù)處理得到。在該模型中,我們把郵件的內(nèi)容形式化為多維空間的一個(gè)點(diǎn),以向量的形式給出,向量的元素可以是詞、IP地址、文本格式等能夠判斷郵件是否是垃圾郵件的特征屬性。該模塊主要完成的工作包括:信頭、信體分離,分詞處理,特征向量生成。 信頭、信體處理:電子郵件的格式包括信頭、信體,兩者之間用空行來(lái)分隔,可以分別提取信頭和信體的信息。電子郵件的信頭包括:發(fā)件人地址、收件人地址、主題、郵件列表等信息,這些信息??梢耘袛嘁环忄]件是否是垃圾郵件。如商業(yè)廣告垃圾郵件的主題通常包含“Buy”、“Save”和“Free”等
43、特征。信封和信頭的內(nèi)容并不完全一致,信封的內(nèi)容比較可靠,因?yàn)樾蓬^的內(nèi)容是可以通過(guò)客戶端進(jìn)行偽造的,所以可以通過(guò)比較信封和信頭的內(nèi)容進(jìn)行過(guò)濾。 分詞處理:對(duì)于主題和信體中的內(nèi)容,需要經(jīng)過(guò)分詞處理。分詞的精度是影響系統(tǒng)準(zhǔn)確率的一個(gè)重要因素。我們采用機(jī)械匹配法(向右減字最大匹配和向左增字最小匹配)相結(jié)合,然后再用互信息消除歧義得到比較精確的分詞結(jié)果,這個(gè)過(guò)程需要借助分詞詞典。 特征向量生成:這個(gè)過(guò)程分為兩種,一種是根據(jù)訓(xùn)練樣本庫(kù)取得表示垃圾郵件類的特征向量,這個(gè)過(guò)程是對(duì)信封、信頭、信體等部分得到的信息進(jìn)行處理,得到分類器所需要的特征向量。因?yàn)楦鞑糠炙玫降奶卣鲗傩运鶚?gòu)成的向量維數(shù)太大,需要進(jìn)行降維處
44、理,對(duì)信封、信頭的屬性進(jìn)行比較和合并,而對(duì)信體中得到的屬性則進(jìn)行篩選,也就是特征值選擇。首先通過(guò)剔除詞詞典將對(duì)分詞沒(méi)有貢獻(xiàn)的助詞、連詞、冠詞等剔除,然后按照特征向量選擇算法計(jì)算每個(gè)詞的重要度,按照由高到低的順序選擇一定數(shù)量的特征詞,和前面由信封、信頭中的屬性一起組成特征向量。另一種是根據(jù)由訓(xùn)練文本庫(kù)得到的表示垃圾郵件類的特征向量構(gòu)造待分類電子郵件的特征向量。 過(guò)濾模塊 這個(gè)模塊是整個(gè)系統(tǒng)的核心模塊,它要完成的功能是對(duì)郵件信息進(jìn)行處理,判斷郵件是否是垃圾郵件,并對(duì)結(jié)果進(jìn)行處理。因?yàn)猷]件被表示成由“屬性”組成的向量空間,這些屬性包括:IP地址、附件大小、附件擴(kuò)展名、群發(fā)地址個(gè)數(shù)、文本中的關(guān)鍵詞等等
45、信息,根據(jù)這些信息完成傳統(tǒng)的基于IP、基于信封、信頭和基于內(nèi)容的過(guò)濾。 貝葉斯算法因?yàn)槠浜?jiǎn)單快捷得到廣泛應(yīng)用,這里采用貝葉斯算法來(lái)提高過(guò)濾精度。過(guò)濾的結(jié)果分為正常郵件和垃圾郵件。對(duì)于正常郵件交給協(xié)議代理模塊進(jìn)行編碼和轉(zhuǎn)發(fā),對(duì)于垃圾郵件的處理有: 丟棄:對(duì)于不需要保存到數(shù)據(jù)庫(kù)中的數(shù)據(jù)包,做丟棄處理,節(jié)約資源; 存儲(chǔ):對(duì)于某些郵件存入數(shù)據(jù)庫(kù),作為訓(xùn)練樣本集; 回復(fù):對(duì)于一些郵件進(jìn)行自動(dòng)回復(fù),通知發(fā)件人該郵件被過(guò)濾。 數(shù)據(jù)模塊 系統(tǒng)中需要的分詞詞典、剔除詞詞典等等數(shù)據(jù)資源需要一個(gè)單獨(dú)的模塊來(lái)進(jìn)行維護(hù)管理,提供增加、修改、查詢、統(tǒng)計(jì)等功能,這個(gè)模塊就是數(shù)據(jù)模塊。這個(gè)模塊包括七個(gè)部分。 分詞詞典:由于分
46、詞算法采用的是機(jī)械匹配的方法,需要分詞詞典提供輔助; 剔除詞詞典:在提取特征詞之前,根據(jù)剔除詞詞典剔除部分詞匯,提高效率; 特征屬性表:基于Bayes算法的過(guò)濾方法需要根據(jù)垃圾郵件特征屬性的概率統(tǒng)計(jì)信息進(jìn)行過(guò)濾,因此系統(tǒng)需要維護(hù)垃圾郵件特征關(guān)鍵詞的概率信息; 訓(xùn)練樣本集:作為訓(xùn)練過(guò)濾器的樣本,它的大小和時(shí)間性影響過(guò)濾的精度; 垃圾郵件表:保存一些過(guò)濾掉的郵件的數(shù)據(jù)庫(kù)表格,在存儲(chǔ)郵件的源IP和目的IP、郵件的發(fā)件人、主題、發(fā)送時(shí)間和郵件體的信息。便于事后統(tǒng)計(jì)分析; IP地址黑名單:保存經(jīng)常發(fā)送垃圾郵件的IP地址; 規(guī)則表:保存生成屬性表過(guò)程中需要的一些對(duì)信頭特征進(jìn)行提取的規(guī)則。4 基于Bayes
47、的反垃圾郵件系統(tǒng)實(shí)現(xiàn)4.1 預(yù)處理模塊的實(shí)現(xiàn) 分詞的實(shí)現(xiàn)本文設(shè)計(jì)垃圾郵件過(guò)濾系統(tǒng)是針對(duì)中文垃圾郵件的識(shí)別,中文分詞模塊是系統(tǒng)中的一個(gè)主要模塊,是特征提取和分類器構(gòu)造的重要數(shù)據(jù)供給模塊,本節(jié)將給出一種具體的中文分詞算法實(shí)現(xiàn)。中文分詞的代碼表述如下: public int wordSegment(String Sentence) int senLen = Sentence.length(); int i = 0, j = 0; int M = 12; String word; boolean bFind = false; FileAppender fa=new FileAppender("
48、;vocabulary.txt"); while (i < senLen) int N = i + M < senLen ? i + M : senLen + 1; bFind = false; for (j = N - 1; j > i; j-) word = Sentence.substring(i, j); if (dic.Find(word) if (j > i + 1) if (!vocabulary.containsKey(word) vocabulary.put(word,new Float(0); totleNumber+; fa.append
49、(word); bFind = true; i = j; break; if (bFind = false) i = j + 1; return 1; 特征向量的構(gòu)造我們主要介紹訓(xùn)練樣本的特征提取。這些特征是指郵件中的可以判別郵件是否是垃圾郵件的關(guān)鍵字,關(guān)鍵字可以由系統(tǒng)根據(jù)統(tǒng)計(jì)結(jié)果進(jìn)行自動(dòng)設(shè)定,也可由管理員設(shè)定。首先提取訓(xùn)練集中文本中的關(guān)鍵詞,并保存在特征向量表中。經(jīng)過(guò)分詞的郵件訓(xùn)練集中的每封郵件都變成一個(gè)把詞以空格分隔得文本,統(tǒng)計(jì)每個(gè)詞條在垃圾郵件類和正常郵件類中出現(xiàn)的頻率,保存在兩個(gè)鏈表中。詞的長(zhǎng)度指向表結(jié)點(diǎn)的指針頭結(jié)點(diǎn)的結(jié)構(gòu)是:關(guān)鍵詞詞的頻度指向表結(jié)點(diǎn)的指針表結(jié)點(diǎn)的結(jié)構(gòu)是:這樣根據(jù)詞的長(zhǎng)
50、度,分別查找相應(yīng)的鏈表,就可以得到各關(guān)鍵詞的頻率。但是這樣得到的關(guān)鍵詞表中很多關(guān)鍵詞對(duì)分類的貢獻(xiàn)不大,需根據(jù)一定的特征選擇函數(shù)來(lái)進(jìn)行特征選擇,達(dá)到降維的目的,我們采取的是計(jì)算期望交叉熵,將各期望交叉熵按從大到下排列,選取前N個(gè)(根據(jù)試驗(yàn)結(jié)果進(jìn)行調(diào)整)詞作為該類的特征向量。期望交叉熵的計(jì)算公式定義為:公式(4-1) P(Ci|t)的計(jì)算公式為為: 公式(4-2)則期望交叉熵的計(jì)算公式變?yōu)椋?公式(4-3)其中,P(Ci|t)是文本中出現(xiàn)詞條t時(shí),文本屬于Ci的概率,P(Ci)是類別Ci出現(xiàn)的概率,P(t|Ci)是Ci類中詞條t出現(xiàn)的概率,P(t)是所有類中詞條t出現(xiàn)的概率。交叉熵反映了文本類別的
51、概率分布和在出現(xiàn)了某個(gè)特地詞的條件下文本類別的概率分布之間的距離,詞條t的交叉熵越大,對(duì)文本類別分布的影響也越大。這樣原來(lái)的兩個(gè)詞表經(jīng)過(guò)精簡(jiǎn)就可以得到兩個(gè)新的詞表,其中的關(guān)鍵詞就是該類的特征向量。接著把非文本特征詞組成一個(gè)新的鏈表加入以上的兩個(gè)表中,其表頭項(xiàng)的值為0,表中屬性用字段表示,其中各項(xiàng)屬性的概率計(jì)算公式為: 公式(4-4) 其中N(doc(tj)|Ci)為Ci類文本中出現(xiàn)特征tj的文本數(shù),|Dc|為訓(xùn)練集包含的總文檔數(shù).最后得到的表中的各項(xiàng)就是表示各類的特征屬性,結(jié)構(gòu)如圖4-1所示:012N 免費(fèi)98%圖4-1 特征屬性結(jié)構(gòu)圖4.2 過(guò)濾模塊的實(shí)現(xiàn)本文前面介紹了Bayes算法在文本分
52、類中的應(yīng)用,下面介紹它在垃圾郵件過(guò)濾模塊中的應(yīng)用。 Bayes算法在垃圾郵件過(guò)濾器中的應(yīng)用由于郵件可以當(dāng)作是特殊的文本,垃圾郵件處理實(shí)質(zhì)上就是將郵件分為兩類,一類是合法郵件,一類是垃圾郵件。Bayes過(guò)濾算法的基本步驟:(1) 收集大量的垃圾郵件和非垃圾郵件,建立垃圾郵件集和非垃圾郵件集。(2) 提取郵件主題和郵件體中的獨(dú)立子串例如ABC32,¥22等作為T(mén)OKEN串并統(tǒng)計(jì)提取出的TOKEN串出現(xiàn)的次數(shù)即字頻。按照步驟2的方法分別處理垃圾郵件集和非垃圾郵件集中的所有郵件。(3) 每一個(gè)郵件集對(duì)應(yīng)一個(gè)Hash表,hashtble_good對(duì)應(yīng)非垃圾郵件集而hashtable_bad對(duì)應(yīng)垃圾郵件集
53、。表中存儲(chǔ)TOKEN串到字頻的映射關(guān)系。(4) 計(jì)算每個(gè)Hash表中TOKEN串出現(xiàn)的頻率P=(某TOKEN串的字頻)/(對(duì)應(yīng)Hash表的長(zhǎng)度)(5) 綜合考慮hashtable_good和hashtable_bad,推斷出當(dāng)新來(lái)的郵件中出現(xiàn)某個(gè)TOKEN串時(shí),該新郵件為垃圾郵件的概率。數(shù)學(xué)表達(dá)式:A 事件 -郵件為垃圾郵件t1,t2.tn代表TOKEN串 則P(A|ti)表示在郵件中出現(xiàn)TOKEN串ti時(shí),該郵件為垃圾郵件的概率。設(shè)P1(ti) = (ti在hashtable_good中的值)P2(ti) = (ti在hashtable_bad中的值)則P(A|ti)= P1(ti)/P1(ti) + P2(ti); (6) 建立新的Hash表hashtable_probability存儲(chǔ)TOKEN串ti到P(A|ti)的映射。(7) 至此,垃圾郵件集和非垃圾郵件集的學(xué)習(xí)過(guò)程結(jié)束。根據(jù)建立的Hash表hashtable_probability可以估計(jì)一封新到的郵件為垃圾郵件的可能性。當(dāng)新到的一封郵件時(shí),按照步驟(2)生成TOKEN串。查詢hashtable_probability得到該TOKEN串的鍵值。假設(shè)由該郵件共得到N個(gè)TOKEN串,t1,t2,.tn,ha
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年申扎縣招教考試備考題庫(kù)附答案解析(奪冠)
- 2025年嵐皋縣招教考試備考題庫(kù)附答案解析
- 2025年上饒職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試模擬測(cè)試卷帶答案解析
- 2024年羅田縣招教考試備考題庫(kù)及答案解析(必刷)
- 2024年竹山縣幼兒園教師招教考試備考題庫(kù)含答案解析(奪冠)
- 2025年湖南人文科技學(xué)院馬克思主義基本原理概論期末考試模擬題附答案解析
- 2025年廣東文藝職業(yè)學(xué)院馬克思主義基本原理概論期末考試模擬題附答案解析(必刷)
- 2025年云縣幼兒園教師招教考試備考題庫(kù)附答案解析(奪冠)
- 2025年新星職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)帶答案解析
- 2025年江西制造職業(yè)技術(shù)學(xué)院馬克思主義基本原理概論期末考試模擬題含答案解析(必刷)
- 起重機(jī)械安全風(fēng)險(xiǎn)辨識(shí)報(bào)告
- 2025年山東省村級(jí)后備干部選拔考試題(含答案)
- 村社長(zhǎng)考核管理辦法
- 兒童顱咽管瘤臨床特征與術(shù)后復(fù)發(fā)風(fēng)險(xiǎn)的深度剖析-基于151例病例研究
- 防潮墻面涂裝服務(wù)合同協(xié)議
- GB/T 15237-2025術(shù)語(yǔ)工作及術(shù)語(yǔ)科學(xué)詞匯
- 外賣(mài)跑腿管理制度
- 冷鏈物流配送合作協(xié)議
- 生物-江蘇省蘇州市2024-2025學(xué)年第一學(xué)期學(xué)業(yè)質(zhì)量陽(yáng)光指標(biāo)調(diào)研卷暨高二上學(xué)期期末考試試題和答案
- 2024年人教版一年級(jí)數(shù)學(xué)下冊(cè)教學(xué)計(jì)劃范文(33篇)
- 成都隨遷子女勞動(dòng)合同的要求
評(píng)論
0/150
提交評(píng)論