I华南理工大学《信息检索与web挖掘》课程设计论文基于模糊识别的垃圾邮件检测与识别方法学院计算机科学与工程学院专业计算机科学与技术(全英创新班)学生姓名黄炜杰、黄健文林力挺、柳雨新学生学号201230590051、201236590048201230590082、201230690130指导教师董守斌提交日期2016年06月30日摘要过去几十年中,有很多研究者提出很多垃圾邮件过滤的方法,包括判断来源法、判断行为法等,但是,使用最多而且精确的方法还是基于内容的垃圾邮件过滤方法。然而在对抗环境中,垃圾邮件制造者经常借助一些替换、插入、删除和编码等手段对单词进行模糊化,从而导致在不影响读者对信息的理解情况下隐藏文字自身的垃圾特性,干扰基于内容统计的过滤器对其的检测与过滤本文研究的是基于内容的垃圾邮件过滤系统,它能根据一封邮件的内容判断它是否是垃圾邮件。通过基于单词级别的模糊词检测技术能正确识别对抗环境中被恶意攻击的垃圾邮件。本文提出的垃圾词检测方法是对edit-string算法的改进,并融合了program还原与n-gram思想,通过滑动窗口对机器无法识别的字符串进行模糊检测,通过实验对比,在不包含模糊词攻击的情况下,算法检测效果相对于传统算法没有性能的下降,而在包含大量垃圾词攻击时,文中算法对垃圾邮件集仍有86%的准确率,而传统算法的准确率只有其一半,证明了算法的有效性。关键词:对抗环境;垃圾邮件过滤;edit-string;模糊词匹配目录摘要.........................................................III第一章绪论......................................................11.1垃圾邮件问题的背景................................................11.2对抗环境下的垃圾邮件过滤问题......................................11.2.1好词攻击...................................................21.2.2模糊词攻击.................................................21.3本文组织结构......................................................3第二章垃圾邮件过滤系统设计......................................42.1系统设计原理......................................................42.2邮件的特征表示....................................................42.3邮件的预处理......................................................52.3.1分词、单词提取.............................................52.3.2停用词去除.................................................62.3.3词典训练过程...............................................62.3.4邮件集向量生成过程.........................................9第三章模糊词识别算法...........................................103.1Program还原法....................................................103.2编辑距离(edit-string)字符串匹配..................................103.3基于滑动窗口的模糊识别...........................................113.4基于similarity和TF的邮件向量空间的表示.........................12第四章实验.....................................................134.1数据集...........................................................134.2性能评价方法.....................................................134.3实验结果.........................................................14第五章总结.....................................................16参考文献........................................................17第一章绪论1第一章绪论1.1垃圾邮件问题的背景随着计算机网络的不断发展,从网上能够获取的信息已经渗透到社会的各个领域,电子邮件以其方便、快捷的信息交流方式深受各界人士的喜爱。然而由于大量的商家和不法分子借此方式向邮件用户发送大量的虚假广告,造成广大邮件用户浪费大量的宝贵时间在邮箱中寻找自己想要的信息。从邮件内容来看,垃圾邮件的种类繁多,特别是如果用MIME邮件服务协议的话,垃圾邮件制造者还可以插入图片附件到邮件中,并且将主要的信息放在图片中,比如,股票兜售和诈骗等信息。实际上,商业应用中不是只用一个分类系统就完成垃圾邮件过滤的,需要多个过滤系统来完成的,具体做法如图1-1,让邮件一次次通过多个不同分类系统的分类,每次把确定为垃圾邮件的邮件扔掉,然后再让剩下的邮件通过下一个邮件过滤系统的分类。图1-1垃圾邮件过滤的多层模型1.2对抗环境下的垃圾邮件过滤问题传统的基于统计的机器学习方法能对垃圾邮件有很好的过滤效果,可是道高一尺,魔高一丈,垃圾邮件的制造技术也会随着垃圾邮件过滤系统的性能的提高而提高。每个垃圾邮件制造者都企图通过攻击垃圾邮件过滤器,降低垃圾邮件的过滤效率,从而提高自己垃圾邮件发送的成功率。我们可以将很多种普通的垃圾邮件攻击方法分为以下两种:单词项信息检索与web挖掘课程设计论文级别的攻击和字符级别的攻击。其中单词级别的攻击方法主要是好词攻击,字符级别的攻击主要是单词模糊类问题。1.2.1好词攻击好词攻击是在邮件中插入大量的垃圾信息无关的正常段落或词汇,插入段落的方法一般是将邮件的头或者尾部插入正常邮件的段落[1,2]。也就是说某些攻击者为了绕过基于关键词的过滤器,他们大概是知道过滤器的过滤规则,所以将他想发的垃圾信息放在邮件的中间或后面。好词攻击是针对基于统计类垃圾邮件过滤器的一种攻击方法,因为统计类过滤器是根据基于邮件中个单词分别在垃圾邮件和正常邮件中出现的次数来进行邮件垃圾程度打分的,所以,如果攻击者在垃圾邮件中插入大量的好词,垃圾邮件过滤器则很有可能将这类邮件分为正常邮件。1.2.2模糊词攻击模糊词攻击是指攻击者通过在垃圾单词中间插入、删除某些字母,插入特殊符号或者故意将垃圾单词拼写错误等方法来改变垃圾单词原来的形态,以躲过过滤器的拦截[3]。现在很多垃圾邮件攻击者喜欢用单词模糊来攻击统计类垃圾邮件过滤器。通过这种攻击方法,来降低单词为特征项的垃圾邮件过滤系统的性能[4,5]。常用的模糊方法:(1)替换:用类似的符号替换相应的字符,比如将单词Viagra中的“v”替换为“∨”;(2)插入:在字母之间插入空格或特殊字符,比如将Viagra变为Vi_a_gra;(3)误拼:比如将Bachelor拼写为Bacheelor;(4)连接:故意把两个单词连接在一起,比如lowprice变为low_price(5)几种方法组合使用。第一章绪论3针对文字模糊类垃圾邮件如果不做特殊处理,直接按照原来预处理方法将邮件中出现的特殊符号和无实际意义的单词直接删除就会影响过滤器对垃圾邮件的识别。图1-2是对10封垃圾邮件做的一个测试,蓝线不含有模糊词攻击的垃圾邮件的评分,红线为模糊词攻击后垃圾邮件的评分。通过两条线的对比,我们可以看出,对于单词模糊类垃圾邮件,如果不通过一定的处理方法将模糊单词的意思还原或者处理,就很可能将单词模糊类垃圾邮件分类为正常邮件。图1-210封邮件在模糊词攻击前后的评分1.3本文组织结构本文的内容分为四章:第一章为绪论,介绍垃圾邮件过滤问题以及对抗性环境下垃圾邮件攻击的类型。第二章介绍本文的垃圾邮件过滤系统设计细节。第三章介绍本文提出的模糊词识别算法,并将其应用在第二章提出的垃圾邮件过滤系统中。第四章为本文的实验部分,对比传统edit-string算法与本文算法的鲁棒性。信息检索与web挖掘课程设计论文第二章垃圾邮件过滤系统设计2.1系统设计原理在邮件过滤中第一步就是要考虑怎么样表示一封邮件,让计算机来处理它。在英文中,单词之间有天然的空格作为分隔符的,我们可以把每一个单词作为一个特征项,将文中的所有单词的词频统计出来作为特征值。确定了这一点后就需要我们对通过对历史邮件进行统计得到一个能够有利于分类的特征词典库,然后再按照考虑我们的邮件采用的过滤模型。本文采用基于统计类垃圾邮件的过滤模型如图2-1,需要先从历史邮件库中通过一系列的统计和特征提取方法,提取特征词典库,当新的待分类邮件到来时按照特征词典库将新的邮件样例化成一个基于特征词典的向量,最后用训练好的分类器对邮件进行分类。图2-1基于统计的垃圾邮件检测模型图2.2邮件的特征表示文本的特征表示是文本分类的基础,当然邮件的特征表示也是邮件分类的基础了,然而文本的特征表示中最主要的就是确定特征项及相应的特征值。在本文中,特征表示采用的是向量空间模型VSM向量空间模型的构造需要有一个向量空间词典,该词典的获得也是通过以往或现有邮件库统计和特征词选择得到的,其过程如图2-2所示:第二章垃圾邮件过滤系统设计5图2-2邮件向量空间集的构造图在此向量空间模型中,首先需要假设邮件中各单词之间没有语义关系,向量被看作由一组正交词条所生成的矢量空间,把每封邮件D表示成一个规范化的矢量。邮件集合的空间被视为一组正交特征词条构成的向量空间,每封邮件D可以表示成一个空间向量。具体来说,对于一个邮件集合D,需要首先通过一定的特征选取方法选出n个最能够具代表各类邮件的标引词ti组成特征集合T,特征集合中的每一个特征元素ti就对应空间模型的某一维,这样就可以把邮件Di表示成一个n维的向量{w1,w2,w3...wn},其中wi为该邮件的第i维特征的权重。2.3邮件的预处理2.3.1分词、单词提取传统的基于统计的垃圾邮件预处理中一般都是直接将提取的邮件主题和内容中的除了字母以外的其他字符均替换为空格之后进行单词的统计并做成词典,在制作样本的时候也是同样的处理,但是本文中要处理的是单词模糊类垃圾邮件,也就是说垃圾邮件中有很多单词都是通过插入特殊符号或者通过神似的字符、数字替换后的单词,因此我们不能简单的沿用传统的预处理方法。我们需要保留模糊单词原有的信息,需要对邮件进行特殊的预信息检索与web挖掘课程设计论文处理。预处理包含两个方面的预处理:一是对历史邮件库中的邮件的预处理,另一个是对待分类邮件的预处理。对历史邮件库中邮件的预处理需要先从历史邮件库中通过一系列的统计和特征提取方法,提取特征词典,为了新的待分类邮件到来时按照特征词典库将新的邮件样例化成一个基于特征词典的向量。一般的统计过滤方法中这两个步骤中的分词和统计方法基本一致,但是在本文中会有不同的处理,在一点会在第三章中仔细讲解。2.3.2停用词去除文档去噪的主要任务是去除与文档内容分类不相关的信息