一种基于N-Gram分词模型的反向神经网络垃圾邮件过滤装置的制作方法

文档序号:6602883阅读:122来源:国知局
专利名称:一种基于N-Gram分词模型的反向神经网络垃圾邮件过滤装置的制作方法
技术领域
本发明涉及互联网技术,具体涉及一种基于N-Gram分词模型的反向神经网络垃 圾邮件过滤装置。
背景技术
随着互联网的广泛应用,电子邮件以其快速简单廉价的优点受到人们的青睐,成 为一种高效的大众传播媒介。与此同时,大量无用邮件涌入人们的邮箱,给他们的学习和生 活带来灾难。垃圾邮件是用户最讨厌的,因为他们浪费了用户的时间,金钱,以及网络带宽, 同时,弄乱用户的邮箱,有些邮件甚至是有害的,如包含色情内容或病毒等的。据有关研究 报告,全世界电子邮件中每天有超过10%都是垃圾邮件。因此,找到一种有效拦截过滤垃圾 邮件的方法是很有必要的。反垃圾邮件技术上可以分成两类“根源阻断”和“存在发现”。“根源阻断”是指通 过防止垃圾邮件的产生来减少垃圾邮件。目前,主流的反垃圾邮件技术是“存在发现”,即对 已经产生的垃圾邮件进行过滤。反垃圾邮件的发现可以通过邮件的内容特征或者其它特征 (如行为特征)来实现,其中基于内容的垃圾邮件过滤技术是研究的重点。使用神经网络来进行垃圾邮件过滤是具有其自身优势的。这是因为首先,垃圾邮 件的过滤最核心的步骤是对用户所接收到的邮件进行区分,把它们分成垃圾邮件和非垃圾 邮件两大类,这一过程从本质上来说就是一个分类过程,而分类正是神经网络的一个主要 应用方向;其次,神经网络的智能化和自适应性使网络能随邮件内容的变化进行自我学习, 且具有很强的泛化能力,使其能实现对垃圾邮件的有效过滤。使用神经网络去进行分类,用 户只要根据自身情况对一系列邮件是否为垃圾邮件给出期望判断结果,剩余的工作即可由 神经网络自动完成,定制出符合要求的邮件过滤器。

发明内容
本发明实施例的目的是提供一种基于N-Gram分词模型的反向神经网络垃圾邮件 过滤装置。使用基于N-Gram分词模型的反向神经网络垃圾邮件过滤技术能够很好的判断、 过滤垃圾邮件。为了解决现有技术存在的问题,本发明的实施方式提出了一种基于N-Gram 分词模型的反向神经网络垃圾邮件过滤装置,该装置包括(1)邮件分词;(2)词语_文档空间生成,;(3)自定义特征_文档空间生成;(4)反向神经网络模型构造;(5)测试邮件向量空间生成;(6)测试邮件的判断、过滤。从本发明实施例提供的以上技术方案可以看出,本发明实施例利用Markov链和N-gram分词法则对邮件样本进行分词,绕过了中文分词技术;增加了自定义特征项,与分 词生成的特征组合,使邮件特征描述更为完善;利用反向神经网络具有智能型和自学习性 的特点,能更有效地对邮件进行判断、过滤。


