一種垃圾郵件關(guān)鍵詞的查找方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種垃圾郵件關(guān)鍵詞的查找方法及系統(tǒng),該方法包括,采用郵件拆分子系統(tǒng)將郵件按郵件標(biāo)題、郵件正文、郵件附件等進行拆分,采用Map/Reduce子系統(tǒng)將拆分后的內(nèi)容按照預(yù)裝的中文分詞庫進行分詞,并進行排序。本發(fā)明采用hadoop中的map/reduce以及分詞對收集到的郵件進行關(guān)鍵詞分析,可找出當(dāng)前最流行的垃圾郵件關(guān)鍵詞。
【專利說明】一種垃圾郵件關(guān)鍵詞的查找方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種垃圾郵件處理方法,特別是涉及垃圾郵件關(guān)鍵詞的查找方法以及 系統(tǒng)。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)的普及,電子郵件日漸成為人們工作、生活交流必不可少的工具,但眾 多的垃圾郵件嚴(yán)重影響郵件用戶的使用,甚至可能使得用戶錯過夾雜在垃圾郵件中的有用 郵件?,F(xiàn)有的對于垃圾郵件的過濾可通過IP過濾、黑白名單、關(guān)鍵詞匹配等進行。
[0003] 例如,申請?zhí)枮?00310116951的發(fā)明專利中,采用建立垃圾郵件IP地址庫,將發(fā) 件人的郵件地址和垃圾郵件IP地址庫進行匹配的方式查找垃圾郵件。
[0004] 再如,申請?zhí)枮?00410027521的發(fā)明專利中,采用建立黑、白名單的方式來查找 垃圾郵件。如果寄來電子郵件的地址存在于白名單中,則接受該郵件,否則就將該地址和預(yù) 設(shè)的黑名單內(nèi)的郵件地址對比,如在黑名單中,則拒收該郵件。然而這些方法的缺點在于, 僅能查找已知的發(fā)送垃圾郵件的發(fā)送地址,對于新出現(xiàn)的發(fā)送者無法進行查找。所以,又出 現(xiàn)了根據(jù)郵件的關(guān)鍵詞來查找垃圾郵件的方法。目前開源的反垃圾技術(shù)一般都采用貝葉 斯(Bayes),它一般只是對按單個字出現(xiàn)的概率來進行推測,而中文一般是按詞來表達意思 的,所以現(xiàn)有的這種方法在中文反垃圾方面不準(zhǔn)確。現(xiàn)有技術(shù)的缺點如下:
[0005] 不能有效找出目前流行的關(guān)鍵字;
[0006] 效率低,擴展性差;
[0007] 沒有垃圾關(guān)鍵字排行功能;
[0008] 由于采用的是單進程,處理能力和擴展性差。
【發(fā)明內(nèi)容】
[0009] 為了解決上述問題,本發(fā)明提出了一種新的技術(shù)方案,能夠更加高效、準(zhǔn)確地查找 垃圾郵件。
[0010] 本發(fā)明中一些常用的術(shù)語含義如下:
[0011] HDFS (Hadoop Distributed File System)是米用 Hadoop 技術(shù)實現(xiàn)的一種分布式 文件系統(tǒng)。Hadoop以并行的方式工作,通過并行處理器加快處理速度,能夠?qū)Υ罅繑?shù)據(jù)進行 分布式處理。它具有高可靠性、高擴展性、高效性、高容錯性的特點。
[0012] Map :Hadoop中的術(shù)語,將要處理的信息轉(zhuǎn)為key/value的中間結(jié)果;
[0013] Reduce :Hadoop中的術(shù)語,將Map輸出key/value的中間結(jié)果進行合并,生成最終 的 key/value 集。
[0014] MIME (Multipurpose Internet Mail Extensions):多功能 Internet 郵件擴充服 務(wù)。
[0015] 本發(fā)明提供了一種垃圾郵件關(guān)鍵詞的查找方法,采用Hadoop分布式系統(tǒng)進行垃 圾郵件關(guān)鍵詞的查找。
[0016] 進一步地,該方法包含如下步驟:將郵件按郵件主題、郵件正文等進行拆分,并分 別存入系統(tǒng)的相應(yīng)主題/正文目錄中。
[0017] 進一步地,拆分郵件的過程包含如下步驟:
[0018] 對進來的郵件按垃圾可疑程度進行打分,分?jǐn)?shù)值越高代表是垃圾郵件的可能性越 商;
[0019] 定時啟動郵件拆分服務(wù)器上的進程;
[0020] 進程從郵件存儲服務(wù)器中提取出分?jǐn)?shù)值低于垃圾郵件報警的郵件;
[0021] 對郵件進行解析,分別得到郵件的各組成部分,包含郵件主題、郵件正文;
[0022] 將郵件主題存入HDFS的標(biāo)題目錄中;
[0023] 將郵件正文內(nèi)容存入HDFS的正文目錄中。
[0024] 進一步地,該方法包含如下步驟:系統(tǒng)對文件按中文分詞進行拆分。
[0025] 進一步地,對文件按中文分詞進行拆分的具體步驟包括:
[0026] 調(diào)度服務(wù)器進程將任務(wù)給它所管理的Map服務(wù)器進程;
[0027] Map進程從HDFS的主題/正文目錄中讀入已拆分過的文件;
[0028] Map進程按中文分詞庫中的分詞將輸入的主題或正文內(nèi)容分解為一個個單一的單 詞;
[0029] Map進程將分解下來的內(nèi)容按照Key/value的形式保存下來;
[0030] Map進程將Key/value結(jié)果傳給Reduce服務(wù)器的合并進程;
[0031] 合并進程將這些記錄進行合并,并將合并結(jié)果存入HDFS的合并目錄中;
[0032] 啟動排行進程,從合并目錄中讀取文件,將所有的分詞進行排序,并將結(jié)果保存回 HDFS的結(jié)果目錄中。
[0033] 進一步地,該方法還包括如下步驟:
[0034] 剔除常見的高頻分詞;
[0035] 剔除中性詞;
[0036] 提取出占出現(xiàn)頻度80%的關(guān)鍵詞;
[0037] 將排名和數(shù)據(jù)庫中保留的上一次排名分別進行比較;
[0038] 若變化幅度超過設(shè)定值,則調(diào)整該關(guān)鍵詞的分?jǐn)?shù)值;
[0039] 將新的分?jǐn)?shù)值導(dǎo)入到郵件服務(wù)器中。
[0040] 相應(yīng)地,本發(fā)明還提供一種垃圾郵件關(guān)鍵詞的查找系統(tǒng),其采用Hadoop分布式系 統(tǒng)進行關(guān)鍵詞的查找。
[0041] 進一步地,該系統(tǒng)還包括郵件拆分模塊,該模塊將郵件按郵件主題、郵件正文等進 行拆分,并分別存入系統(tǒng)的相應(yīng)主題/正文目錄中。
[0042] 進一步地,該郵件拆分模塊包括:
[0043] 打分模塊,用于對進來的郵件按垃圾可疑程度進行打分,分?jǐn)?shù)值越高代表是垃圾 郵件的可能性越高;
[0044] 讀分模塊,用于從郵件存儲服務(wù)器中提取出分?jǐn)?shù)值低于垃圾郵件報警的郵件;
[0045] 解析模塊,用于從每一封郵件中提取出主題和正文;
[0046] 存儲模塊,用于將主題存入HDFS的主題目錄中,將正文內(nèi)容存入HDFS的正文目錄 中。
[0047] 進一步地,該系統(tǒng)還包含中文分詞拆分模塊。
[0048] 進一步地,該中文分詞拆分模塊具體包括:
[0049] 文件讀取模塊,用于從HDFS的主題/正文目錄中讀入已拆分過的文件;
[0050] 文件分詞模塊,用于按中文分詞庫中的分詞將輸入的主題或正文內(nèi)容分解為一個 個單一的單詞;
[0051] 分詞保存模塊,用于將分解下來的內(nèi)容按照Key/value的形式保存下來;
[0052] 數(shù)據(jù)傳輸模塊,用于將Key/value結(jié)果傳給Reduce服務(wù)器的合并進程;
[0053] 合并結(jié)果記錄模塊,用于將這些記錄進行合并,并將合并結(jié)果存入HDFS的合并目 錄中。
[0054] 進一步地,該系統(tǒng)還包含如下模塊:
[0055] 剔除模塊,用于剔除常見的高頻分詞和中性詞;
[0056] 提取模塊,用于提取出占出現(xiàn)頻度80%的關(guān)鍵詞;
[0057] 比較模塊,用于將排名和數(shù)據(jù)庫中保留的上一次排名分別進行比較;
[0058] 排名調(diào)整模塊,用于在變化幅度超過設(shè)定值時,調(diào)整該關(guān)鍵詞的分?jǐn)?shù)值;
[0059] 導(dǎo)入模塊,用于將新的分?jǐn)?shù)值導(dǎo)入到郵件服務(wù)器中。
[0060] 本發(fā)明的附加方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變 得明顯,或通過本發(fā)明的實踐了解到。
【專利附圖】
【附圖說明】
[0061] 本發(fā)明的上述和/或附加的方面和優(yōu)點從結(jié)合下面附圖對實施例的描述中將變 得明顯和容易理解,其中 :
[0062] 圖1為系統(tǒng)架構(gòu)邏輯圖
[0063] 圖2為郵件內(nèi)容拆分流程圖;
[0064] 圖3為Map/Reduce流程示意圖
【具體實施方式】
[0065] 如圖1所示,本發(fā)明的垃圾郵件關(guān)鍵詞查找系統(tǒng)由如下幾個子系統(tǒng)組成:
[0066] 郵件拆分子系統(tǒng):包含郵件拆分服務(wù)器組,負(fù)責(zé)將郵件按郵件主題、郵件正文、郵 件附件等進行拆分,數(shù)據(jù)保存至HDFS文件子系統(tǒng);
[0067] HDFS文件系統(tǒng):Hadoop分布式文件存儲系統(tǒng);
[0068] Map/Reduce子系統(tǒng):由任務(wù)調(diào)度服務(wù)器、Map服務(wù)器、Reduce服務(wù)器和匯聚服務(wù)器 組成。任務(wù)調(diào)度服務(wù)器由HDFS中提取數(shù)據(jù),匯聚服務(wù)器將結(jié)果保存至HDFS文件系統(tǒng)。 [0069] 如圖2所示,為本發(fā)明的郵件內(nèi)容拆分流程,系統(tǒng)首先要將郵件進行拆分,拆分郵 件內(nèi)容的流程如下:
[0070] (1)郵件服務(wù)器中的反垃圾程序會對進來的郵件按垃圾可疑程度進行打分,分?jǐn)?shù) 值越高代表是垃圾郵件的可能性越高。可采用現(xiàn)有技術(shù)中成熟的軟件進行打分,例如開源 項目(Amavisd-new 和 SpamAssassin),SpamAssassin,Amavisd-new 會根據(jù) SpamAssassin 打的分?jǐn)?shù)值進行判斷。分?jǐn)?shù)值小于7的,一般認(rèn)為是非垃圾郵件,7以上的是垃圾郵件的可 能性很高,分?jǐn)?shù)值越高代表可能性越大。
[0071] (2)每天系統(tǒng)會定時啟動郵件拆分服務(wù)器上的進程;
[0072] (3)該進程從郵件存儲服務(wù)器中提取出分?jǐn)?shù)值低于預(yù)設(shè)的垃圾郵件報警的分值的 郵件,例如,分?jǐn)?shù)值在2到6的郵件;
[0073] (4)該進程會對郵件進行解析,可導(dǎo)入MME解析API的動態(tài)庫,分別得到郵件的各 個組成部分,如郵件標(biāo)題、郵件正文、郵件附件等;
[0074] (5)該進程會將每一封郵件的主題存入HDFS的主題目錄中;
[0075] (6)該進程會將每一封郵件的正文內(nèi)容存入HDFS的正文目錄中。
[0076] 在分別提取了文件的主題和內(nèi)容之后,系統(tǒng)對文件按中文分詞進行拆分。如圖3 所示,該圖為本系統(tǒng)的Map/Reduce流程圖,系統(tǒng)進行分詞的流程如下 :
[0077] 系統(tǒng)定時啟動任務(wù)調(diào)度服務(wù)器進程;
[0078] 調(diào)度服務(wù)器進程將任務(wù)給它所管理的Map服務(wù)器進程;
[0079] Map進程裝載入中文分詞庫,該分詞可以采用市面上提供的詞庫即可;
[0080] Map進程從HDFS的主題/正文目錄中讀入已拆分過的文件;
[0081] Map進程按中文分詞庫中的分詞將輸入的主題或正文內(nèi)容分解為一個個單一的分 。
[0082] 例如:"我愛北京天安門,天安門在北京",按中文分詞庫中的分詞可以分解為:
[0083] 分詞 出現(xiàn)頻率
[0084] 我 1
[0085] 愛 1
[0086]北京 1
[0087] 天安門1
[0088] 天安門1
[0089] 在 1
[0090] 北京 1
[0091] Map進程將分解下來的內(nèi)容按key/value的形式保存起來,key/value形式如下:
[0092] Key=我 value=l
[0093] Key=愛 value=l
[0094] 以此類推。
[0095] (7) Map進程將它的key/value結(jié)果傳給Reduce服務(wù)器的合并進程;
[0096] (8)合并進程將這些記錄進行合并,
[0097] 例如:上面分解后的內(nèi)容經(jīng)過合并后如下:
[0098] 分詞 出現(xiàn)頻率
[00"]我 1
[0100]愛 1
[0101] 北京 2
[0102] 天安門2
[0103] 在 1
[0104] (9)合并進程將所有合并結(jié)果存入HDFS的合并目錄中;
[0105] 10)當(dāng)所有的合并進程工作完成后,系統(tǒng)啟動排行進程;
[0106] 11)排行進程從合并目錄中讀取文件,將所有的分詞進行排序,
[0107] 例如:上面合并過的內(nèi)容排序后變?yōu)槿缦拢?br>
[0108] 分詞 出現(xiàn)頻率
[0109] 北京 2
[0110] 天安門2
[0111] 我 1
[0112] 愛 1
[0113] 在 1
[0114] 12)排行進程將結(jié)果保存回HDFS的結(jié)果目錄中;
[0115] 13)結(jié)束。
[0116] 當(dāng)采用上述方法獲得分詞頻率排行表后,再采用如下步驟進行處理:
[0117] 第一階段:剔除常見的高頻分詞。常見的高頻分詞,如謂詞"你、我、他";副詞"的、 地、得";動詞"打、走",需要通過程序從分詞頻率排行表中剔除;
[0118] 第二階段:剔除中性詞。經(jīng)過上面的剔除后,這個排行表中還剩下中性詞,如國家 名、地區(qū)名、商業(yè)用語等,或者流行口語,這些也要通過程序進行剔除。
[0119] 第三階段:分析垃圾關(guān)鍵詞排名變化。經(jīng)過上面2個階段的剔除后,從這個排行 表(已經(jīng)按出現(xiàn)頻度由大到小排序)中提取出累加占出現(xiàn)頻度80%的關(guān)鍵詞。程序會把這 些關(guān)鍵詞的排名和數(shù)據(jù)庫中保留的上一次排名分別進行比較,若是變化幅度超過某一設(shè)定 值(例如,超過50名,可根據(jù)郵件篩選需要進行設(shè)定),則需要根據(jù)算法調(diào)整該關(guān)鍵詞的分?jǐn)?shù) 值。
[0120] 上面提到的算法可以采取如下方式:
[0121] 本次分?jǐn)?shù)值=上次分?jǐn)?shù)值+(上次排行-本次排行)*上次分?jǐn)?shù)值/上次排行。
[0122] 例如:
[0123] 關(guān)鍵詞:偉哥
[0124]
[0125] 本次分?jǐn)?shù)值計算如下:
【權(quán)利要求】
1. 一種垃圾郵件關(guān)鍵詞的查找方法,其特征在于,采用hadoop分布式系統(tǒng)進行垃圾郵 件關(guān)鍵詞的查找。
2. 如權(quán)利要求1所述的垃圾郵件關(guān)鍵詞的查找方法,其特征在于進一步包含如下步 驟:將郵件按郵件主題、郵件正文等進行拆分,并分別存入系統(tǒng)的相應(yīng)主題/正文目錄中。
3. 如權(quán)利要求2所述的垃圾郵件關(guān)鍵詞的查找方法,其特征在于,拆分郵件的過程進 一步包含如下步驟: 對進來的郵件按垃圾可疑程度進行打分,分?jǐn)?shù)值越高代表是垃圾郵件的可能性越高; 定時啟動郵件拆分服務(wù)器上的進程; 進程從郵件存儲服務(wù)器中提取出分?jǐn)?shù)值低于預(yù)設(shè)的垃圾郵件報警分值的郵件; 對郵件進行解析,分別得到郵件的各組成部分,組成部分包含郵件主題和郵件正文; 將郵件主題存入HDFS的標(biāo)題目錄中; 將郵件正文內(nèi)容存入HDFS的正文目錄中。
4. 如權(quán)利要求3所述的垃圾郵件關(guān)鍵詞的查找方法,其特征在于,進一步包含如下步 驟:系統(tǒng)對文件按中文分詞進行拆分。
5. 如權(quán)利要求4所述的垃圾郵件關(guān)鍵詞的查找方法,其特征在于,對文件按中文分詞 進行拆分的具體步驟包括: 調(diào)度服務(wù)器進程將任務(wù)給它所管理的Map服務(wù)器進程; Map進程從HDFS的主題/正文目錄中讀入已拆分過的文件; Map進程按中文分詞庫中的分詞將輸入的主題或正文內(nèi)容分解為單一的單詞; Map進程將分解下來的內(nèi)容按照Key/value的形式保存下來; Map進程將Key/value結(jié)果傳給Reduce服務(wù)器的合并進程; 合并進程將這些記錄進行合并,并將合并結(jié)果存入HDFS的合并目錄中; 啟動排行進程,從合并目錄中讀取文件,將所有的分詞進行排序,并將結(jié)果保存回HDFS 的結(jié)果目錄中。
6. 如權(quán)利要求5所述的垃圾郵件關(guān)鍵詞的查找方法,其特征在于,進一步包括以下步 驟: 剔除常見的高頻分詞; 剔除中性詞; 提取出占出現(xiàn)頻度80%的關(guān)鍵詞; 將排名和數(shù)據(jù)庫中保留的上一次排名分別進行比較; 若變化幅度超過設(shè)定值,則調(diào)整該關(guān)鍵詞的分?jǐn)?shù)值; 將新的分?jǐn)?shù)值導(dǎo)入到郵件服務(wù)器中。
7. -種垃圾郵件關(guān)鍵詞的查找系統(tǒng),其特征在于,采用hadoop分布式系統(tǒng)進行關(guān)鍵詞 的查找。
8. 如權(quán)利要求7所述的垃圾郵件關(guān)鍵詞的查找系統(tǒng),其特征在于,進一步包括郵件拆 分模塊,該模塊將郵件按郵件主題、郵件正文等進行拆分,并分別存入系統(tǒng)的相應(yīng)主題/正 文目錄中。
9. 如權(quán)利要求8所述的垃圾郵件關(guān)鍵詞的查找系統(tǒng),其特征在于,該郵件拆分模塊包 括: 打分模塊,用于對進來的郵件按垃圾可疑程度進行打分,分?jǐn)?shù)值越高代表是垃圾郵件 的可能性越1? ; 讀分模塊,用于從郵件存儲服務(wù)器中提取出分?jǐn)?shù)值低于預(yù)設(shè)的垃圾郵件報警分值的郵 件; 解析模塊,用于從每一封郵件中提取出主題和正文; 存儲模塊,用于將主題存入HDFS的主題目錄中,將正文內(nèi)容存入HDFS的正文目錄中。
10. 如權(quán)利要求9所述的垃圾郵件關(guān)鍵詞的查找系統(tǒng),其特征在于,進一步包含中文分 詞拆分模塊。
11. 如權(quán)利要求9所述的垃圾郵件關(guān)鍵詞的查找系統(tǒng),其特征在于,該中文分詞拆分模 塊具體包括: 文件讀取模塊,用于從HDFS的主題/正文目錄中讀入已拆分過的文件; 文件分詞模塊,用于按中文分詞庫中的分詞將輸入的主題或正文內(nèi)容分解為單一的單 詞; 分詞保存模塊,用于將分解下來的內(nèi)容按照Key/value的形式保存下來; 數(shù)據(jù)傳輸模塊,用于將Key/value結(jié)果傳給Reduce服務(wù)器的合并進程; 合并結(jié)果記錄模塊,用于將這些記錄進行合并,并將合并結(jié)果存入HDFS的合并目錄 中。
12. 如權(quán)利要求11所述的垃圾郵件關(guān)鍵詞的查找系統(tǒng),其特征在于,進一步包含如下 模塊: 剔除模塊,用于剔除常見的高頻分詞和中性詞; 提取模塊,用于提取出占出現(xiàn)頻度80%的關(guān)鍵詞; 比較模塊,用于將排名和數(shù)據(jù)庫中保留的上一次排名分別進行比較; 排名調(diào)整模塊,用于在變化幅度超過設(shè)定值時,調(diào)整該關(guān)鍵詞的分?jǐn)?shù)值; 導(dǎo)入模塊,用于將新的分?jǐn)?shù)值導(dǎo)入到郵件服務(wù)器中。
【文檔編號】G06F17/30GK104123289SQ201310146243
【公開日】2014年10月29日 申請日期:2013年4月24日 優(yōu)先權(quán)日:2013年4月24日
【發(fā)明者】李清森 申請人:北京無限立通通訊技術(shù)有限責(zé)任公司