CN102541995A - 对散列序列矩阵的索引和查询 - Google Patents

对散列序列矩阵的索引和查询 Download PDF

Info

Publication number
CN102541995A
CN102541995A CN201110372972XA CN201110372972A CN102541995A CN 102541995 A CN102541995 A CN 102541995A CN 201110372972X A CN201110372972X A CN 201110372972XA CN 201110372972 A CN201110372972 A CN 201110372972A CN 102541995 A CN102541995 A CN 102541995A
Authority
CN
China
Prior art keywords
hashed value
sequence
hashed
document
action
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.)
Granted
Application number
CN201110372972XA
Other languages
English (en)
Other versions
CN102541995B (zh
Inventor
C·W·拉曼纳
M·H·甘地
J·E·布鲁尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN102541995A publication Critical patent/CN102541995A/zh
Application granted granted Critical
Publication of CN102541995B publication Critical patent/CN102541995B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

在此所述的实施例旨在对索引矩阵中的散列值的序列进行索引和查询。计算机***访问文档以从该文档中提取文本部分。计算机***将散列算法应用于所提取的文本。提取的文本的散列值形成散列值的代表序列。计算机***还将散列值的序列的每个散列值***到索引矩阵中,该索引矩阵被配置为存储多个不同的散列值序列计算机***还查询索引矩阵以基于选中的散列值序列中有多少散列值与所述存储的散列值序列的散列值相重叠来确定所述多个散列值序列与选中的散列值序列有多相似。

Description

对散列序列矩阵的索引和查询
技术领域
本申请涉及文档比较,具体而言,通过对散列序列矩阵的索引和查询来比较文档的相似度。
背景技术
计算机已变得高度集成于工作、家庭、移动设备以及许多其他地方中。计算机可快速且有效地处理大量信息。被设计成在计算机***上运行的软件应用允许用户执行包括商业应用、学校作业、娱乐等等在内的各种各样的功能。软件应用通常被设计成执行特定任务,诸如用于草拟文档的文字处理器应用或者用于发送、接收和组织电子邮件的电子邮件程序。
在某些情况中,可设计软件应用来比较文档、电子邮件或其它字符串的文本。在这样的情况下,文档可以被分成不同的字单元,这些字单元被转换成散列值。随后,将这些散列值与来自其它文档的散列值进行顺序比较。通常,这样的文档比较程序直到比较的散列序列非常相似(例如95%+相似)才将文档在操作上(performantly)标识为相似或相同的。
发明内容
在此所述的实施例旨在对索引矩阵中的散列值序列进行索引和查询。在一个实施例中,计算机***访问文档以从该文档中提取文本部分。计算机***将散列算法应用于提取的文本。提取的文本的散列值形成散列值的代表性序列。计算机***还将散列值的序列的每个散列值***到索引矩阵中,该索引矩阵被配置为存储多个不同的散列值序列。
在另一个实施例中,计算机***访问索引矩阵,在该索引矩阵中存储有多个散列值序列。散列值序列表示来自各种文档中的字构造。计算机***访问选中的散列值序列,该散列值序列对应于查询所要基于的选中的文档。计算机***确定选中的散列值序列的散列值在哪些地方与多个存储的散列值序列的散列值相重叠。计算机***还查询索引矩阵以基于选中的散列值序列中有多少散列值与所述存储的散列值序列的散列值相重叠来确定所述多个散列值序列与选中的散列值有多相似。
提供本发明内容以便以简化形式介绍在以下具体实施方式中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
另外的特征和优点将在以下的描述中阐述,并且部分可从该描述中显而易见,或者可以从此处的教示实践中习得。本发明的各特征和优点可以通过在所附的权利要求书中特别指出的手段和组合来实现和获得。本发明的特征将从以下描述和所附权利要求书中变得完全显而易见,或者可通过如下所述对本发明的实践而获知。
附图说明
为了进一步阐明本发明的各实施例的以上和其他优点和特征,将参考附图来呈现本发明的各实施例的更具体的描述。可以理解,这些附图只描绘本发明的典型实施例,因此将不被认为是对其范围的限制。本发明将通过使用附图用附加特征和细节来描述和解释,附图中:
图1是本发明的实施例可以在其中操作的计算机体系结构,所述操作包括对索引矩阵中的散列值的序列进行索引和查询。
图2说明了用于对索引矩阵中的散列值的序列进行索引的示例方法的流程图。
图3说明了用于对索引矩阵进行查询以确定散列序列相似度的示例方法的流程图
图4说明了在其中散列值序列在索引矩阵中被索引的本发明的实施例。
具体实施方式
在此所述的实施例旨在对索引矩阵中的散列值序列进行索引和查询。在一个实施例中,计算机***访问文档以从该文档中提取文本部分。计算机***将散列算法应用于所提取的文本。提取的文本的散列值形成散列值的代表序列。计算机***还将散列值的序列的每个散列值***到索引矩阵中,该索引矩阵被配置为存储多个不同的散列值序列
在另一个实施例中,计算机***访问索引矩阵,在该索引矩阵中存储有多个散列值序列。散列值序列表示来自各种文档中的字构造。计算机***访问选中的散列值序列,该散列值序列对应于查询所要基于的选中的文档。计算机***确定选中的散列值序列的散列值在哪些地方与多个存储的散列值序列的散列值相重叠。计算机***还查询索引矩阵以基于选中的散列值序列中有多少散列值与所述存储的散列值序列的散列值相重叠来确定所述多个散列值序列与选中的散列值有多相似。
以下讨论现涉及可以执行的多种方法以及方法动作。应当注意,虽然这些方法动作可能是按一定次序讨论的,或者是在流程图中被描绘为是按照特定顺序进行的,然而并非必然需要特定的次序,除非特别声明,或者是因为一个动作依赖于另一动作在该动作被执行之前完成而需要的。
本发明的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和***存储器等计算机硬件,如以下更详细讨论的。本发明范围内的各实施例还包括用于携带或存储计算机可执行指令和/或数据结构的物理介质和其他计算机可读介质。这些计算机可读介质可以是通用或专用计算机***能够访问的任何可用介质。存储计算机可执行指令的计算机可读介质是计算机存储介质。携带计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种完全不同类型的计算机可读介质:计算机存储介质和传输介质。
计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。
“网络”被定义为允许在计算机***和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可包括可用于携带计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的网络和/或数据链路。上述的组合也应被包括在计算机可读介质的范围内。
此外,在到达各种计算机***组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后最终被传输到计算机***RAM和/或计算机***处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机***组件中。
计算机可执行指令包括,例如使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可在具有许多类型的计算机***配置的网络计算环境中实践,这些计算机***配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器***、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、分布式***(例如云计算、云服务等等)、移动电话、PDA、寻呼机、路由器、交换机等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机***两者都执行任务的分布式***环境中实施。在分布式***环境中,程序模块可以位于本地和远程存储器存储设备中。
图1示出了可在其中采用本发明的原理的计算机体系结构100。计算机体系结构100包括文本提取模块110。可以配置文本提取模块来从文档105提取文本106。所述文本可以是任意类型的格式,并且可以包括任意数目的字符和/或字符类型。文档可以是存储文本或字符序列的任意类型的数据结构。由文本提取模块提取(111)的文本可以被发送给字单元构造模块115。可以配置字单元构造模块来从所提取的文本中构造字单元116。字单元可以是文本的字、短语或其它字符序列。所述字可以是完整的字、部分字或单个字母或数字。该字单元可以被单独发送给或成组发送给散列模块120。
可以配置散列模块120来为从字单元构造模块接收到的每个字单元计算散列值。散列模块可以使用任意类型的散列算法来计算散列值。在一些情况下,散列模块在其接收到字单元时就计算每个字单元的散列值。在这种方式中,形成散列序列121。散列序列可以表示一系列的字,例如短语或句子。在将完整的文档转换为字单元并随后转换为散列值的情况下中,散列值序列121可以表示该完整的文档。散列值序列可以存储在索引矩阵125中,并且可以由矩阵查询模块130来对其查询。
例如,在用户想要确定一个文档与另一个文档有多相似的情况时,可以将这两个文档都转换为字单元和散列值序列,并随后基于散列值序列将它们进行比较。矩阵查询模块130可以将查询131发送给索引矩阵125以确定在选中文档和存储的文档(例如存储的散列值序列126)之间的相似度。索引矩阵(或另一个计算模块)可以确定选中文档和存储的文档之间的差异,并可以发布相似度指示127以指示这两个文档有多相似。下面,分别针对图2和图3的方法200和300,更详细地解释这些概念。
在一些情况中,索引和查询相似的散列序列可以被用于标识复制的、近似复制或基于模板的文档。在这样的情况下,散列值序列可以被用作特定文档的“指纹”。这个指纹可以被用于快速计算文档之间的相似度。下面是非限制性的使用示例:电子邮件消息的检测和过滤(例如反垃圾邮件或定制邮件路由规则)、搜索应用实现(包括在单独的搜索引擎中或产品中的嵌入搜索特征中)、数据挖掘应用实现和敏感信息的数据泄露防护(DLP)。许多其它的使用是可能的,并且上述示例并不是要限制所请求的发明的使用。
如上所述,散列值序列可以被存储在稠密矩阵中。该矩阵可以对散列值序列进行索引,所述散列值序列可被查询以确定复制的、近似复制的或基于模板的文档。在一些情况下,可以通过在大的序列中为每个散列使用值的代表集来改进安全性。例如,可以仅将散列值的一部分存储在索引矩阵125中来取代包括每个字单元的整个散列值。b位Minwise散列算法可以在仅存储散列值的8-12个的同时,提供安全且精确的指纹。通过对索引矩阵中特定单元中的某些试探(heuristics)进行过滤,可以改进性能。
可以通过使用从散列模块120导出的散列值121的序列来实现特定文档(例如105)的固定大小的表示。随后,将该值121的序列用于确定两个文档是否是复制的、近似复制的或从模板导出的。例如,如果文档1和文档2的散列序列有80%近似(即指纹序列在至少80%次数上是相同的),那么,就确定这两个文件是近似复制的。在一些情况下,文档1可以与巨大数目的文档(例如100,000+或1MM+)相比较。在这种情况,可以基于一组散列值序列来索引并查询文档。
在一些实施例中,索引大的散列值序列(即文档指纹)可以包括下述步骤:首先,构造尺寸为1024*212的索引矩阵(该尺寸是可变且可定制的)。每个列对应于12位的散列,因此,1024个散列包括所述指纹。每个行可以对应于12位散列的值。该散列可以是经修改的64位散列(例如Md5导出的)的12个最低有效位。12位散列从MD5中丢弃或过滤了信息,因此,改进了不可逆性。这允许为表示可能敏感信息的散列序列(指纹)创建索引。随后,用将被索引的各种指纹填充索引矩阵。
在一些实施例中,查询索引矩阵可以包括下述步骤:考虑未知的指纹FpQuery并创建名为FpMatchVector的具有等于索引的指纹数目的尺寸的“指纹匹配计数矢量”。FpMatchVector中的每个值可以与索引的指纹相对应。在一些情况下,将该矢量中的所有值初始化为零。对于指纹FpQuery的每个散列Fp(Squery)i,其中(1≤i≤1024):跳到矩阵中对应于(行,列)=Fp(S_query)i,i)的单元。对于该单元中的所有索引的指纹,如果某些探索不匹配散列序列(例如如果例如文件大小的相关联的元数据太大或太小),则忽略下述步骤(否则,则执行步骤):递增FpMatchVector中的对应于那些索引的指纹的计数(例如如果在该单元中是Fp7,则调用FpMatchVector[7]++)。随后,在FpMatchVector中重复步骤并且标识具有在预置阈值(例如80%的相似度)之上的相似度的所有指纹。这可以通过对FpMatchVector中给定位置执行计数并设置散列值的序列的大小(例如在上述示例中为1024)来完成。另外地,相似度可以被用于计算可容度系数,该可容度系数允许基于特定的模板的文档检测。
考虑到以上描述的***和体系结构,参考图2和图3的流程图将更好地理解根据所公开的主题实现的方法。为了解释简明起见,这些方法被示出和描述为一系列框。然而,应该理解和了解,所要求保护的主题不受框的次序的限制,因为一些框可按不同的次序进行和/或与此处所描绘和描述的其他框同时进行。此外,并非全部所示的框都是实现下面所述的方法所必需的。
图2说明了用于对索引矩阵中的散列值的序列进行索引的方法200的流程图。现在将频繁参照图1和图4相应的环境100和400的组件和数据来描述方法200。
方法200包括用于访问文档以从文档中提取至少一部分文本的动作(动作210)。例如,文本提取模块110可以访问文档105以从该文档提取文本106。文本提取模块可以同时(并行)或顺序访问任意数目的文档。每个文档可以来自不同的源或相同的源。例如,可以从一个用户或用户组、从软件应用或从另一实体处接收文档。文本提取模块110可以包括字母、数字和/或其它符号的任意序列或块。
方法200包括从提取的文本部分中构造一个或多个字单元的可选动作(动作220)。例如字单元构造模块115可以从提取的文本111中构造一个或多个字单元116。在一些情况下,构造的字单元可以包括字对。这样,如果提取的文本被读为“Patent Application A1.This is a patent.”(专利申请A1。这是一个专利),则构造的字对将包括下述项:“Patent Application”、“Application A1.”、“A1.This”、“This is”、“is a”、“a patent.”。另外,除了上面列出的这些项之外,还可以使用更加复杂(或更加简单)的字单元。上述示例仅仅说明了一种构造字单元的方式,并不应该被读作是对如何形成字单元的限制。字单元可以包括实质上任意数目的字、字母、数字或其它符号。字单元的构造可以根据需要进行改变或定制。
在一些情况下,可以在没有构造任何字单元的情况下生成散列序列。例如,散列算法可以通过使用各种不涉及字对构造的各种散列技术中的任意技术来创建对应于文档的散列值序列。这样,字对的构造是将文档转换为散列算法可以用于创建散列值序列的事物的一种方式示例。
方法200还包括将散列算法应用于每个构造的字单元的动作,其中,构造的字单元的散列值形成了散列值的代表性序列(动作230)。例如,散列模块120可以将散列算法应用于每个构造的字单元116。可以根据字单元的接收顺序,将构造的单元的散列值放置在序列中。这样,这些散列值序列表示了文档105的提取的文本。这样,继续上述示例,如果接收到这些字对(“PatentApplication”、“Application A1.”、“A1.This”、“This is”、“is a”、“a patent.”),将它们如下转换为散列值:“Patent Application”将被转换为hash.1,“ApplicationA1.”将被转换为hash.2,以此类推,直到所有的字单元都被转换为散列值。
在一些实施例中,由散列模块120应用的散列算法可以将构造的字单元116转换为固定大小的散列数字序列(例如1024个散列数字)。所述固定大小随不同的使用而改变。在一些情况下,散列数字的序列的大小可基于不同的因素,例如处理能力和总的分配的处理时间而改变。可以根据散列值在散列值的序列中的位置将字构造散列值***到索引矩阵的列中。应该注意,至少在一些情况下,可以将对应于选中文档的散列值序列与矩阵中的其它序列的散列值进行比较,而不需要将选中的文档的散列值实际***到矩阵中。
这样,如在图4中所示,根据散列序列位置标识符422将散列序列421***到索引矩阵425中。位置标识符指示字单元出现在文本中的位置。例如,继续上述示例,被转换为hash.1的“Patent Application”将在行1、列1(即位置426A)处出现,而被转换为hash.2的“Application A1”将在行1、列2处出现,以此类推,直到将散列值的整个序列都***到矩阵中。在一些情况下,索引矩阵425可以是1024列宽和4096行长。这样,在单元426A,示出位置1,1(行1、列1)。相应地,单元426B示出位置1,1024(行1、列1024),而单元426C示出位置4096,1(行4096、列1),并且单元426D示出位置4096,1024(行4096,列1024)。
在一些情况下,根据散列值的实际值(423)将散列序列421***到索引矩阵的行中。这样,可以基于其值,将散列值序列的每个散列值***到矩阵中。如上所述,可以截短散列值以便仅将散列值的一部分存储在索引矩阵中。存储的该部分可以随不同的客户机而变化,并且可以依赖于处理能力和安全性问题而改变。这样,存储在矩阵中的实际部分可以依赖于实现而改变。
转回图2,方法200包括将散列值的序列的每个散列值***到索引矩阵中的动作,其中配置所述矩阵来存储多个不同的散列值序列(动作240)。例如,如上所述,散列值421的序列可以被***到索引矩阵425中,索引矩阵存储了多个不同的散列序列(不同的文档的指纹)。在一些情况下,可以在***到索引矩阵时丢弃该散列值的序列。可以将多个不同的散列值的序列***到索引矩阵。
一旦用不同的文档指纹进行填充,可以查询索引矩阵以确定存储的散列值序列和所述查询所基于的选中的散列值序列有多相似。这样,换句话说,用户可以选择一个将要与多个不同的文档进行比较的文档。查询可以包括将选中的散列值序列(用户希望比较的(即查询所基于的文档)文档)***索引序列中以确定选中的散列值序列的散列值在哪些地方与其它存储的散列值序列的散列值相重叠。当用户选择的文档的散列值与其它存储的文档的散列值重叠时,那些重叠的区域指示匹配。每个重叠的散列指示了具有相同(或非常相似)的字单元的可能性。重叠的散列越多,用户选择的文档与另一文档匹配越高。
这样,选中的散列值序列(用户选择的文档)可以被指示为具有与其它存储的散列值序列的某种程度的相似度,这依赖于有多少选中的散列值序列的散列值与其它存储的散列值序列的散列值相重叠。在一些情况下,可以使用探索来过滤已知与选中的散列值序列的散列值序列不重叠的散列值序列。在这种方式中,已知的不匹配的文档的散列序列(指纹)将不被比较,这样,节省了处理能力。
转回图3,图3说明了用于查询索引矩阵以确定散列序列相似度的方法300的流程图。现在将频繁参照环境100的组件和数据来描述方法300。
方法300包括访问其上存储有多个散列值序列的索引矩阵的动作(动作310),散列值序列表示来自一个或多个文档的字构造。例如,可以访问存储了散列值序列126的索引矩阵125。存储的散列值序列对应于形成不同文档的字构造。可以从所有类型和格式的文档中取得所述字构造,所述文档包括具有嵌入到文档中的或以其它方式被包含在文档中的各种媒体类型的文档。这样,如在此所用的,文档可以包括字处理文档、电子表格文档、演示文档、网页、专有应用生成的文档等等。
方法300包括访问选中的散列值序列的动作(动作320),该选中的散列值序列对应于查询所要基于的选中的文档。例如,用户或其它实体(例如软件应用)可以选择一个查询文档,该查询文档将与其它文档进行比较以确定它与其它文档有多相似。可以由矩阵查询模块130将查询文档131发送给索引矩阵125。
方法300包括用于将选中的散列值序列***到索引矩阵以确定选中的散列值序列的散列值在哪些地方与多个存储的散列值序列的散列值相重叠的可选动作(动作330)。例如,索引矩阵125可以将查询文档的散列值序列***到索引矩阵以确定查询散列值序列的散列值在哪些地方与多个存储的散列值序列126的散列值相重叠。可以根据散列值在散列值的序列中的位置将字构造散列值***到索引矩阵的列中。而且,根据散列值的实际值可以将字构造散列值***到索引矩阵的行中。然而,如上注意的,可以直接查询索引矩阵以确定源文档是否与索引矩阵中的存储的文档中的任意一个相匹配。在这种情况下,文档之间的相似度可以被确定而无需将选中文档的散列值序列***到索引矩阵中。
如上所述,无论在哪里查询序列与矩阵中现有散列值重叠(即一单元共享查询文档在该单元处相同的散列值),那些单元可以被称为匹配,并且可以由一单元递增匹配指示符。匹配的单元越多,则查询文档越近似于该文档。因为散列值的总数已知(即在一些情况下所有的文档被转换成1024x4096尺寸),索引矩阵可以输出以百分比(例如“X%”近似)指示查询文档与存储在矩阵中的每个其它文档有多相似的相似度指示。
方法300包括查询索引矩阵以基于选中的散列值序列中有多少散列值与多个存储的散列值序列的散列值相重叠来确定所述多个散列值序列与选中的散列值序列有多相似(动作340)。例如,矩阵查询模块130可以查询索引矩阵125以基于选中的散列值序列中有多少散列值与多个存储的散列值序列的散列值相重叠来确定所述多个散列值序列126与选中的散列值序列有多相似。这样,查询文档可以被指示为具有与其它存储的散列值序列的某个程度的相似度(可能以百分比形式)。
在一些情况下,为了改进输出,可以同时比较多个散列值。就是说,可以同时将多个源文档和存储的散列值序列进行比较。而且,可以使用探索来过滤已知与选中的散列值序列(或选中的散列值序列组)的散列值序列不重叠的散列值序列。
因此,提供了在索引矩阵中索引和存储散列值的序列的方法、***和计算机程序产品。而且,提供了查询索引矩阵以确定散列序列的相似度的方法、***和计算机程序产品。可以将确定的散列序列的相似度作为与源文档相似的某个百分比来输出。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变被权利要求书的范围所涵盖。

