电子信息比较系统和方法以及反垃圾邮件系统的制作方法

文档序号:7956853阅读:193来源:国知局
专利名称:电子信息比较系统和方法以及反垃圾邮件系统的制作方法
技术领域
本发明涉及计算机技术领域,更具体地说,涉及一种电子信息比较系统和方法以及反垃圾邮件系统。
背景技术
随着互联网的发展,越来越多的人开始使用电子邮件进行相互通信。随之而来也出现了大量的垃圾邮件(例如恶意骚扰邮件和广告邮件等)充斥使用者的电子邮箱,造成了使用者使用的不便。
垃圾邮件的一个重要特征就是发送大量的雷同邮件。虽然垃圾邮件发送者正逐步改变发送的策略,并改变发送邮件的内容格式等细节,但大量而且雷同的特征仍然无法改变。这样垃圾邮件识别已经越来越依赖于对大量具有相似内容邮件的快速识别。同时在识别相似内容邮件时,效率是该类技术的一个重要考虑点,尤其是应用在大型邮件服务器上的反垃圾邮件系统。
基于MD5校验的邮件比较技术是目前使用较多的反垃圾邮件方案。该方案通过将任意长度的数据字符串执行散列运算,转化成短的固定长度的值。由于任意两个不同字符串的MD5值不相同,因此可通过比较两个字符串的MD5值来判断两个字符串是相同。
然而目前的基于MD5校验方法虽然快速,但其还具有致命的缺点如果邮件内容非严格相同,出现任何变化时都会导致MD5值的不同,从而影响判断结果。因为MD5值相同是识别相同内容邮件的前提,只要垃圾邮件发送者稍微改变邮件内容,就可避开MD5校验。而绕过MD5校验已经是垃圾邮件发送者可轻易解决的问题。
此外还有采用一般的字符串/文本相似性方法来判断邮件相似性。这类方法往往使用编辑距离,即计算从原串(s)转换到目标串(t)所需要的最少的插入、删除和替换的数目来判断相似性,其在NLP(自然语言处理)中应用比较广泛,同时也常用来计算对原文本所作的改动数。然而这种方法往往需要递归实现,虽然对于短字符串快速而有效,但对于大量的邮件正文来说,运算代价过高。
此外,随着电子信息的增加,越来越多的地方需要对两段电子信息进行比较,从而判断两段电子信息的相似性。例如搜索引擎中需将相似内容的网页合并以减少搜索结果,即时通信工具或聊天室为防止刷屏而屏蔽相同内容等。在这些应用中现有的比较方法普遍存在判断准确性不高或判断效率较低的问题。