图1为本发明词语_文档空间生成示意图;图2为本发明自定义特征_文档空间生成示意图;图3为本发明反向神经网络过滤器训练测试流程图。
具体实施例方式为使本发明的目的、技术方案、及优点更加清楚明白,以下参照附图并举实施例, 对本发明进一步详细说明。如图1所示,本发明词语-文档空间生成示意图,它的具体流程包括步骤101、样本邮件N-Gram分词邮件内容分词分为中文邮件分词和英文邮件分词。在英文的行文中,词与词之间 以空格作为自然分界符,以标点符号作为语义分界符,所以英文分词的处理过程相对简单 对英文邮件正文去掉标点符号后直接从头开始扫描,两个空格之间认定为一个单词,一次 扫描到正文结尾便可以得到此封英文邮件的单词列表。相对于英文分词,中文分词则要困 难许多,因为中文中词与词之间没有明确的分界符。由于中文分词技术的不成熟,而且还需 要庞大的词典库的支持,为了绕过中文分词技术,本发明采用Markov链和N-Gram技术对邮 件取特征项,采用单个(Uni-gram)、两个(Bio-gram)、三个(Tri-gram)和四个(Quad-gram) 四种取词方法,实现邮件文本的切分,得到邮件样本词语列表。步骤102、词语-文档矩阵权重赋值将整个文本邮件样本集合看成一个矩阵,包含η个文档,用到了 m个词语,构造“词 语一文档矩阵” Wmxn = [Wij] = (doci; doc2, ... , docn) = (ti; t2, ... , tm),矩阵分为行和 列,文本邮件训练集合中的所有出现的词语对应文档邮件集中的每一份邮件对应doCj, 其中Wij表示词语i在文档j中出现的频数,有时Wij还加入了权重,这样就生成了词语一文 档矩阵。给每个项赋权重时,考虑文本中越重要的项权重越大,采用一种比较普遍的方法, 也就是用文本的统计信息(词频、词之间的同现频率等)来计算项的权重,TF-IDF函数计 算特征值的权重,其公式如=Wi(Cl) = tfi (d) · 土(^((1),其中4&((1) (Term Frequency)表示 项、在doc中的出现频率,idf (d) (Inverse Document Frequency)表示项、的逆向文档 频率,该函数有多种计算方法,目前常用的为Wi(d) = tfJcOXlogm/rii+O.Ol),这里,N为 训练文本的总数,Iii为训练文本集中出现t的文本数。根据香农信息学理论,如果项在所有 文本中出现的频率越高,那么它所包含的信息嫡就越少;如果项的出现较为集中,只在少量 文本中有较高的出现频率,那么它就会拥有较高的信息嫡。上述公式就是基于这个思想的 一种实现。步骤103、特征项选择考虑到偶尔出现的字或组合对分类没有很大帮助,而且N-Gram方法会造成巨大 的维数空间,随着特征项的数量增加,学习算法的复杂度会增加,学习的时间也会显著增加。在文本的过滤与分类中,还存在过拟合问题,即过多的特征项数量会对学习算法的能力 产生负面影响,降低学习算法的分类精确度。对此,可采用Zipf法则来提取特征项,降低向 量空间的维数。由作为词素形态的字计算N-Gram的发生频率,可以把适当的频率值取做门 限,而并不影响使用N-Gram方法统计分类文档。根据这种思路,把出现频次少于门限值的 单元的频次清除为0,根据观察,消除发生次数在3以内的字或组合可以有效的达到降维的 目的而并不影响分类质量,因此本方案给出的建议门限值为3,专利用户也可以根据实际测 试效果适当调整该参数。步骤104、词语-文档空间生成通过步骤103的特征选择,剔除了邮件训练样本中出现频率较低的词语,将剩下 的词语作为特征项,遍历邮件训练样本生成词语_文档向量空间。如图2所示,本发明自定义特征_文档空间生成示意图,它的具体流程包括步骤201、自定义词语特征生成上面分词生成的词语通过特征选择会剔除一部分出现频率较低、对表现文本性质 无用的词语,但是可能一些能很好的表现邮件的性质的词语因为仅在单封或几封邮件中出 现也被剔除了,为了避免这种情况的发生,本发明通过引入用户自定义特征来弥补自动分 词方法可能造成的信息损失,方法是根据用户经验的累积,定期更新系统关键字词汇表,将 自定义词语写成一个词语特征列表,利用自定义词语作为邮件的有效词语表来对邮件进行 特征匹配。步骤202、邮件预处理用上面的自定义词语特征对邮件进行预处理,依次读取存放在ham和spam文件夹 下的邮件样本,同时读取词语特征列表进行匹配,若邮件有击中某个词语特征,则将词语特 征名写入邮件日志文件中。日志文件参数如下第一个参数为邮件类别,spam文件夹下的 文件即标记为l,ham文件夹下的文件即标记为0 ;后面即为邮件击中的所有词语特征名,以 逗号间隔。步骤203、自定义邮件向量空间生成读取词语特征列表写入数组,对词语特征按词语特征名字母排序,生成新数组,同 时对词语特征和其所在位置生成一个一一对应的关系,即知道词语特征名可知其在数组中 的位置,给出数字即可知道该位置上是哪个词语特征。读入邮件原始信息,根据特征词汇表遍历每封邮件进行模式匹配,对每行的词语 特征同样按字母排序。对每行邮件样本列表,按行将邮件标记位写入邮件期望值向量,其标 记0和1分别表示正常邮件和垃圾邮件类别;同时对照上面生成的词语特征集数组,若邮件 有击中某个词语特征,则在其对应的数组位置写入1,其余位置写0,这样得到了自定义特 征-文档空间,行向量表示一封邮件,列向量表示自定义词语特征。如图3所示,本发明反 向神经网络过滤器训练测试流程图,它的具体流程包括步骤301、邮件训练样本向量空间生成读入邮件训练样本,如上面描述的分别得到词语_文档空间和自定义特征_文档 空间,这里不再阐述。将两种方法得到的特征组合作为邮件训练样本的全部特征生成一个 新的邮件向量空间。步骤302、神经元对应特征向量生成
邮件训练样本向量空间中,每一个关键词语与反向神经网络一个输入神经元关 联,每一个文档与一个输出神经元相关联,一个查询通过激活与期望的关键词对应的神经 元而进入该神经网络,而后神经网络计算输出信号,那些所激活的输出神经元就是与所期 望得到的文档相关联。因此,这里需要输出神经网络输入神经元对应特征向量,以便测试邮 件样本匹配生成向量空间。步骤303、反向神经网络模型构造BP (Back Propagation)网络模型即误差反向传播神经网络,是神经网络模型中使 用最广泛的一类。从结构上讲,BP网络是一种多层前向网络,分为输入层,隐层和输出层。 层与层之间采用全连接方式,同层节点之间没有任何耦合。对于输入信息,要先前向传播到隐含层的节点上,经过各单元的激活函数(又称 作用函数、转换函数或映射函数等)运算后,把隐含节点的输出信息传播到输出接点,给出 网络输出结果。网络的学习过程由信号的正向传播和误差的反向传播两个过程组成。在正 向传播时,输入样本从输入层传入,经各隐层逐层处理后,传向输出层,每层的神经元的状 态只影响到下一层神经网络,如果输出层的实际输出与期望的输出不符,则转入误差的反 向传播阶段;将输出误差沿原来的连接通路逐层反传,将误差分摊给各层的所有神经元,获 得各层单元的误差信号,此误差信号即作为修正各单元权值的依据,通过修改各层神经元 的权值,逐次地向输入层传播去进行计算,再经过正向传播过程,这两个过程反复运用,一 直进行到网络输出的误差减少到用户可接受的程度,或进行到预先设定的学习次数为止, 网络的学习训练过程就结束。此时经过训练的神经网络即能对类似样本的输入信息,自行 处理输出误差最小的经过非线形转换的信息。BP神经网络包括节点输出、作用函数、误差计算和自学习四种模型,输入向量为X =(X1, X2,..., Xi,..., χη)τ,分析各层信号之间的数学关系。(1)对于节点输出有隐节点输出()」.=f(Σ WijXXi- θ j)(1)输出节点输出Yk= f( Σ VjkXOj- θ k)(2)其中f为非线形作用函数;θ为神经单元阈值;W为输入层到隐层之间的权值矩 阵,V为隐层到输出层之间的权值矩阵。(2)对于作用函数有作用函数是反映下层输入对上层节点刺激脉冲强度的函数又称变换函数,一般取 为(0,1)内连续取值单极性Sigmoid函数f(x) = l/(l+e-x)(3)(3)对于误差计算函数有当神经网络期望输出与计算输出不等时,存在输出误差函数E :E = 1/2 X Σ Ui-Oi)2(4)其中,ti表示节点i的期望输出值灿表示节点i的计算输出值。网络误差展开 至隐层和输入层时是各层权值W、T的函数,因此调整权值可改变误差E。调整权值的原则 是使误差不断地减小,因此应使权值的调整量与误差的梯度下降成正比,BP算法又被称为 误差的梯度下降算法。(4)对于自学习过程有
7
神经网络的学习过程,即连接下层节点和上层节点之间的权重矩阵W的设定和误 差修正过程。三层前馈网的BP学习算法各层权值调整公式如下对于输出层,Y本层输入信号,δ °为输出层误差信号,η为学习率,则AV= n δ 0Y (5)对于隐层,X为本层输入信号,δ y为隐层输出的误差信号,η为学习率,则Aff= n δ yX (6)其中输入层误差信号与网络的期望输出与实际输出之差有关,直接反映了输出误 差,而隐层的误差信号是从输入层反传过来的。通过步骤301的邮件处理,我们得到邮件训练样本向量空间,列向量为对应文档, 行向量为文档的特征项。BP网络的输入节点对应邮件训练样本的特征项,对每一封邮件 训练样本我们都有期望输出,0为正常邮件,1为垃圾邮件。创建一个三层BP神经网络,分 别为输入层、一个隐含层、输出层。输入层节点个数与数据处理得到的矩阵行向量个数相 同,输出节点个数为1个。BP神经网络隐含层神经元的数目对网络性能有很大影响,需要 不断调试才能确定,根据Kolmogorov’ s原理,隐含层节点初始数目可以在8到20之间选 取,最佳数目需要通过实验的误差比较来确定。因网络输出函数要求要在W,l]之间,选 StansigO和IogsigO分别为隐含层和输出层神经元传递函数,设定期望误差最小值为 0. 001,网路在训练过程中只要误差小于这个值就认为网络训练已经达到要求,设定最大循 环次数为1000,以防网络训练的误差值在很久一段时间内不能小于预先设定的误差值而 造成训练时间过久或不收敛,在训练过程中会根据网络收敛情况对这些训练参数做适当调 整,以满足网络拟合要求。步骤304、训练好的神经网络将邮件样本数据,即包含期望输出结果的输入数据输入到网络中,计算相应的输 出,然后根据期望的输出来进行网络中权值、阈值的修正,直到输出与期望输出的误差达到 我们的要求为止,这时我们得到构造好的邮件过滤器,并将训练好的权值等参数储存到文 件中。步骤305、邮件测试样本向量空间生成根据步骤302生成的特征向量,读取邮件测试样本对特征向量进行匹配,若测试 邮件有击中某个特征向量,则在特征向量相应位置写1,否则写0,这样生成了邮件测试样 本向量空间,其行向量为文档特征项,列向量为对应文档,且特征项与神经网络输入节点
--对应。步骤306、测试邮件判断、过滤神经网络的运行方法分为训练和测试。网络的训练是网络的学习过程,运行是给 训练好的网络输入数据,得到输出结果,用于评价已经训练好的网络的性能。同样对每一封 测试邮件我们都有期望输出,0为感兴趣的邮件;1为垃圾邮件。读取测试邮件向量空间矩 阵输入神经网络模型,运算输出结果,规定输出小于0. 5分类为0,即正常邮件,大于0. 5分 类为1,即垃圾邮件,将计算输出结果与期望输出比较,一致则表示邮件判断正确,否则即为 判断错误,由此可知网络对邮件的判断性能。以上对本发明实施例一种基于N-Gram分词模型的反向神经网络垃圾邮件过滤装 置进行了详细介绍,以上实施例的说明只是用于帮助理解本发明的方法及其思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变 之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
一种基于N Gram分词模型的反向神经网络垃圾邮件过滤装置,其特征在于,包括步骤邮件分词;词语 文档空间生成;自定义特征 文档空间生成;反向神经网络模型构造;测试邮件向量空间生成;测试邮件的判断、过滤。
2.如权利要求1所述的一种基于N-Gram分词模型的反向神经网络垃圾邮件过滤装置, 其特征在于,所述邮件分词包括邮件内容分词分为中文邮件分词和英文邮件分词,在英文的行文中,词与词之间以空 格作为自然分界符,以标点符号作为语义分界符,对英文邮件正文去标点符号后直接从头 开始扫描,两个空格之间认定为一个单词,一次扫描到正文结尾便可以得到此封邮件的单 词列表;而中文中词与词之间没有明确的分界符,且中文分词技术不成熟,需要庞大的词库 支持,为了绕过中文分词技术,本发明采用Markov链和N-Gram技术提取词语特征,得到邮 件词语列表。
3.如权利要求1所述的一种基于N-Gram分词模型的反向神经网络垃圾邮件过滤装置, 其特征在于,所述词语_文档空间生成包括将整个文本邮件样本集合看成一个矩阵,所使用的文本邮件样本集合中的所有出现的 词语对应ti;文档邮件集中的每一份邮件对应Ckx^这样就生成了词语-文档矩阵Wmxn = [Wij] = (ClOC1,doc2,· · ·,docn) = (t1; t2,· ·,tm),其中 Wij 表示词语 i 在文档 j 中出现的 频数,有时Wu还加入了权重;给每个项赋权重时,考虑文本中越重要的项权重越大,采用 TF-IDF函数计算特征值的权值,考虑到N-Gram方法会造成巨大的维数空间,影响学习算法 的分类精确度,采用zipf法则来提取特征项,降低向量空间的维数。
4.如权利要求1所述的一种基于N-Gram分词模型的反向神经网络垃圾邮件过滤装置, 其特征在于,所述自定义特征-文档空间生成包括用上面的方法提取的文本特征,可能在特征选择时某些能很好的表现邮件性质的词语 被剔除了,无法完全表现文档的特性,因此本发明增加了自定义词语特征项,作为邮件的有 效词语表来对邮件样本集合进行匹配,将邮件按照特征词表,转换为对应的特征向量,即用 1和O分别表示某个特征词在邮件中出现和没有出现,得到的自定义特征向量,作为附加邮 件特征,和权力要求3所述的词语-文档矩阵进行特征组合生成新的邮件向量空间。
5.如权利要求1所述的一种基于N-Gram分词模型的反向神经网络垃圾邮件过滤装置, 其特征在于,所述神经网络模型构造包括创建一个三层BP神经网络,分别为输入层、一个隐含层、输出层,输入层节点个数与数 据处理得到的邮件样本特征数个数相同,输出节点个数为1个,隐含层节点数目对网络性 能有很大影响,最佳数目需要通过实验比较不断调试来确定;生成和网络神经元对应的邮 件特征向量;设置网络模型初始学习函数、训练函数和训练参数等;将邮件样本数据,即包 含期望输出结果的输入数据(垃圾邮件期望值为1,正常邮件期望值为0)输入到网络中,计 算相应的输出,然后根据期望的输出来进行网络中权值、阈值的修正,直到输出与期望输出的误差达到我们的要求为止,这时我们得到构造好的神经网络邮件过滤器,并将训练好的 权值储存到文件中。
6.如权利要求1所述的一种基于N-Gram分词模型的反向神经网络垃圾邮件过滤装置, 其特征在于,所述测试邮件向量空间生成包括邮件测试样本根据权利要求5中生成的网络神经元对应特征向量进行匹配,将邮件按 照特征词表,转换为对应的特征向量,即用1和0分别表示某个特征词在邮件中出现和没有 出现,生成测试邮件向量空间。
7.如权利要求1所述的一种基于N-Gram分词模型的反向神经网络垃圾邮件过滤装置, 其特征在于,所述对测试邮件进行判断、过滤包括读取测试邮件向量矩阵输入神经网络模型,运算输出结果,规定输出小于0.5分类为 0,即正常邮件,大于0. 5分类为1,即垃圾邮件,将计算输出结果与期望输出比较,一致则表 示邮件判断正确,否则即为判断错误。
全文摘要
本发明涉及文本处理技术领域,是一种基于N-Gram分词模型的反向神经网络垃圾邮件过滤装置。利用N-Gram技术对邮件分词加上自定义词语特征项并结合反向神经网络实现对垃圾邮件的判断和过滤。所述装置包括首先,利用Markov链和N-Gram技术处理邮件,提取出邮件样本特征,经过权重计算和特征选择得到样本邮件词语-文档空间;其次,用自定义的词语特征项匹配邮件样本,生成自定义特征-文档空间,将两种方法生成的文档特征合并生成新的邮件向量空间;再次,构造反向神经网络模型,根据邮件训练样本空间的特征项生成与网络神经元对应的特征向量,并用邮件训练样本向量空间训练网络模型,得到训练好的邮件分类器;最后,邮件测试样本根据上面生成的神经元对应特征向量生成测试样本向量空间,并测试训练好的邮件分类器对邮件类别判断的准确率。使用本发明提供的实施例可以对垃圾邮件进行判断,从而过滤垃圾邮件。
文档编号G06N3/02GK101930561SQ20101017999
公开日2010年12月29日 申请日期2010年5月21日 优先权日2010年5月21日
发明者张凤荔, 王娟, 程红蓉, 马秋明 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1