Claims (10)

1.一种在包括多个计算***的计算机联网环境中在包括处理器和存储器的计算机***处的计算机实现的方法,所述方法用于对索引矩阵中的散列值的序列进行索引,所述方法包括:
访问文档(105)以从所述文档中提取文本(106)的至少一部分的动作;
将散列算法(120)应用到一个或多个构造的字单元(116)的动作,其中,所述构造的字单元的散列值形成散列值(121)的代表性序列;以及
将散列值(121)的序列的每个散列值***到索引矩阵(125)中的动作,其中配置所述矩阵来存储多个不同的散列值序列(126)。
2.如权利要求1所述的方法,其特征在于,进一步包括:从所提取的文本部分中构造一个或多个字单元的动作,其中,所述散列算法将构造的字单元转换为固定大小的散列数字的序列。
3.如权利要求1所述的方法,其特征在于,进一步包括:将表示其它文档的多个散列值的序列***到所述索引矩阵的动作。
4.如权利要求3所述的方法,其特征在于,进一步包括:查询所述索引矩阵以确定所述多个散列值序列与所述查询所基于的选中的散列值序列有多相似的动作。
5.如权利要求4所述的方法,其特征在于,其中,所述查询包括:将所述查询所基于的选中的散列值序列***到所述索引矩阵中以确定所述选中的散列值序列的散列值在哪些地方与其它存储的散列值序列的散列值相重叠。
6.如权利要求5所述的方法,其特征在于,其中所述选中的散列值序列被指示为具有与所述其它存储的散列值序列的某种程度的相似度,这依赖于有多少所述选中的散列值序列的散列值与所述其它存储的散列值序列的散列值相重叠。
7.一种用于实现查询索引矩阵以确定散列序列的相似度的方法的计算机程序产品,所述计算机程序产品包括其上存储有计算机可执行指令的一个或多个计算机可读存储介质,所述指令在由所述计算***的一个或多个处理器执行时使得所述计算***执行所述方法,所述方法包括:
访问其上存储有多个散列值序列(126)的索引矩阵(125)的动作,所述散列值序列表示来自一个或多个文档的字构造(116);
访问选中的散列值序列(121)的动作,所述散列值序列对应于查询(131)所要基于的一个选中的文档(105);
确定选中的散列值序列(121)的散列值在哪些地方与所述多个存储的散列值序列(126)的散列值相重叠的动作;以及
查询所述索引矩阵(125)以基于所述选中的散列值序列中有多少散列值与所述多个存储的散列值序列(126)的散列值相重叠来确定所述多个散列值序列与所述选中的散列值序列有多相似(127)的动作。
8.如权利要求14所述的计算机程序产品,其特征在于,其中所述选中的散列值序列被指示为具有与所述其它存储的散列值序列的某种程度的相似度,这依赖于有多少所述选中的散列值序列的散列值与所述其它存储的散列值序列的散列值相重叠。
9.如权利要求14所述的计算机程序产品,其特征在于,其中根据散列值在散列值的序列中的位置将字构造散列值***到所述索引矩阵的列中,并且其中,根据所述散列值的实际值将所述字构造散列值***到所述索引矩阵的行中。
10.一种计算机***,包括:
一个或多个处理器;
***存储器;
其上存储有计算机可执行指令的一个或多个计算机可读存储介质,所述计算机可执行指令在由所述一个或多个处理器执行时使得所述计算***执行一种用于对索引矩阵中的散列值的序列进行索引和查询的方法,所述方法包括:
访问文档(105)以从所述文档中提取文本(106)的至少一部分的动作;
从所提取的文本(111)的部分中构造一个或多个字单元(116)的动作;
将散列算法(120)应用到每个构造的字单元(116)的动作,其中,所述构造的字单元的散列值形成散列值(121)的代表性序列;以及
将散列值(121)的序列的每个散列值***到索引矩阵(125)中的动作,其中配置所述矩阵来存储多个不同的散列值序列(126);以及
查询所述索引矩阵(125)以基于所述选中的散列值序列中有多少散列值与所述多个存储的散列值序列(126)的散列值相重叠来确定所述多个散列值序列与所述选中的散列值序列有多相似(127)的动作。
CN201110372972.XA 2010-11-10 2011-11-09 对散列序列矩阵的索引和查询 Active CN102541995B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/943,780 2010-11-10
US12/943,780 US9129007B2 (en) 2010-11-10 2010-11-10 Indexing and querying hash sequence matrices

Publications (2)

Publication Number Publication Date
CN102541995A true CN102541995A (zh) 2012-07-04
CN102541995B CN102541995B (zh) 2015-12-09

Family

ID=46020610

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110372972.XA Active CN102541995B (zh) 2010-11-10 2011-11-09 对散列序列矩阵的索引和查询

Country Status (3)

Country Link
US (1) US9129007B2 (zh)
CN (1) CN102541995B (zh)
HK (1) HK1172714A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106062749A (zh) * 2014-03-27 2016-10-26 迈克菲股份有限公司 使用查询数据提供流行率信息
CN111247528A (zh) * 2017-10-26 2020-06-05 国际商业机器公司 查询处理

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9584877B2 (en) * 2011-06-16 2017-02-28 Microsoft Technology Licensing, Llc Light-weight validation of native images
US11126418B2 (en) * 2012-10-11 2021-09-21 Mcafee, Llc Efficient shared image deployment
US8935783B2 (en) 2013-03-08 2015-01-13 Bitdefender IPR Management Ltd. Document classification using multiscale text fingerprints
US9256644B1 (en) * 2013-03-15 2016-02-09 Ca, Inc. System for identifying and investigating shared and derived content
US9607038B2 (en) * 2013-03-15 2017-03-28 International Business Machines Corporation Determining linkage metadata of content of a target document to source documents
US11144580B1 (en) * 2013-06-16 2021-10-12 Imperva, Inc. Columnar storage and processing of unstructured data
US9553867B2 (en) 2013-08-01 2017-01-24 Bitglass, Inc. Secure application access system
US9552492B2 (en) * 2013-08-01 2017-01-24 Bitglass, Inc. Secure application access system
US10122714B2 (en) 2013-08-01 2018-11-06 Bitglass, Inc. Secure user credential access system
US9817855B2 (en) * 2014-03-17 2017-11-14 SynerScope B.V. Method and system for determining a measure of overlap between data entries
US9575661B2 (en) * 2014-08-19 2017-02-21 Samsung Electronics Co., Ltd. Nonvolatile memory systems configured to use deduplication and methods of controlling the same
WO2016054196A1 (en) * 2014-10-01 2016-04-07 Docurated, Inc. Document curation system
US9805099B2 (en) * 2014-10-30 2017-10-31 The Johns Hopkins University Apparatus and method for efficient identification of code similarity
IN2015DE01363A (zh) * 2015-05-15 2015-06-26 Hcl Technologies Ltd
US10158639B1 (en) 2016-02-18 2018-12-18 State Farm Mutual Automobile Insurance Company Data scrubbing via template generation and matching
WO2020180790A1 (en) * 2019-03-01 2020-09-10 Cyborg Inc. System and method for statistics-based pattern searching of compressed data and encrypted data
US11429589B2 (en) 2020-05-26 2022-08-30 Zscaler, Inc. Data loss prevention via indexed document matching
EP3901800A1 (en) * 2020-04-21 2021-10-27 Zscaler, Inc. Data loss prevention via indexed document matching
US11829347B2 (en) 2020-05-26 2023-11-28 Zscaler, Inc. Cloud-based data loss prevention
US11954223B2 (en) * 2020-10-12 2024-04-09 Servicenow, Inc. Data record search with field level user access control
US20220200787A1 (en) * 2020-12-22 2022-06-23 ProtectedBy.Al, Inc. System and method for securing computer code using dynamically generated digital signatures

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4807182A (en) * 1986-03-12 1989-02-21 Advanced Software, Inc. Apparatus and method for comparing data groups
US20050027723A1 (en) * 2002-09-18 2005-02-03 Chris Jones Method and apparatus to report policy violations in messages
US20070050423A1 (en) * 2005-08-30 2007-03-01 Scentric, Inc. Intelligent general duplicate management system
CN101079070A (zh) * 2006-05-26 2007-11-28 国际商业机器公司 用于响应于对信息的查询的计算机和方法
US20070294235A1 (en) * 2006-03-03 2007-12-20 Perfect Search Corporation Hashed indexing
CN101809567A (zh) * 2007-09-28 2010-08-18 微软公司 文本串的二次散列提取
US20100250896A1 (en) * 2009-03-30 2010-09-30 Hi/Fn, Inc. System and method for data deduplication
CN101853260A (zh) * 2009-04-01 2010-10-06 赛门铁克公司 检测电子邮件内容包含的***和方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7707157B1 (en) 2004-03-25 2010-04-27 Google Inc. Document near-duplicate detection
US20090132571A1 (en) 2007-11-16 2009-05-21 Microsoft Corporation Efficient use of randomness in min-hashing
US7979413B2 (en) 2008-05-30 2011-07-12 At&T Intellectual Property L, L.P. Automatic generation of embedded signatures for duplicate detection on a public network

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4807182A (en) * 1986-03-12 1989-02-21 Advanced Software, Inc. Apparatus and method for comparing data groups
US20050027723A1 (en) * 2002-09-18 2005-02-03 Chris Jones Method and apparatus to report policy violations in messages
US20070050423A1 (en) * 2005-08-30 2007-03-01 Scentric, Inc. Intelligent general duplicate management system
US20070294235A1 (en) * 2006-03-03 2007-12-20 Perfect Search Corporation Hashed indexing
CN101079070A (zh) * 2006-05-26 2007-11-28 国际商业机器公司 用于响应于对信息的查询的计算机和方法
CN101809567A (zh) * 2007-09-28 2010-08-18 微软公司 文本串的二次散列提取
US20100250896A1 (en) * 2009-03-30 2010-09-30 Hi/Fn, Inc. System and method for data deduplication
CN101853260A (zh) * 2009-04-01 2010-10-06 赛门铁克公司 检测电子邮件内容包含的***和方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106062749A (zh) * 2014-03-27 2016-10-26 迈克菲股份有限公司 使用查询数据提供流行率信息
CN106062749B (zh) * 2014-03-27 2019-08-06 迈克菲有限公司 使用查询数据提供流行率信息
CN111247528A (zh) * 2017-10-26 2020-06-05 国际商业机器公司 查询处理
CN111247528B (zh) * 2017-10-26 2023-09-29 国际商业机器公司 查询处理

Also Published As

Publication number Publication date
CN102541995B (zh) 2015-12-09
US9129007B2 (en) 2015-09-08
HK1172714A1 (zh) 2013-04-26
US20120117080A1 (en) 2012-05-10

Similar Documents

Publication Publication Date Title
CN102541995A (zh) 对散列序列矩阵的索引和查询
US11036808B2 (en) System and method for indexing electronic discovery data
Xiang et al. A linguistic steganography based on word indexing compression and candidate selection
CN108292310B (zh) 用于数字实体相关的技术
CN102054022B (zh) 用于处理并管理与对象相关的数据以供多个应用程序使用的***及方法
US10095690B2 (en) Automated ontology building
US8344916B2 (en) System and method for simplifying transmission in parallel computing system
US10229200B2 (en) Linking data elements based on similarity data values and semantic annotations
WO2019035765A1 (en) METHODS, AUTOMATIC LEARNING ENGINES AND FILE MANAGEMENT PLATFORM SYSTEMS FOR CONTENT AND DATA CONTEXT-SENSITIVE CLASSIFICATION AND FOR SECURITY MALFUNCTION DETECTION
CN104778158A (zh) 一种文本表示方法及装置
Sultanik et al. Rapid geotagging and disambiguation of social media text via an indexed gazetteer.
US9298757B1 (en) Determining similarity of linguistic objects
CN111651453B (zh) 用户历史行为查询方法、装置、电子设备及存储介质
CN101369278B (zh) 一种近似匹配方法和装置
KR20130049111A (ko) 분산 처리를 이용한 포렌식 인덱스 방법 및 장치
Adams et al. Crowdsourcing the character of a place: Character‐level convolutional networks for multilingual geographic text classification
CN102169491B (zh) 一种多数据集中重复记录动态检测方法
WO2017036348A1 (zh) 一种可扩展标记语言xml文档的压缩、解压方法和装置
CN111899822B (zh) 医疗机构数据库构建方法、查询方法、装置、设备和介质
CN109492127A (zh) 数据处理方法、装置、介质和计算设备
WO2019060351A1 (en) SYSTEM AND METHOD FOR USING LOW MEMORY CONSUMPTION DATA STRUCTURES FOR FRIMOUSSES SUGGESTIONS
US11055399B2 (en) Data recovery through reversal of hash values using probabilistic data structures
US12020175B2 (en) Building training data and similarity relations for semantic space
US11699032B2 (en) Data set lookup with binary search integration and caching
CN110221778A (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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150728

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150728

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1172714

Country of ref document: HK