发明内容
本发明要解决的技术问题在于,针对的上述现有电子信息比较技术中效率较低或准确性不高的缺陷,提供一种电子文本比较方法和系统。
本发明还针对现有反垃圾邮件系统执行效率较低和准确率不高的问题,提供一种新的反垃圾邮件系统。
本发明解决其技术问题所采用的技术方案是构造一种电子文本比较方法,包括以下步骤(a)将第一电子文本段和第二电子文本段分别按照相同的转换规则转换为第一矩阵和第二矩阵,所述第一矩阵和第二矩阵具有相同的尺寸;(b)依次比较所述第一矩阵和第二矩阵的相同位置的元素并根据比较结果使用指定比较函数计算相似系数;(c)根据所述相似系数判断所述第一电子文本和第二电子文本是否相似,若所述相似系数大于指定阈值则表示第一电子数据段与第二电子数据段相似。
在本发明所述的电子文本比较方法中,所述步骤(a)中将电子文本段转换为矩阵包括以下步骤(a1)将所述电子文本段解码为字串,所述字串根据原电子文本的结构划分为一个或多个段;(a2)将所述各段字串转化为整数值序列,所述整数的数值范围为0-256;(a3)将整数值后指定窗口范围内各个整数值出现的次数依次作为矩阵的元素,并依次对所述整数值序列中的每一整数值进行操作组成矩阵。
在本发明所述的电子文本比较方法中,所述步骤(a3)中的指定窗口大小为10-20。
在本发明所述的电子文本比较方法中,所述步骤(b)包括以下步骤(b1)顺序遍历所述第一矩阵和第二矩阵并比较矩阵中处于相同位置的元素,并将相同位置元素值匹配的总数量记为M、将相同位置元素值不匹配的总数量记录为D;(b2)计算相似系数S=M/(D+M)S1/S2;]]>其中S1和S2分别为第一矩阵和第二矩阵的正文长度或者为第一矩阵和第二矩阵中大于零的元素的个数,且S1>S2。
在本发明所述的电子文本比较方法中,在所述步骤(b1)中进行匹配统计时,将所述第一矩阵和第二矩阵对应位置第一和第二元素的值都不为零且第一元素和第二元素的比值介于统计值和统计值的倒数之间时将该位置统计为匹配;否则统计为不匹配。
本发明还提供一种电子文本比较系统,至少包括矩阵转换模块和矩阵比较模块,所述矩阵转换模块用于按照转换规则将电子文本段转换为矩阵,所述矩阵比较模块用于比较两个矩阵的相同位置的元素并根据比较结果使用指定比较函数计算相似系数。
在本发明所述的电子文本比较系统中,所述矩阵转换模块包括有根据电子文本的结构将所述电子文本段解码为一个或多个字串段的解码子模块、将所述各段字串转化为整数值序列的取整子模块以及将所述整数值后指定窗口范围内各个整数值出现的次数依次作为矩阵的元素并依次对所述整数值序列中的每一整数值进行操作组成矩阵的组阵子模块。
在本发明所述的电子文本比较系统中,所述矩阵比较模块包括有顺序遍历两个待比较矩阵并比较矩阵中处于相同位置的元素并将相同位置元素值匹配的总数量记为M、将相同位置元素值不匹配的总数量记录为D的统计子模块和计算相似系数S的计算子模块,S=M/(D+M)S1/S2;]]>其中S1和S2分别为所述待比较矩阵的正文长度或者为所述待比较矩阵中大于零的元素的个数,且S1>S2。
本发明还提供一种反垃圾邮件系统,包括有依次连接的矩阵转换控制中心、并行处理单元、矩阵比较控制中心、垃圾邮件判定中心,所述矩阵转换控制中心将大批量电子邮件并行转移为多个转移矩阵后,由所述并行处理单元进行转移矩阵的比较,并由所述矩阵比较控制中心统计整理出最终比较结论,所述垃圾邮件判定中心根据矩阵比较控制中心的最终比较结论判断输入矩阵对应的电子邮件是否为垃圾邮件。
在本发明所述的反垃圾邮件系统中,所述并行处理单元包含多个服务器单元,每个服务器单元包含转移矩阵数据模块和比较模块,其中所述转移矩阵数据模块用于实现基本的数据管理并存储有一个或多个转移矩阵,所述比较模块用于实现对一个输入的转移矩阵和转移矩阵数据模块内的所有矩阵的比较。
本发明的电子文本比较方法及系统,通过比较电子文本的转移矩阵来计算电子文本的相似性,不但能够识别出内容完全一致的电子文本,还能够识别出插入了一定随机字符的电子文本。本发明的反垃圾邮件系统,通过识别电子邮件的相似性来识别垃圾邮件,识别的准确率较高。


