CN1889108B - 一种识别垃圾邮件的方法 - Google Patents
一种识别垃圾邮件的方法 Download PDFInfo
- Publication number
- CN1889108B CN1889108B CN2005100816275A CN200510081627A CN1889108B CN 1889108 B CN1889108 B CN 1889108B CN 2005100816275 A CN2005100816275 A CN 2005100816275A CN 200510081627 A CN200510081627 A CN 200510081627A CN 1889108 B CN1889108 B CN 1889108B
- Authority
- CN
- China
- Prior art keywords
- spam
- word
- probability
- sample
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种识别垃圾邮件的方法,包括:对邮件主题和邮件内容进行分词;根据分词的结果利用样本库判断邮件是否为垃圾邮件;对垃圾邮件进行处理。根据本发明,通过对邮件的内容和邮件主题进行分词,通过对大量样本邮件的学习,利用贝叶斯公式可算出新邮件为垃圾邮件的概率。通过实验表明,本发明尤其是对带有中文字符的邮件,其识别垃圾邮件的成功率较高,识别速度较快。
Description
技术领域
本发明涉及一种邮件的处理方法,尤其涉及一种识别垃圾邮件的方法。
背景技术
随着网络的快速发展,人们使用电子邮件进行通信已是十分普遍。然而,人们会经常收到大量的垃圾邮件,这样,人们需要辨别哪些是垃圾邮件,哪些是正常邮件,对垃圾邮件要进行删除,因此,会极大地耗费邮件使用者的时间,所以,如何识别垃圾邮件是一项十分迫切的课题。
目前,识别垃圾邮件有以下几种方式:规则法,黑名单法,白名单法贝叶斯等。下面对它们分别进行简单说明。
规则法是通过统计垃圾邮件中经常出现的规律,然后总结出规则库,为每条规则设定一个权重分值。对于一封新邮件,首先计算邮件符合哪些规则,对符合的规则的分值求和,就可以得到一个总的分值,当分值超过一个设定的阈值时,就可以认为邮件是垃圾邮件。规则法的缺点是每条规则的权重分值和设定的阈值都只能通过调整来得到,而且需要定时维护规则库,调整权重等,因此,这种方法工作量大。
黑名单法是将现有垃圾邮件的来信人地址加入一个名单中,在以后的收邮件过程中,判断来信人地址是否存在于黑名单中,如果存在,则将其认为是垃圾邮件。黑名单法的优点是操作简单,但缺点是对于假的或者不断变更的垃圾邮件来信人地址没有任何处理办法。
白名单法是将自己认识的来信人地址加入到一个名单中,在以后的收邮件过程中,判断来信人地址是否存在于白名单中,如果存在,则直接将其认为正常邮件。白名单法只能作为降低反垃圾时的误判率的辅助手段。一般必须结合其它反垃圾方法使用。
贝叶斯法是通过对一定量的垃圾邮件和非垃圾邮件进行学习,然后利用贝叶斯公式来判断一封邮件是否为垃圾邮件的方法。不论是学习或者是判断,都必须对邮件内容进行分词处理。然而,这种方法只能对英文进行分词,至今还没有中文的分词方法,因而,不能利用这种方法对中文的垃圾邮件进行识别。
综上所述,现有技术中识别垃圾邮件的各种方法都存在着这样或那样的不足之处。
发明内容
针对现有技术的上述缺陷,本发明的目的是提供一种识别垃圾邮件的方法,其识别垃圾邮件的成功率较高。
本发明是通过下述技术方案实现的,本发明提供了一种识别垃圾邮件的方法,包括:
收集大量的垃圾邮件和正常邮件作为邮件样本,建立以Unicode码顺序排列的样本库,每一条记录代表一个词语;对各样本邮件的主题和内容做分词处理,对于每个分词在样本库中查寻记录,如果不存在,则在相应位置插入一条记录,如果样本邮件为垃圾邮件,则对记录中的垃圾邮件个数增加1,如果样本邮件为正常邮件,则对记录中的正常邮件个数增加1;
对接收到的邮件主题和/或邮件内容中的中文字符进行分词;在样本库中查询分词后的词语在垃圾邮件中出现的个数和在正常邮件中所出现的个数,以及从样本库中获得垃圾邮件样本个数和正常邮件样本个数;按公 式:(出现在垃圾邮件中个数/垃圾邮件样本个数)/(出现在垃圾邮件中个数/垃圾邮件样本个数+出现在正常邮件个数/正常邮件样本个数)计算包含分词得到的词语的邮件为垃圾邮件的概率;若在样本库中找不到该词语,则忽略该词语;
根据所述的确定出的包含分词得到的词语的邮件为垃圾邮件的概率计算接收到的邮件为垃圾邮件的概率;
当接收到的邮件为垃圾邮件的概率大于或等于预定阈值时,则确定接收到的邮件为垃圾邮件,否则确定接收到的邮件为正常邮件。
所述对接收到的邮件主题和/或邮件内容中的中文字符进行分词的步骤进一步包括:对接收到的邮件主题和邮件内容与词典中的词语进行匹配。
所述记录中包括词语长度、词语、包含本词语的垃圾邮件个数、包含本词语的正常邮件个数。
为样本库建立索引,该索引为哈希表,其哈希值为预定顺序排列的值,并对应该哈希值字符开头的词语在样本库中出现的起始位置。
所述计算接收到的邮件为垃圾邮件的概率的步骤还包括:根据选择的预定数目的特征词语所对应的该邮件为垃圾邮件的概率计算该邮件为垃圾邮件的概率。
所述的特征词语为:从其所对应的邮件为垃圾邮件的概率与0.5的绝对差值从大到小选择的词语。
根据本发明,通过对邮件的内容和邮件主题进行分词,通过对大量样本邮件的学习,利用贝叶斯公式可算出新邮件为垃圾邮件的概率。通过实验表明,本发明的方法识别垃圾邮件的成功率较高,识别速度较快。
附图说明
图1示出了本发明的识别垃圾邮件的流程图。
具体实施方式
为了便于本领域一般技术人员理解和实现本发明,现结合附图描绘本发明的实施例。
如图1所示,本发明的基本思想是:在步骤1中,对邮件进行分词,在步骤2中,根据分词结果利用样本库获得该词语所对应的邮件为垃圾邮件的概率,在步骤3中,根据词语所对应的邮件为垃圾邮件的概率,利用贝叶斯公式计算该邮件为垃圾邮件的概率,在步骤4中,判断该邮件为垃圾邮件的概率是否大于等于预定阈值,若是,在步骤5中,表明该邮件为垃圾邮件,并对其进行处理,否则,在步骤6中,表明该邮件为正常邮件。下面首先以中文为例介绍邮件的分词过程。
中文分词技术属于自然语言处理技术范畴。对于一段话,人可以通过自己的知识来明白哪些是词,哪些不是词,但如何让机算机也能理解?其处理过程就是分词算法。根据本发明,采用基于字符串匹配的分词方法,这种方法又叫做机械分词方法,它是按照一定的策略将待分析的中文字符串与一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功(即识别出一个词语)。按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。常用的几种机械分词方法如下:
(1)正向最大匹配法(由左到右的方向);
(2)逆向最大匹配法(由右到左的方向);
(3)最少切分(使每一句中切出的词数最小)。
此外,还可以使用基于理解的分词方法和基于统计的分词方法。
根据本发明,优选的是,本发明采取正向最大匹配方法,以四个中文字符为词语的最大长度。下面通过“我是一个中国人”这个语句介绍该方法。通过对“我是一个”,“我是一”,“我是”这几个词语在词典中进行查询,均未发现它们,确定“我”是独立的词语;然后查询“是一个中”,“是一个”,“是一”,同样在词典中没有发现它们,确定“是”是独立的词语;然后查询“一个中国”,“一个中”,“一个”,发现词典中只有“一个”这个词语,确定“一个”为词语;最后查询“中国人”,发现有“中国人”这个词语,从而确定“中国人”是一个词语。至此,全句分为“我是一个中国人”,这个过程比较简单,且效率较高。
上面介绍了中文的分词过程,下面介绍贝叶斯的学习和判断。步骤如下:
收集大量的垃圾邮件和正常邮件作为邮件样本。
建立一个样本库,每一条记录对应一个词语,按Unicode码顺序排列。记录中包含的信息为:词语长度(WordLength),词语(Word),包含本词语的垃圾邮件个数(BadCount),包含本词语的正常邮件个数(GoodCount)。
对各个样本邮件的主题和内容作分词处理,对于每个词语在样本库中查寻记录,如果不存在,则在相应位置插入一条记录。如果本邮件为垃圾邮件,则对记录中的BadCount增加1,如果本邮件为正常邮件,则对记录中的GoodCount增加1。
为了更快地在样本库中查找到词语,建立一个用于索引的哈希表。哈希表为65536个整数的数组,对应了全部的Unicode字符空间,对于中文来说,一个Unicode字符就是一个中文字符。每个位置存放了以对应的Unicode字符开头的词语在样本库中出现的起始位置。当要查找某个词语时,只需要按该词语第一个中文字符的Unicode内码取出哈希表中相应位置的整数,然后在样本库中定位到这个位置,就可以很快查找到词语的记录。
比如,在样本库中存放着“中国”,“中间”,“中文”等以“中”字开头的词语,其中“中国”在所有以“中”字开始的词语中是最靠前的。“中”的Unicode的内码为20013,那么,在哈希表中第20013个整数存放就是词语“中国”所在的位置。如果现在要查找“中间”,那么,首先取哈希表中第20013个整数,就得到以“中”字开头的词语在样本库中的起始位置,取哈希表中下一个整数,即是以“中”字开头的词语在样本库中的终止位置,然后按照二分法进行查找,可以高效地得到结果。
对垃圾邮件集和正常邮件集进行了学习后,就可以得到最终的样本库,同时保存样本邮件中的垃圾邮件样本数(BadEmailCount)和正常邮件样本数(GoodEmailCount)。
下面介绍利用上述的样本库判断新邮件是否为垃圾邮件的过程,首先利用分词技术将邮件主题和邮件内容分成若干个词语。然后,在样本库中找到该词语在垃圾邮件中出现的次数BadCount和在正常邮件中所出现的次数GoodCount,以及获得样本库中垃圾邮件样本数(BadEmailCount)和正常邮件样本数(GoodEmailCount)。最后根据BadCount、GoodCount、BadEmailCount和GoodEmailCount获得该邮件是否为垃圾邮件的概率;若在词语中找不到该词语,则忽略该词语。下面介绍如何判断是否为垃圾邮 件。假设:
A事件:邮件为垃圾邮件
t1,t2,...,tn代表多个词语
P(A|ti)表示当邮件中出现词语ti时,该邮件为垃圾邮件的概率。P(A|ti)也可简称为词语ti的垃圾概率。显然,
P(A|ti)=(BadCount/BadEmailCount)/((GoodCount/GoodEmailCount)+(BadCount/BadEmailCount))
设t1,t2...tn这些词语的垃圾概率为P1,P2...Pn.
P(A|t1,t2,t3,...,tn)表示在邮件中同时出现多个词语t1,t2,...,tn时,该邮件为垃圾邮件的概率。则根据贝叶斯公式:
P(A|t1,t2,t3,...,tn)=(P1*P2*...Pn)/[P1*P2*...Pn+(1-P1)*(1-P2) *...(1-Pn)]
当P(A|t1,t2,t3,...,tn)超过预定阈值时,就可以判断邮件为垃圾邮件。根据本发明。优选的是,阈值取0.9,即P(A|t1,t2,t3,...,tn)超过0.9时,就可以判断邮件为垃圾邮件。
对于垃圾邮件,可利用黑名单法,将其邮件地址放在黑名单中,同时将垃圾邮件放入垃圾邮件箱,定时清除或作为用于进一步贝叶斯学习的样本。
应该注意到,由于有些词语出现在垃圾邮件或出现在正常邮件中的概率大概相同,所以,利用贝叶斯公式判断是否为垃圾邮件时,可以忽略这些词语,只对那些出现在垃圾邮件或出现在正常邮件中的概率较大的词语(这些词语也称作特征词语)利用贝叶斯进行计算,以便算出为垃圾邮件的概率。例如,可在其为垃圾邮件的概率与0.5的绝对差值中从大到小取若 干个特征词语作为判断是否为垃圾邮件的依据,根据本发明,优选的是,取20个这样的特征词语作为判断依据,再利用贝叶斯公式算出为垃圾邮件的概率,这样可节省计算时间。
本发明主要描述了中文的分词过程,判断中文邮件是否为垃圾邮件的过程。还应注意到,本发明的上述过程很容易推广到中英文混合的邮件、英文邮件两种情况,对于有英文的邮件,首先对英文进行分词,分词可采用特定分隔符法,如空格、分号、逗号、句号等分隔符作为每一单词的分隔符,然后,取大量的样本邮件进行学习,建立中文和英文样本库,该样本库结构与上述样本库结构相同,即,每一条记录包括词语长度(WordLength),词语(Word),包含本词语的垃圾邮件个数(BadCount),包含本词语的正常邮件个数(GoodCount)。判断邮件是否为垃圾邮件过程与上述判断过程完全相同。
根据本发明,通过对中文内容进行词语的拆分,从而可利用贝叶斯方法来对包含中文字符的邮件进行识别,以判断其是否为垃圾邮件,通过实验表明,本发明的方法识别垃圾邮件的成功率较高,识别速度较快。
本发明还可配合其它几种反垃圾方法,这样,可进一步提高判断准确率,降低误判率。
虽然通过实施例描绘了本发明,但本领域普通技术人员知道,在不脱离本发明的精神和实质的情况下,就可使本发明有许多变形和变化,本发明的范围由所附的权利要求来限定。
Claims (6)
1.一种识别垃圾邮件的方法,其特征在于,包括:
收集大量的垃圾邮件和正常邮件作为邮件样本,建立以Unicode码顺序排列的样本库,每一条记录代表一个词语;对各样本邮件的主题和内容做分词处理,对于每个分词在样本库中查寻记录,如果不存在,则在相应位置插入一条记录,如果样本邮件为垃圾邮件,则对记录中的垃圾邮件个数增加1,如果样本邮件为正常邮件,则对记录中的正常邮件个数增加1;
对接收到的邮件主题和/或邮件内容中的中文字符进行分词;在样本库中查询分词后的词语在垃圾邮件中出现的个数和在正常邮件中所出现的个数,以及从样本库中获得垃圾邮件样本个数和正常邮件样本个数;按公式:(出现在垃圾邮件中个数/垃圾邮件样本个数)/(出现在垃圾邮件中个数/垃圾邮件样本个数+出现在正常邮件个数/正常邮件样本个数)计算包含分词得到的词语的邮件为垃圾邮件的概率;若在样本库中找不到该词语,则忽略该词语;
根据确定出的包含分词得到的词语的邮件为垃圾邮件的概率计算接收到的邮件为垃圾邮件的概率;
当接收到的邮件为垃圾邮件的概率大于或等于预定阈值时,则确定接收到的邮件为垃圾邮件,否则确定接收到的邮件为正常邮件。
2.根据权利要求1所述的识别垃圾邮件的方法,其特征在于,所述对接收到的邮件主题和/或邮件内容中的中文字符进行分词的步骤进一步包括:对接收到的邮件主题和邮件内容与词典中的词语进行匹配。
3.根据权利要求1所述的识别垃圾邮件的方法,其特征在于,所述记录中包括词语长度、词语、包含本词语的垃圾邮件个数、包含本词语的正常邮件个数。
4.根据权利要求3所述的识别垃圾邮件的方法,其特征在于,为样本库建立索引,该索引为哈希表,其哈希值为预定顺序排列的值,并对应该哈希值字符开头的词语在样本库中出现的起始位置。
5.根据权利要求3或4所述的识别垃圾邮件的方法,其特征在于,所述计算接收到的邮件为垃圾邮件的概率的步骤还包括:根据选择的预定数目的特征词语所对应的该邮件为垃圾邮件的概率计算该邮件为垃圾邮件的概率。
6.根据权利要求5所述的识别垃圾邮件的方法,其特征在于,所述的特征词语为:从其所对应的邮件为垃圾邮件的概率与0.5的绝对差值从大到小选择的词语。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2005100816275A CN1889108B (zh) | 2005-06-29 | 2005-06-29 | 一种识别垃圾邮件的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2005100816275A CN1889108B (zh) | 2005-06-29 | 2005-06-29 | 一种识别垃圾邮件的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1889108A CN1889108A (zh) | 2007-01-03 |
CN1889108B true CN1889108B (zh) | 2010-12-15 |
Family
ID=37578384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005100816275A Active CN1889108B (zh) | 2005-06-29 | 2005-06-29 | 一种识别垃圾邮件的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1889108B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103905289A (zh) * | 2012-12-26 | 2014-07-02 | 航天信息软件技术有限公司 | 一种垃圾邮件过滤方法 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136266A (zh) * | 2011-12-01 | 2013-06-05 | 中兴通讯股份有限公司 | 邮件分类的方法及装置 |
CN103324745B (zh) * | 2013-07-04 | 2017-04-05 | 微梦创科网络科技(中国)有限公司 | 基于贝叶斯模型的文本垃圾识别方法和系统 |
CN103944809B (zh) * | 2014-05-06 | 2017-05-24 | 厦门大学 | 一种基于混淆模式识别的垃圾邮件识别方法 |
CN103944810B (zh) * | 2014-05-06 | 2017-02-15 | 厦门大学 | 一种垃圾电子邮件意图识别系统 |
CN105187408A (zh) | 2015-08-17 | 2015-12-23 | 北京神州绿盟信息安全科技股份有限公司 | 网络攻击检测方法和设备 |
CN106330670A (zh) * | 2016-08-18 | 2017-01-11 | 无锡云商通科技有限公司 | 基于邮件指纹对相同邮件进行判定的方法 |
CN106453423B (zh) * | 2016-12-08 | 2019-10-01 | 黑龙江大学 | 一种基于用户个性化设置的垃圾邮件的过滤系统及方法 |
CN108462624B (zh) * | 2017-02-17 | 2021-03-09 | 阿里巴巴集团控股有限公司 | 一种垃圾邮件的识别方法、装置以及电子设备 |
CN107086952A (zh) * | 2017-04-19 | 2017-08-22 | 中国石油大学(华东) | 一种基于tf‑idf中文分词的贝叶斯垃圾邮件过滤方法 |
CN115277612A (zh) * | 2022-08-03 | 2022-11-01 | 西安热工研究院有限公司 | 一种用于内网的垃圾邮件检测过滤方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1564167A (zh) * | 2004-04-04 | 2005-01-12 | 俞盛 | 对付垃圾邮件的方法 |
-
2005
- 2005-06-29 CN CN2005100816275A patent/CN1889108B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1564167A (zh) * | 2004-04-04 | 2005-01-12 | 俞盛 | 对付垃圾邮件的方法 |
Non-Patent Citations (5)
Title |
---|
JP特开2002-91877A 2002.03.29 |
周威成.信息过滤方法的研究与应用.中国优秀硕士论文电子期刊 2003.2003,(2003),第14-33页. |
周威成.信息过滤方法的研究与应用.中国优秀硕士论文电子期刊 2003.2003,(2003),第14-33页. * |
李国栋,李卫.基于文本分类技术的垃圾邮件识别系统.微电子学与计算机21 6.2004,21(6),145-146,193. |
李国栋,李卫.基于文本分类技术的垃圾邮件识别系统.微电子学与计算机21 6.2004,21(6),145-146,193. * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103905289A (zh) * | 2012-12-26 | 2014-07-02 | 航天信息软件技术有限公司 | 一种垃圾邮件过滤方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1889108A (zh) | 2007-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1889108B (zh) | 一种识别垃圾邮件的方法 | |
CN103136266A (zh) | 邮件分类的方法及装置 | |
KR101708508B1 (ko) | 향상된 개체 발췌에 기초하여 메시지 및 대화 간의 의미 유사성을 계산하는 방법 | |
CN104008090A (zh) | 一种基于概念向量模型的多主题提取方法 | |
CN101079025B (zh) | 一种文档相关度计算系统和方法 | |
US20100198864A1 (en) | Method for organizing large numbers of documents | |
CN106339495A (zh) | 一种基于层次增量聚类的话题检测方法及系统 | |
CN103049548B (zh) | 电子渠道应用上的faq识别系统及方法 | |
CN103970730A (zh) | 一种从单个中文文本中提取多主题词的方法 | |
WO2002025479A1 (en) | A document categorisation system | |
CN101079024A (zh) | 一种专业词表动态生成系统和方法 | |
CN102255922A (zh) | 一种多层次的垃圾邮件智能过滤方法 | |
Jatana et al. | Bayesian spam classification: Time efficient radix encoded fragmented database approach | |
CN112149422B (zh) | 一种基于自然语言的企业新闻动态监测方法 | |
CN104063428A (zh) | 一种中文微博突发热点话题检测方法 | |
Reddy et al. | Classification of Spam Messages using Random Forest Algorithm | |
CN101329668A (zh) | 一种信息规则生成方法及装置、信息类型判断方法及系统 | |
GB2362018A (en) | Adaptive learning and pattern recognition | |
KR101291076B1 (ko) | 스팸 문서 판단 방법 및 그 판단 장치 | |
CN108427769B (zh) | 一种基于社交网络的人物兴趣标签提取方法 | |
CN116502637A (zh) | 一种结合上下文语义的文本关键词提取方法 | |
Dukic et al. | Detection of Hate Speech Spreaders with BERT. | |
CN111767730B (zh) | 一种事件类型识别方法及装置 | |
Gong et al. | Research of spam filtering based on Bayesian algorithm | |
Wardani et al. | Using metadata in detection spam email with pornography content |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |