CN101853260B - 检测电子邮件内容包含的系统和方法 - Google Patents
检测电子邮件内容包含的系统和方法 Download PDFInfo
- Publication number
- CN101853260B CN101853260B CN200910138757.6A CN200910138757A CN101853260B CN 101853260 B CN101853260 B CN 101853260B CN 200910138757 A CN200910138757 A CN 200910138757A CN 101853260 B CN101853260 B CN 101853260B
- Authority
- CN
- China
- Prior art keywords
- group
- hashed value
- email documents
- bloom filter
- 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
技术领域
本发明涉及电子邮件系统,并且更具体地涉及电子邮件文档中的内容包含的检测。
背景技术
通常,期望高效地查找位于一个数据库中的相似电子邮件。例如,在诉讼的电子证据发现情形中,必须检索广泛的电子邮件数据库以决定电子邮件对于案件是否重要。在一个易于扩展的数据库中进行检索并且比较电子邮件以确定可能相似的电子邮件是一个存在问题的并且繁琐的过程。一种比较电子邮件相似性的方法是计算不同电子邮件内容的散列值并且接着比较散列值是否相等。不幸地,这些方法通常只能识别那些精确复制的电子邮件,因为电子邮件的任何不同通常会导致不同散列值的产生。另一种可能的方法是比较一个电子邮件中的每个词与另一个电子邮件中的每个词以确定相似性。然而,这种方法通常是计算量非常大的。
因为电子邮件在被转发或答复时没有很多的新增文本,电子邮件可能经常被近似地复制。当原始电子邮件被重复地答复和/或转发时,其可能期望仅仅查找一系列电子邮件中的最后一封,因为最后的电子邮件常常包含了在前电子邮件的所有内容。因此,在电子证据发现情形中,其可能更期望查找一系列答复电子邮件中的最后一封电子邮件,从而能够重新阅读最小数量的电子邮件而不漏掉任何信息。
发明内容
公开了一种检测电子邮件内容包含的系统及方法。在一个实施例中,方法包含生成对应于第一电子邮件文档的第一组散列值,其中第一组包括对应于第一电子邮件文档的多个字符序列中的每一个的相应散列值。此方法进一步包括生成对应于第二电子邮件文档的第二组散列值,其中第二组包括对应于第二电子邮件文档的多个字符序列中的每一个的相应散列值。此方法最后包括确定第一组散列值是否是第二组散列值的子集。
在一些实施例中,该方法可以进一步包括生成代表对应于第一电子邮件文档的第一组散列值的第一布隆过滤器(bloom filter),生成代表对应于第二电子邮件文档的第二组散列值的第二布隆过滤器,以及比较第一布隆过滤器和第二布隆过滤器。第一和第二布隆过滤器可以通过执行按位的“或”操作来被比较。在各种实施例中,该方法进一步包括基于决定的结果提供第一电子邮件文档的内容是否包含于第二电子邮件文档中的指示。
附图说明
图1是包括电子邮件数据库和内容包含检测代码的计算机系统的方框图。
图2是检测电子邮件文档中的内容包含的方法的一个实施例的流程图。
图3描述了两个示例性电子邮件的内容。
图4描述了无关内容被移除的两个示例性电子邮件。
图5描述了示例性散列值。
图6是使用布隆过滤技术比较散列值的方法的一个实施例的流程图。
图7描述了示例性布隆过滤器。
图8描述了布隆过滤器的示例性按位“或”比较。
尽管本发明允许各种修改以及替换形式,但其具体实施例在附图中以示例的方式被显示并且将会在本申请中被详细描述。然而,应当理解附图及其详细描述并不旨在限制本发明为所公开的特定形式,相反,旨在覆盖落入在所附权利要求所限定的本发明的精神和范围内的所有修改、等同和替换。请注意,在本申请中“可能”一词是以许可性的含义(即,具有可能,能够),而非强制性的含义(即,必须)来使用。
具体实施方式
现在转向图1,显示了计算机系统100的一个实施例的方框图。计算机系统100包括耦接到处理器子系统150的存储子系统110。所示的存储子系统110存储电子邮件数据库120和内容包含检测代码130。计算机系统100可以是各种类型的设备中的任何一个,包括但不限于,个人计算机系统、台式计算机、膝上型电脑或者笔记型电脑、大型计算机系统、手持电脑、工作站、网络计算机,诸如移动电话、传呼机或者个人数据助理(PDA)的消费电子设备。计算机系统100还可以是任何类型的网络外围设备,诸如存储设备、交换机、调制解调器、路由器等等。尽管在图1中所示的是单个计算机系统100,但系统100还可以实现为共同操作的两个或更多的计算机系统。
处理器子系统150是能够执行内容包含检测代码130的一个或多个处理器的代表。可以使用各种特定类型的处理器,如,例如x86处理器、PowerPC处理器、IBM Cell处理器或者ARM处理器。
存储子系统110是各种类型的存储介质的代表,也被称为“计算机可读存储介质”。存储子系统110可以使用任何适合的介质类型和/或存储体系结构来实现。例如,存储子系统110可以使用如硬盘存储器、软盘存储器、可移动磁盘存储器、闪存、如随机访问存储器或者只读存储器的半导体存储器等等的存储介质来实现。请注意,存储子系统110可以在单一位置上实现或者可以是分布式的(如,在SAN结构中)。
电子邮件数据库120包含多个电子邮件消息,在本申请中每一个都被称为电子邮件文档,与一个或多个电子邮件系统用户相关联。请注意,电子邮件数据库120中的各种电子邮件文档可以是另一个的副本或者可以包含与数据库中其它电子邮件的内容基本相似的内容。(例如,原始电子邮件和包含原始电子邮件的相应答复电子邮件)。
如下面将要更详细地描述的一样,内容包含检测代码130包括可由处理器子系统150执行以识别数据库120中的一个电子邮件文档的内容是否包含于(或可能包含于)另一个电子邮件文档中的指令。在各种实施例中,由内容包含检测代码130识别为可能包含于其它电子邮件中或者可能包含其它电子邮件的内容的电子邮件文档可以被报告给用户(例如,一系列答复电子邮件中的最后一封电子邮件)。在一些实施例中,可以进一步评估被识别的电子邮件。例如,在识别时,可以通过附加代码分析或比较电子邮件文档以确定和/或检验一封电子邮件内容包含于另一封的程度,和/或识别一系列电子邮件。内容包含检测代码130的执行可以允许不包含其它电子邮件文档中的内容的电子邮件文档的有效过滤。
图2是图解可以根据内容包含检测代码130的一个实施例的执行而实现的操作的流程图。图2所示的操作将结合图3所示的示例性情形来讨论,图3显示了两个可能的电子邮件文档301A和301B的内容。如图所示,电子邮件文档301B是电子邮件文档301A的答复。请注意,在此示例中,电子邮件文档301A和301B包含不同的电子邮件标头(如发件人、收件人和主题部分)。还请注意,电子邮件文档301B的结尾部分包含“狐狸是狡猾的”语句,其没有包含在电子邮件文档301A中。
在步骤210,被处理的电子邮件文档中无关的电子邮件内容被移除或者忽视。该无关的内容可以包括能在典型的电子邮件文档中找到的常见的、重复出现的惯用语,诸如“发件人[姓名],收件人[姓名],主题[标题],于[日期],于[时间],[姓名]正文文:”,“开始被转发的信息:”,“——原始信息——”等。图4描述了该步骤的结果的示例,其中标头已经从电子邮件文档301A和301B中移除。在各种实施例中,在步骤210从每个电子邮件文档中移除/忽视的无关的电子邮件内容可以是预先确定或者预选的词语或者惯用语(例如,通常对于电子邮件文档而言常见的惯用语)。在其他实施例中,可以通过来自用户的输入控制或指定被移除/忽视的无关的电子邮件内容。请注意,在一些实施例中步骤210可以被省略。
接着,在步骤220,针对被处理的第一电子邮件文档中的每个段落生成第一组散列值,在步骤230,针对被处理的第二电子邮件文档中的每个段落生成第二组散列值。图5图解了这样一个示例,其中散列值501A-E针对段落“敏捷的棕色狐狸跳过那只懒狗”、“那狗睡着了”和“狐狸是狡猾的”而生成。在此特定实施例中,对段落中每一字符的字母位置求和以生成每一个散列值。例如,字符“T”是字母表中第20个字母而字符“h”是第8个字母。因而,散列值“464”基于段落“敏捷的棕色狐狸跳过那只懒狗”中字符的字母位置之和而生成。同样地,散列值“189”和“203”基于相应段落“那狗睡着了”和“狐狸是狡猾的”而被计算生成。
请注意,可以使用各种其它散列函数中的任何一个来计算特定段落的散列值。一般而言,“散列函数”是具有输入到数字(即,散列值)的映射的任何函数。因而,在各种实施例中,可以使用如MD5散列、SHA-1散列等等的特定散列算法。在所示例子中,散列函数的输入可以包括组成段落的字符或者如字符ASCII码有序值或者每段中字符的字母表字符位置的代表字符的值。根据实施例,可以包括或者可以不包括如标点符号和/或数字的字符来作为散列函数的输入。
还请注意,在一些实施例中,可以针对每个段落使用不同的散列函数来生成多个散列值。此外,请注意,在一些替代实施例中,可以针对字符序列而不是段落来计算散列值,如,例如将字符分组的句子、段落的一部分或者任何其它变化。
在步骤240,比较在步骤220中生成的第一组散列值与在步骤230中生成的第二组散列值以确定第一组散列值是否构成第二组散列值的子集。如果第一组构成第二组的子集,则在步骤250A,内容包含检测代码130可以提供第一电子邮件的内容包含于(或可能包含于)第二电子邮件的指示。反之,如果第一组不是第二组的子集,则在步骤250B,内容包含检测代码130可以提供第一电子邮件的内容没有包含于(或可能没有包含于)第二电子邮件的内容之中的指示。如图5所示,散列值“464”和“189”根据电子邮件文档301A的相应段落“敏捷的棕色狐狸跳过那只懒狗”和“那狗睡着了”而生成。因为电子邮件文档301A中的这些段落还包含在电子邮件文档301B的内容中,所以散列值“464”和“189”还针对电子邮件文档301B而生成。另一方面,“狐狸是狡猾的”仅包含在电子邮件文档301B中,因而散列值“203”仅针对电子邮件文档301B而生成。因为对应于电子邮件文档301A的一组散列值“464”和“189”构成对应于电子邮件文档301B的一组散列值“464”、“189”和“203”的更小子集,内容包含检测代码130可以提供电子邮件文档301A的内容包含于电子邮件文档301B中的指示。如本申请所用,如果第二组包括第一组中包括的每一散列值以及根据第一电子邮件文档中没有包含的段落而生成的额外散列值,则针对第一电子邮件文档而生成的第一组散列值构成第二电子邮件文档的更小子集。在一些实施例中,如果第一组值与第二组值相同(即,两组包括相同的散列值),则在步骤250A,内容包含检测代码130还可以提供内容包含的指示。
通过反复比较不同对的电子邮件文档,一系列答复电子邮件能够通过确定具有内容包含于其它电子邮件中的电子邮件而被识别。当确定一封电子邮件包含一系列电子邮件中所有其它电子邮件的内容时,可以推断出此邮件是这一系列电子邮件的最后一封。例如,在图5中,电子邮件文档301A和301B位于相同系列的答复电子邮件中,并且电子邮件文档301B是最后一封电子邮件。在一些实施例中,内容包含检测代码130可以用来确定特定电子邮件包含其它几封电子邮件的内容,并且可以提供此特定电子邮件可能是一系列电子邮件中的最后一封的指示。
请注意,多个无关的电子邮件可能偶然地包含会导致一封电子邮件的内容包含于(或者可能包含于)另一封(例如,通常反复出现的段落)的错误指示的内容。因而,在各种实施例中,在步骤240期间,内容包含检测代码130可以是可编程的以忽略对应于多个无关电子邮件中出现的内容的某些散列值。
图6是图解用以确定一组散列值是否构成另一组的更小子集的步骤240的一个特定实现的流程图。从而,接下来的动作可以结合上述技术来执行。
在步骤610,在步骤220中生成的第一组散列值反映在对应于第一电子邮件文档的布隆过滤器中。一般而言,“布隆过滤器”是位向量形式的数据结构,该位向量代表一组元素并且用于检测元素是否为该组的成员。初始地,空的布隆过滤器可以表示为零的位矩阵。随着元素被添加到布隆过滤器,相应的代表位可以被设置。
因而,如图7所示,对应于电子邮件文档301A的段落而计算的散列值501A的“464”和501B的“189”通过设置所选的位而显示在布隆过滤器701A中。特别地,对于在该示例中所示的特定布隆过滤算法,基于构成所计算的散列值“464”的数字而设置布隆过滤器601A中位的位置4和6,并且对于散列值“189”,对应于位置1、8和9的位同样被设置。如图所示,在步骤620,在步骤230中生成的对应于第二电子邮件文档301B的段落而计算的散列值通过同样地设置所选的位而被显示在布隆过滤器701B中。
请注意,在其他实施例中可以采用任何一种其他布隆过滤算法。例如,形成布隆过滤器数据结构的向量大小(即,位的数目)可以明显大于图7所示的大小,并且如算法所限定的一样,通过设置其它特定位的位置,可以在布隆过滤器中显示给定的散列值。
在步骤630,比较在步骤610和620中生成的布隆过滤器以确定重叠的程度。如图6所示,所计算的散列值“464”和“189”出现在布隆过滤器701A和701B中,因而,布隆过滤器701A和701B中位置1、4、6、8和9中的位被相应地设置。另一方面,散列值“203”仅出现在布隆过滤器701B中,因而,布隆过滤器701A中位置2、0和3的位没有被相应地设置。
在图8所描述的一个特定实施例中,可以执行按位“或”操作来比较两个电子邮件文档的布隆过滤器。在此示例中,根据布隆过滤器701A和701B的位向量之间的按位“或”操作而生成位向量801,并且随后与布隆过滤器701A和701B中的每一个相比较。如果按位“或”操作所产生的位向量801匹配输入布隆过滤器701A或701B之一,则在步骤250A,内容包含检测代码130可以提供一个电子邮件的内容包含于(或可能包含于)其他电子邮件的内容之中的指示。反之,如果按位“或”操作所产生的位向量801不匹配布隆过滤器701A或701B之一,则在步骤250B,内容包含检测代码130可以提供任何一封电子邮件的内容都没有包含于(或可能没有包含于)其他电子邮件的指示。请注意,在图8所示的特定示例中,位向量801匹配布隆过滤器701B,因而内容包含检测代码130提供电子邮件文档301A的内容包含于电子邮件文档301B的内容之中的指示。
尽管以上已经描述了特定的实施例,但这些实施例并不旨在限制本发明的范围,即使其中关于特定特征仅仅描述了单个实施例。除非另有说明,本发明所提供的特征示例旨在于说明而非限制。以上描述旨在涵盖对于受益于本发明的本领域技术人员而言显而易见的各种替代、变化以及等同形式。本发明的范围包括本申请所公开(明示或暗示)的任何特征或特征的组合,或者对其所做的任何概括,无论其是否缓解了(mitigates)由所述的各种实施例所解决的任何一个问题或全部问题。因此,在本申请(或者对其要求优先权的申请)的申请程序期间,新的权利要求可以针对任何这样的特征组合而形成。特别地,参考所附权利要求,从属权利要求的特征可以与独立权利要求的特征结合并且各自独立权利要求的特征可以以适当的方式结合而不仅仅是所附权利要求中所列举的特定组合。
Claims (8)
1.一种用于检测电子邮件内容包含的方法,包含:
接收用户的输入,其中所述用户识别多个电子邮件文档的常见内容并指定所述常见内容将被忽略;
生成对应于第一电子邮件文档的第一组散列值,其中第一组包括对应于第一电子邮件文档的多个字符序列中的每一个的相应散列值,并且其中所述第一组散列值的生成忽略存在于所述第一电子邮件文档中的任意常见内容;
生成代表对应于第一电子邮件文档的第一组散列值的第一布隆过滤器,其中生成所述第一布隆过滤器包括设置与所述第一组散列值中的每个散列值对应并依赖于所述第一组散列值中的每个散列值的一个或更多位;
生成对应于第二电子邮件文档的第二组散列值,其中第二组包括对应于第二电子邮件文档的多个字符序列中的每一个的相应散列值,其中所述第二组散列值的生成忽略存在于所述第二电子邮件文档中的任意常见内容;
生成代表对应于第二电子邮件文档的第二组散列值的第二布隆过滤器,其中生成所述第二布隆过滤器包括设置与所述第二组散列值中的每个散列值对应并依赖于所述第二组散列值中的每个散列值的一个或更多位;以及
通过在所述第一布隆过滤器和所述第二布隆过滤器上执行按位“或”操作以确定第一组散列值是否构成第二组散列值的更小子集。
2.如权利要求1所述的方法,其中第一电子邮件文档的多个字符序列中的每一个是第一电子邮件文档的相应段落,而其中第二电子邮件文档的多个字符序列中的每一个是第二电子邮件文档的相应段落。
3.如权利要求1所述的方法,进一步包含基于所述确定的结果而提供第一电子邮件文档的内容是否包含于第二电子邮件文档中的指示。
4.一种用于检测电子邮件内容包含的系统,包含:
用于接收用户的输入的装置,其中所述用户识别多个电子邮件文档的常见内容并指定所述常见内容将被忽略;
用于生成对应于第一电子邮件文档的第一组散列值的装置,其中第一组包括对应于第一电子邮件文档的多个字符序列中的每一个的相应散列值,并且其中生成所述第一组散列值忽略存在于所述第一电子邮件文档中的任意常见内容;
用于生成代表对应于第一电子邮件文档的第一组散列值的第一布隆过滤器的装置,其中生成所述第一布隆过滤器包括设置与所述第一组散列值中的每个散列值对应并依赖于所述第一组散列值中的每个散列值的一个或更多位;
用于生成对应于第二电子邮件文档的第二组散列值的装置,其中第二组包括对应于第二电子邮件文档的多个字符序列中的每一个的相应散列值,其中所述第二组散列值的生成忽略存在于所述第二电子邮件文档中的任意常见内容;
用于生成代表对应于第二电子邮件文档的第二组散列值的第二布隆过滤器的装置,其中生成所述第二布隆过滤器包括设置与所述第二组散列值中的每个散列值对应并依赖于所述第二组散列值中的每个散列值的一个或更多位;以及
用于通过在所述第一布隆过滤器和所述第二布隆过滤器上执行按位“或”操作以确定第一组散列值是否构成第二组散列值的更小子集的装置。
5.如权利要求4所述的系统,其中第一电子邮件文档的多个字符序列中的每一个是第一电子邮件文档的相应段落,而其中第二电子邮件文档的多个字符序列中的每一个是第二电子邮件文档的相应段落。
6.如权利要求4所述的系统,其进一步包含用于当确定第一组散列值是否构成第二组散列值的更小子集时忽略第一或第二组中的一个或多个散列值的装置。
7.如权利要求4所述的系统,其进一步包含用于基于确定第一组散列值构成第二组散列值的更小子集而识别第二电子邮件文档是第一电子邮件文档的答复的装置。
8.如权利要求4所述的系统,其中通过使用MD5或SHA-1散列算法而生成第一和第二组中的一个或多个散列值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910138757.6A CN101853260B (zh) | 2009-04-01 | 2009-04-01 | 检测电子邮件内容包含的系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910138757.6A CN101853260B (zh) | 2009-04-01 | 2009-04-01 | 检测电子邮件内容包含的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101853260A CN101853260A (zh) | 2010-10-06 |
CN101853260B true CN101853260B (zh) | 2015-02-18 |
Family
ID=42804755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910138757.6A Active CN101853260B (zh) | 2009-04-01 | 2009-04-01 | 检测电子邮件内容包含的系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101853260B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9129007B2 (en) | 2010-11-10 | 2015-09-08 | Microsoft Technology Licensing, Llc | Indexing and querying hash sequence matrices |
US9075834B2 (en) * | 2012-01-26 | 2015-07-07 | Upthere, Inc. | Detecting deviation between replicas using bloom filters |
CN103488952B (zh) * | 2013-09-24 | 2017-01-18 | 华为技术有限公司 | 文件完整性验证方法及文件处理器 |
CN105046162B (zh) * | 2014-03-12 | 2018-07-27 | 西部数据技术公司 | 在内容可寻址存储系统中维护并使用子对父映射的缓存 |
CN107516046B (zh) * | 2017-06-26 | 2019-11-12 | 江苏通付盾科技有限公司 | 数据保护方法及装置、电子设备、计算机存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6820081B1 (en) * | 2001-03-19 | 2004-11-16 | Attenex Corporation | System and method for evaluating a structured message store for message redundancy |
US7831667B2 (en) * | 2003-05-15 | 2010-11-09 | Symantec Corporation | Method and apparatus for filtering email spam using email noise reduction |
US7707039B2 (en) * | 2004-02-15 | 2010-04-27 | Exbiblio B.V. | Automatic modification of web pages |
-
2009
- 2009-04-01 CN CN200910138757.6A patent/CN101853260B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN101853260A (zh) | 2010-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8037145B2 (en) | System and method for detecting email content containment | |
US8527436B2 (en) | Automated parsing of e-mail messages | |
US7809795B1 (en) | Linguistic nonsense detection for undesirable message classification | |
US20090319506A1 (en) | System and method for efficiently finding email similarity in an email repository | |
US20090198677A1 (en) | Document Comparison Method And Apparatus | |
US20030014448A1 (en) | Method and system for normalizing dirty text in a document | |
US20130013597A1 (en) | Processing Repetitive Data | |
CN101853260B (zh) | 检测电子邮件内容包含的系统和方法 | |
CN110598001A (zh) | 联合实体关系抽取方法、装置及存储介质 | |
JP2005267600A5 (zh) | ||
JP2019220144A (ja) | 詐欺検出を改善するためのデータ拡張の方法、デバイス、およびシステム | |
US9009029B1 (en) | Semantic hashing in entity resolution | |
US9244910B2 (en) | Information processing apparatus, information processing method, and non-transitory computer readable medium | |
JP2010055142A (ja) | 文書処理装置およびプログラム | |
US20090089384A1 (en) | System and method for detecting content similarity within email documents by sparse subset hashing | |
US20100063966A1 (en) | Method for fast de-duplication of a set of documents or a set of data contained in a file | |
JP2009098952A (ja) | 情報検索システム | |
CN117216239A (zh) | 文本去重方法、装置、计算机设备及存储介质 | |
US11755550B2 (en) | System and method for fingerprinting-based conversation threading | |
US20060031335A1 (en) | Managing contained e-mail | |
US20090089383A1 (en) | System and method for detecting content similarity within emails documents employing selective truncation | |
US10511563B2 (en) | Hashes of email text | |
CN110781292A (zh) | 文本数据多层次分类方法、装置、电子设备和存储介质 | |
US9576275B2 (en) | System and method for archiving and retrieving messages | |
CN112732901A (zh) | 摘要生成方法、装置、计算机可读存储介质及电子设备 |
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 |