下面将结合附图及实施例对本发明作进一步说明,附图中图1是本发明电子文本比较系统的结构示意图;图2是图1中矩阵转换模块和矩阵比较模块的结构示意图;图3是本发明电子文本比较方法的流程图;图4是本发明反垃圾邮件系统的结构示意图。
具体实施例方式
如图1所示,在本发明的电子文本比较系统中,包括有矩阵转换模块11和矩阵比较模块12。其中矩阵转换模块11可以读入电子文本段,在本实施例中,电子文本段可以是各种格式的文本数据以及数字数据等。
矩阵转换模块11用于读入电子文本,并将电子文本转换为转移矩阵。在本实施例中,矩阵转换模块11生成的转移矩阵是一个最大尺寸为256x256的矩阵,而且这个矩阵为稀疏矩阵。矩阵转换模块11在进行转换时,不考虑电子文本的编码格式和宽字符属性,将每个字母均按照8比特(bit)对待,这样电子文本的每个字符的整数取值范围就是0-256,而后统计每一个字符和周围其他字符同时出现的频率(可以看作一个字母转移到另一个字母的频率,也就是转移),这样就得到一个最大256×256的转移矩阵。在实际应用中,无论多长的电子文本都可以转化为这样的转移矩阵,这种规则的结构特征也同时带来了存储/计算等方面的便利。
矩阵比较模块12用于对任意两个经由矩阵转换模块11生成的转移矩阵进行比较,从而比较两段对应的电子文本的相似性。
如图2所示,矩阵转换模块11包括有依次连接的解码子模块111、取整子模块112以及组阵子模块113。
解码子模块111根据读入电子文本的结构将电子文本段解码为一个或多个字串段。其中电子文本中的二进制部分根据需要做取舍,如图像等文件仅保留文件名、WORD文件考虑转换格式、HTML格式的去掉标识(TAG)信息等,同时按照电子文本正文组织结构划分段块,保留回车换行等信息。在实际应用中,可根据具体的目标决定是否保留二进制部分作比较。
取整子模块11用于将解码子模块111解码所得的各段字串转化为整数值序列,在转化时不考虑编码格式和宽字符属性,均按照8比特(bit)对待,这样转化为整数值序列,数值范围也就是0-256。例如“ABCDEFGB”被转换为“65 66 67 68 69 70 71 66”。
组阵子模块113将上述取整子模块11获得的整数值从作到右依次扫描,统计每一个整数值与其他字符在其后某窗口范围(window)内出现的次数,作为转移矩阵的元素。例如当窗口为3的时候,表示只统计A(65)和其后紧随的三个字符B(66)C(67)D(68)的出现次数,一般采用A(65)=>B(66)C(67)D(68)表示。在本实施例中,窗口大小一般取10-20。当窗口为10的时候依次统计可以得到类似下面的矩阵

