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