这样,用整数值作为转移矩阵的X/Y轴,依次扫描所有字串,每个电子文本都可以获得一个256×256的转移矩阵。需要注意这个转移矩阵大部分值为零(为稀疏矩阵)。可用matrix[x][y]=v表示上述矩阵的任意一个元素,则A其后出现2次B的情况就可以表示为x=65,y=66,matrix[65][66]=2。
矩阵比较模块12包括有统计子模块121和计算子模块122。统计子模块121顺序遍历两个待比较矩阵并比较矩阵中处于相同位置的元素并将相同位置元素值匹配的总数量记为M、将相同位置元素值不匹配的总数量记录为D。计算子模块122用于根据统计子模块121的统计结果,计算相似系数SS=M/(D+M)S1/S2;]]>其中S1和S2分别为所述待比较矩阵的正文长度或者为所述待比较矩阵中大于零的元素的个数,且S1>S2。
如图3所示,是本发明电子文本比较方法的流程图。其包括以下步骤步骤S31首先将需要比较的第一电子文本段和第二电子文本段分别按照相同的转换规则转换为第一矩阵和第二矩阵,所述第一矩阵和第二矩阵具有相同的尺寸。在该步骤中进行矩阵转换时,首先根据需要将电子文本段各部分按照结构解码为一个或多个字串段,其中二进制内容根据需要做取舍,如图像等文件仅保留文件名,WORD文件考虑转换格式,HTML格式的去掉TAG信息;然后对解码后的各段字串,不考虑编码格式和宽字符属性,均按照8bit对待,转化为整数值序列,数值范围也就是0-256;然后从作到右,对上述整数值序列依次扫描,统计每一个整数值与其他字符在其后某窗口范围内出现的次数,并组合成转移矩阵,在本实施例中窗口大小为10-20。
步骤S32依次比较所述第一矩阵和第二矩阵的相同位置的元素并根据比较结果使用指定比较函数计算相似系数。
在该步骤中,首先顺序遍历第一矩阵和第二矩阵并比较矩阵中处于相同位置的元素,并将相同位置元素值匹配的总数量记为M、将相同位置元素值不匹配的总数量记录为D,而元素匹配率则为M/(D+M)。在上述统计中,将两矩阵对应位置元素的值都不为零且两元素的比值介于统计值和统计值的倒数之间时将该位置统计为匹配;否则统计为不匹配。假设第一、第二矩阵分别为matrix1,matrix2,matrix[x][y]表示矩阵中x行y列的元素,则上述统计可表示为if(matrix1[x][y]>0&&matrix2[x][y]>0){R=matrix1[x][y]/matrix2[x][y];if(1/b<R<b)//b根据实际情况作调整,缺省为5M++;elseD++;}else{D++;}上述b的取值表示比较的严格程度,如果b接近1则表明邮件相似的比较较为严格,比较结果趋向于原始内容完全一致的情况,相反则放松。然后计算相似系数S=M/(D+M)S1/S2,]]>其中S1和S2分别为第一矩阵和第二矩阵的正文长度或者为第一矩阵和第二矩阵中大于零的元素的个数,且S1>S2。
步骤S33根据相似系数S的值判断第一电子文本和电子文本是否相似,若相似系数S大于指定阈值则表示第一电子数据段与第二电子数据段相似;否则不相似。在实际应用中,当S>0.8的时候,比较结果的准确率相对较高。当然,在具体应用中,可以适当放松S的阈值。这里的计算公式可以采用多种变形,但主要元素均为步骤S32中统计出的M和D值。
上述的电子文本比较系统及方法,可具体应用于电子邮件服务器中相似电子邮件的比较、搜索引擎中相似网页的比较、即时通信工具中的相似消息的比较或者聊天室中的相似消息的比较等。
上述系统和方法可应用到邮件系统中进行垃圾邮件的识别(根据邮件相似性识别),即通过将一定时间内(如72小时)收到的邮件的转移矩阵保存下来作为数据库,设定一个相似邮件的阈值(如0.75),假设新收到的邮件为M,统计该邮件M在数据库内找到的相似邮件个数,如果大于阈值(如50封),则将此邮件判定为垃圾邮件,除非证明M为非垃圾邮件(如M出现在了白名单内)。
如图4所示,为根据上述系统和方法实现的反垃圾邮件系统的实施例。在本实施例中,反垃圾邮件系统包括有矩阵转换控制中心43、并行处理单元44、矩阵比较控制中心45、垃圾邮件判定中心46等。
矩阵转换控制中心43用于将大批量电子邮件并行转移为多个转移矩阵。对于邮件头的处理分两种情况。在本实施例中,矩阵转换控制中心43仅将电子邮件正文转换为转移矩阵。虽然电子邮件头(即标题)可以被统计进入矩阵,但考虑到邮件头结构化信息比较明显,因此可对邮件头分开处理,不做转换而直接比较。对于正文内容较少的邮件,该方法可以显著降低邮件头信息的干扰,从而避免将某些因为正文文字少的邮件判断为相似邮件。对于转移矩阵的记录也存在两种方式如果采用纯文本记录完整的信息,每封邮件都需要65535字节;此外也可仅记录矩阵中值大于0的元素,因为矩阵中大部分值为0(稀疏矩阵),这样可节约存储空间。
并行处理单元44包含多个服务器单元,每个服务器单元包含一个转移矩阵数据模块和一个比较模块。其中转移矩阵数据模块用于实现基本的数据管理,其存储有一个或多个转移矩阵,而比较模块用于实现对一个输入的转移矩阵和转移矩阵数据模块内的所有矩阵的比较。
矩阵比较控制中心45用于收集比较结果并整理出最终比较结论,即获得元素匹配率M/(M+D)。垃圾邮件判定中心46用于根据矩阵比较控制中心45给出的结论,综合判断输入矩阵对应的电子邮件是否为垃圾邮件。在该垃圾邮件判定中心46中,可以结合外部信息,如黑/白名单等标准技术实现。例如若邮件头没有被统计进转移矩阵,则可对两个待比较邮件逐条对邮件头进行比较,获得邮件头的相似参考值,然后与正文比较的结果按照某种公式综合后作为相似参考值。同样,也可以将附件比较单独实现,如下面两个常用公式Sall=k1*SH+k2*S+k3*SA;
Sall=k*SH*S*SA;其中的k1、k2、k3、k均为系数,可根据不同应用灵活设置,而SH、S和SA分别为邮件头相似系数、邮件正文相似系数和邮件附件相似系数。
上述的反垃圾邮件系统不但能够识别出内容完全一致的垃圾邮件,还能够识别出插入了一定随机字符的垃圾邮件,此外还可识别出具有合法帐号(垃圾邮件发送者通过病毒、木马控制僵尸电脑发送)垃圾邮件。
为满足邮件系统的实时性要求,还可以通过分布式结构来加速垃圾邮件的识别。例如假设有m+1台服务器可供使用(每台服务器处理性能相同),则将所有转移矩阵按照服务器数量平均存储到m台服务器上,每个转移矩阵唯一存储在一台服务器上,剩下的一台为总控服务器,对于一个输入的未知邮件X,获得他的转移矩阵,同时送交给m台服务器并收集比较结果的数目,总控服务器将m台的结果相加就是最终的相似邮件数量。垃圾邮件判定中心46根据这个数量决定此邮件是否为垃圾邮件。可见,上述方案的性能随服务器数量的增加而增加。如果考虑冗余存储、灾难恢复等情况,对上面方案稍加修改即可。同样道理,邮件到转移矩阵的转换过程也可以做成分布式的结构。
此外在反垃圾邮件系统中还可包括用于实现收发邮件等常规功能的标准邮件系统41、实现对邮件服务系统41内的邮件的内部访问控制等的邮件存储、访问控制中心42以及实现对垃圾邮件的所有处理如转发、丢弃、返回给发件人、打上垃圾标记等的垃圾邮件后续处理系统47等。
本发明的系统及方法还可应用于搜索引擎中以识别相同内容网页,只显示具有相同内容网页中的一个,从而减少了重复的搜索结果。本发明还可应用于在搜索引擎中寻找相似网页,例如搜索引擎google中的“类似网页”。此外,本发明还可应用于即时通信工具及聊天室中,防止用户恶意刷屏等。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
权利要求
1.一种电子文本比较方法,其特征在于,包括以下步骤(a)将第一电子文本段和第二电子文本段分别按照相同的转换规则转换为第一矩阵和第二矩阵,所述第一矩阵和第二矩阵具有相同的尺寸;(b)依次比较所述第一矩阵和第二矩阵的相同位置的元素并根据比较结果使用指定比较函数计算相似系数;(c)根据所述相似系数判断所述第一电子文本和第二电子文本是否相似,若所述相似系数大于指定阈值则表示第一电子数据段与第二电子数据段相似。
2.根据权利要求1所述的电子文本比较方法,其特征在于,所述步骤(a)中将电子文本段转换为矩阵包括以下步骤(a1)将所述电子文本段解码为字串,所述字串根据原电子文本的结构划分为一个或多个段;(a2)将所述各段字串转化为整数值序列,所述整数的数值范围为0-256;(a3)将整数值后指定窗口范围内各个整数值出现的次数依次作为矩阵的元素,并依次对所述整数值序列中的每一整数值进行操作组成矩阵。
3.根据权利要求2所述的电子文本比较方法,其特征在于,所述步骤(a3)中的指定窗口大小为10-20。
4.根据权利要求1所述的电子文本比较方法,其特征在于,所述步骤(b)包括以下步骤(b1)顺序遍历所述第一矩阵和第二矩阵并比较矩阵中处于相同位置的元素,并将相同位置元素值匹配的总数量记为M、将相同位置元素值不匹配的总数量记录为D;(b2)计算相似系数S=M/(D+M)S1+S2;]]>其中S1和S2分别为第一矩阵和第二矩阵的正文长度或者为第一矩阵和第二矩阵中大于零的元素的个数,且S1>S2。
5.根据权利要求4所述的电子文本比较方法,其特征在于,在所述步骤(b1)中进行匹配统计时,将所述第一矩阵和第二矩阵对应位置第一和第二元素的值都不为零且第一元素和第二元素的比值介于统计值和统计值的倒数之间时将该位置统计为匹配;否则统计为不匹配。
6.一种电子文本比较系统,其特征在于,至少包括矩阵转换模块和矩阵比较模块,所述矩阵转换模块用于按照转换规则将电子文本段转换为矩阵,所述矩阵比较模块用于比较两个矩阵的相同位置的元素并根据比较结果使用指定比较函数计算相似系数。
7.根据权利要求6所述的电子文本比较系统,其特征在于,所述矩阵转换模块包括有根据电子文本的结构将所述电子文本段解码为一个或多个字串段的解码子模块、将所述各段字串转化为整数值序列的取整子模块以及将所述整数值后指定窗口范围内各个整数值出现的次数依次作为矩阵的元素并依次对所述整数值序列中的每一整数值进行操作组成矩阵的组阵子模块。
8.根据权利要求6所述的电子文本比较系统,其特征在于,所述矩阵比较模块包括有顺序遍历两个待比较矩阵并比较矩阵中处于相同位置的元素并将相同位置元素值匹配的总数量记为M、将相同位置元素值不匹配的总数量记录为D的统计子模块和计算相似系数S的计算子模块,S=M/(D+M)S1+S2;]]>其中S1和S2分别为所述待比较矩阵的正文长度或者为所述待比较矩阵中大于零的元素的个数,且S1>S2。
9.一种反垃圾邮件系统,其特征在于,包括有依次连接的矩阵转换控制中心、并行处理单元、矩阵比较控制中心、垃圾邮件判定中心,所述矩阵转换控制中心将大批量电子邮件并行转移为多个转移矩阵后,由所述并行处理单元进行转移矩阵的比较,并由所述矩阵比较控制中心统计整理出最终比较结论,所述垃圾邮件判定中心根据矩阵比较控制中心的最终比较结论判断输入矩阵对应的电子邮件是否为垃圾邮件。
10.根据权利要求9所述的反垃圾邮件系统,其特征在于,所述并行处理单元包含多个服务器单元,每个服务器单元包含转移矩阵数据模块和比较模块,其中所述转移矩阵数据模块用于实现基本的数据管理并存储有一个或多个转移矩阵,所述比较模块用于实现对一个输入的转移矩阵和转移矩阵数据模块内的所有矩阵的比较。
全文摘要
本发明公开了一种电子文本比较方法,包括以下步骤(a)将第一电子文本段和第二电子文本段分别按照相同的转换规则转换为第一矩阵和第二矩阵,所述第一矩阵和第二矩阵具有相同的尺寸;(b)依次比较第一矩阵和第二矩阵的相同位置的元素并根据比较结果使用指定比较函数计算相似系数;(c)根据相似系数判断所述第一电子文本和第二电子文本是否相似,若所述相似系数大于指定阈值则表示第一电子数据段与第二电子数据段相似。本发明还公开了一种对应的电子文本比较系统及反垃圾邮件系统。本发明通过比较电子文本的转移矩阵来计算电子文本的相似性,不但能够识别出内容完全一致的电子文本,还能够判断插入了一定随机字符的电子文本的相似性。
文档编号H04L12/58GK101046858SQ20061006009
公开日2007年10月3日 申请日期2006年3月29日 优先权日2006年3月29日
发明者王晖 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1