CN108388632B - 数据分群、分段、以及并行化 - Google Patents

数据分群、分段、以及并行化 Download PDF

Info

Publication number
CN108388632B
CN108388632B CN201810151609.7A CN201810151609A CN108388632B CN 108388632 B CN108388632 B CN 108388632B CN 201810151609 A CN201810151609 A CN 201810151609A CN 108388632 B CN108388632 B CN 108388632B
Authority
CN
China
Prior art keywords
record
records
data
query
variant
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
Application number
CN201810151609.7A
Other languages
English (en)
Other versions
CN108388632A (zh
Inventor
阿伦·安德森
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.)
Ab Initio Technology LLC
Original Assignee
Ab Initio Technology LLC
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 Ab Initio Technology LLC filed Critical Ab Initio Technology LLC
Publication of CN108388632A publication Critical patent/CN108388632A/zh
Application granted granted Critical
Publication of CN108388632B publication Critical patent/CN108388632B/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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • 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/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3338Query expansion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation

Landscapes

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

Abstract

本发明公开了一种数据分群的方法,包括:通过第一处理实体将一记录组分区成多个记录子组;以及通过各个不同的接收方处理实体处理所述记录组的不同子组,并将结果存储在每个所述接收方处理实体可访问的数据存储部中,每个接收方处理实体的处理包括:基于确定所述记录中一个或多个字段的一个或多个值与由该接收方处理实体维护的本地参考信息内的条目之间或者与由任一其他所述接收方处理实体提供的所述数据存储部内的条目之间是否存在近似匹配来对所述子组中的每个记录执行操作,以及基于由该接收方处理实体维护的所述本地参考信息来更新所述数据存储部。

Description

数据分群、分段、以及并行化
本申请是申请日为2012年11月15日、申请号为201280067076.5、发明名称为“数据分群、分段、以及并行化”申请的分案申请。
相关申请的交叉引用
本申请要求2011年11月15日所提交美国专利申请第61/560257号和2012年6月15日所提交美国专利申请第61/660259号的优先权,二者中每个都通过引用合并于此。
背景技术
本说明书涉及数据分群、分段、以及并行化。
数据分群是这样一种方法,通过该方法将大体类似的信息用共享的标识符来标注,从而可使该信息后续在被处理时就像这些信息已经一起汇聚在同一位置那样。该信息可包括各种类型的信息,例如,诸如财务数据或医保记录等等。每个群(在多个群组成的一组中)包括已经被确定为符合一些类似性标准的多个数据单元(例如,文档、数据库记录、或其他数据对象)。一些技术属于“离线”技术,其将数据单元按批处理以生成群或添加至已有群。一些技术属于“在线”技术,其对数据单元按照接收这些数据单元的方式进行增量式处理。群可以是分级的,此时一个级别上的给定群自身在另一级别上被划分成多个群。在一些情况下,群对应于一个分区的数据单元,其中每个数据单元恰好是其中一个群,而在一些情况下,群可与属于一个以上群的其中一员的数据单元叠合。
发明内容
在一个方案中,一般而言,一种方法包括:通过第一处理实体来处理第一原记录组以生成第二记录组,该第二记录组包括所述原记录以及每个原记录的一个或多个副本,每个原记录包括一个或多个字段。至少一些所述原记录中的每一个的所述处理包括:生成所述原记录的至少一个副本,以及将第一分段值与所述原记录关联,并将第二分段值与所述副本关联,其中所述第一分段值对应于所述原记录中各字段的一个或多个数据值的第一部分,而所述第二分段值对应于所述原记录中各字段的所述一个或多个数据值的第二部分,该第二部分不同于该第一部分。该方法还包括基于与所述第二组中的记录关联的所述分段值将所述第二记录组在多个接收方处理实体之中进行分区,并且在每个接收方处理实体处,基于该接收方处理实体处接收的记录的一个或多个数据值执行操作以生成结果。
这些方案可包括以下特征中的一个或多个。
所述第一分段值对应于来自第一字段的第一数据值的字符的第一序列,该第一序列取自所述第一数据值中所述字符的第一位置组,而所述第二分段值对应于来自所述第一数据值的字符的第二序列,该第二序列取自所述第一数据值中所述字符的第二位置组。
所述第一位置组与所述第二位置组是不重叠的。
所述第一位置组是相对于所述数据值第一个字符的偶数位置,而所述第二位置组是相对于所述数据值第一个字符的奇数位置。
将分段值与记录关联包括将所述关联的分段值写入所述记录的新字段中。
基于该接收方处理实体处接收的记录的一个或多个数据值执行操作包括确定存在于第一记录的一个或多个数据值中的字符串与存在于至少第二记录的一个或多个数据值中的字符串之间的匹配。
所述匹配为近似匹配。
所述近似匹配允许所述字符串匹配得不同处多达一指定编辑距离。
所述近似匹配基于一匹配标准而定,该匹配标准限定所述第一记录的数据值与所述第二记录的数据值之间所允许的差异,并且其中,对于每个原记录,所述一个或多个数据值的所述第一部分以及所述一个或多个数据值的所述第二部分被选择成使得所述第一分段值或所述第二分段值的至少其中之一并不响应于根据任意所述允许差异造成的所述一个或多个数据值的改变而改变。
所述允许差异包括存在于所述第一记录的数据值中的第一字符串与存在于所述第二记录的数据值中的第二字符串之间的差异。
所述允许差异包括存在于所述第一记录的数据值中的第一二进制值与存在于所述第二记录的数据值中的第二二进制值之间的差异。
基于该接收方处理实体处接收的记录的一个或多个数据值执行操作包括代理键分配。
对于所述接收方处理实体处接收的每个记录,在所述接收方处理实体处生成的所述结果包括随着基于所述记录的一个或多个数据值所分配的代理键而增长的所述记录。
基于该接收方处理实体处接收的记录的一个或多个数据值执行操作包括将所接收的记录分群成一个或多个群。
对于所述接收方处理实体处接收的每个记录,在所述接收方处理实体处生成的所述结果包括,随着基于所述记录的一个或多个数据值以及在所述接收方处理实体处接收的至少一些其他记录的一个或多个数据值所分配的分群而增长的所述记录。
所述操作包括以下至少其中之一:代理键分配、分群、汇总、或添加。
所述第一分段值对应于所述原记录中各字段的多数据值的第一部分,而所述第二分段值对应于所述原记录中各字段的所述多数据值的第二部分,该第二部分不同于该第一部分。
所述的方法还包括在第二处理实体处接收来自每个接收方处理实体的结果,以及处理所接收的结果以去除冗余的结果。
所述第二记录组包括所述原记录以及每个原记录的所述至少一个副本。
处理所接收的结果以去除冗余的结果包括选择以下的至多其中之一:与一原记录关联的第一结果,或者与该原记录的一副本关联的第二结果。
所述的方法还包括在所述第一处理实体处接收来自每个接收方处理实体的结果,以及处理所接收的结果以去除冗余的结果。
每个所述接收方处理实体独立地执行各自的操作。
所述接收方处理实体的数目至少和与每个原记录及其副本关联的不同分段值的最小数目一样大。
所述处理实体是多核处理器中的核芯,并且所述第一处理实体经由所述多核处理器中的互连网络将经过分区的记录从所述第二记录组发送至所述接收方处理实体。
所述处理实体是多处理器计算机系统中的处理器,并且所述第一处理实体经由所述多处理器计算机系统中的互连网络将经过分区的记录从所述第二记录组发送至所述接收方处理实体。
所述处理实体是机架安装式服务器系统中的服务器计算机,并且所述第一处理实体经由所述机架安装式服务器系统中的互连网络将经过分区的记录从所述第二记录组发送至所述接收方处理实体。
所述处理实体是经由网络进行通信的计算机系统,并且所述第一处理实体经由所述网络将经过分区的记录从所述第二记录组发送至所述接收方处理实体。
在另一方案中,一般而言,一种计算机程序,存储在计算机可读存储介质上。该计算机程序包括指令,该指令用于使计算机系统:通过第一处理实体来处理第一原记录组以生成第二记录组,该第二记录组包括所述原记录以及每个原记录的一个或多个副本,每个原记录包括一个或多个字段。至少一些所述原记录中每一个的所述处理包括:生成所述原记录的至少一个副本,及将第一分段值与所述原记录关联,并将第二分段值与所述副本关联,其中所述第一分段值对应于所述原记录中各字段的一个或多个数据值的第一部分,而所述第二分段值对应于所述原记录中各字段的所述一个或多个数据值的第二部分,该第二部分不同于该第一部分。该计算机程序包括指令用于,基于与所述第二组中的记录关联的所述分段值将所述第二记录组在多个接收方处理实体之中进行分区,并且在每个接收方处理实体处,基于该接收方处理实体处接收的记录的一个或多个数据值执行操作以生成结果。
在另一个方案中,一般而言,一种计算系统,包括:第一处理实体,被配置为处理第一原记录组以生成第二记录组,该第二记录组包括所述原记录以及每个原记录的一个或多个副本,每个原记录包括一个或多个字段。至少一些所述原记录中每一个的所述处理包括:生成所述原记录的至少一个副本,并且将第一分段值与所述原记录关联,并将第二分段值与所述副本关联,其中所述第一分段值对应于所述原记录中各字段的一个或多个数据值的第一部分,而所述第二分段值对应于所述原记录中各字段的所述一个或多个数据值的第二部分,该第二部分不同于该第一部分。该计算系统包括多个接收方处理实体,接收基于与所述第二组中的记录关联的所述分段值而将所述第二记录组分区成的各个子组,并且每个接收方处理实体被配置为基于该接收方处理实体处接收的记录的一个或多个数据值执行操作以生成结果。
在另一个方案中,一般而言,一种方法,包括:通过第一处理实体将一记录组分区成多个记录子组;以及通过各个不同的接收方处理实体处理所述记录组的不同子组,并将结果存储在每个所述接收方处理实体可访问的数据存储部中。每个接收方处理实体的处理包括基于确定所述记录中一个或多个字段的一个或多个值与由该接收方处理实体维护的本地参考信息内的条目之间或者与由任一其他所述接收方处理实体提供的所述数据存储部内的条目之间是否存在近似匹配来对所述子组中的每个记录执行操作,以及基于由该接收方处理实体维护的所述本地参考信息更新所述数据存储部。
这些方案可包括以下特征的其中一个或多个。
每个所述接收方处理实体可访问的所述数据存储部包括非易失性存储介质。
由每个接收方处理实体维护的本地参考信息存储在易失性存储介质中。
所述近似匹配允许所述值匹配得不同处多达一指定编辑距离。
对所述子组中的每个记录执行操作包括代理键分配。
对于接收方处理实体处接收的每个记录,在该接收方处理实体处生成的结果包括随着基于所述记录的一个或多个值所分配的代理键而增长的所述记录。
对所述子组中的每个记录执行操作包括将所述记录分群成一个或多个群。
对于接收方处理实体处接收的每个记录,在该接收方处理实体处生成的结果包括,随着基于所述记录的一个或多个值以及在所述接收方处理实体处接收的至少一些其他记录的一个或多个值所分配的群而增长的所述记录。
所述操作包括以下至少其中之一:代理键分配、分群、汇总、或添加。
在另一个方案中,一般而言,一种计算机程序,存储在计算机可读存储介质上,该计算机程序包括指令。该指令用于使计算机系统:通过第一处理实体将一记录组分区成多个记录子组;以及通过各个不同的接收方处理实体处理所述记录组的不同子组,并将结果存储在每个所述接收方处理实体可访问的数据存储部中。每个接收方处理实体的处理包括:基于确定所述记录中一个或多个字段的一个或多个值与由该接收方处理实体维护的本地参考信息内的条目之间或者与由任一其他所述接收方处理实体提供的所述数据存储部内的条目之间是否存在近似匹配来对所述子组中的每个记录执行操作,以及基于由该接收方处理实体维护的所述本地参考信息更新所述数据存储部。
在另一个方案中,一般而言,一种计算系统,包括:第一处理实体,被配置为将一记录组分区成多个记录子组;以及多个接收方处理实体,每个接收方处理实体被配置为处理所述记录组的不同子组,并将结果存储在每个所述接收方处理实体可访问的数据存储部中。每个接收方处理实体的处理包括:基于确定所述记录中一个或多个字段的一个或多个值与由该接收方处理实体维护的本地参考信息内的条目之间或者与由任一其他所述接收方处理实体提供的所述数据存储部内的条目之间是否存在近似匹配来对所述子组中的每个记录执行操作,以及基于由该接收方处理实体维护的所述本地参考信息来更新所述数据存储部。
这些方案可具有以下有益效果的其中一个或多个。
当对大规模数据加以分群时,限制性能和扩展性的主要因素之一是在记录之间为确定哪些在适当距离测量下是接近的所需要进行的运算量。简单的多对多比较与待分群的记录数目成平方比例关系。
改善的途径是,在进一步进行附近记录的计分之前通过新查询记录必须接近的代表记录增量式地发现群并表示每个群。发现查询记录属于新的群与不同群的数目成平方比例,因为在可创建新群之前必须首先检查每个已有群的代表。对于大量的不同群,这在对商业中客户数据库内个体或家庭进行分群时是常见的,该途径变得难以维系。
这里描述的数据分群方法在进行任何高成本的比较之前使用搜索处理以在近似距离测量下确定查询记录与任一已有群是否足够接近。这将之前查询记录作为新群第一记录的方法中的最糟情况转化成最佳情况。如果该查询记录与已有记录的重叠不足,其将不从搜索中返回候选项记录,并且其必定是新群的成员。
这里描述的数据分群方法使用基于扩展自初始查询的数个查询组合的紧缩目标式搜索。多重查询使得查询词的变体匹配能够在搜索期间并且对于来自字段中多个标记或者来自记录中多个字段的同时查询而被检测到。搜索寻求从充当已有群的代表的主记录组找到匹配候选项匹配标准的候选项记录。搜索目录(indices)可在批处理模式下针对全数据组预计算出来,或者可在增量模式下累积填充。在批处理模式下,搜索目录可包含位向量形式的用于匹配记录的位置信息。这有助于布林运算(Boolean computation)以结合多重搜索的结果。
候选项匹配标准可按搜索码来规划(formulate),搜索码是对搜索组合的定性结果(例如对于客户的搜索是否具有姓氏和城市二者的匹配)进行编码的码。与每个搜索码关联的样本记录可被提取以辅助用户调整候选项匹配标准。搜索码在一些实施方式中还能够实现整个候选项匹配标准作为搜索结果的布林表达,使得即使在标记仅需近似匹配时搜索也非常快。
在找到匹配候选项匹配标准的候选项记录之后,来自于该候选项记录关联的每个群的代表记录被调出用于与查询记录的详细比较。使用成本更高的距离测量来用于这一比较。与搜索码类似,匹配码被构造以定性地总结该比较,包括在每对经过比较的个体字段或者字段组合与经过比对的个体字段或字段组合的填充状态之间的定性匹配,指示特定字段例如是否为空的、空白或填充的。在由匹配码分群之后可累积统计以量化质量变化的匹配数目。还可提取固定数目的样本记录关联于每个匹配码以辅助用户判定不同种类匹配的质量以及反复调整用于比较记录的比较功能由此以改变匹配输出。记录填充特征与匹配输出质量之间的关联还可由匹配码推导出来。
查询记录与来自候选项群的代表记录之间的详细比较组可被分析以找到某一匹配阈值以上的最佳匹配配对。如果没有匹配阈值以上的最佳匹配配对,则使该查询记录作为新群的第一个记录。如果有一个匹配阈值以上的最佳匹配配对,则将该查询记录添加至对应群。如果有一个以上与不同已有群的匹配阈值以上的匹配配对,则将该查询记录添加至与最佳匹配配对关联的群,但可选群的组要被记录以供用户检查使用。
在已经做出群成员身份决策并且所有查询记录已经被分配给群之后,用户可检查群记录的网络并参加群认可处理。模糊匹配被标志给用户以用于检查。用户可选择确认其群内的任意记录,在这种情况下如果该记录已被再次提交给群则其将收到同一群id,而无需经历分群处理。这符合业务需求,如果用户已经手动确认记录在正确分区内,则该决策必须坚持。
用户可选择将一记录排除在已经放置了该记录的群之外。在接续的群运行中,该记录被阻止分配给该群,并将被分配给由算法确定的下一最佳群。
用户可选择将一记录映射至新群。在接续的分群运行中,该记录将被分配给新群。任何未经确认的记录可添加新群的该记录,只要它们与接近其他已有群中的记录相比要更接近该记录。类似地,用户可将选择的记录重映射至不同的已有群,其中该记录还未由分群处理放置。在接续的运行中,选择的该记录将被放置在所选取的群中并且接近该记录的任何(未经确认)的记录将与选择的该记录一起移动至该选取的群。这使用户能够将重映射少量选择的个体记录并允许进行重新群以重映射与所选择记录密切相关的所有记录。
该认可处理通过提取受用户的修改影响的所有记录并经分群处理对它们重运行来加以促进。得到的数据群与之前的数据群有所不同,且为用户显示该结果。然后用户可选择紧接着在刚作出的分群之上应用进一步的修改并且重复或丢弃这些修改以及从头重新开始该认可处理。整个认可处理可在临时工作区中执行,并且在处理完成且用户满意时,引导该群处理的作为基础的分群库可发布返回至持续生成区(persistent productionarea)。
这里所描述数据分群处理的进一步有益效果在于,批处理模式的分群能够在初始数据组上做出而将来的数据可使用增量模式添加至已有群,而无需对整个积累的数据组重新群。这满足了个体记录的群成员身份不随着新数据到来而改变的业务预期和需求。除非未经确认的记录就像它们在群认可处理期间那样被重处理,否则它们对于个体群的分配无法改变。
跨国机构能够在很多国家存储关于个体的信息。这些国家可能具有限制如何使用及出口数据到其他国家的数据隐私法律或规定。该数据隐私法律可保护包括社保记录和财务记录等各种不同类型的数据。一些国家的数据保护法律阻止将数据出口至任一其他国家。在其他国家中,这样的法律允许将数据出口至某些国家而阻止将数据出口至其他国家。如这里使用的,限制数据流向任一其他国家的国家被称为禁止数据出口国,限制数据流向有选择性国家的国家被称为选择性数据出口国,并且限制性的数据出口国将用来统称为禁止数据出口国和选择性数据出口国。
与此同时,请求国可请求所选择的信息可在它们的司法管辖下由实体访问。例如,美国(在该示例中为请求国)可请求在其司法管辖下的全球金融机构提供与有关人士关联的银行账户的清单;然而,所请求的数据可能位于瑞士(在该示例中为限制性数据出口国)。
这里描述的数据分群技术可用来在请求国中使用限制数据出口国中的记录对与有关人士关联的记录进行分群而无需从这些国家出口数据。
附图说明
图1A为示出分群处理的框图。
图1B为示出涉及受限数据出口国的分群处理的视图。
图1C为示出分群引擎的框图。
图1D为示出候选项搜索引擎的框图。
图1E为示出变体剖析器(variant profiler)的框图。
图1F为示出变体网络分析器(analyzer)的框图。
图1G为示出分群认可引擎的框图。
图2A-图2D示出变体搜索过程的示例。
图3A示出变体网络的示例。
图3B示出填充标记代表库(token-representative store)的处理的示例。
图4为用于使用重复分段来并行化分群的处理的示例的流程图。
图5A-图5C示出使用重复分段的并行分群的示例。
图6示出通过自然键来分区而生成并行代理键的示例。
图7A-图7D示出从多个字段搜索问询的示例。
图8示出使用删除-添加过程来实施变体查找过程的示例。
图9为用于增量模式的分群处理的示例流程图。
图10A-图10D示出增量模式的分群的示例。
图11A-图11B为用于批处理模式的分群处理的示例流程图。
图11C示出用于匹配已有群的一个成员的查询记录的群成员身份决策处理的示例。
图11D示出用于匹配一个以上已有群的成员的查询的群成员身份决策处理的示例。
图12为调和多重匹配的处理示例的流程图。
图13A-图13C示出调和多重匹配的示例。
图14A-图14B为分群认可处理的示例的流程图。
图15A-图15C为在一个系统上发起并在一远程系统上继续的分群示例的流程图。
具体实施方式
1综述
1.1基于搜索的分群处理综述
参考图1A,数据处理系统10用于对来自数据源100的数据进行分群。在一些实施方式中,由数据处理系统10执行的分群处理分析出现在数据内的标记(token),这些标记被组织为在各个字段具有多个值的记录(也称为“属性”或“栏目”),这些值可能包括空值(nullvalue)。一个标记是一个字段或多个字段组合中的至少一个值或值的片段。用户102使用用户界面104来监测并控制分群处理的各个方面,包括:接收对于在数据源100的所选字段(或多个字段的组合)以及它们之中变体关系网络中收集的值、标记、及其变体的通报(可能既有表格式的又有图形式的);创建并维护业务规则以识别变体标记、类似短语(即,多标记单元)和类似记录,从而找到并解决模糊或假性肯定的匹配的标记、短语或记录,且进行将每个记录分配至一个或多个群的群成员身份决策;以及检查、修改、并认可变体网络连接和群成员身份决策。
数据源100一般包括多个个体数据源,也称为数据组,每个个体数据源可具有独特的存储格式和接口(例如,数据库表,表单文件,纯文本文件,或者由主机使用的本机格式)。这些个体数据源对于分群系统10而言可以是本地的,例如,托管(host)在同一计算机系统上;或者对于分群系统10而言可以是远程的,例如,托管在通过局域网或广域网被访问的远程计算机上或者通过云网络服务访问分群系统10或被分群系统10访问的远程计算机上。
数据源中的数据可被组织为一个或多个记录,每个记录包括一个或多个包含多个值的字段,每个值由字符串或二进制值组成。该字符串可为单字节或多字节的字符,例如ASCII或Unicode。二进制数据可包括诸如整数等数字或者诸如图像数据等原始和/或压缩数据。
读取自数据源100的数据由变体剖析器(variant profiler)110处理。变体剖析器110识别标记(例如,基于预定规则)及对数据中特定标记的出现计数(例如其中出现特定标记的记录的数目),并在一些实施方式中存储识别其中出现特定标记的具体记录的信息。通过例如编辑距离、语音类似性、或者共享字符序列的测量(例如,“eqty fnd”类似于“equityfund”,因为前者中所有字符都按相同的顺序出现在后者中),变体剖析器110还基于一些类似性得分识别出不同识别标记对(互为变体)(称为“变体标记对”)。例如通过提供单词词典、同义词和缩写词列表、用户提供的变体配对(例如公司特有的同义词、缩写或缩略词)、或者名称(例如,昵称、变体拼写、外国名称的变体音译等等)的文化类变体配对,外部数据106可用来丰富或修改由变量剖析器110使用类似性得分而识别的标记和变体标记对的组。这些列表可在原数据组中添加不存在的标记,或者在类似性不关联的标记之间创建变体配对。外部数据106还可用于修改与变体配对关联的得分(此时得分用来指示紧密度,这能够被用来改变标记之间的表观距离(apparent distance)),从而打断变体配对(例如,在仅偶然类似的字典单词之间),或者移除标记。
标记的示例为字段中的单词(没有空格的字符串),该字段的值包括由空格隔开的多个单词,例如,从包含全名的字段中取的个人名字,或者街道地址(可能由连在一起的多个字段形成)中的单词。标记可能包含空格,例如城市名“New York(纽约)”。标记可为数字值(可能是二进制),类似政府标识符(id)或账单号。标记可为字符串值或数字值的片段,诸如删除了一个字符的字符串,去除了一位的数字,或者由取自字符串或数字的连续序列的n个字符组成的连词。标记可能为二进制字段的片段,例如与图像中一区域对应的数据。
由变体剖析器110识别的变体标记的配对(成为变体标记对)限定变体网络,其中每个标记由一节点表示或者由与表示这些标记的节点之间的边对应的变体标记之间的配对表示。该变体网络可由变体网络分析器120分析。典型的网络可包括多个连接组件的汇聚,其中每个连接组件的节点都由边连接至该组件中的另一节点,但不同组件中没有节点互相连接。连接的组件是由边连接的节点的闭合组。通过限定,不同的连接组件是不相交的(disjoint)。变体网络分析器120可识别网络的连接组件的汇聚,并且可将一个或多个标记代表与变体网络的连接组件内的每个标记相关联。在多个量值中,表征变体网络节点的是从数据组中所有记录取自所选字段(或者字段的组合)的关联标记的实例的计数,以及分别地,与标记配对的变体数目对应的标记的度(或者配位数),也即连接表示该标记的节点的边数目。
用户102可在用户界面104中查看标记(特别是在单个连接组件内的那些标记)的变体配对的网络的图形表示。变体网络的连接组件的特定子组可以是所关注的并且可选择地在图形表示中加以突出。例如,考虑未与具有高计数的节点连接的那些节点。在一些实施方式中,这些节点可被选择作为该连接组件的标记代表的汇聚。通过遍历仅与相同或较少计数的节点连接的边而得到的节点树所组成的子网络可称为标记代表的典型邻居(canonical neighborhood)。典型邻居中的所有节点可由其标记代表表示。典型邻居可重叠。相应地,如果其自身并非标记代表,则该标记可与一个以上的标记代表相关联。这会帮助用户102能够通过图形用户界面104可视化典型邻居及其重叠。
与所选标记配对的变体标记的组称为所选标记的本地邻居。该所选标记称为本地邻居的主位(primary)。在图形显示中,本地邻居是通过边与所选(主位)节点连接的节点组。标记的度(或者图形意义(sense)中的配位数)是本地邻居的大小(减去1以排除标记自身)。所选标记的显著性被计算为所选标记本地邻居中每个标记出现的计数总和除以包含至少一个标记的记录数目(在给定的源和字段或者所选标记出现的语境中)的比率的对数。该显著性允许不同标记的相对重要性得以比较:具有较高显著性的标记出现在较少的记录中并且因此在搜索中使用时会更为突出。
在一些实施方式中,通过统计测试而被识别为有特色的那些标记(例如计数超过本地邻居中标记计数的平均和标准差的总和的那些标记)可被识别为“(本地)正标记”(对于典型邻居或者实际上任意邻居中的标记可进行类似识别)。对于由公司或个人名称中个别单词形成的标记,正标记在统计上可能为“实际”单词或名称,而不会说成是错误形成的印刷变体。也即,该标记出现的频率足够高以至于,在数据组内其邻居的语境中,该标记不太可能是偶然出现。
须注意,正标记并不必然预期在字典中找得到。拼错的单词之所以在数据组中占优势可能是有系统的原因。尤其是,许多人造或故意拼错的单词被用来形成有特色的公司名称。同样地,并非所有字典单词都将被辨识为正标记,因为数据组的统计可能并不支持它们的识别。
很多本地邻居将具有一个正标记。该正标记在统计意义上是“实际”标记——其他标记是相对少见的变体。一些本地邻居可能不具有正标记,因为所有变体标记出现的频率都相似。这对于在统计不足以区分出正标记的数据组中少见的标记而言尤其如此。如果正主位标记的本地邻居具有一个以上的正标记,则其他正标记被认为时“伪标记”。也即,它们在统计上可能是其他“实际”标记,而并非主位正标记的偶然变体。识别这些伪正标记是有用的,因为它们表示的是不应基于语义(semantic meaning)配对而是基于相似性配对的标记。通过破坏这些变体配对能够改善变体网络的精确性。需要适当关注,因为类似名词复数(plural)的那些“伪”正标记应当保留为变体。
在标记代表的语境中,为典型邻居识别正标记可能是有用的。一些非常常见的个人名称非常相似。考虑到,例如“Hermandez”和“Fernandez”,仅仅通过一个替换就将它们区分为变体对。在给定数据组中其中一个将比另一个更为频繁,则该名称可能是包含二者的典型邻居中更频繁出现的标记,因此,在一些实施方式中,为其标记代表。通过打断“Hermandez”和“Fernandez”之间的链接,二者都成为不太可能连接至另一较高计数标记的标记,并且随后成为它们各自(重叠)典型邻居的标记代表。可能需要进一步修剪来更彻底地隔开典型邻居,例如,打断“Hermandez”和“Fernandez”与其他类似配对之间的链接。
用户102可使用用户界面104例如通过添加或删除节点之间的边或添加或去除节点来操控变体网络。这对应于添加或打断变体配对或者添加或去除标记,这可能通过提供适当外部数据106而由变体剖析器110执行的过程而已经完成。图形用户界面104提供这样做的有用方式。图形用户界面104还可以图形形式地正标记与其他标记区分开,并突出连接这些正标记的边。可提供对连接正标记的所有变体配对的列表视图,一并提供的还有选择哪些边打断以及哪些保留的机制。
基于搜索的分群引擎130处理“标记化记录”(它们是内容已经过标记化处理的记录),在一些实施方式中被划分成段和/或在要并行处理的多个处理器中被分区,以集合具有类似内容(基于它们对应的标记)的记录从而产生数据群180的集合。分群引擎130能够运行在“批处理模式”(或“离线模式”)下,其中数据源100中一批记录内的所有记录一开始就能全体用于比较,或者运行在“增量模式”(或“在线模式”)下,其中将所述记录处理成它们所到达的已经过处理的记录集合的形式。
在一些实施方式中,批处理模式用于得到初始群,而后续记录则以增量模式来添加。而后添加数据无需从头对积累的整个数据组重新群。除了显而易见仅处理添加记录的性能优势外,其还有附加的益处,即在新数据到达时之前确定分配给群的记录无法改变,而如果从头重新分群整个数据组则有可能发生改变。这在业务环境中分群时尤为重要,因为群及其成员具有独立于分群处理的业务上的含义,并且如果是仅仅因为有更多数据变为可用而群成员身份就能有变化,则业务不会顺畅。
分群库170,包括搜索库146和代表记录库178(见图1D和图1G),通过分群引擎130来维护并参与到分群处理中。在一些实施方式中,除了分群库170外,来自变体剖析器110和变体网络分析器120的结果在分群处理期间比较记录类似性时可纳入考虑。
数据群是这样的数据记录的组,这些数据记录的内容被判定为足够类似。群中包括的数据记录被称为该群的成员。在一些实施方式中,群中的记录表现出与该群其他成员的高度类似以及与其他群成员的低度类似。
分段(segment)是这样的数据记录的组,这些数据记录可相互进行用于群中成员身份的比较。不同分段中的记录并非由分群引擎130来比较,并且必要地将被分配给不同群的成员身份。将数据组中的记录放置到分段中称为分段。一个记录可以是一个以上分段的成员。在一些场景中,存在自然分段,该自然分段是基于在整个分群中预期为共同的值,例如,将记录的集合划分成不相交组的分类标识符,类似于产品标识符或者像邮编或原产国那样的地理量值。在一些实施方式中,可基于其他标准来给数据群进行分段,例如,可基于政府分配标识符的片段来对数据分段。在一些实施方式中,多个级别的分段是可能的。例如,数据首先可按原产国分段,每个原产国分段内的数据群可进一步按政府分配标识符的片段来分段。
进行并行处理时,在一些实施方式中,每个分段可传递至分离的处理分区,因为在不同分段中的记录之间并不进行比较。在其他实施方式中,假定分群引擎130所使用的某些数据(包括搜索库)由所有分区共享,相同分段中的数据记录可被分区以隔开要并行处理的分区。
在涉及远程处理系统之间受限的或单向的信息流的一些实施方式中,像搜索库条目等查询及共享信息可单向传递至受限的远程处理系统,而从受限的远程处理系统来看免于妨害结果的可靠性。例如,一些国家限制个人信息跨国界共享:一些国家禁止数据出口至所有其他国家(例如瑞士)而其他国家禁止数据出口至包括美国等所选的其他国家(例如法国)。在图1B中,由用户22在US 21发起查询20。该查询可能由个人名称、政府分配标识符以及生日组成,且该查询的目的是找到由该名下个人拥有的所有银行账户。该查询应用至在US 21中持有的数据群23,且返回某些记录(称为候选项记录)。可检索诸如来自搜索库146的搜索条目或者来自代表记录库178的代表记录等附加信息并保持其作为该查询的结果。该查询、候选项记录以及可能的附加信息可被传送40至选择数据出口国41以由本地用户42针对该选择数据出口国41内持有的数据群43进行本地分群。类似地,该查询、候选项记录以及可能的附加信息可被传送50至禁止数据出口国51以由本地用户52针对该选择数据出口国51内保持的数据群53进行本地分群。分群的结果在受限数据出口国内将可用于适当的本地操作,例如,用于欺诈检测或法律实施。受限数据出口国出口其数据或其共享信息(例如搜索条目或代表记录)的失败意味着从受限数据出口国的数据中得到的群成员在该国外部将不可见。该受限国外部分群数据的完整性不受影响。
在一些实施方式中,通过将对来自一个或多个字段的数据记录进行比较结合到使用记分功能的记分和业务规则中来测量记录的相似性。诸如搜索代码和匹配代码等数据图案代码用来总结记录的特征,并且用于帮助制定用于测量相似性的业务规则以及向用户102展现结果。例如,用于记录的搜索代码可标注记录组之间共享的标记的组合,而用于配对的匹配代码可对匹配质量以及要进行比较的每个字段或字段组合的填充状态(state ofpopulation)进行编码。例如,一对比较字段值的匹配代码内的匹配质量状态可包括“准确匹配”(如果这些值相等)或者“模糊匹配”(如果相似性打分大于模糊匹配阈值)。匹配代码内的填充状态可包括“无填充1”(如果配对的记录1中的值为空或空白(零或更多个空格字符))或者“关联填充”(如果配对的记录1和记录2中的值要么均被填充要么均为空或空白)。从表征搜索或匹配对的不同属性的这些编码状态的汇聚中汇编出搜索代码或匹配代码。具有每个搜索代码的样本记录,或者来自具有每个匹配代码的匹配对的样本记录,可显示给用户。这会帮助用户形成、改善和调节用来作出群成员身份决策的相似性测量。
可采用分群认可引擎190通过与用户交互来反复改善分群决策。用户102通过用户界面104作出一系列的分群认可决策,例如,将一记录确认为一个群的成员或者将一记录重映射至新的或已有的群。仅有被选择的记录需要由用户102重映射来分裂或融合整个群。潜在会受分群认可决策影响的记录通过分群引擎130识别、检索并再处理以产生改进的数据群180。个别记录的重映射对于群成员身份有级联效应,这在受影响的记录被重分群时导致已有群的分裂或融合——与群的初始主位记录相比更接近重映射记录的那些记录将随重映射记录一起移动至其新群。在用户界面104中可为用户102显示数据群的“前-后”表示,以验证由用户的分群认可决策引发的改变。由于重映射所引起的级联效应,用户能够用少许很明智的改变来操控很多记录的部署,而无需对每个个体记录的放置加以微观管理。
1.2分群引擎
图1C示出分群引擎130的示例的元件。在一些实施方式中,数据源记录100或标记化记录118由分段引擎132读取并分成多个分段,和/或由并行分区器134在多重处理中加以分区以用于并行处理。
在一些实施方式中,初始或标记化的记录组可被分类136(在每个分段和/或处理内)以加以排序,该排序反映记录的可区别性或丰富性,其中更易区别的记录在先。这可改善群的质量。可区别性旨在具有这样的意义,具有更充分填充的字段、包含不同值和多个标记的记录在直观上比那些可能不完整、包含未填充字段及字段填充有默认值或单个标记的记录要更易于与其他记录区分开。
例如,一个可区别性标准可以是基于记录的特征填充图案而定。填充图案码可用来通过例如为记录中一个或多个字段或字段组合的选择组连结(concatenate)一组值来对记录的填充状态进行编码——例如,如果该字段未填充(无、空或空白)则值为“0”,如果包含默认值则值为“1”,并且如果该字段填充有非默认值则值为“2”。可使用其他更高的值来对字段填充状态之间进行进一步的量化区分,例如,在文本字段中的标记数目(如果数目超出“9”则在其他码值的表示中作出适当补偿)。在填充图案码中可将可区别性分值计算为不同填充值的权重分值。更高的分值将表示更易于区别的记录,并且组织记录的分类136可以是对可区别性分值的降序分类。(通常,分类排序可由非数字可区别性标准来确定,诸如填充图案码,而无需一开始就转换成分值)。可使用包括像给定源和字段(或语境)中每个标记的显著性的统计测量那样的变体剖析器分值115中的数据来构造更正式的可区别性测量。
进行可区别性分类136的目的在于其导致更好的分群结果,因为群成员身份决策处理是增量式的:记录随着被处理而被分配给群。尤其是,群的数目一开始是未知的,随着记录的处理而发现新的群。可区别性排序被设计用来与群成员身份决策处理一起作用以产生与群成员身份决策处理兼容的最大数目的不同群。经验显示,如果首先处理可区别性分值低且常常伴随着较低数据质量的记录,它们倾向于引发否则可区分的群的汇聚(agglomeration)。
在一些实施方式中,可优选地以数据质量级联的方式来执行分群,在该方式中具有实质不同数据质量的记录被分开处理。例如,对于具有客户姓名、政府id和生日的银行记录,值得将填充有全部三个字段(具有非默认的值)的记录组与那些填充有两个字段(具有非默认的值)的记录组、以及那些仅填充有一个字段的记录组分开进行处理。随着记录的完整性降低,群成员身份决策的可靠性也下降,而分离的群经过可辅助用户理解这样的影响。可在用户界面104中为用户102将可区别性分值不同的记录对应地以图形显示方式加以标示。例如,可以可区别性从高至低变动的梯度规格(gradient scale)来给记录着色,从而使用户一眼就能看到哪些记录可靠性较低。用户界面104还可具有用于打开和关闭用不同可区别性范围显示标记的开关,从而也使用户能够关注给定质量的数据。这里,可区别性在这里被用作为数据质量的代名词(proxy),但图像显示也能够使用独立于用来驱动群的可区别性分值而得到的数据质量的直接测量。
分群引擎130包含候选项搜索引擎140,其从可用于比较的记录组中识别出与每个初始或标记化记录匹配的候选项,称为查询(query)记录。如果通过候选项搜索引擎没有检索到记录,则生成新的群id并分配给该查询记录。将关于该新群的适当信息存储在分群库170中。如果通过候选项搜索引擎检索到记录,则在进行群成员身份决策之前由计分引擎150来对检索到的记录针对查询记录具体进行计分。群成员身份引擎160确定被计分的查询记录的群成员身份。由变体剖析器110产生的变体剖析器库115和由变体网络分析器120产生的变体网络库126以及其他分群库170都可由候选项搜索引擎140和计分引擎150用来辅助对候选项记录识别和计分。
在一些实施方式中,例如在不同的分段以及使用不同分群策略的分离的分群途径中,单个记录可分配给多个群。可使用多重匹配调和器165来调和所述分配以将每个记录关联至单个群。
在一些场景中,例如在信息不足以在可选匹配之间区分时,当一记录接近一个以上群的成员身份时,在已经调和多重匹配之后还可保留有与多个群的模糊匹配。例如,假设存在两个不同群,标签有名称“顶点工业(Acme Industries)加拿大”和“顶点工业澳大利亚”。查询记录“顶点工业”同等匹配这两个名称。在没有其他信息时,“顶点工业”应当分配至哪个群是模糊的且不能分辨。在这种情况下,可在用户界面104中将模糊匹配通报并显示给用户102,在分群(匹配)后记录的网络的图形显示中可用独特颜色来标识涉及模糊匹配的记录。
在一些实施方式中,群成员身份决策处理可将模糊记录分配至可能的可选群中的一个群。对于涉及配对有模糊成员的群成员身份决策的群中的每个成员,用户界面104可用一个颜色显示从模糊记录到成员身份已得到承认的分群的配对成员的边,并用不同的颜色显示已经否认成员身份的群的对应成员的每个边。(例如,在图11D中,模糊记录1190与匹配群1193的成员1193之间的边用黑色显示,而模糊记录与不匹配群的成员1194之间的边用灰色显示)。这一显示可使用户102能够容易地将群成员身份引擎作出的决策与接受或修改该群成员身份引擎的分配之前恰好可用的替代选择分开。
候选项搜索引擎140的目的是通过执行仅检索符合最低相似性标准的记录的搜索来减少需要与查询记录具体比较的记录的数目。实质上可用于比较的记录组(批处理情况下分段中的所有记录)编有索引,从而可将针对索引的搜索用作快速、低计算成本的过滤器以丢弃那些不可能匹配的记录。分群引擎130的性能很大程度上受到候选项搜索引擎是否成功地缩小了具体要考虑的记录组的影响。
1.3候选项搜索引擎
图1D概要示出候选项搜索引擎140的示例的要素。从数据源记录的组100P或标记化记录118P读取查询记录。如果初始或标记化记录已经过分段和/或分区而被并行处理,则该查询记录可处在分段中和/或处在并行分区中。查询基于预定义或用户指定的过程而定,该过程从查询记录的一个或多个字段或者字段组合中选择一个或多个标记,并且该查询是由查询构造过程142从所选的标记或所选标记的组合中生成。在一些实施方式中,生成的查询由查询扩展引擎143扩展为包括一个或多个指定查询的扩展查询。
在一些实施方式中,涉及通过计分引擎150确定群成员身份的被称为计分字段的字段集合可通过计分引擎150所使用的计分规则找到。计分规则被指定在预定义或用户指定的规则组中,其中一个或多个字段或者字段的组合被分别进行相似性的比较,且随后中间字段分值的集合被结合以计算整体记录分值。规则组是规则的集合,通过结合输入值、常量、参数、其他中间值、其他输出值、以及查找一个或多个基于示例(case-based)的分配组中其他数据组而得到的值,每个规则计算一个或多个中间值或输出值,该计算可使用内建逻辑和数学运算、内建函数和用户定义函数的结合。规则组可产生一个或多个输出值,其中一些可为矢量。计分规则组中的计分规则将采用从输入数据记录选择的字段,且这些字段被统称为计分字段。
在计分字段中共享相同值的记录组将共享相同的群会员身份决策。计分字段去重复(deduplication)模块144保证这样的记录组中仅有第一个记录被传递用来计分,而后续的记录则简单地集成群会员身份结果。
搜索条目扩展引擎145被应用至全输入数据源100中的记录或者已有数据群记录180的组以构建搜索库146。
查询记录被传递至候选项搜索引擎140的核心搜索引擎147。搜索引擎147收取每个扩展的查询并返回查询记录和识别候选项匹配记录之间可能的候选项匹配的特有记录标识符的一个或多个列表。这些列表被传送至群候选项选择器148,其应用预定义的规则和/或用户指定的规则(例如,规则组)来识别符合值得投入计分引擎150详细计分的最低标准的候选项匹配记录的列表。在一些实施方式中,表征查询记录与可用记录之间匹配的标记组合的搜索代码既用来促进选择处理还用来回溯地剖析及选择处理。
1.4变体剖析器
图1E概略示出变体剖析器110的示例的要素。变体剖析器110可使用多种用于生成识别变体标记的配对的存档(archive)的技术中的任意技术,包括诸如在名称为“管理用于近似字符串匹配的存档(Managing an Archive for Approximate String Matching)”的美国专利公开第2009/0182728号中描述的一种用于产生存档的处理。记录读取自数据源100。它们在数据准备模块111中被准备以用于分析,包括由标准化器112和标记化器113进行处理。标准化器112应用预定义的规则和/或用户指定的规则基于所选字段(或者指派的字段组合)的性质和含义来对输入的数据标准化。例如,字符串值可处理为小写字母,而特定的标点字符或可删除、或可用空格字符代替、或二者兼备(可能导致多重记录)。根据字段的性质和含义,标记化器113基于应用至字段中值的预定义规则和/或用户制定规则来识别标记的列表。例如,地址的地段线(street line)可基于空格字符而分离成单词列表,而像“New York(纽约)”那样可能包含表示语义单元的值的城市字段则不被分离成单词。标记化器113产生标记化记录118的数据组或数据流,用于由分群引擎130进一步处理。
标记化记录的不同标记也由变体剖析引擎114来剖析,包括对每个标记的实例的数目(例如其中出现标记的记录的数目)计数。在一些实施方式中,识别其中出现标记的数据源、字段、和/或语境(字段的逻辑分组)的关键可与标记相关联,且标记的实例的数目的对应计数可得以保持。这样能够对不同源、字段、或语境中出现的同一标记编制进行分离的统计。在一些实施方式中,识别给定字段或语境中出现标记的记录的位置信息也与标记相关联。该位置信息可为位元向量(bitvector)的形式,可选地经过压缩,其中对于出现标记的每个记录都设置一位元。位元的顺序可明确或隐含地映射至记录的位置。
变体剖析引擎116进而基于标记相似性测量来识别互为变体的标记。可以有很多标记相似性测量。一种是基于编辑距离来比较标记的相似性。莱文斯坦(Levenshtein)编辑距离对将一个单词转化为另一单词所需的插入、删除和替代计数。两个单词越相似,它们的编辑距离越小。另一种测量是基于语音相似性(例如使用探测法编码)来比较单词。
第三种可能性是比较共享字符的序列。通过对共享字符的数目进行计数并除以较短字符串的长度可计算基本序列相似性分值。然后通过对序列之外的字符和字符串长度的差别从基本分值减去权重扣分来形成全序列相似性分值。例如,“eqty fnd”和“equityfund(股票基金)”分别从可能的8个字符和11个字符中共享8个字符(包括空格字符)。基本相似性分值为1。不存在序列之外的字符,且长度差为3。因此,在长度匹配权重为0.05时,序列相似性分值为1-0.05*3=0.85。
在一些实施方式中,变体剖析引擎114产生变体剖析器库115,包括识别变体配对及其相似性分值的分值存档以及包含源-字段-语境出现、关联计数、位置信息、和变体标记列表及它们在同一源-字段-语境中的计数的每一个中每个标记的变体存档。变体网络116可由变体存档计算而来,该变体存档中每个节点为标记且每个边为变体标记的配对。变体网络116可图形显示在用户界面104中,在这里用户102可操控变体网络116,可能包括添加边以链接未被变体剖析引擎114识别为变体配对的标记,或者删除与仅仅是基于相似性而非语义的变体的标记连接的边。
在一些实施方式中,可通过整合外部数据106来充实变体剖析器库115和变体网络115。外部数据106可包括由用户提供或从第三方可获得的同义词和缩写的列表。外部数据源的一个示例为姓名的文化类变体列表,包括昵称、替代拼写、和替代音译。例如,这样的数据可通过将外部数据中的所有标记及其蕴含(entail)的变体配对添加至变体剖析器库115和变体网络116、或者通过仅添加这些数据中存在的标记之间的配对来加以整合。在前一种情况下,与不存在于数据中的标记相关联的计数应当为零。如果这一标记应在将来的处理中出现,则可增加其计数,但与其他标记的隐含链接将已经存在。1.5变体网络分析器概述
图1F概略示出变体网络分析器120的示例的要素。变体网络116被读取且网络分析引擎122实行网络分析。在一些实施方式中,该网络分析可识别变体网络116内变体标记的连接组件的组并执行进一步分析,其中一些在下文加以说明。用户102可在用户界面104中观察变体网络116的图形显示,其中每个标记显示为一个节点,而每个标记变体配对由一边指示。可用表征节点和边的信息来修饰图形显示,例如下文所列举示例中的信息。用户102可使用用户界面104交互地修改变体网络116,添加或删除节点或边或者编辑修饰信息。
可显示标记的本地邻居。由网络分析器122实行的邻居分析可在图形显示中识别并标示正标记(可与其本地或其他邻居中的其他标记在统计上区别开的那些标记)以及连接正标记匹配对的边。
每个标记的实例的计数可在显示器中示出,并且在一些实施方式中可由用于节点的图标大小来以图形方式指示。可识别出连接的变体没有更高计数的标记,连带它们的典型邻居(通过从最高计数的标记开始接着是相等或更少计数的标记的所有变体配对来形成的标记树),并显示。标记代表是被选择来代表所选邻居中所有标记的标记。标记代表选择器124可从每个连接组件中选择一个或多个标记代表,例如典型邻居的最高计数标记。与标记代表关联的典型邻居或其他邻居可能会重叠。
从变体剖析器库115提取的标记的显著性表示哪些标记在用作搜索项时相对更有区别性。所选标记的显著性是通过位于该所选标记的本地邻居中且与该所选标记相关联的变体的计数计算而来。由于变体配对标记可具有不同的本地邻居,所以它们的显著性可能不同,因此将显著性关联至每个标记的重要性也不同。显著性是可在变体网络的图形显示中用颜色渐变显示的另一性质。
本地邻居的(辛普森)多样性是与每个标记关联的另一个量。经过归一化时,辛普森多样性反映指派标记的变体计数分布的偏斜(skew)。未经过归一化的多样性量级是随机选取标记的变体将具有的期望计数。如果指派标记的第k个变体的计数为nk,则变体的总数(不包括该指派标记)为整个k上nk的总和。多样性为:
多样性=<nk>=∑k变体中nk pk=∑k变体中nk 2/N
其中
N=∑k变体中nk
为变体的总计数,而
Pk=nk/N
是随机选择的出现将与第k个变量相关联的可能性。为了归一化显示的多样性,除以∑k变体中nk来得到0与1之间的量。多样性对于识别相关标记之间的链接是有用的,因为标记的相关性隐含了低多样性。这给出了用来识别正标记的类似但不同的测量。
网络分析的结果可存储在网络分析库126中,在一些实施方式中包括标记代表库127和邻居分析库128。标记及其关联的标记代表可存储在标记代表库127中。邻居分析库128可包含从网络分析搜集的信息,包括正标记、标记的变体配对、以及典型邻居。
1.6分群认可处理概述
图1G概略示出分群认可引擎190的示例的要素。用户102可使用用户界面104来检查群成员身份决策。模糊的群成员身份决策(其中一个记录与一个以上的群足够近似而不足以成为可能的成员)可由分群引擎130加标志并由用户102解决。示出的引擎190的要素对应于可由用户输入发起的动作。
记录可被确认192为给定分群的成员。将记录的特有记录标识符和关联确认群的群id配对的决策可存储于分群库170的确认或排除库172中。如果确认的记录被提交给分群引擎130,通过其特有记录标识符(在确认组中)出现在确认或排除库172中来证明,则确认群的群id将被通报而无需进一步处理。
记录可从给定群中排除194。该决策可存储在分群库170的确认或排除库172中。如果排除的记录又被提交给分群引擎130,则其将被阻止于所排除群的成员身份外,并且必要时将被分配给不同的群(可能是新的群)。
记录可重映射196至其他群。尤其是,通过分配一个或多个记录至新群可将群分197成两个或更多个部分。在很多情况下,仅对选择的独特记录重映射才是必要的,因为在重处理时,比原始分群主位记录更类似那些记录的记录将跟随重映射的记录到其新群。多个群还可通过将一个或多个记录重映射至已有群而融合198成一个群。同样,在很多情况下,在重分群之前只有重映射选择的独特记录才是必要的。
2示例
2.1变体剖析器和删除-添加过程
变体剖析器110识别变体的配对、测量它们的相似性、并将变体标记配对及其相似性分值存储在变体剖析器库126中。在一些实施方式中,变体剖析器110计算所有标记配对之间的编辑距离并存储编辑距离(“相似性”)低于预定阈值的标记配对。莱文斯坦编辑距离对将一个标记改编成另一标记所需的最低数目的插入、删除、和/或替换计数,并且是一种广泛使用的印刷(typographical)相似性的测量法。可惜,比较所有标记对的方法是低效的,因为绝大多数标记对没有相似性,所以付出很多计算努力可能都没什么好处。
删除-添加过程像莱文斯坦编辑距离那样基于印刷变体测量标记的相似性而设,但被设计用来只比较那些相对较接近的标记,从而节省估算很多不相关标记的计算成本。这在名称为“管理近似字符串匹配的存档”的美国专利公开第2009/0182728号中有更充分的说明。
在一些实施方式中,删除-添加过程按以下方式进行。对于标记字典(即标记的目录或列表)中的每个标记或者一部分标记字典(例如,给定源、字段、和/或语境),作出通过从标记删除单个字符的每个变体。该用于给定标记的“删除组”包含条目的列表,每个条目都有识别初始标记的键(“标记_键”)、初始标记(“初始”)、删除变体标记(“删除_变体”)、以及已经从初始标记中删除的字符的位置(“删除_位置”)。删除组的汇聚可与标记字典一起存储于变体剖析器库115中,或者可在被变体剖析引擎114用来生成也存储于变体剖析器库115中的变体配对后丢弃。
初始标记可与删除变体一起被包括在删除组中,其删除字符位置为0。例如,以下为标记LONDON(伦敦)的删除组:
Figure BDA0001580050240000241
Figure BDA0001580050240000251
注意,{标记_键,删除_位置}是识别给定删除变体的特有“键”。
删除-添加过程可扩展到一个以上的删除。在一些实施方式中,可记录删除位置的序列以在给相似性计分中使用。在一些实施方式中,删除位置可不予以保留,而计分则可使用替代过程来完成。
通过对删除_变体标记执行添加(或查找)操作,可使用类似于删除-添加过程的过程来确定一个或多个字典中标记之间匹配的变体。添加/查找操作是快速且选择性的。共享一删除_变体标记的两个标记的区别至多为每个标记中一次删除(对于删除-添加1变体),因此它们在编辑距离上“接近”。这提供了删除-添加过程的潜在优势:通过仅识别那些近得足以值得计分的配对来减少需要计分的配对数目。在一些实施方式中,删除_变体上配对的标记之间的相似性分值是使用预定义或用户指定的相似性函数直接在关联的初始标记之间计算而来。例如,通过使用莱文斯坦编辑距离或其他一些编辑距离测量法计算配对标记的编辑距离来比较两个配对的标记。删除-添加过程的应用具有减少分值配对的数目而使用户能够采用任意理想相似性计分过程的优势。
在其他实施方式中,变体配对的质量通过比较删除字符的位置来计分。这提供了像编辑距离那类测量法的快速计算,该计算运用从删除-添加过程搜集的信息(而莱文斯坦编辑距离计算有效地以标记配对完全重头开始)并允许定制分值以强调配对的特征。在计算相似性分值过程的一个示例中,可如下为不同类型的改变分配分数:删除(或插入)为1分,改变第一个字母为1分,改变最后一个字母为1分,如果删除的字符间隔一个位置以上为1分。与每个类型的改变关联的权重是可调整的。如果一个标记的删除位置为0,而其他并非如此,则其为单个插入或删除。如果删除位置相同,则其为替换项(substitution)。如果删除位置相差1,则其为调换(transposition)。忽略具有相同标记_键和删除_位置的匹配,因为他们是准确的匹配。在相同标记中指示成对字母删除的匹配也因准确匹配而被忽略(例如,MEET(配对)在一个实例中可通过删除字符2而在第二实例中通过删除字符3变形为MET:该配对简单地返回了共享的标记MEET)。
接下来是来自对于初始标记LONDON,LODON,LOMDON,LODNON,LODOON的各删除组选择的条目的示例。
Figure BDA0001580050240000261
在一个示例中,已经废止了很多的删除变体条目,因为它们并未通向受关注的匹配。当第一条目和第二条目均具有相同的删除_变体值时,添加操作会将第一条目与第二条目配对。得到的初始标记的变体配对为:
Figure BDA0001580050240000262
以上的示例变体匹配代表标记0-删除、替换、调换、不同路径得到的调换、隔开的插入和删除、以及标记0-插入(或标记1-删除)。存档中的每个标记配对代表关联相似性分值表示匹配质量的变体匹配。
使用上述的分值,这些配对的相似性分值如下:
Figure BDA0001580050240000271
在这些情况中,相似性分值有效地对应于变体配对之间的编辑距离。基于单字符删除的删除-添加过程找到所有编辑距离1的变体配对(插入、删除和替换)和一些编辑距离2的变体配对(调换)。因为删除_位置间隔超过一个,分离的插入-删除的分值已经通过额外的罚分(penalty)而得以定制。
在计算一配对的相似性分值之后,通过应用阈值至相似性分值或应用条件在配对性质上来做出匹配决策。例如,这里基于相似性分值的规则可以是如果相似性分值为2或更低则变体配对代表变体匹配,由此排除将分离的插入-删除配对“LONDON LODOON”识别为变体匹配。
作为给配对性质施加条件的示例,可构造称为匹配码的代码,其对该配对是涉及插入、删除、替换,或者改变的字母是第一个还是最后一个字母,或者删除_位置是否被隔开一个以上的位置等信息进行编码。在一些实施方式中,这样的匹配码可被构造为位图(bitmap),其中针对识别的每个条件设置一位或多位的组合,而在其他实施方式中,匹配码为由一连串对每个条件编码的子字符串组成的字符串,或者仅仅是保持有该信息的记录结构。匹配码是对可能有助于相似性计分的信息进行编码的数据模式代码(data patterncode),而并非分配具体的权重或限定函数来计算实际分值。这允许将识别或不接受匹配的一般条件直接应用于匹配代码而无需经过计算分值的步骤。例如,这里,变体匹配可以是由匹配代码表示不具有分离的插入-删除的任意变体配对。
2.2变体-搜索
变体-搜索操作构成候选项搜索引擎140一些实施例的操作的基础。图2A-图2D示出变体-搜索操作的示例。参见图2A,读取原始查询200用于处理。在该示例中,这是数字字段,诸如值为“82536”的政府id。需要在数据组220中找到变体的匹配政府id,使该政府id与原始查询的区别至多为一个替换项。这相当于要求两个匹配的政府id具有的汉明间距(hamming distance)小于或等于1。汉明间距是对等长的两个对齐字符序列之间失配字符数目的计数。
数据组220可为磁盘上保存的参考数据组或者内存中保存(例如在内存中添加操作期间)的临时数据组。
对原始查询200应用作为查询扩展过程的删除-添加过程的第一步骤,以生成205称为扩展查询210的删除组。扩展查询210包括多个条目,每个条目包括两个值:删除_位置的值(在标签为“del_pos”的标题下),以及删除_变体标记(在标签为“del_var”的标题下)。类似地,对数据组220中的每个条目应用搜索-条目扩展过程以生成删除组225,其随后被写入搜索库230中。
参见图2B,在搜索库230中查找扩展查询210中的每个条目以找到匹配条目232。然后在数据组220中查找237匹配条目232中的键235以检索数据组记录以用于进一步处理。数据组220中汇聚的匹配记录全部为符合id字段与原始查询id200汉明距离小于或等于1这一要求的变体匹配。在该示例中,原始查询id“82536”对于“82436”和“82538”均为汉明距离1的匹配,但对“85236”不是(汉明距离为2)。
参见图2C,放松对id的匹配需求以允许删除-添加1的匹配。如上所述,这包括所有编辑距离1的匹配、以及调换(transposition)和分离的插入-删除。原始查询200和数据组220如前所示,且如前所述通过由原始查询200形成数据组以及形成删除组220中的每个id来构造扩展查询210和搜索库230。在该示例中,来自扩展查询的查找仅使用del_var。这样来找到之前汉明距离1的匹配还有新的匹配236。匹配条目236中的键237是在数据组220中查找238以检索数据组记录而用于进一步处理。在该示例中,原始查询id“82536”是对数据组id“85236”的涉及调换的删除-添加1的匹配。
图2D图示出一般示例。原始查询200G经过查询扩展205G以给出扩展查询210G。查询扩展205G产生两个或更多个条目,包括一个或多个搜索键且可选地包括初始原始记录或者来自由其得到原始查询的查询记录的附加信息。数据组220G中的每个条目由搜索-条目扩展过程扩展225G至搜索库230G中的两个或更多个条目。搜索-条目扩展225G产生两个或更多个条目,包括一个或多个搜索键且可选地包括来自数据组记录的附加信息。搜索-条目扩展225G无需对数据组220G中的每个条目都产生不同的搜索-条目,因为数据组220中可能存在重复(duplicate)的键。搜索-条目扩展过程225G无需是与查询扩展过程205G相同的扩展过程。
在搜索库230G中使用变体-查找过程232G查找每个扩展的查询搜索键(多个)231G以找到匹配条目233G。查找过程232G可对查询搜索键231G执行计算,从而不必与搜索条目搜索键233G相同。然后使用对应于匹配搜索-条目搜索键233G的数据组键235G来查找236G并检索数据组220G中具有数据组键235G的所有记录。
2.3变体网络分析
2.3.1变体邻居
变体邻居是与一系列变体配对(也称为变体关系)有关的标记组,可能包括由外部数据106指定的变体配对,诸如同义词、缩写、文化类变体等等。在一个实施方式中,变体剖析器110使用删除-添加过程剖析待分群的数据源100以检测并识别相差至多一个插入和一个删除的印刷变体。这涵盖了单个插入、删除、和替换,还有调换和分离的插入/删除(例如“hello(你好)”和“hillo”为删除-添加1的变体)。在变体剖析器库115中,每个标记具有一关联列表的一个或多个变体,随着更多的记录被处理该列表可在线更新。然而每个变体也具有其自身变体的标记。通过接续由删除-添加过程或其他相似性测量形成的一系列变体配对而得到的标记组限定一邻居。该闭合组被称为闭合邻居且在图形变体网络中形成连接的组件,其中那些标记为节点,而变体配对为边。具有从外部数据106或用户提供输入(例如同义词、替换拼写、文化类变体等等)得到的变体标记配对的补充相似性变体配对会导致更大的相关标记的邻居。
在图3A中,变体存档300包含在数据组记录中出现的标记的列表;每个标记(标签为“标记”)具有其在数据组的字段(或语境)中出现次数的关联计数(标签为“计数”)(例如,标记在字段中出现的记录个数),以及每个标记的变体标记的列表(标签为“变体”),还有它们在数据组的同一字段(或语境)中出现的次数(标签为“变体_计数”)。通过取每个标记作为节点并连接每个标记与其每个变体可构造与变体存档300的内容对应的变体邻居网络图310。每个节点与其计数关联。在一些实施方式中,将这些节点排布为使得计数越高的标记在显示中位置越高(例如,根据标为“计数”的垂直轴),这提供了有用的图形视图,允许容易地区分常见和罕见单词。变体邻居网络的连接组件为有向非循环图,并且是连接集中标记的相似性关系的传递闭包(transitive closure)。数据组的全网络图可包括很多这种非连接的图示。
2.3.2标记代表
标记代表是所连接的邻居的选取标记。在一些实施方式中,邻居中的每个标记可被该邻居的标记代表取代。这就具有这样的效果,对于该标记代表的搜索将返回与邻居中任意变体关联的所有记录。因为这样会减少循环遍历变体的变体搜索期间的工作量,这是理想的。简单的变体搜索是搜索每个标记然后搜索其每个变体。每次碰到标记都必须进行变体的循环遍历。如果用标记代表来取代邻居中的所有变体标记,则每次碰到任何变体标记时,对标记代表的简单查找便足以返回所有变体匹配。
此外,用变体标记的邻居可提供对变体搜索的传递性的测量。变体-配对关系并非传递性的,因为如果B是A的变体-配对,而C是B的变体配对,则C不一定是A的变体配对。例如,考虑删除-添加1的变体配对。标记“chicago(芝加哥)”是“chicago#”的变体,而“chicag0”是“chicago”的变体,但“chicag0”并非“chicago#”的删除-添加1的变体。
然而为了变体搜索的目的,在搜索A或搜索B时找到的记录组相同是理想的。这是因为,如果A是B的罕见变体,则与A所图“实际”标记关联的记录较多都是搜索B所找到的标记。例如,搜索“chicago#”及其删除-添加1的变体将找到“chicago”与之匹配,但其将漏掉像“chicag0”那样“chicago”的其他匹配。
由于变体-配对并非传递性的,所以实现更多传递性的唯一方式就是扩大搜索A或B时所包括的标记的邻居。对于邻居搜索标记代表则确保邻居内的所有标记返回相同的记录。当然,由于已经将搜索扩展到个体标记的本地邻居以外,所以检索到标记的一些配对可能无法匹配,因为这些标记太不相似。这是无法接受的,因为基于来自其他字段的强劲分值关联记录仍然可匹配。这些不能找到的匹配并非搜索返回的适当候选项。
闭合邻居是对于选择邻居的变体关系的传递闭包所找到的邻居,也即,其为一连串变体配对能够达到的所有标记的组。可选取该闭合邻居中的任意标记作为标记代表,只要其被用作为邻居中所有标记的标记代表。然而,随着数据组变得更大且因为出现更多的变体填充在否则未连接的闭合邻居之间的空隙而变得更加多样化,导致闭合邻居的联合(coalesce),闭合邻居会变得过大而不可用。这就得着重考虑其他类型的邻居。
在一些实施方式中,标记代表是不具有更高计数的变体的标记。在图3A中,典型邻居320包括通过从标记代表开始随后是将一个标记连接至另一计数相等或较少的标记的链接而达到的所有标记。一个标记可属于一个以上的典型邻居。该标记是典型邻居的代表标记。
在图3B图示出的一个实施方式中,可通过首先将变体存档300按计数降序分类且丢弃变体_计数<计数的所有变体来计算标记代表和典型邻居,以得到经过修剪的变体存档330。没有变体的条目都是标记代表且马上被添加至标记-代表向量库340中。随着经过分类的变体存档中的记录被处理,每个标记被写入至标记-代表向量,作为标记及包含其自身的标记向量。对于每个非-标记-代表,在标记文件中查找342与其变体关联的标记-代表向量。对这些标记向量的联合进行计算以找到不同标记-代表344的组,并将得到的标记-代表向量与标记346一起写入至标记文件。
在另一实施方式中,标记代表可被识别为计数大于某一标记阈值的所有标记,除非这些标记通过词干提取(stemming)(例如复数形式)而相关时,在这种情况下,词干-相关(stem-related)的标记可被保持为同一典型邻居中的变体,且计数最高的词干-相关标记是标记代表。这用来打断常见标记之间的链接并减少典型邻居的尺寸。为了找到标记和典型邻居,可以应用之前的算法,针对每个标记的计数在所述标记阈值以上的所有标记的配对进行修正,变体标记被打断,且之前经过配对的标记被添加至标记-向量文件作为标记代表,也即作为没有更高计数的变体的标记。
这一实施方式的变化是将属于特定字典或标记列表(依然警示(caveat)词干-相关的标记)的所有标记限定为标记代表。这样标记便不必共用;它们只需由某一权威(autority)辨识为不同的标记。
在一些实施方式中,诸如同义词、缩写、文化类变体等基于外部数据106配对的变体标记可被考虑为与它们所配对的标记相同的典型邻居的成员,尽管在某些情况下,能够将它们排除在典型邻居之外(有效地,关闭配对)是有价值的。对标签及其起源(例如来自外部数据106或来自变体剖析器110中所使用的特别相似性测量进行标记,提供了有效的手段来控制来自任何源的配对变体标记的处理。
2.4分段
在图1B的示例中,从数据源100或标记化记录118读取的数据记录被提供给分群引擎130以用于处理。在一些实施方式中,可将数据记录发送至分段引擎132。分段引擎基于被称为分段值的值来为数据记录分配分段标识符。然后可基于分段标识符由并行分区器134对记录进行分区,以便发送给不同的接收处理实体,这里每个具有相同分段标识符的记录被发送至同一处理实体。处理实体例如可包括诸如CPU(例如多核处理器中的一个核)或计算机等处理节点、或者在CPU上执行的计算进程或线程。
在一些实施方式中,可从应用至初始记录100或标记化记录118的用户指定的表达和/或实时提供的信息(例如,处理数据的数据中心的位置或者数据组的名称)得到所述分段值,也许会使用用户指定规则组中限定的函数。具有相同分段值的记录接收相同的分段标识符(如果它们是使用同一表达得到的),但具有不同分段值的记录取决于分段方案可接收不同的分段标识符或者也可接收相同的分段标识符。例如,分段值可能象征数据记录来源的国家(其可能是隐含的,比如基于处理记录的数据中心的位置;或者是显性的,如记录中的字段)。在一些实施方式中,策略标识符用于区分分段标识符的组。例如,数据记录来源的国家可具有一个策略标识符,而记录中命名个体的出生国家可具有一个不同的策略标识符。这允许分段值和分段标识符覆盖重叠的范围,而无需保留它们之间的对应。
分段的一个用途是将记录的单个分段从记录的较大组隔离,以减少为了找到匹配而必须比较的记录数目(在分群或其他匹配操作期间)——只有分段标识符(以及策略标识符,如果有的话)准确匹配的记录才是匹配的候选项。在该示例中,随分段之后将分段的记录分区至多个处理实体中以用于分群算法的并行化。这里描述的分群算法可允许记录的数目在分段期间增加,因为基于分段并行地执行分群算法有着性能优势。结果,共享分段标识符(即,在同一分段中)的记录组可远大于分段用于隔离记录时的记录组。为了实现性能优势,不同分段值的数目仅需大到足以在分区之后的处理实体之间达到粗略均衡的分布。对于某些并行处理系统而言均衡分布可能比其他系统要更为关键。另外,分布上的某些种类的倾斜(skew)(分配给某些处理实体的记录比其他更多)可利用过分区(overpartition)来解决:使用比处理实体多得多的分区。利用过分区,即使分区的大小大相径庭,每个处理节点将很可能接收类似的工作量。分区器还可通过由一个或多个近似匹配字段(或者应用于它们的哈希函数(hash function))连同一个或多个准确匹配的字段组成的多部件键(multipart key)来分区,以减少潜在的倾斜。
在一些实施方式中,分段值的选择是基于形成群成员身份标准的一部分的准确标准。例如,当群账户记录时,除了个人身份字段外,银行可能会关注特定类型账户的记录的群。尤其是,活期账户(current account)(例如支票账户)的记录可一起分群,而储蓄账户(savings account)的记录可分离地分群。这一种类的分段有时是隐含的——活期账户和储蓄账户记录可能来自不同的源并且已经被分段。在一些情况下,数据记录中可能存在账户类型标识符,其能够被用作分段值但必须被信赖以准确地通报账户的性质。
在一些实施方式中,在分段之时或者稍后在验证分段值可信的成员身份确定期间进行确凿的(corroborating)检查。例如,储蓄账户的账户号可能总是以来自特定可能性的组的数字开头。如果运行时已知该组,则在分段之间可确认账户是否确实为储蓄账户。如果已知该组存在但有效值未知,则可将前缀数字作为群成员身份标准的一部分或者事实上为分段值的一部分,并且可建立群中所出现账户号之间的一致性来作为群成员身份确认的一部分。
在确认一记录时特定群的成员之后,可扩展该记录以包括识别该特定群的群_id。在一些实施方式中,分段值(或者有时是该分段标识符自身)可被设定至来自前一群的群_id。这样会实现层级分群(hierarchical clustering)。例如,如果数据记录初始是按照名称来分群,则为了找到共享类似名称但具有不同政府分配标识符的记录群的按照政府分配标识符的后续群可使用该名称的群_id作为分段值。具有不相似名称的记录不必进行比较,因为它们不可能是同一群的成员。
在一些实施方式中,数据记录可按照跨多处理实体的分段标识符进行哈希-分区,从而具有共同分段标识符的所有记录都被一起放置在单个处理实体中。这样会允许并行处理,因为无需分段之间的通信。
2.4.1重复分段的并行性
在没有数据源的不相交(disjoint)分段时的并行化可通过复制数据源100和对确保任意两个变体配对记录必须共享至少一个分段值的分段进行适当选择来实现。分段值可由字段值的一个或多个片段或者字段值的组合组成。对于两个记录之间每个容许的变体如果至少有一个分段值将由这两个记录共享,则据称分段值的组是完备的(exhaustive)。在图4中,图示出完备复制的(exhaustive replicated)分段的处理。数据源400被读取且独特的记录键被分配给每个数据记录401(如果有一个还没出现的话)。将每个数据记录复制足够多次,使得来自分段值完备组的每个分段值都被分配给一个复制数据记录402。(复制记录的数目可取决于每个记录中的数据)。得到的数据记录按照与复制品404关联的分段值来分区。代理(surrogate)分群键生成在用于复制品406链接配对组的每个处理实体中。通过构造,因为分段键是无遗漏的,每个容许的变体都将在某一分段键的分区中被检测出。在多重匹配调和过程408随后,对于每个群,分群键的超集(superset)都被解析至独特的分群_键。
考虑匹配两个政府id(二者区别为至多一个替换)的情况。通过先从政府id中的奇数位置再从偶数位置提取数字(或者更一般而言为字符)来给出分段值的完备组。这个组的完备性是容易看出的,因为任意单个字符替换必然要么在奇数位置要么在偶数位置,而不会是兼而有之。因此,对于相差仅单个替换的两个记录,其它类型的分段值必须一致。例如,123456和124456具有分段键(135,246)和(146,246)。它们在第一分段值上有所不同但在第二分段值上一致。
图5A-图5C图示出该情况下的整个处理。在图5A中,读取数据记录700。第一记录501具有数字id“123456”和特有的记录键“r1”。记录被复制两次502且被分配由来自奇数位置的字符(例如135)和来自偶数位置的字符(246)组成的分段键503。数据由分段键值504分区。具有相同分段键的记录将在相同的分区中,但具有相同记录键的记录不必在相同的分区506中。例如,注意到分段键值“135”在第一分区中,但具有记录键“r1”的记录既出现在第一分区又出现在第二分区中。
在图5B中,记录506在其分区508内被分群且被分配分群键,得到数据群510。须注意,某些记录键被分配至多重群。例如,具有记录键“r1”的记录既出现在群“k1”又出现在群“k2”中。
在图5C中,该多重匹配得以调和。读取数据组群510,分群键的多重分配被解析520,且作出对记录的分群键的最终分配530。以下说明这一解析的细节。
2.4.2无分段的并行处理
代理键的生成是利用由一个或多个字段组成的自然键的值来配对生成的值。该自然键的每个不同值具有唯一的代理键值。用于生成代理键的一种方法是维持代理键/自然键配对的库,有时称为键交叉-引用文件(简称键x引用库)。随着每个新的数据记录被处理,在该库中查找自然键值:如果找到,则返回代理键;如果未找到,则生成新的代理键。该键x引用库可部分地创建于内存中以保存当前运行中已经生成的代理键的记录,以及部分地驻留在磁盘上(并在处理开始时读取到内存中)以保存之前生成的值。在生成键之后,将包含新生成代理键的键配对添加至驻留的键x引用库。有时为方便起见将最大生成的代理键值单独存储,从而在下一次运行时可得到之前生成的最高键作为用于进一步生成键的起始点,而无需复制。
为了并行应用这一键生成方法,数据记录可按自然键或自然键的某一片段(称为分区键)来分区,从而将共享一分区键值的所有记录发送至同一处理实体。这确保由同一处理实体来处理共享自然键的所有记录。尤其,内存中最近新生成键的库对于该处理实体是可得的,所以具有同一自然键的所有记录将得到相同的代理键值。在无共享并行架构中,也即,在没有进程间通信时,新生成键的库仅对于由当前处理实体处理的记录才是可得的,对于同一并行运行期间要在不同处理实体中处理的具有相同自然键的记录亦是如此,它们会得到不同的代理键。
在一些情况下,自然键值的分布可能是不均匀的,其中具有某些值的记录比具有其他值的记录的平均数目多得多。在该情况下,按自然键(甚至片段)分区会造成整个数据分区的数据倾斜,也即,一些分区将包含比其他分区多得多的记录。这降低了并行化的效率,因为对于同复杂度的任务(像代理键生成)而言处理时间是与数据量成比例的。在该情况下,可能值得按循环制(round-robin)(简单地接连每个处理来传递记录)来分区以得到均衡的数据分布。然后便可通过上述方法在每个处理内生成代理键,并且在完成代理键生成之后,能够在后一处理步骤中重复地将得到的多个代理键分配给相同的自然键。执行这一重复的一种方法是将每个分区中的记录汇总(rollup)到自然键以找到该分区内的代理键/自然键配对,然后是基于该自然键重分区(这时只有自然键的若干分区副本)。自然键的第二次汇总能够为每个自然键选择所生成多重代理键的其中之一,比如其中最小的一个。最终,在第二次传递记录时(在原始循环制分区中),能够将代理键更新至单个选取值。尽管需要数据的两次传递,这能够比带有倾斜的生成性能更高。(存在其他方式来处理涉及不同操作次序的键组(keygroup),例如,可在生成代理键之前执行双汇总来对自然键去重复(deduplicate),或者应用某些其他方法来检测并转移(divert)大键组以用于单独处理)。
其中按自然键来分区可能是并行化的无效策略的第二种情况是当代理键生成用于近似(或等同)而非必要准确匹配的自然键的时候。在这种情况下,可能没有分区键能够保证发送每个候选项匹配记录到同一进程中。(进程是在处理实体内运行的执行实例)。这是因为匹配决策通常涉及记录的比较,而不能仅在记录内的数据基础上作出。刚刚描述的多通道方案在这种情况下是无效的,因为去重复处理是依赖自然键去识别何时已经分配了多重代理键。识别整个分区上哪些记录包含近似匹配的自然键等同于该原始的问题。
对于两种情况的解决方案,通过以下代理键生成的示例来描述。比起上述的内存中的库,键x引用库的不同实施方式可用于最近生成的代理键。库可适用于以下特征:1)它们驻存在磁盘上并且可由一个进程来更新(通过附加),2)它们可从多个进程读取(并且可随着作出的改变而加以更新)。代理键生成过程如下。分区器对数据分区,例如通过循环制,以在多进程间达到均匀分布。在每个分区内,进程提取每个自然键并针对所有分区的键x引用库执行查找:如果在一个或多个键x引用库中找到该自然键,则该进程采纳具有最低值的代理键(并标示出该自然键是否出现在一个以上的键x引用库中);如果在任何键x引用库中都未找到自然键,则该进程生成新的代理键并更新与该分区关联的键x引用键。随着新的代理键在进程中生成,它们存留至磁盘于关联的键x引用库中用于该进程。这消除了在生成所有键之后更新键x引用库的需要。并且,由于读取该库的所有进程在改变一旦被存留时就用该改变来加以更新,所以如果一个进程中初次出现的自然键稍后应当出现在另一进程,则该自然键将被分配在其他进程中初次被分配的原始代理键。
有一种潜在的竞态条件(race condition):如果具有相同自然键的两个记录应同时到达不同的进程,则针对键x引用库的查找会显示两个进程中均无匹配,并且将为该自然键生成两个新的但不同的代理键。这仅仅对于用新代理键来更新本地键x引用库之前处理的记录会发生,并且更新是由其他进程来读取。所有接续的自然键将被分配有最低值的代理键。还通过用看到一个以上自然键的事实来标示这些稍后的记录,放置一标示,其可用于校正该事实之后的键碰撞(key collision)。该标示器的一个过滤器将找到具有一个以上代理键分配的自然键,然后可识别并取代可选的代理键。如果自然键仅出现在发生初始碰撞(多个)之时,则仍然可能遗漏碰撞。为了可靠地对其检测和校正,可第二次通过键生成处理来传递数据(以及自然键)以校正分配——在第二次轮时模糊分配将是显而易见的。须注意,即使自然键仅要求近似,只要匹配决策是确定性的,那么该第二通道固定也是可靠的,也即,如果再次运行相同的数据就会做出相同的决策。这样做很有效,因为从第二次传递开始所有的本地键x引用库将被所有的进程写入和读取。
该并行化方法可应用于分区,以及其他的模糊数据操作。分群可视为一种形式的代理键生成,其中的键并不准确而只是等同。本地库的详细形式可因数据操作而不同,但可使用类似的技术。
图6图示出不在自然键上分区的条件下并行运行的代理键生成过程的示例。带有自然键“n1”的记录初始出现在分区“分区1”中的数据源600P1中。分区“分区1”的键x引用库Xref1 604P1和分区“分区2”的Xref2 604P2被查阅,“n1”未被找到606,因此生成代理键“s1”并写入至输出620P1。同时,键x引用记录“n1s1”被保存608到本地键x引用库Xref1604P1中。稍后带有自然键“n1”的记录初始出现在分区“分区2”中的数据源600P2中(而非分区1中,因为其会使该数据已被该自然键分区)。键x引用库Xref1604P1和Xref2 604P2再次被查阅,“n1”不在Xref2 604P2中但在Xref1 604P1中被找到。代理键“s1”被检索、分配给记录611并写入至输出620P2。
2.5计分字段去重复
分段(以及并行化)之后,在一些实施方式中,来自数据源100或标记化数据记录118P组的记录被传递至计分字段去重复引擎144。在一些实施方式中,如前文所述的,在分值中用来确定群成员身份的字段,即所谓的计分字段,可在运行时被确定。计分字段去重复引擎144从在计分字段上具有相同值的记录组选择一个记录,以继续分群处理并安排成使得结果分区id在组的其它记录之间共享。由于记录从群成员身份决策处理的角度是相同的,所以对于所有记录必定达到相同的分群决策。
2.6候选项搜索
2.6.1两种模式
对于基于搜索的分群处理的两种稍有不同的途径可能取决于数据组中的所有记录是否一起加以处理或者记录是否在到达之前分群的记录时加以处理。前者描述了一种批处理模式,而后者是一种既可用作在线模式又可在一开始所有数据可用时应用的增量模式。这两种模式的一个区别在于,在批处理模式中,是在预处理步骤期间计算由分群引擎使用的各种库,包括变体剖析器库115、变体网络库126、和搜索库146,而在增量模式中,一些库可随着数据到达而得以增量式地填充。尤其,一种增量模式途径是在完整的数据组上预先计算变体剖析器库115和变体网络库126,而搜索库146是被增量式地填充。在增量模式中,分群结果可取决于记录被处理所按照的次序。
2.6.2增量模式中的分群发现
在增量式的分群处理中,可将输入记录(被称为查询记录)与已有群中的记录比较以确定该查询记录应当属于哪个群。在一种直接途径中,可将每个查询记录与之前的每个记录比较以找到最接近的匹配。如果没有接近匹配,该查询记录称为一个新群的第一成员,否则将其添加至包含该记录最接近匹配的记录的群中。然而简单来说,潜在地,这样计算开销会很高。大多数比较结果得到的是否定结论(“并非该群”),并且最坏的情况是该查询记录是新群的一个成员。这一途径可通过从每个群中选取代表成员以及将查询记录与该群代表进行比较来改善。这利用了记录的变体相似性至少是部分可传递的;如果查询记录与分区代表的相似得不够,则其也不太可能与该群的任意其他成员足够相似(因为它们都与群代表相似)。
因为变体相似性实际上是不可传递(“A与B相似”和“B与C相似”并不意味着“A与C相似”),所以在将查询记录与群代表比较时,可应用比确定群成员身份所应用的阈值更低的相似性的阈值(有时被称为候选项阈值)。其意图是为了在查询记录与群成员的期望相似性上具有精确的下边界。该下边界成功地排除该查询记录所不能从属的群,但其没有回答该查询记录所从属的群的问题。原因在于,有一个以上的群代表与查询记录的相似性分值可能在候选项阈值以上。这被统称为候选项记录。在识别出候选项记录之后,可将该查询记录与某一候选项记录相关联的每个分区的每个成员比较,以找出与该查询记录具有最密切关联的群。如果该关联在匹配阈值以上,则使该查询记录成为对应群的一个成员,否则将其分配给新的群。在已经找到候选项记录之后,可采取步骤以改善群成员身份确定的性能。其中有些将在下面讨论一。
即使对将查询记录与群代表的比较有改善,识别新群的情况仍然糟糕:属于新群的查询记录必须与每个已有群的代表比较以确认它是新的。随着群的数目增长,识别新群的时间增加,且分群处理变慢,因为辨识新群所需的比较数量与已有群的数目成比例。计算上的挑战是找到一种与将每个查询记录与每个群代表比较相比更好的对群记录的方法。
基于搜索的分群途径通过尝试将识别新群的最差情况改变成最佳情况来应对这一挑战。在其简化形式中,这通过针对由已有群成员或它们的群代表所填充的搜索库执行搜索来完成。在该搜索库中查找查询记录。如果没有找到它们,则该查询记录必属于新群。这一处理由候选项搜索引擎140来进行,如图1A和图1C所示。如果填充搜索库146以及在搜索库146中查找查询项(query)的时间少于直接针对群代表的增长库将每个查询记录与每个群代表比较的时间,则该途径是有益的。该途径后面的微妙之处在于限定由候选项搜索引擎140使用的处理,包括选择搜索条目扩展引擎145以填充搜索库146,选择查询扩展引擎143以构造对其的查询,以及选择搜索引擎147(或者变体-查找过程)以进行该搜索。
图2D可用来示出这一处理的示例。在一些实施方式中,搜索库230G是用从群成员组成的数据组220G计算的条目来填充的。针对搜索库230G将变体-查找过程232G应用于扩展的查询条目210G可用来计算群成员身份标准的一些必要组件的替身(proxy)。如果一个记录除非达到针对替身的至少最低分值否则不能称为群的成员,则该替身是一个好替身。对于查询项达到所需最低限度的那些群记录236G为候选项记录。
替身分值的示例是由诸如两个个人姓名那种两个多单词字段(或字段组合)共同共享的单词的数目。群成员身份确定中用来比较两个姓名的分值算法可纳入考虑的比每个姓名中的单词组更多,特别是其可将单词次序和位置纳入考虑。然而,两个姓名如果没有共同的单词则不能成为匹配,并且它们如果只有一小部分的单词共同则不太可能有很高的分值。对两个姓名共同具有的单词数目计数是用于姓名分值的替身——尽管并不一样精确但是可靠。如果共同的单词数目相对于每个姓名中的单词数目是已知的,则替身变得更加精确。该长度可存储在搜索库146中,从而可得的用于计算替身分值而无需提取任何群记录。
在一些实施方式中,查询项的初始选取可通过群成员身份标准来引导。如果将给出原数据记录的最具颗粒性或最具区别性分解的群成员身份标准的组件用作构造原始查询的基础,通常能够实现较好的性能。这减少了符合搜索标准的记录的数目。
还可进行涉及带有来自多个字段的多个值的多重搜索,并且会导致更窄的候选项组。这在下文加以讨论。这里关注的是从单个字段采取的查询,因为细节更简单。
考虑这样的示例,其中一公司希望基于个人姓名、政府分配标识符、以及生日而从顾客数据库中识别顾客,从而实现对各自的可变性的一些测量。这里,对于初始查询而言政府分配标识符可能比个人姓名更为优选。通常,政府分配标识符比个人姓名更具体,甚至允许可能的含糊,因此其做出更好的查询——期望更快速地缩窄匹配候选项的组。
然而,与字段(或字段的组合)关联的颗粒度(亦即,间隔尺寸)(granularity)在整个数据组上可能不是恒定的。大量的关联记录可能有默认值填充其中一些政府分配标识符(例如,空白或全为零或全为九)。这代表对记录子组的查询选取的破坏。如果通过搜索检索到太多的记录,则缩窄待计分的记录组的搜索主要目的尚未实现。为了解决这一问题,可对由给定查询搜索返回的候选项的数目施加临界值:如果候选项记录的数目超出阈值,则拒绝该查询。
在一些场景中,可继续原始查询直到来自扩展查询的所有查询都被拒绝,这之后必须使用替换的搜索策略来重新处理该查询记录。例如,当原始查询为多单词字符串时,扩展的查询可能由字符串中的个体单词组成。该字符串中非常常见的单词可能会因为返回太多候选项而被拒绝,而留下的较不常见的查询单词足以找到理想的匹配记录。对于是否拒绝原始查询的决策可能基于没有包括来自被拒绝查询的记录是否会漏掉潜在符合要求的匹配记录。当多重查询嵌入在扩展查询内时,其中一些失败而其他的继续,这是可以的。在没有多重独立查询的情况下,拒绝来自扩展查询组的一个查询可足以拒绝整个组。
在很多情况下,独立地,在搜索策略失败处识别记录的组可能是有用的,因为这可指示数据中的数据质量问题,比如在计分字段中不完整的记录或者意外的默认值。将这样的记录组与记录的主体分开,将该数据划分成表示最终匹配决策的一般可靠性的组。不带有政府分配标识符或仅带有默认政府分配标识符的记录预期导致的匹配与在均带有政府分配标识符的记录之间会找到的匹配相比可信度会更低。
2.6.3多重搜索和搜索代码
可通过在搜索条目334的配对键333G上对搜索条目334G去重复以及将位置键335G积累(roll up)至为了具有特定搜索键333G的数据记录保存所有位置键的位置信息来改善搜索库330G。在一些实施方式中,如果关联记录的数目小,则该位置信息可以是键的简单向量。在其他实施方式中,该位置信息可以是位向量,其中每个位组(bit set)明确或隐含地表示数据组320G中的数据记录。可选地,该位向量可经过压缩。
使用位置信息的位向量实施方式可减小搜索库的大小,并且可消除重复在配对键333G相同值上的查找332G,但在结合来自多重搜索的结果时才显现出真正的益处。在包括多单词字符串的原始查询(其扩展查询包括对于原始查询每个单词的单独查询)示例中,可通过进行位置位向量的逻辑AND(与)来结合单独的扩展查询。两个位置位向量的AND将找到两个位置位向量中设于相同位置的位元(bit)。在这种情况下,将存在包含与位置位向量关联的两个单词的记录。通过形成位置位向量之间AND的所有组合,可以找到来自原始查询300G的存在于数据组320G的记录322G中的单词的所有组合。
为了便于组织这些组合,可引入搜索码的概念。搜索码是对哪些搜索查询有助于最终位置信息结果进行编码的数据模式码。在一些实施方式中,可对有助于位置结果的原始或扩展查询的每个部分在位向量中设置位元。多位组对应于与每个位组关联的每个位置信息结果的逻辑AND。如果曾有两个搜索,可为从第一组返回的结果设置第一位元,为从第二组返回的结果设置第二位元,且可为从两个搜索返回的结果设置两个位元(每个搜索的结果的逻辑AND)。
对来自单个字段的一个以上标记作出多重搜索,并可将通过搜索检索到的位置信息逻辑组合的概念概括为对来自多字段(或语境)的标记作出多重搜索并对通过搜索检索到的位置信息进行逻辑组合。
图7A-图7D示出一示例中搜索码的构造和使用。在图7A中,原始查询700由来自数据记录的三个字段的标记构成,开头(名字)、末尾(姓氏)以及街道。例如,对末尾的查询为“smit”。原始查询通过查询扩展过程702扩展以给出扩展查询704。这种情况下的扩展查询包括原始查询每个部分的变体标记,可能由变体剖析器库115得到。例如,与“smit”关联的变体标记包括“smith”和“smiths”。
在图7B中,数据源710包括四个字段,“键”、“开头”、“末尾”和“街道”。搜索条目扩展过程712被用于填充三个查询字段中每一个的搜索库714。
在图7C中,扩展查询704A由变体-查找过程720A处理以给出位置结果724A。在这种情况下,变体-查找过程被实施成从搜索库714中查找721每个扩展查询开始。然后来自每个扩展查询的位置信息结果被结合(向量的联合或者位向量的逻辑OR(或))以给出原始查询“末尾”部分的位置信息结果724A。这被以图形形式表示为标签为“姓氏”的圆圈730A。
对于“开头”字段的第二扩展查询704B由变体-查找过程720B处理以得到位置信息结果724B。这被以图形形式表示为标签为“名字”的圆圈730B。“姓氏”圆圈730A和“名字”圆圈730B的交集包括记录“[2,4]”732。
在图7D中,显示所有三个原始查询的结果。每个圆圈730ABC包含各个记录724A,724B,724C的汇集。例如,“姓氏”圆圈包含记录724A,“{1,2,4,5,7}”。该圆圈被分配搜索码1,且这记录在搜索码表格740中。类似的,“名字”圆圈被分配搜索码2,且“街道”圆圈被分配搜索码4。应当强调的是,搜索码1,分别地,2和4,指的是整个对应的圆形区域而不只是交集之外的区域。通过使与对应圆形区域关联的记录组相交来找到同时得到满足的与一个以上原始查询关联的记录。结果被记录在搜索-码表格740中,并与通过对结果有贡献的个体区域的搜索码之和形成的搜索码配对。这里搜索码可被辨识为位图表示,其中每个位组指示存在哪个圆形区域。
最后的步骤是指定哪些搜索码对应于对查询的足够响应以获得(merit)群成员身份的更接近的分值。这里,候选项选取标准742是搜索码必须是3、5或7。这意味着成功的查询候选项必须具有匹配姓氏的变体,以及匹配名字或街道或二者的变体。匹配名字和街道的变体是不足的,匹配该条信息的任意单个变体也是如此。返回以用于计分744的候选项通过与这三个搜索码742关联的记录的联合来给出。
2.6.4查询构造
在查询构造过程142中,用户提供查询构造表达,可能涉及查询构造规则组,以从由读取自数据源100或标记化记录118的记录中一个或多个字段的片段或全部或者运行参数(runtime parameter)选取的内容构造原始查询。原始查询可由一个或多个查询字段的值构成,其中一些值可为向量。例如,用户可能希望使用个人姓名作为查询并通过将名字、中间名和姓氏字段的内容与每个字段值之间的逗号和空格连在一起来指定构造查询的规则。如果有一个或多个姓名字段为空或未填充,则可提供额外的分配(“实例”)来指定姓名的构造。可选地,可能只保留名字和中间名的首字母并与姓氏连在一起。原始查询可能是由多个部分形成的结构化记录,例如,对于个人姓名的原始查询可能由单独的名字、中间名和姓氏查询字段组成。如果只有单个全_姓名字段出现在数据记录上,则用户查询构造表达可指定如何解析该全_姓名值以填充原始查询的组成字段。该查询构造表达可能填充一个或多个数据模式码,描绘查询记录中数据的特征,例如指示每个字段填充状态(例如填充、空白或空的)的填充模式码以用来构造原始记录的其他要素。
在一些实施方式中,标准化器,例如变体剖析器110的数据预备模块111中的标准化器112,可应用于原始记录,使用需要用户指示但无须指定全部细节(因为它们可作为预定义操作而可得)的操作,类似于删除标点字符或其他特定字符或者用可选字符来替换它们,用零或空格来填补数字的左边,小写字母字符,等等。在一些实施方式中,可应用多个独立的标准,导致标准化的原始记录的向量。例如,像“&”等一些标点字符可能需要以多种方式来处理以覆盖自然使用的范围:该字符可被独立地删除,用空格字符替换,留在原处,或者扩展成单词“和”,每种方式都有有用的效果。
面临查询方式的一个挑战是诸如个人和公司名称等字段(或字段的组合)具有自由属性:两个名称可能为能接受的匹配,即使它们有单词遗漏或单词次序的差异(也即,在群成员身份处理期间用于比较标记的相似性分值的功能或规则可惩罚遗漏的单词或者单词次序的变化,但尽管如此仍会容忍它们)。这意味着,例如,通常全姓名自身无法是查询项——可能遗漏太多可接受的单词。也即,直接对于全姓名的搜索假定存在的单词次序和数个名称,可能无法被所有关注的候选项满足。取而代之,如果将全名称作为原始查询对待,且通过扩展原始记录来从原始记录产生实际查询,可能会更优。
2.6.5查询扩展
原始查询可由查询扩展引擎143处理以产生扩展查询。在一些实施方式中,标记化器,诸如变体剖析器110的数据预备模块111中的标记化器113,可在查询扩展期间应用于原始查询的要素以将查询划分成标记,称为查询词(query term)。
在一些实施方式中,查询词可进一步扩展至例如包括印刷变体、替换拼写、以及文化类变体。例如,查询词“civilization(文明)”可扩展至包括词“civilisation”和“civilizatin”。对于“Weber(韦伯)”的查询可扩展至包括词“Webber”。还有可能有其他扩展,例如,一种字母的姓名可能有另一种字母的多种拼写(例如,从中文字符翻译成罗马字符)。扩展中使用的印刷变体的组可在变体剖析器110中计算。在预处理创建变体剖析器库的基本组之后,随着新的记录被处理,可在线检测进一步的变体并添加至变体剖析器库中的变体列表。
在一些实施方式中,利用变体网络库126,每个查询词可使用标记-代表库127由其标记-代表(多个)来取代。这有助于变体标记的比较,因为同一邻居(例如典型邻居)内的变体标记将由相同的标记-代表取代,所以识别相关的变体标记只需要找到准确的变体-代表匹配即可。变体标记可以是一个以上邻居的成员,因此具有一个以上的标记-代表。对应于标记的每个标记代表可用作为替换,从而增加了(替换)查询词的数目。
在一些实施方式中,查询扩展引擎143可通过结合两个(或更多个)查询词来形成,这可能是在标记-代表替换之后。这一配对的目的是缩窄从基于查询词的搜索返回的记录组。在一些实施方式中,(经标记-代表-取代的)标记配对查询词按字母顺序分类。这造成在用标记-配对查询词搜索时可检测的单词次序上的局部变化。如果原单词次序存储于形成每个配对的相邻单词之时,则这样配对的组可用于重构造原用语,直至阻止重新排布。这意味着原始单词次序是不按单词组自身的方式被捕捉到单词配对中的。
从具有一个中介查询词的多个查询词中创建标记-配对查询词改善了搜索,因为单词(或其他标记)可能在没有绝对排除匹配机会的条件下从字段(或字段的组合)遗漏,并且字段计分算法被设计为用来容忍这种情况。例如,中间名常常被从记录中删节或省略,商用名称中“of(的)”等冠词也是如此。实际数据中还发生许多其他不明显的遗漏单词的示例。可使用查询词的三倍或更高倍数组来形成仍然较窄的查询。
例如,查询扩展引擎143接收原始查询“John Jacob Jinglehiemer Schmidt”。标记-代表库127返回标记-代表的列表“John”、“Jacob”、“Jingleheimer”、“Schmidt”。须注意,原始查询中的“Jinglehiemer”已被其更常用的变体“Jingleheimer”取代,变体典型邻居中的标记-代表包含“Jinglehiemer”。查询扩展引擎143使用相邻查询词,在该示例中为“John Jacob”“Jacob Jingleheimer”和“Jingleheimer Schmidt”,来创建依字母排序的(标记-代表-取代的)标记-配对查询词。查询扩展过程还为具有一个中介查询词的查询词“Jingleheimer John”和“John Schmidt”创建依字母排序的(标记-代表-取代的)标记-配对查询词。
在一些实施方式中,可通过应用系统修改原始查询的查询扩展过程来扩展原始查询以产生被设计为作为如上所述变体搜索的部分的变体-查找过程中的查询。作为示例,假设两个政府分配标识符(“gid”)当且仅当它们区别至多为一个字符的改变时,也即如果它们具有至多为一的汉明距离,被视为匹配。这可通过准确查找使用删除-添加过程来实施,如图8所示。数据源820中的每个gid通过形成其删除组及将每个删除条目写入搜索库830来进行扩展,包括删除位置、删除变体和关联键。原始查询800由gid组成。使用用来扩展825搜索库830的条目的同一删除-添加过程,原始查询800被扩展805至其删除组810。使用删除位置和删除变体二者作为键来在搜索库830中寻找832扩展查询。这会产生变体配对的组,该组随后可用于检索匹配记录837。
该过程的变体是要包括原始未修改的gid作为搜索库830中删除位置为零的条目,以及将搜索查找的键改变至仅有删除变体(忽略删除位置)。这将找到所有删除-添加1的变体配对,包括单个字符插入、删除和替换,以及两个字符的对换和非相邻的插入/删除——这些包括了所有编辑距离为一的变换以及大多数编辑距离为二而并非长度改变(未涵盖双-替换)的变换。
2.6.6计分引擎
查询数据记录与已有数据群(在增量模式下)或数据源中其他数据记录(在批处理模式下)之间相似性的测量可表示为计分引擎150所计算的分值。计分引擎150可通过比较一个或多个字段或者字段组合(例如单独及共同构成名称和/或地址的字段)的整个或部分内容来比较两个记录。这些内容可被称为“字段-值”,因为它们是从记录的字段的值得到的。
在一些实施方式中,选取配对的字段值之间的分值可基于相似性标准而定,诸如值的相等或者值之间的编辑距离(其他相似性标准包括各种类型数据的相似性的其他形式,诸如发音相似性,或对于图像数据(例如用于面部识别)的图形相似性)。由一个或两个字符组成的短字段-值常常仅可比较相等性,因为可能不存在将错误与有意区分开的基础。单独地,一些字段值仅像碰巧包含空格字符的单元那样具有语义,例如,包含“New York”的城市字段。有了这些值,对将一个值变成另一个值所需的插入、删除和替换的数目计数的编辑距离可能是较好的相似性测量法。
在一些实施方式中,所选取得配对的字段值(起内容通过一些分隔符(通常但不仅限于空格字符)隔开而排序成标记组)之间的分值,可将那些属于变体匹配(不相同但被辨识为等同或相似)而准确匹配的标记数目以及标记次序和位置的对应关系纳入考虑。例如,个人姓名可构造为带有空格或逗号分隔符的名字、中间名和姓氏字段的串连。数据质量问题包括:未填充的一个或多个字段,以及姓名次序的变换(例如交换名字和姓氏)。
在一些实施方式中,通过组合字段-值配对之间的计分组(称为计分-要素),可基于预定义或用户指定的计分规则(例如由规则组或函数指定),根据条件规则的等级,来计算记录配对之间的分值,以给出对不同条信息相似性的存在、不存在、或程度的加权着重度(emphasis)。例如,当比较地址记录时,具有相同门牌号(house number)、街道、城市和邮编的两个记录给出的分数一般会比其中一个记录缺失邮编或其中存在一些不一致(例如不匹配的邮编)的另一记录配对给出的分数更高。计分要素不必限制到单个标量值(scalarvalue)而可以采取更复杂的形式,包括含有多个字段和向量的记录。
计分可包括匹配码,其为对个体字段-值配对的定性计分测量(例如,如果计分为1则为“准确匹配”,如果计分小于1但大于模糊匹配阈值则为“模糊匹配”,等等)的组和/或诸如字段-值填充状态等记录特性进行编码的数据模式码。匹配码起到的作用很像上述搜索码:它们组织计分测量的组并有助于定性匹配状态的说明,而无需计算数字分值。
计分要素应当具有至少一个偏序(partial ordering),因此它们可被结合及比较以确定“最高”或“最佳”的分值。计分要素的偏序以及确定最佳分值的计分要素的关联比较可采取预定义或用户指定规则组的形式,涉及有序的基于实例的规则组。
2.6.7增量模式中的群成员身份确定
在群成员身份确定中,全部分群处理都汇聚到一起。图9概略示出用于确定群成员身份的处理示例。数据源100被读取。在形成和扩展910原始查询之前记录被并行地分段和分区(未显示)。在一些实施方式中,以上讨论的查询构造和查询扩展记录读取自变体剖析器库115和变体网络库126。在一些实施方式中,查询记录可按可区别性标准136排序,以将更加可区别的记录放在首位。通过访问搜索库146A使用上述候选项搜索引擎找到920原始候选项记录。涉及预定义或用户指定条件的候选项选择过程930被应用于该原始候选项记录以产生后续记录的组。
在选择930之后找到的候选项记录是已有群的成员且事实上是候选项群记录,也即,它们是一个或多个群的近似匹配。选择条件930被指定以确定一查询记录与群是否接近得足以值得更靠近的调查。
如果在候选项选择930之后查询记录没有返回候选项群记录932,则该查询记录不接近任何已有群的成员,从而创建934新的群。该查询记录被写入主记录库176作为主记录。新的群记录还被写入代表记录库178和数据群180。使用添加至搜索库146的搜索-条目扩展过程935来用新群记录填充搜索-条目。在一些实施方式中,候选项搜索引擎用来找到原始候选项群记录920的搜索库146仅从主记录来填充935。在其他实施方式中,除了主记录外,代表记录库148中的记录也可添加至搜索库952。
主记录是以某种方式表现群特征的群的特别代表成员,例如,群的第一个成员。在一些实施方式中,在分群开始之前对数据排序,从而新群的第一个成员将是排序顺序中相对于该群而言的首位。例如,在银行贷款方的数据组中,可按照公司名称中单词数目的降序来对数据排序,使得主记录是群中具有最长公司名称的成员。因为长名称包含更多的标记从而也具有更大的标记差异性,所以长名称比较短名称更容易通过相似性计分过程区分开,从而具有长公司名称的记录可被选择来为分群做种子(seed)。
分群可具有一个以上的主记录。这一特征可在下文用于融合群以及撤销(overriding)通过人为作出的决策的算法所作出的群成员身份决策时的分群认可处理中。
如果候选项选择过程930返回一个或多个候选项记录,则与该候选项记录关联的每个数据群的成员都被调出以针对查询记录进行计分。这些关联的数据群被称为候选项数据群。在一些实施方式中,不是每个群成员都被调出939,而是只有那些存储于代表记录库178中的成员被调出。计分引擎150被用来确定查询记录与每个调出群成员之间的相似性分值。如果最佳分值在匹配阈值以上,则将该查询记录添加至对应的群。如果查询记录对于一个以上的群在匹配阈值以上,则将其添加至其具有最高计分的那个群。在一些实施方式中,如果查询记录对于一个以上的群具有相同的最佳分值,则将其添加至第一个群。在其他实施方式中,如果查询记录对于一个以上的群具有相同的最高计分,则在带有反映成员身份可能性的权重条件下将其添加至所有这样的群。
在一些实施方式中,将查询记录关联于数据群之后,对确定群成员身份起作用的最佳分值可与阈值进行比较。如果该最佳分值在该阈值以下,则认为该查询记录足以与群的其他成员区分,并将其添加至代表记录库178。这里的意图是利用相似性分值的部分传递性。如果A与B高度相似,且C与A相似,则B将至少适度地与C相似。这样,可能不必为C针对B计分,因为针对A的计分就以足够精确。这一阈值可被称为“近似重复(near-duplicate)”阈值且可被设得相当高。目的是减少特别是针对近似相同的那些群成员的冗余计分。
在一种实施方式中,查询与原始候选项记录之间的匹配标记-配对查询词的数目可被计数,并且如果该数目超出候选项阈值,则该原始候选项记录为候选项记录,且认为关联的数据群是候选项群。在识别出所有候选项数据群之后,针对候选项群的成员为查询记录计分以找到最佳计分,并如之前那样继续处理。
图10A-图10D是示出用于多标记查询字段的分群处理实施的图示。在图10A中,原始查询100由公司名称“ACME-Metl Grp.”形成。其通过小写及取代标点而被标准化1002以给出标准化的原始查询1004“acme metl grp”。每个标记如图3A-B所示由其标记-代表向量1006取代。单词“metl”属于两个典型邻居并因此具有两个标记“metal”和“meta”;二者都被用于得到的标记-取代原始查询。该标记-取代原始查询被扩展1008以产生扩展查询1010,由按字母排序的标记单词配对和单个-单词标记的列表组成,例如“acme metal”、“groupmetal”、“group meta”等等。
在图10B中,处理继续。标准化的原始查询1004已经被标记-取代1006及扩展1008以给出扩展查询1010。分别地,主记录库1050的条目已经被扩展1052以填充搜索库1054。该实例中搜索库1054中的变体查找通过从扩展查询1010提取每个标记配对并在搜索库1054中查找1056该标记配对来工作。与共同群id匹配的标记配对的数目被计数1058,且结果存储在原始候选项记录1060的列表中。在该示例中,匹配标记配对的数目是两个公司名称计分的替身。应用阈值来去除匹配查询中标记的数目和主记录匹配配对太少的候选项1062(为此将主记录中间名称标记的长度存储于搜索库1054中)。
在图10C中,读取候选项记录1061以从候选项群id(包括群序列(seq))1072的代表记录库1070取得代表记录。针对从每个代表记录1076调出的字段为标准化输入记录1074中存在的计分字段单个地计分1078。在基于实例的计分规则组1082中结合这些字段-级计分1080以计算经过比较的记录的分值。这里,分值在逻辑意义上被编码为匹配决策1084。这里的规则由“正在和(and-ing)”输入条件横跨(across)读取以及由“正在或(or-ing)”实例向下(down)读取。例如,如果名称分值大于近似_重复_阈值且id_计分为1而日期_计分为1,则匹配决策为“近似重复”。如果名称计分低于近似_重复_阈值,则会尝试下一行,并因此直至找到匹配条件为止(如果有的话)。在一些实施方式中,该规则组可使用商业规则环境,诸如美国专利第8069129号中描述的环境(通过引用合并于此),来编码。计分规则组1082纵列中显示的计分要素可编码在匹配码中,例如,第二行可具有“311”的匹配码,其中第一个位置的“3”表示名称计分在匹配阈值以上(但在近似-重复阈值以下)而其他两个位置的“1”表示id计分和日期计分的准确匹配。
图10D中,在计分规则组1082中,用于比较记录1084的匹配决策被翻译1086成另一基于实例规则组中的动作1088。不同的动作针对不同的匹配决策而发生。如果名称计分在近似_重复_阈值(隐含地大于匹配_计分)以上而其他计分为1,则分配匹配决策1090“近似重复”。得到的动作1092是将已有群id分配给输入的记录。另一方面,如果匹配决策1093为“匹配”(而并非“近似重复”),则除了分配已有匹配阈值以外,动作1094会是将该记录添加至代表记录库1070。如果匹配决策1095为“不匹配”,则动作1096-1099会是生成新的群id并将其分配给该记录,将该记录添加至主记录库1050,对该记录应用搜索-条目扩展过程1052并将结果添加值搜索索引1054,以及将该记录添加至代表记录库1070。
2.6.8批处理模式中的群成员身份确定
分群处理的进行在批处理模式中比起在增量模式中稍有不同。图11A-图11D示出分群处理。在图11A中,给出分群处理的高度概览。变体剖析器库115和变体网络库126可通过搜索-条目扩展过程读取并处理以在搜索库146中填充搜索-条目145。这作为预处理步骤发生。数据源100被读取。在一些实施方式中,使用变体剖析器库115和变体网络库126中的数据为每个记录1110生成并扩展原始查询。可规划扩展查询从而以排除不能满足群成员身份标准的方式来接近群成员身份标准。扩展查询可被传递至从搜索库146调出原始候选项记录的候选项搜索引擎1120。可通过候选项选择器1130来过滤原始候选项记录以选择匹配替身匹配标准的那些记录。在一些实施方式中,可使用搜索码来部分实现替身匹配标准,该搜索码对为每个记录做出的多重搜索的结果进行编码。所有匹配替身匹配标准的候选项记录可经受针对查询记录1140的详细计分且它们的结果分值可保存在变体-配对计分库1150中。
在一些实施方式中,可将匹配码分配给每个配对以对计分决策后面的细节进行编码,包括对计分要素而言的计分决策的质量(诸如姓名匹配和邮编匹配的质量)以及在配对的记录中字段或字段组合的填充状态的编码。
在数据源100中的所有记录已经得到处理且变体-配对计分库1150完成之后,数据源记录100被再次读取。数据源记录可由群成员身份引擎1150来处理以确定每个数据源记录属于哪个群,包括创建新群以及指示群成员身份决策何时模糊或者处在边际(marginal)。使用用户界面的用户102可检查变体-配对计分库1150。在一些实施方式中,用户界面可以图形形式显示变体-配对分值的网络,其中每个记录为一节点而候选项记录的变体-配对为一边。用户界面可记录总体分值、计分细节(包括对总体分值有贡献的组分分值)、搜索码以及与候选项记录的配对关联的匹配码。在一些实施方式中,用户102可操控变体-配对计分库1150以添加、移除或修改变体配对的细节。
由于变体-配对计分库针对数据组100而完成1150,所以批处理模式群成员身份决策具有可用于做出群成员身份决策的完整记录组,而并非增量模式中那样仅具有之前已经被处理的记录。
在图11B中,示出群成员身份引擎的一种批处理模式实施方式。数据记录从相同的数据源100读取出并经过处理以得到变体-配对计分库1150。在一些实施方式中,可根据可区别性标准1151来给记录排序以将更能够区分开的记录放置在首位。分群库170和数据群180的填充是增量式的。每个查询记录在分群库170中就其独特的记录标识符(假定已经添附了一个)而进行查找1152,以确定其是否已是一各群的成员,并且若是则调出关联的群id(多个id)。
如果查询记录的独特记录标识符已经存在于分群库170中,则该查询记录在之前数据记录的处理期间必定已经被添加至该分群库中。分配群id1153,并更新1154该数据群180。
如果分群库中不存在独特的记录标识符,则可从变体-配对计分库1150中找到115其变体配对记录,且调出分值在匹配阈值以上的那些记录。匹配阈值表示相似得足以在相同群中的记录是群主记录的原始记录。在当前设定中,主记录可视作群的第一个成员。大多数记录因此自身并非主记录,且该匹配阈值是用来将相似得足以在同一群中支持会员身份的记录识别为变体-配对记录。然后每个变体-配对记录可在分群库1355中查找,以确定是否有一个或多个记录已经被分配给群。有三种情况需要考虑:分群库中没有变体-配对记录、有一个、或者有很多。
如果分群库中还不存在变体-配对记录,则当前记录与已有群有足够不同以成为新群的第一个成员。新群基于当前记录来创建1156,且用新群来更新1154数据群。此外,在匹配阈值以上的每个变体-配对记录被添加至群,包括每个变体-配对记录的独特记录标识符以及来自变体-配对计分库1150的关联计分信息。如上面所提及,假设当前记录为群的主记录,则计分超出匹配阈值的记录相似得足以在相同的群中。这些记录不能用来更新数据群180,因为关于这些记录的信息还未完成。一旦从数据源100中读取出记录且其独特记录标识符都在分群库170中被找到,则将每个记录添加至数据群180。
如果找到一个变体-配对记录成为已有群的成员,当前记录都在群成员的匹配阈值内并被接纳成为该群的成员。该当前记录被分配给关联群id 1153。然后用该当前记录来更新1154数据群180。群搜索库170可用与当前记录关联的群信息来更新1168。
在图11C提供的示例中,一个变体-配对记录是已有群的成员。已有群的主记录1180通过填黑圆圈来标记。非主记录通过填灰圆圈来标记。近似-重复阈值1181环绕与主记录非常相似而例如不会添加至代表记录库178(分群库180的其中之一)的记录。匹配阈值1182环绕与主记录相似得足以通过直接关联成为群成员的所有记录。第二个不相交群的主记录1183被显示,还有其近似-重复和匹配阈值边界也一起显示。
当前记录1184并非已有群的成员,因为其落在所示两个群的匹配阈值边界之外。其自身的匹配阈值边界1185环绕一个数据记录1186。该数据记录1186将是数据记录1184的变体-配对数据记录,因为其在匹配阈值以内(并因此会是与数据记录1184作为主记录的数据记录1184关联的群的成员,而这里该数据记录1186并非主记录)。数据记录1186已经是与主记录1180关联的群的成员,并因此将当前数据记录1184添加至该群。因为当前数据记录在匹配阈值1182之外,所以绘示边1187以显示与数据的连接,由该连接得到其群成员身份。
在一些实施方式中,为了限制群通过关联关系链的增长,可在主记录1180周围绘示更靠外的可疑阈值边界1188以限制可找到群成员的区域。数据记录1189在数据记录1184的匹配阈值内,现在是该群的成员,但是其在可疑阈值边界1188之外并因此被排除主记录1180的群中的成员身份。这样的边际变体-配对还可在图形网络示图中加以区分,例如这里用虚线。
返回图11B,如果找到很多变体-配对记录是已有群的成员,则对群的组去重复。如果只有一个不同的群,则应用之前的实例。如果有数个不同的群包含一个或多个当前记录的变体-配对记录,则在一种实施方式中,每个群中的最佳分值及对应的匹配变体配对记录被记录1162作为群成员身份决策模糊或不确定性的证据。可通过比较来自每个不同群的最佳计分记录来找到1164的最佳匹配。如果发生平分,则使该当前记录成为一个以上群的部分成员,并带有通过与每个群的相对计分而确定的权重。
关联群id被分配1153给当前记录。用当前记录来更新数据群180。还用与当前记录关联的分群信息,包括分配的群id以及带有分数的可选择群成员身份配对的列表,来更新1168分群库170。
在图11D示出的示例中,当前数据记录在两个不同群的匹配阈值内。如之前一样,数据记录1180和1183是这两个不同群的主记录并分别显示了群的近似-重复和匹配阈值边界。当前数据记录1190处于群成员身份的考量之下。其在匹配阈值内具有两个变体-配对记录,数据记录1193和1194。每个分别是与主记录1180和1183关联的群的成员。这两个群及这些变体-配对记录可被记录于分群库180中。假设两个之间的最佳分值是当前数据记录1190和变体-配对数据记录1193之间的计分。该当前数据记录将被分配给主记录1180的群,且其与数据记录1193的配对将通过黑色边来标记。与变体-配对数据记录1194的可选值关联,及其与主记录1183的关联群,将被记录并用灰色边来标记。
在图形用户界面104中,群的网络可被显示成每个数据记录作为一节点。属于主记录的数据记录可被区分。与群内数据记录的汇集外接(circumscribing)的分群边界可被绘示。匹配边界之外借助于群成员的变体-配对属于群成员的数据记录可用一边来表示。那些潜在是一个以上群的成员的数据记录可被突出显示。这些数据记录的处置可在分群认可处理中接受用户检查,并且区分它们并指示它们与多个群的连结可辅助用户实现成员身份的最终决策。用户102可使用用户界面104作出这样的决策,作为如下所讨论对群网络的检查的部分或者分群认可处理的部分。
2.6.9用于标记-配对查询词的变体-查找过程
候选项记录可基于搜索结果引用的群id出现所针对的不同查询的数目来排名。例如,群1可被搜索结果引用三次查询;群10可被搜索结果引用两次查询;群15可被搜索结果引用四次查询,等等…。在一些实施方式中,基于生成引用候选项记录的搜索结果的标记-配对查询词的数目与标记-配对查询词的数目的比率来为候选项记录给出计分。可使用以下公式确定分值:
分值候选项=查询配对候选项/查询配对
其中分值候选项是群的分值。查询配对候选项是包括识别该群的任意搜索结果的查询数目。而查询配对是从搜索库中的扩展查询查找的标记-配对查询词的数目。
候选项记录可通过将该分值与候选项阈值比较来识别。例如,匹配一般的查询配对可以是良好的分值。
在一些实施方式中,在确定保留哪些候选项时可使用补充信息。例如,标记-配对查询词(包括相邻查询词和带有中介查询词的查询词)的数目在查询中标记的数目为N的情况下可表达为2N-3。候选项记录具有M个标记,并因此有2M-3个标记-配对查询词。给出良好候选项组的示例标准是要求匹配查询配对的数目大于或等于2*取最小(M,N)-5。这一表达式的关键特征是其知道后续记录具有的标记-配对可能比查询少,因此具有可能的匹配所需的匹配配对更少。也可能有其他表达式。
2.6.10查询拒绝处理
在一些实施方式中,引用太多不同记录的搜索结果可能被丢弃,因为不足以进行区分。例如,通过标记-配对查询词返回的记录最大数目的阈值可能是100,其允许对适当数目的不同记录计分而在标记-配对查询词没有帮助时不会浪费时间。群成员身份通常由一个以上的字段相似性分值来确定。如果标记-配对查询词返回大量的群,这可能意味着其他一些值在整个候选项组中变化巨大而标记-配对查询词则并非如此。在调出的记录数目达到阈值后,标记-配对查询词也会被丢掉,因为其可能不像其他区别信息那样有效。
对于单个-标记查询词,阈值可被设得更低,可能小于10。原因在于单独的单个-标记查询词一般并不十分可区分;事实上它们可能对于检测与仅包含一个单词的标记(其中无法形成配对)的记录的匹配最为有用。如果单个-标记查询词没有成功找到不同的匹配,则使用其他一些可识别的信息条可能更有成效。
在一些场景中,原始查询可能不产生任何候选项查询,例如,其可能是空白或空的。或者,查询词可能由于太常见而全部被拒绝,在这样的情况下无法进行查询。在这两种情况下,记录都被从查询处理拒绝。可使用涉及不同字段(或字段的组合)的变化查询构造表达式来规划有用的查询以驱动群。可使用分群策略标识符来标记记录以指示它们在哪个查询表达式下被分群。
例如,假设第一分群是基于政府分配标识符且有大量记录具有默认值,比如全部为零。在用政府分配标识符全为零(区别在于姓名和生日等其他字段)形成100个群之后,后续的记录将被拒绝。在一些实施方式中,共享过于常见查询词的所有记录或者经过减少的代表记录组被提取,包括那些已经被分群的以及它们的群的其他成员。该记录的汇集使用新的群策略加以重新群。在该示例中,新的使用基于姓名查询的分群策略有可能对该记录组更有识别性,且可用来在政府分配标识符已经失败的场合对记录分群。通常,从最高识别性到最低识别性来选择在构造中使用的字段。不完整的记录识别性较低且导致可能模糊的群成员身份决策,因此将它们与充分填充记录分开进行分群是有益的。
当在第二分群策略下分群时,使用过于常见的查询作为分段值是有益的。这会将分群限制到来自共享常见查询值的组的记录。在第二分群之后,可使用老的和新的群id的多重匹配来调和。第一和第二分群可为群分配不同的记录组,因为分群策略的选取会影响群成员身份决策。多重匹配调和将试图融合不同策略下的群。多重匹配调和的细节在以下不同但相关的语境中加以说明。
在一些实施方式中,搜索库146可包含用于与使用不同字段(或字段的组合)的查询对应的多重搜索-扩展过程的搜索条目。例如,搜索库146可包含用于基于政府分配标识符查询的群的条目。对于基于姓名的查询,搜索-库条目能够重新扩展,重新包含相同的群id键。也即,使用通过用政府分配标识符查询来群所得到的数据群作为数据源,能够扩展用于基于姓名的查询表达式的搜索条目。这相当于对搜索库重新索引。如果已有群的组已经为新的查询策略而重新索引,则处理被拒绝的记录不需要提取和重新处理有关记录,而是能够作为使用新查询的重新索引检索库的崭新的群运行来进行。
2.6.11多重匹配调和
在图12中,示出多重匹配调和步骤。如果群被保存成向量化的形式,也即,如果多个群成员一起保存在单个记录中,则可将群成员规范化成个体记录1200。这些记录通过独特的记录键1202来分区。这确保每个原始数据记录的所有复制品都在同一分区中。将数据记录关于记录键汇总以获得与记录1204关联的不同分群键的向量。选择一个分群键(例如最小的)作为优选。然后将该向量规范化成分群键配对,将优选(这里是最小的)分群键与每个其他不同的分群键1206配对。然后将传递闭包应用于所有分群键配对的组。这导致将一个分群键分配给连接分群键配对1208的每个网络,也即,分配给每个分群,并且该分群键随后被分配给每个唯一数据记录1210。
多重匹配调和器165的一种实施方式图示在图13A-图13C中。在图13A中,多重分区上的记录510的群被规范化1320成个体记录1321。在第一分群1300中,k1为包含两个记录的群的群id。这些记录1310的第一个具有分段键“135”,id“123456”、和记录键“r1”。在规范化之后,分群键k1被添加至记录1310而分段键被丢掉,给出记录1322。然后通过记录键1324对经过规范化的记录1321重新分区。结果1326是共享记录键的所有记录存在于同一分区中。
在图13B中,在记录键1328上汇总记录1326以产生带有唯一记录键的记录,每个记录包含分群键1330的向量。例如,记录1331是带有记录键“k1”的唯一记录。其具有id“123456”和两个群id“[k1,k2]”的向量。形成记录键的配对。这里它们已经是配对。如果向量较长,例如,“[k1,k2,k5]”,则将从向量中的相邻元素:“[k1,k2]”、“[k2,k5]”来形成配对。应用传递闭包1332来为每个连接配对的组选取唯一代表分群键,给出结果配对1334。
在图13C中,使用从传递闭包1332得到的映射1334为记录1330分配唯一分群键。在分群键1340上对记录重新分区并就分群键将记录汇总成数据群530。
2.6.12分群认可处理
在一些实施方式中,作为在分群之后发生的分群认可处理的一部分,主记录可由用户从群成员中指派。一个群可具有一个以上的主记录。具有相同群id的多个主记录可通过群序列号来区分。
认可处理为用户提供了通过UI检查将记录分组成分群以及视需要作出修改的机会。例如,用户可能想对将群中哪个或哪些记录指派为主记录进行修改。主记录(多个)充当该群的特别代表,特别是它们有时可用于显示而有时作为从其中形成搜索库条目的主记录。用户可能感觉除了该群第一个成员或中心以外的某一记录是更好的代表,可能因为其在某些字段中具有更好的值(对于用户)。在一些实施方式中,当主记录改变时,可通过添加新的主记录并禁用或去除之前的主记录来修改主记录库。如果搜索库是基于主记录,其被修改以添加对应于新主记录的条目以及禁用或去除与老的主记录有关的那些条目。
用户还可以通过手动指示一个群的群id应当重映射至另一群的群id的值以融合两个群。例如,对于基于公司名称的群,用户可辨识两个群上的公司名称代表同一个法律实体并且应当一起保存在同一群中。群id 125可保存“HSBC”的记录而群id 192保存“米兰银行(Midland Bank)”的记录。这些名称在相似性计分规则下并不匹配,但是用户知道米兰银行由HSBC取得从而想将它们分群在一起。用户可指示群id 192将要重映设至群id 125。当处理分群认可修改时,在一些实施方式中,主记录库可被修改以将带有群id192的主记录的群id改变成125,并且将群序列设成下一较大的未使用的值。与主记录关联的搜索库条目还可别修改以将群_id从192改变成125。在将来的分群中,具有名称“米兰银行”的记录将在群id 125处找到候选项,且可与“HSBC”记录一起被分群到那里。
用户可以类似的方式选择分裂该群。在一些实施方式中,记录可被标记作为新群的成员。在处理分群认可改变时,记录可被添加至主记录库作为新群的主记录,而从该记录填充的搜索-条目可被添加至搜索库。
在一些实施方式中,用由每个群成员所生成的条目的不相交联集(union)来填充搜索库条目,也即,通过群某一成员由搜索条目扩展过程生成的每个不相同条目都被保留作为索引中链接至该群的条目。这有助于将群的差异性暴露给搜索处理。
在一些实施方式中,搜索库中可存储额外的信息以便于候选项可行性的估计。例如,搜索库中可存储诸如公司名称或个人姓名等多单词字段中标记的数目。
图14A-图14B更详细地示出分群认可处理。在图14A中,来自数据群180的记录被读取1401且认可工作表被填充包含用于所选择数据群每个成员的记录,包括群id和来自该数据群记录的其他信息。在一些实施方式中,认可表单中的纵列可被填充以表示哪些记录得到确认以及哪些记录为主记录。用户102可通过用户界面104观察和编辑认可工作表以指定认可改变1420。
由用户102(或通过一些自动处理)作出的对认可工作表的任意改变通过将经过修改的认可工作表与原表比较而检测1430到。
在一些实施方式中,用户102可将记录确认为群的成员,在这种情况下,如果将来被提交给群,则该记录将接收当前的群id而无需进一步处理。在一些实施方式中,这由更新过程1432通过将该记录的唯一引用键与当前群id一起添加1433至确认或排除的库172来完成,将该记录标记为已确认。用户还可不确认之前已确认的记录,在这种情况下,该记录可从确认或排除的库172中被移除或者被标记为被更新过程1432禁用。
在一些实施方式中,用户可将一记录排除作为群的成员,在这种情况下,如果将来被提交给群,则该记录将被阻止作为具有当前群id的群的成员而无需进一步处理。这可被用作为引导分群算法为该记录找到下一个最佳群的机制。在一些实施方式中,排除由与确认类似的处理来完成。更新过程1432将该记录的唯一引用键与当前群id一起添加至确认或排除库172,将该记录标记为被排除。用户可不排除之前被排除的记录,在这种情况下,该记录可从确认或排除库172被移除或者被标记为由更新过程1432禁用。
在一些实施方式中,哪个记录是群的主记录可以改变。新的主记录可存储在更新的主记录库1440中,而老的主记录可从主记录库1440移除或禁用。
在一些实施方式中,记录可被标记为重映射至新群。这具有分裂已有群的效果。这一标记记录将具有分配1438的新群id且将作为新群的主记录被存储于更新的主记录库1440中。只有选择的记录需要这样标记,因为当在后续步骤中重新处理记录记录时比当前群的主记录更接近标记记录的记录将用该标记记录来分群。
在一些实施方式中,记录可被重映射至已有群。这具有融合两个群的效果。例如,带有群id 192的记录“米兰银行”可被重映射至“HSBC”群125,由此融合群。当将一记录融合至已有群时,该记录可被分配该已有群id并成为该群的新的、添加的主记录。在一些实施方式中,群的不同主记录可通过群序列号来区分。当新的主记录被添加至群时,在记录被添加至更新的主记录库1440之前,最高的群序列号得以递增1436。
在已经对确认或排除库172以及更新主记录库1440作出适当更新之后,潜在受该变化影响的所有记录可被从数据群180中提取1434以给出受影响记录1450的数据组。在一些实施方式中,可通过提取已经发起修改所开始的群或者记录已经重映射所对应的群中的所有记录来识别受影响的记录。基本原理在于这些群中的记录都相对接近,在某种意义上关于群成员身份而相关,但与其它群中的记录远得足以使对这些分区的成员的改变不会影响其他群中的成员身份决策。
在图14B中,图示出对受分群认可改变影响的记录重分群的处理。受影响的记录1450被读取1451并应用于搜索库和代表库以移除与受影响记录中分群关联的所有记录1452(除经过确认的那些记录之外)以产生减小的搜索库1456和减小的代表库1458。这有效地将分群处理返回至针对受影响记录的初始状态,只是确认或排除库172以及更新的主记录库1440已经得到填充。受影响的记录1450被读取1459并如图9中那样使用确认或排除库172、更新的主记录库1440、减小的搜索库1456以及减小的代表库1458来重分群。
经过确认的记录将被分配它们已有的群id。属于主记录的受影响的记录将是与它们自身的准确匹配,并且将被分配它们关联的群id。排除的记录将被阻挡在特定群之外,并且将被分配给适当的其他群。这可以并且很可能将是并非受影响群中的群。这样的重新分配是可能的,因为更新的主记录库1440、减小的搜索库1456以及减小的代表库1458包含所有其他群的记录,因此到其他群的匹配和分配是可能的。所有其他记录将去向通常群成员身份决策处理带它们所去之处。比之前的群的记录更类似于重映射记录的记录将被分配给重映射记录的群。这对于群的分裂和融合都会发生。
随着记录被处理,减小的搜索库1456和减小的代表库1458被填充1464以产生更新的搜索库1466和更新的代表库1468。群成员身份决策的结果被写入经过修改的受影响数据群1480的数据组。这可与原始数据群180进行比较1482以找到数据群差异1484。在一些实施方式中,可在用户界面104中为用户102显示分群之前和之后的列表或图形图像。然后用户102可通过做出进一步的认可改变以及重复该处理来选择反复,或者选择丢弃该修改并重新开始。当用户对认可改变满意时,数据群180和分群库170,包括确认或排除库172、主记录库174、搜索库146、以及代表记录库178,可以发布这些以供将来新数据源的分群使用。
3针对远程系统的分群
在隔离的远程分群系统(尤其是并不输出任何数据的系统)中进行的针对数据群的分群,可通过修改增量模式中的群成员身份过程来处理。必要的要求在于,除了查询之外,初始系统上在分群处理期间找到的某些额外数据必须被传递给远程分群系统。该额外数据为代表初始系统上变体范围的变体,既有标记级别的也有候选项记录级别的。要求这些变体在远程系统上作出综合搜索以及分群匹配。
查询可以两种形式出现。其可以是由查询记录形成的查询,在这种情况下该查询记录与该查询一起被传递。或者,其可以是不带有关联查询记录的孤立查询,在这种情况下该查询记录简单地以其自身被传递。这稍后在处理中影响候选项匹配记录的计分。
对于标记而言,初始系统中的每个标记在远程系统中可具有初始系统中不存在的变体标记。为了找到这些新的变体,与参与初始群处理的标记有关的每个变体必须被传递至远程系统。在一些实施方式中,为了捕捉标记中全范围的变体,与初始扩展查询中任意标记配对的所有标记-代表所对应的标记的汇集邻居被调出并传递给远程分群系统。在远程系统上,这些初始标记被添加至变体剖析器和变体网络库以确定初始系统与远程系统之间的新变体配对,并且更新的变体剖析器和变体网络库被写入。变体-代表形成于更新的变体网络库中。变体-代表必须保持初始在远程系统上创建的那样,因为搜索库是按照这些标记-代表索引的。新的初始变体标记,也即,还未存在于远程变体剖析器或变体网络库中的来自初始系统的那些标记,被添加至已有的标记-代表邻居。
在已经确定适当匹配的候选项记录之后,也即那些匹配适合于查询的选择标准的候选项记录,传递所有初始变体的类似需求适用于从代表记录库调出的代表记录。这些代表记录跨越满足查询选择标准的初始系统上的记录的多样性。这些记录中的每一个可找到远程系统上不然可能未被检测到的变体配对。
如果有关该查询的变体标记和代表记录均与该查询一起被传递至远程系统,则上述增量模式下的群成员身份过程可被应用来调出根据指定选择标准匹配查询的所有记录。在一些应用中,例如,欺诈检测或法院调查中,用于调出有关查询的记录的选择标准可不同于用来确定群成员身份的群成员身份标准。群成员身份通常倾向于更具限制性的标准以避免错误的肯定性识别,也即,避免将记录放置于错的分群中,而法院查询倾向于避免更松弛的标准以避免错误的否定,也即避免遗漏应当是匹配的记录。
在图15A-图15C中,示出针对远程分群系统作出的查询的示例。在图15A中,用户A102A使用用户界面104A向本地分群系统提交查询1500。在一些实施方式中,该查询可被扩展1510,利用来自变体剖析器库115A的记录找到与原始查询中每个标记配对的变体标记以及利用来自变体网络库126A的记录,例如,以找到标记-代表来取代扩展查询中的变体标记。如上所述,变体网络库126A中这些标记的标记-代表的邻居被提取并保存为选择变体网络记录1514。该选择变体网络记录中的每个标记可以从变体剖析器库115A中提取1515并保存为选择变体剖析器记录1516。
原始候选项使用搜索库146A从扩展查询找到1520。使用的搜索条目可保存在选择搜索条目1522中。该查询选择标准应用1530于原始候选项记录以选择候选项记录。如果有候选项记录,则与该候选项记录关联的群中包含的代表记录被从代表记录库178A中调出1540并保存为选择代表记录1542。查询1500以及各种选择记录1514、1516和1542,如果有的话,被传递给远程分群系统,它们在该处被接收(未显示)用于由远程分群系统处理。
在图15B中,接收的选择变体剖析器库记录1516被用来更新1551远程系统上的变体剖析器库115B以产生更新变体剖析器库1552。在一些实施方式中,这可以是仅用于该查询目的的暂时更新。接收的选择变体网络记录1514和更新的变体剖析器库1552被用于更新1553变体网络库126B以产生更新变体网络库1554。
在图15C中,接收的查询1500和接收的选择代表记录1542被读取。原始查询从每个选择代表记录中形成并与起始查询一起被扩展1510至扩展查询,使用更新的变体剖析器库1552和更新的变体网络库1554。原始候选项记录在远程搜索库146B中被找到1560。查询选择标准被应用于原始候选项记录以找到1565匹配该选择标准的那些记录。应用1567一过滤器。如果没有候选项,则通过用户界面104B将其通报给用户102B。
如果有候选项,则它们用来从代表记录库178B中它们对应的群调出代表记录,这些记录然后被针对当前查询记录分值,也即,要么是原查询记录要么是形成当前查询所来自的原代表记录。如果原查询自身并不具有关联的查询记录,则所有代表记录被提取。在一些实施方式中,当存在与原查询关联的查询记录时,这也被针对调出的代表记录178B进行计分且该分值与当前查询记录和代表记录之间的分值一起被通报。
当前查询记录和代表记录178B之间得到的分值与查询匹配标准进行比较,并且如果匹配标准得到匹配1575,则从远程数据源180B调出1577数据群记录并将其存储为查询结果1580。然后将该查询结果通过用户界面104B通报给用户102B。
4实施方式
以上所述的分群、分段、和并行化技术能够使用用于在计算机上执行的软件来实施。例如,该软件将这些过程形成为在一个或多个编程或可编程计算机系统(其可以属于诸如分布式、客户端/服务器、或网格(grid)等各种架构)上执行的一个或多个计算机程序,这些计算机系统中每个都包括至少一个处理器、至少一个数据存储系统(包括易失性或非易失性存储器和/或存储元件)、至少一个输入装置或端口、以及至少一个输出装置或端口。该软件可形成更大程序的一个或多个模块,例如提供与数据流图形的设计和配置有关的其他服务。图形的节点和元素能够被实施为计算机可读介质中存储的数据结构或者符合数据储存库(data repository)中存储的数据模型的其他有组织数据。
该软件可设置在诸如CD-ROM等存储介质上,可由通用或专用可编程计算机读取,或经由网络的通信介质传送(编码成传播信号)至其被执行处的计算机存储介质。所有功能可在专用计算机上执行,或者使用诸如协处理器等专用硬件来执行。该软件可以分布式的方式实施,在该方式中由该软件指定的不同部分的运算由不同的计算机来执行。每个这样的计算机程序优选存储或下载至可由通用或专用可编程计算机读取的存储媒介或装置(例如,固态存储器或媒介,或者磁性或光学媒介),用于在由计算机系统读取该存储媒介或装置时配置并操作该计算机以执行这里所描述的过程。本发明的系统还可视作为实施成计算机可读存储介质,由计算机程序配置而成,在配置该存储介质的地方使计算机系统以特定或预定义的方式操作来执行这里所描述的功能。
已经描述了本发明的数个实施例。尽管如此,应当理解可作出各种修改而不脱离本发明的精神和范围。例如,以上所述的一些步骤可独立排序,并因而可以不同于以上所述的次序来执行。
应当理解前述的说明旨在示出而并非限制本发明的范围,本发明的范围由所附权利要求书的范围限定。例如,以上所述的数个功能步骤可以不同的次序执行而不会实质影响整个处理。其他实施例均落在以下权利要求的范围内。

Claims (11)

1.一种数据分群的方法,包括:
通过第一处理实体将一记录组分区成多个记录子组;以及
通过各个不同的接收方处理实体处理所述记录组的不同子组,并将结果存储在每个所述接收方处理实体可访问的数据存储部中,每个接收方处理实体的处理包括
基于确定所述记录中一个或多个字段的一个或多个值与由该接收方处理实体维护的本地参考信息内的条目之间或者与由任一其他所述接收方处理实体提供的所述数据存储部内的条目之间是否存在近似匹配来对所述子组中的每个记录执行操作,以及
基于由该接收方处理实体维护的所述本地参考信息来更新所述数据存储部。
2.如权利要求1所述的方法,其中每个所述接收方处理实体可访问的所述数据存储部包括非易失性存储介质。
3.如权利要求2所述的方法,其中由每个接收方处理实体维护的本地参考信息被存储在易失性存储介质中。
4.如权利要求1所述的方法,其中所述近似匹配允许所述值匹配得不同处多达一指定编辑距离。
5.如权利要求1所述的方法,其中对所述子组中的每个记录执行操作包括代理键分配。
6.如权利要求5所述的方法,其中对于接收方处理实体处接收的每个记录,在该接收方处理实体处生成的结果包括随着基于所述记录的一个或多个值所分配的代理键而增长的所述记录。
7.如权利要求1所述的方法,其中对所述子组中的每个记录执行操作包括将所述记录分群成一个或多个群。
8.如权利要求7所述的方法,其中对于接收方处理实体处接收的每个记录,在该接收方处理实体处生成的结果包括,随着基于所述记录的一个或多个值以及在所述接收方处理实体处接收的至少一些其他记录的一个或多个值所分配的群而增长的所述记录。
9.如权利要求1所述的方法,其中所述操作包括以下至少其中之一:代理键分配、分群、汇总、或添加。
10.一种计算机可读存储介质,用于存储计算机程序,该计算机程序包括指令,该指令用于使计算机系统:
通过第一处理实体将一记录组分区成多个记录子组;以及
通过各个不同的接收方处理实体处理所述记录组的不同子组,并将结果存储在每个所述接收方处理实体可访问的数据存储部中,每个接收方处理实体的处理包括
基于确定所述记录中一个或多个字段的一个或多个值与由该接收方处理实体维护的本地参考信息内的条目之间或者与由任一其他所述接收方处理实体提供的所述数据存储部内的条目之间是否存在近似匹配来对所述子组中的每个记录执行操作,以及
基于由该接收方处理实体维护的所述本地参考信息来更新所述数据存储部。
11.一种计算系统,包括:
第一处理实体,被配置为将一记录组分区成多个记录子组;以及
多个接收方处理实体,每个接收方处理实体被配置为处理所述记录组的不同子组,并将结果存储在每个所述接收方处理实体可访问的数据存储部中,每个接收方处理实体的处理包括
基于确定所述记录中一个或多个字段的一个或多个值与由该接收方处理实体维护的本地参考信息内的条目之间或者与由任一其他所述接收方处理实体提供的所述数据存储部内的条目之间是否存在近似匹配来对所述子组中的每个记录执行操作,以及
基于由该接收方处理实体维护的所述本地参考信息更新所述数据存储部。
CN201810151609.7A 2011-11-15 2012-11-15 数据分群、分段、以及并行化 Active CN108388632B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161560257P 2011-11-15 2011-11-15
US61/560,257 2011-11-15
US201261660259P 2012-06-15 2012-06-15
US61/660,259 2012-06-15
CN201280067076.5A CN104054073B (zh) 2011-11-15 2012-11-15 数据分群、分段、以及并行化

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201280067076.5A Division CN104054073B (zh) 2011-11-15 2012-11-15 数据分群、分段、以及并行化

Publications (2)

Publication Number Publication Date
CN108388632A CN108388632A (zh) 2018-08-10
CN108388632B true CN108388632B (zh) 2021-11-19

Family

ID=47258118

Family Applications (4)

Application Number Title Priority Date Filing Date
CN201280067136.3A Active CN104054074B (zh) 2011-11-15 2012-11-15 基于候选项查询的数据分群
CN201280067076.5A Active CN104054073B (zh) 2011-11-15 2012-11-15 数据分群、分段、以及并行化
CN201810151609.7A Active CN108388632B (zh) 2011-11-15 2012-11-15 数据分群、分段、以及并行化
CN201280067094.3A Active CN104040544B (zh) 2011-11-15 2012-11-15 基于变体标记网络的数据分群

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN201280067136.3A Active CN104054074B (zh) 2011-11-15 2012-11-15 基于候选项查询的数据分群
CN201280067076.5A Active CN104054073B (zh) 2011-11-15 2012-11-15 数据分群、分段、以及并行化

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201280067094.3A Active CN104040544B (zh) 2011-11-15 2012-11-15 基于变体标记网络的数据分群

Country Status (9)

Country Link
US (6) US10503755B2 (zh)
EP (6) EP2780835B1 (zh)
JP (3) JP6125520B2 (zh)
KR (3) KR102031392B1 (zh)
CN (4) CN104054074B (zh)
AU (3) AU2012340429B2 (zh)
CA (4) CA2855715C (zh)
HK (4) HK1200942A1 (zh)
WO (3) WO2013074774A1 (zh)

Families Citing this family (172)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8775441B2 (en) * 2008-01-16 2014-07-08 Ab Initio Technology Llc Managing an archive for approximate string matching
WO2010048538A1 (en) 2008-10-23 2010-04-29 Ab Initio Software Llc Fuzzy data operations
US10084856B2 (en) * 2009-12-17 2018-09-25 Wsou Investments, Llc Method and apparatus for locating services within peer-to-peer networks
US20110153737A1 (en) * 2009-12-17 2011-06-23 Chu Thomas P Method and apparatus for decomposing a peer-to-peer network and using a decomposed peer-to-peer network
US8468119B2 (en) * 2010-07-14 2013-06-18 Business Objects Software Ltd. Matching data from disparate sources
EP2727247B1 (en) * 2011-06-30 2017-04-05 Openwave Mobility, Inc. Database compression system and method
JP6125520B2 (ja) * 2011-11-15 2017-05-10 アビニシオ テクノロジー エルエルシー 候補クエリに基づくデータクラスタ化
US8949199B2 (en) * 2011-12-29 2015-02-03 Dell Products L.P. Systems and methods for de-duplication in storage systems
WO2013123097A1 (en) 2012-02-13 2013-08-22 SkyKick, Inc. Migration project automation, e.g., automated selling, planning, migration and configuration of email systems
US10467322B1 (en) * 2012-03-28 2019-11-05 Amazon Technologies, Inc. System and method for highly scalable data clustering
US20130268526A1 (en) * 2012-04-06 2013-10-10 Mark E. Johns Discovery engine
US9684395B2 (en) * 2012-06-02 2017-06-20 Tara Chand Singhal System and method for context driven voice interface in handheld wireless mobile devices
BR112015003293B1 (pt) * 2012-08-17 2022-04-19 Twitter, Inc Sistema e método para pesquisa em tempo real em uma plataforma de mensagens e meio legível por computador não transitório
US10223697B2 (en) 2012-08-30 2019-03-05 Oracle International Corporation Method and system for implementing a CRM quote and order capture context service
US9251133B2 (en) * 2012-12-12 2016-02-02 International Business Machines Corporation Approximate named-entity extraction
US10949752B1 (en) * 2013-01-30 2021-03-16 Applied Predictive Technologies, Inc. System and method of portfolio matching
US9830353B1 (en) * 2013-02-27 2017-11-28 Google Inc. Determining match type for query tokens
US20140282396A1 (en) * 2013-03-14 2014-09-18 Syntel, Inc. Computerized system and method for extracting business rules from source code
US20140280239A1 (en) * 2013-03-15 2014-09-18 Sas Institute Inc. Similarity determination between anonymized data items
US8844050B1 (en) 2013-03-15 2014-09-23 Athoc, Inc. Personnel crisis communications management and personnel status tracking system
US10803102B1 (en) * 2013-04-30 2020-10-13 Walmart Apollo, Llc Methods and systems for comparing customer records
US9411632B2 (en) * 2013-05-30 2016-08-09 Qualcomm Incorporated Parallel method for agglomerative clustering of non-stationary data
US11093521B2 (en) * 2013-06-27 2021-08-17 Sap Se Just-in-time data quality assessment for best record creation
KR20150020385A (ko) * 2013-08-13 2015-02-26 에스케이하이닉스 주식회사 데이터 저장 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템
CA2921245C (en) 2013-09-20 2023-08-22 Fulcrum Management Solutions Ltd. Processing qualitative responses
CN103455641B (zh) * 2013-09-29 2017-02-22 北大医疗信息技术有限公司 交叉多次检索的系统和方法
US8831969B1 (en) * 2013-10-02 2014-09-09 Linkedin Corporation System and method for determining users working for the same employers in a social network
US10043182B1 (en) * 2013-10-22 2018-08-07 Ondot System, Inc. System and method for using cardholder context and preferences in transaction authorization
US10423890B1 (en) * 2013-12-12 2019-09-24 Cigna Intellectual Property, Inc. System and method for synthesizing data
US10685037B2 (en) 2013-12-18 2020-06-16 Amazon Technology, Inc. Volume cohorts in object-redundant storage systems
US10620830B2 (en) 2013-12-18 2020-04-14 Amazon Technologies, Inc. Reconciling volumelets in volume cohorts
CN105830063B (zh) * 2013-12-18 2020-12-15 亚马逊科技公司 协调卷组中的小卷
US10026114B2 (en) * 2014-01-10 2018-07-17 Betterdoctor, Inc. System for clustering and aggregating data from multiple sources
US10055747B1 (en) * 2014-01-20 2018-08-21 Acxiom Corporation Consumer Portal
US9690844B2 (en) * 2014-01-24 2017-06-27 Samsung Electronics Co., Ltd. Methods and systems for customizable clustering of sub-networks for bioinformatics and health care applications
US9779146B2 (en) * 2014-02-07 2017-10-03 Sap Se Graphical user interface for a data record matching application
US20150269700A1 (en) 2014-03-24 2015-09-24 Athoc, Inc. Exchange of crisis-related information amongst multiple individuals and multiple organizations
US9268597B2 (en) * 2014-04-01 2016-02-23 Google Inc. Incremental parallel processing of data
US10482490B2 (en) 2014-04-09 2019-11-19 Sailthru, Inc. Behavioral tracking system and method in support of high-engagement communications
US20150348062A1 (en) * 2014-05-30 2015-12-03 Abhishek Gupta Crm contact to social network profile mapping
WO2015192106A1 (en) * 2014-06-12 2015-12-17 Shpanya Arie Real-time dynamic pricing system
US20150379033A1 (en) * 2014-06-27 2015-12-31 International Business Machines Corporation Parallel matching of hierarchical records
US10528981B2 (en) 2014-07-18 2020-01-07 Facebook, Inc. Expansion of targeting criteria using an advertisement performance metric to maintain revenue
US20160019284A1 (en) * 2014-07-18 2016-01-21 Linkedln Corporation Search engine using name clustering
US10318983B2 (en) * 2014-07-18 2019-06-11 Facebook, Inc. Expansion of targeting criteria based on advertisement performance
US10296616B2 (en) * 2014-07-31 2019-05-21 Splunk Inc. Generation of a search query to approximate replication of a cluster of events
US9922290B2 (en) * 2014-08-12 2018-03-20 Microsoft Technology Licensing, Llc Entity resolution incorporating data from various data sources which uses tokens and normalizes records
US10614912B2 (en) * 2014-08-17 2020-04-07 Hyperfine, Llc Systems and methods for comparing networks, determining underlying forces between the networks, and forming new metaclusters when saturation is met
US20160062979A1 (en) * 2014-08-27 2016-03-03 Google Inc. Word classification based on phonetic features
WO2016048295A1 (en) * 2014-09-24 2016-03-31 Hewlett Packard Enterprise Development Lp Assigning a document to partial membership in communities
US11461319B2 (en) * 2014-10-06 2022-10-04 Business Objects Software, Ltd. Dynamic database query efficiency improvement
US9600548B2 (en) * 2014-10-10 2017-03-21 Salesforce.Com Row level security integration of analytical data store with cloud architecture
JP6050800B2 (ja) * 2014-10-28 2016-12-21 Necパーソナルコンピュータ株式会社 情報処理装置、方法及びプログラム
CN105701118B (zh) 2014-11-28 2019-05-28 国际商业机器公司 用于归一化文件的非数值特征的方法和装置
US9727906B1 (en) * 2014-12-15 2017-08-08 Amazon Technologies, Inc. Generating item clusters based on aggregated search history data
US9483546B2 (en) * 2014-12-15 2016-11-01 Palantir Technologies Inc. System and method for associating related records to common entities across multiple lists
JP6129815B2 (ja) * 2014-12-24 2017-05-17 Necパーソナルコンピュータ株式会社 情報処理装置、方法及びプログラム
US20160239499A1 (en) * 2015-02-12 2016-08-18 Red Hat, Inc. Object Creation Based on Copying Objects Corresponding to Similar Entities
US10339502B2 (en) * 2015-04-06 2019-07-02 Adp, Llc Skill analyzer
US9940213B2 (en) 2015-06-10 2018-04-10 International Business Machines Corporation Integrating external services with a clustered file system
US10742731B2 (en) 2015-06-10 2020-08-11 International Business Machines Corporation Maintaining service configuration consistency across nodes of a clustered file system
WO2017015751A1 (en) * 2015-07-24 2017-02-02 Fulcrum Management Solutions Ltd. Processing qualitative responses and visualization generation
US10140327B2 (en) * 2015-08-24 2018-11-27 Palantir Technologies Inc. Feature clustering of users, user correlation database access, and user interface generation system
US10417337B2 (en) 2015-09-02 2019-09-17 Canon Kabushiki Kaisha Devices, systems, and methods for resolving named entities
US11392582B2 (en) * 2015-10-15 2022-07-19 Sumo Logic, Inc. Automatic partitioning
WO2017082875A1 (en) 2015-11-10 2017-05-18 Hewlett Packard Enterprise Development Lp Data allocation based on secure information retrieval
US10242021B2 (en) * 2016-01-12 2019-03-26 International Business Machines Corporation Storing data deduplication metadata in a grid of processors
US10255288B2 (en) * 2016-01-12 2019-04-09 International Business Machines Corporation Distributed data deduplication in a grid of processors
US10261946B2 (en) 2016-01-12 2019-04-16 International Business Machines Corporation Rebalancing distributed metadata
CA3023877A1 (en) * 2016-05-20 2017-11-23 Roman Czeslaw Kordasiewicz Systems and methods for graphical exploration of forensic data
US10740409B2 (en) 2016-05-20 2020-08-11 Magnet Forensics Inc. Systems and methods for graphical exploration of forensic data
JP6072334B1 (ja) * 2016-06-09 2017-02-01 株式会社Cygames 情報処理システム及び方法、並びにプログラム
US20180025093A1 (en) * 2016-07-21 2018-01-25 Ayasdi, Inc. Query capabilities of topological data analysis graphs
US11023475B2 (en) * 2016-07-22 2021-06-01 International Business Machines Corporation Testing pairings to determine whether they are publically known
US10558669B2 (en) * 2016-07-22 2020-02-11 National Student Clearinghouse Record matching system
US11106692B1 (en) * 2016-08-04 2021-08-31 Palantir Technologies Inc. Data record resolution and correlation system
CN106875167B (zh) * 2016-08-18 2020-08-04 阿里巴巴集团控股有限公司 电子支付过程中资金交易路径的检测方法和装置
US10650008B2 (en) * 2016-08-26 2020-05-12 International Business Machines Corporation Parallel scoring of an ensemble model
US10817540B2 (en) * 2016-09-02 2020-10-27 Snowflake Inc. Incremental clustering maintenance of a table
US11080301B2 (en) * 2016-09-28 2021-08-03 Hewlett Packard Enterprise Development Lp Storage allocation based on secure data comparisons via multiple intermediaries
US20180096018A1 (en) * 2016-09-30 2018-04-05 Microsoft Technology Licensing, Llc Reducing processing for comparing large metadata sets
US11586647B2 (en) 2016-10-03 2023-02-21 Ocient, Inc. Randomized data distribution in highly parallel database management system
US10127268B2 (en) * 2016-10-07 2018-11-13 Microsoft Technology Licensing, Llc Repairing data through domain knowledge
US10713316B2 (en) 2016-10-20 2020-07-14 Microsoft Technology Licensing, Llc Search engine using name clustering
US10585864B2 (en) 2016-11-11 2020-03-10 International Business Machines Corporation Computing the need for standardization of a set of values
US10353928B2 (en) * 2016-11-30 2019-07-16 International Business Machines Corporation Real-time clustering using multiple representatives from a cluster
US11205103B2 (en) 2016-12-09 2021-12-21 The Research Foundation for the State University Semisupervised autoencoder for sentiment analysis
EP3336691B1 (en) 2016-12-13 2022-04-06 ARM Limited Replicate elements instruction
EP3336692B1 (en) 2016-12-13 2020-04-29 Arm Ltd Replicate partition instruction
US10902070B2 (en) 2016-12-15 2021-01-26 Microsoft Technology Licensing, Llc Job search based on member transitions from educational institution to company
US10671757B1 (en) * 2016-12-22 2020-06-02 Allscripts Software, Llc Converting an alphanumerical character string into a signature
US20180181646A1 (en) * 2016-12-26 2018-06-28 Infosys Limited System and method for determining identity relationships among enterprise data entities
US20180203917A1 (en) * 2017-01-19 2018-07-19 Acquire Media Ventures Inc. Discovering data similarity groups in linear time for data science applications
US10679187B2 (en) 2017-01-30 2020-06-09 Microsoft Technology Licensing, Llc Job search with categorized results
US10783497B2 (en) 2017-02-21 2020-09-22 Microsoft Technology Licensing, Llc Job posting data search based on intercompany worker migration
US11138269B1 (en) 2017-03-14 2021-10-05 Wells Fargo Bank, N.A. Optimizing database query processes with supervised independent autonomy through a dynamically scaling matching and priority engine
US10803064B1 (en) * 2017-03-14 2020-10-13 Wells Fargo Bank, N.A. System and method for dynamic scaling and modification of a rule-based matching and prioritization engine
US11010675B1 (en) 2017-03-14 2021-05-18 Wells Fargo Bank, N.A. Machine learning integration for a dynamically scaling matching and prioritization engine
KR20230152172A (ko) * 2017-03-19 2023-11-02 오펙-에슈콜롯 리서치 앤드 디벨롭먼트 엘티디 K-부정합 검색을 위한 필터를 생성하는 시스템 및 방법
US10607189B2 (en) 2017-04-04 2020-03-31 Microsoft Technology Licensing, Llc Ranking job offerings based on growth potential within a company
US20180315019A1 (en) * 2017-04-27 2018-11-01 Linkedin Corporation Multinodal job-search control system
US11640436B2 (en) 2017-05-15 2023-05-02 Ebay Inc. Methods and systems for query segmentation
US10740338B2 (en) * 2017-07-23 2020-08-11 International Business Machines Corporation Systems and methods for query performance prediction using reference lists
US9934287B1 (en) * 2017-07-25 2018-04-03 Capital One Services, Llc Systems and methods for expedited large file processing
US20190034475A1 (en) * 2017-07-28 2019-01-31 Enigma Technologies, Inc. System and method for detecting duplicate data records
EP3460808A1 (en) * 2017-09-21 2019-03-27 Koninklijke Philips N.V. Determining patient status based on measurable medical characteristics
US11475209B2 (en) 2017-10-17 2022-10-18 Handycontract Llc Device, system, and method for extracting named entities from sectioned documents
WO2019077405A1 (en) * 2017-10-17 2019-04-25 Handycontract, LLC METHOD, DEVICE AND SYSTEM FOR IDENTIFYING DATA ELEMENTS IN DATA STRUCTURES
US11250040B2 (en) * 2017-10-19 2022-02-15 Capital One Services, Llc Systems and methods for extracting information from a text string generated in a distributed computing operation
WO2019089888A1 (en) 2017-11-01 2019-05-09 Walmart Apollo, Llc Systems and methods for dynamic hierarchical metadata storage and retrieval
US10839018B2 (en) * 2017-11-15 2020-11-17 International Business Machines Corporation Evaluation of plural expressions corresponding to input data
US10910112B2 (en) 2017-12-04 2021-02-02 Koninklijke Philips N.V. Apparatus for patient record identification
US11061811B2 (en) * 2017-12-15 2021-07-13 International Business Machines Corporation Optimizing software testing via group testing
CN110019274B (zh) 2017-12-29 2023-09-26 阿里巴巴集团控股有限公司 一种数据库系统以及查询数据库的方法和装置
US10579707B2 (en) * 2017-12-29 2020-03-03 Konica Minolta Laboratory U.S.A., Inc. Method for inferring blocks of text in electronic documents
US10817542B2 (en) 2018-02-28 2020-10-27 Acronis International Gmbh User clustering based on metadata analysis
US10956610B2 (en) * 2018-03-06 2021-03-23 Micro Focus Llc Cycle walking-based tokenization
US10719375B2 (en) * 2018-03-13 2020-07-21 Servicenow, Inc. Systems and method for event parsing
US11182395B2 (en) * 2018-05-15 2021-11-23 International Business Machines Corporation Similarity matching systems and methods for record linkage
US11244013B2 (en) * 2018-06-01 2022-02-08 International Business Machines Corporation Tracking the evolution of topic rankings from contextual data
US11106675B2 (en) * 2018-06-12 2021-08-31 Atos Syntel Inc. System and method for identifying optimal test cases for software development
US11263202B2 (en) * 2018-11-30 2022-03-01 Microsoft Technology Licensing, Llc Scalable implementations of exact distinct counts and multiple exact distinct counts in distributed query processing systems
US11321359B2 (en) * 2019-02-20 2022-05-03 Tamr, Inc. Review and curation of record clustering changes at large scale
US10740347B1 (en) * 2019-03-04 2020-08-11 Capital One Services, Llc Methods and systems for determining sets and subsets of parametric data
US11003643B2 (en) * 2019-04-30 2021-05-11 Amperity, Inc. Multi-level conflict-free entity clusterings
US10922337B2 (en) * 2019-04-30 2021-02-16 Amperity, Inc. Clustering of data records with hierarchical cluster IDs
US11651032B2 (en) 2019-05-03 2023-05-16 Servicenow, Inc. Determining semantic content of textual clusters
US11586659B2 (en) * 2019-05-03 2023-02-21 Servicenow, Inc. Clustering and dynamic re-clustering of similar textual documents
CN110162672B (zh) * 2019-05-10 2021-07-27 上海赜睿信息科技有限公司 数据处理方法及装置、电子设备和可读存储介质
US11321771B1 (en) * 2019-06-03 2022-05-03 Intuit Inc. System and method for detecting unseen overdraft transaction events
US11042555B1 (en) * 2019-06-28 2021-06-22 Bottomline Technologies, Inc. Two step algorithm for non-exact matching of large datasets
US20230026321A1 (en) * 2019-10-25 2023-01-26 Semiconductor Energy Laboratory Co., Ltd. Document retrieval system
WO2021110176A1 (zh) * 2019-12-06 2021-06-10 华为技术有限公司 一种边缘系统及数据操作请求的处理方法
JP2021097353A (ja) * 2019-12-18 2021-06-24 キヤノン株式会社 データ送信装置、データ送信装置の制御方法、及びプログラム
CN111064796B (zh) * 2019-12-19 2023-03-24 北京明略软件系统有限公司 伴随关系的分析方法及装置、分析模型的训练方法
US11405482B2 (en) * 2020-02-15 2022-08-02 Near Intelligence Holdings, Inc. Method for linking identifiers to generate a unique entity identifier for deduplicating high-speed data streams in real time
US11176137B2 (en) * 2020-02-19 2021-11-16 Bank Of America Corporation Query processing platform for performing dynamic cluster compaction and expansion
US11768824B2 (en) 2020-03-31 2023-09-26 Wipro Limited Method and system for performing real-time data validation
TWI722859B (zh) * 2020-04-07 2021-03-21 中華誠信資產管理顧問股份有限公司 不動產估價比較案例篩選方法及其系統
US11442990B2 (en) 2020-04-08 2022-09-13 Liveramp, Inc. Asserted relationship data structure
CN115244539B (zh) * 2020-05-18 2023-08-01 谷歌有限责任公司 单词或词段词元化的推断方法
US11201737B1 (en) * 2020-05-19 2021-12-14 Acronis International Gmbh Systems and methods for generating tokens using secure multiparty computation engines
KR102199704B1 (ko) * 2020-06-26 2021-01-08 주식회사 이스트시큐리티 다중 백신의 탐지명으로부터 대표 토큰을 선정하기 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
CA3188139A1 (en) * 2020-06-29 2022-01-06 6Sense Insights, Inc. Aggregation of noisy datasets into master firmographic database
US11720601B2 (en) 2020-07-02 2023-08-08 Sap Se Active entity resolution model recommendation system
US11615094B2 (en) 2020-08-12 2023-03-28 Hcl Technologies Limited System and method for joining skewed datasets in a distributed computing environment
US20220114624A1 (en) * 2020-10-09 2022-04-14 Adobe Inc. Digital Content Text Processing and Review Techniques
CN112990654B (zh) * 2021-02-03 2021-11-02 北京大学 基于人口流动数据的城乡基础设施系统协同规划方法
US11783269B1 (en) 2021-02-05 2023-10-10 Palantir Technologies Inc. Systems and methods for rule management
EP4054145B1 (en) * 2021-03-05 2024-01-10 Cédric Iggiotti Document-based access control system
CN113064870B (zh) * 2021-03-22 2021-11-30 中国人民大学 一种基于压缩数据直接计算的大数据处理方法
CN112948943B (zh) * 2021-03-22 2022-11-18 西南交通大学 格栅式地下连续墙基础的OpenSees软件的前、后处理方法
KR20220134328A (ko) 2021-03-26 2022-10-05 주식회사 팬스컴스 콘텐츠 저작권을 생성하는 사이니지 장치
US20220335075A1 (en) * 2021-04-14 2022-10-20 International Business Machines Corporation Finding expressions in texts
US20220342909A1 (en) * 2021-04-22 2022-10-27 Salesforce.Com, Inc. Evaluating clustering in case of data stewardship actions
US11687559B1 (en) * 2021-06-09 2023-06-27 Morgan Stanley Services Group, Inc. Computer systems and methods for reconciling data across data sources
US20220414171A1 (en) * 2021-06-28 2022-12-29 Flipkart Internet Private Limited System and method for generating a user query based on a target context aware token
US11693821B2 (en) * 2021-07-07 2023-07-04 Collibra Belgium Bv Systems and methods for performant data matching
US11848824B2 (en) * 2021-07-23 2023-12-19 Vmware, Inc. Distributed auto discovery service
US20230034741A1 (en) * 2021-07-28 2023-02-02 Palo Alto Networks, Inc. Token frequency based data matching
US11630855B2 (en) * 2021-08-04 2023-04-18 Capital One Services, Llc Variable density-based clustering on data streams
US20230052619A1 (en) * 2021-08-10 2023-02-16 Intuit Inc. Real-time error prevention during invoice creation
US11841965B2 (en) * 2021-08-12 2023-12-12 EMC IP Holding Company LLC Automatically assigning data protection policies using anonymized analytics
US11841769B2 (en) * 2021-08-12 2023-12-12 EMC IP Holding Company LLC Leveraging asset metadata for policy assignment
US11704312B2 (en) * 2021-08-19 2023-07-18 Microsoft Technology Licensing, Llc Conjunctive filtering with embedding models
US11934468B2 (en) 2021-09-16 2024-03-19 Microsoft Tech nology Licensing, LLC Content distribution control
US11803569B2 (en) * 2021-10-05 2023-10-31 Procore Technologies, Inc. Computer system and method for accessing user data that is distributed within a multi-zone computing platform
WO2023096810A1 (en) * 2021-11-24 2023-06-01 Visa International Service Association Method, system, and computer program product for community detection
JP2023086507A (ja) * 2021-12-10 2023-06-22 キオクシア株式会社 情報処理装置および方法
US20230297623A1 (en) * 2022-03-17 2023-09-21 Yext, Inc. Multi-record projection search platform
US11983162B2 (en) 2022-04-26 2024-05-14 Truist Bank Change management process for identifying potential regulatory violations for improved processing efficiency
US20240121154A1 (en) * 2022-09-30 2024-04-11 Intuit Inc. Modeling and managing affinity networks

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101030215A (zh) * 2006-02-28 2007-09-05 国际商业机器公司 利用流预取历史来改进数据预取性能的方法和系统
CN101079896A (zh) * 2007-06-22 2007-11-28 西安交通大学 一种并行存储系统的多可用性机制共存架构
CN101727502A (zh) * 2010-01-25 2010-06-09 中兴通讯股份有限公司 一种数据查询方法及装置、系统
CN101978348A (zh) * 2008-01-16 2011-02-16 起元技术有限责任公司 管理关于近似串匹配的档案

Family Cites Families (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02129756A (ja) 1988-11-10 1990-05-17 Nippon Telegr & Teleph Corp <Ntt> 単語照合装置
US5179643A (en) 1988-12-23 1993-01-12 Hitachi, Ltd. Method of multi-dimensional analysis and display for a large volume of record information items and a system therefor
US5388259A (en) 1992-05-15 1995-02-07 Bell Communications Research, Inc. System for accessing a database with an iterated fuzzy query notified by retrieval response
JPH0644309A (ja) 1992-07-01 1994-02-18 Nec Corp データベース管理方式
JPH0944518A (ja) 1995-08-02 1997-02-14 Adoin Kenkyusho:Kk 画像データベースの構築方法と、画像データベースの検索方法及び検索装置
US5832182A (en) 1996-04-24 1998-11-03 Wisconsin Alumni Research Foundation Method and system for data clustering for very large databases
JPH10275159A (ja) 1997-03-31 1998-10-13 Nippon Telegr & Teleph Corp <Ntt> 情報検索方法及び装置
US6026398A (en) 1997-10-16 2000-02-15 Imarket, Incorporated System and methods for searching and matching databases
JPH11184884A (ja) 1997-12-24 1999-07-09 Ntt Data Corp 同一人判定システムおよび方法
US6581058B1 (en) 1998-05-22 2003-06-17 Microsoft Corporation Scalable system for clustering of large databases having mixed data attributes
US6285995B1 (en) * 1998-06-22 2001-09-04 U.S. Philips Corporation Image retrieval system using a query image
US6742003B2 (en) * 2001-04-30 2004-05-25 Microsoft Corporation Apparatus and accompanying methods for visualizing clusters of data and hierarchical cluster classifications
JP2000029899A (ja) 1998-07-14 2000-01-28 Hitachi Software Eng Co Ltd 建物と地図とのマッチング方法および記録媒体
US6658626B1 (en) 1998-07-31 2003-12-02 The Regents Of The University Of California User interface for displaying document comparison information
US6493709B1 (en) 1998-07-31 2002-12-10 The Regents Of The University Of California Method and apparatus for digitally shredding similar documents within large document sets in a data processing environment
US7356462B2 (en) * 2001-07-26 2008-04-08 At&T Corp. Automatic clustering of tokens from a corpus for grammar acquisition
US6317707B1 (en) 1998-12-07 2001-11-13 At&T Corp. Automatic clustering of tokens from a corpus for grammar acquisition
US6456995B1 (en) 1998-12-31 2002-09-24 International Business Machines Corporation System, method and computer program products for ordering objects corresponding to database operations that are performed on a relational database upon completion of a transaction by an object-oriented transaction system
AU780926B2 (en) 1999-08-03 2005-04-28 Bally Technologies, Inc. Method and system for matching data sets
AU1051101A (en) 1999-10-27 2001-05-08 Zapper Technologies Inc. Context-driven information retrieval
US7328211B2 (en) 2000-09-21 2008-02-05 Jpmorgan Chase Bank, N.A. System and methods for improved linguistic pattern matching
DE10048478C2 (de) 2000-09-29 2003-05-28 Siemens Ag Verfahren zum Zugriff auf eine Speichereinheit bei der Suche nach Teilzeichenfolgen
US6931390B1 (en) * 2001-02-27 2005-08-16 Oracle International Corporation Method and mechanism for database partitioning
JP3605052B2 (ja) 2001-06-20 2004-12-22 本田技研工業株式会社 あいまい検索機能を備える図面管理システム
US20030033138A1 (en) 2001-07-26 2003-02-13 Srinivas Bangalore Method for partitioning a data set into frequency vectors for clustering
US20030041047A1 (en) 2001-08-09 2003-02-27 International Business Machines Corporation Concept-based system for representing and processing multimedia objects with arbitrary constraints
US7043647B2 (en) * 2001-09-28 2006-05-09 Hewlett-Packard Development Company, L.P. Intelligent power management for a rack of servers
US7213025B2 (en) 2001-10-16 2007-05-01 Ncr Corporation Partitioned database system
US20030120630A1 (en) * 2001-12-20 2003-06-26 Daniel Tunkelang Method and system for similarity search and clustering
US7308449B2 (en) 2002-02-01 2007-12-11 John Fairweather System and method for managing collections of data on a network
AU2003207856A1 (en) 2002-02-04 2003-09-02 Cataphora, Inc A method and apparatus to visually present discussions for data mining purposes
WO2003107321A1 (en) 2002-06-12 2003-12-24 Jena Jordahl Data storage, retrieval, manipulation and display tools enabling multiple hierarchical points of view
US6961721B2 (en) 2002-06-28 2005-11-01 Microsoft Corporation Detecting duplicate records in database
US20050226511A1 (en) 2002-08-26 2005-10-13 Short Gordon K Apparatus and method for organizing and presenting content
US7043476B2 (en) 2002-10-11 2006-05-09 International Business Machines Corporation Method and apparatus for data mining to discover associations and covariances associated with data
US20040139072A1 (en) 2003-01-13 2004-07-15 Broder Andrei Z. System and method for locating similar records in a database
US7912842B1 (en) 2003-02-04 2011-03-22 Lexisnexis Risk Data Management Inc. Method and system for processing and linking data records
US7287019B2 (en) * 2003-06-04 2007-10-23 Microsoft Corporation Duplicate data elimination system
US20050120011A1 (en) 2003-11-26 2005-06-02 Word Data Corp. Code, method, and system for manipulating texts
US7493294B2 (en) 2003-11-28 2009-02-17 Manyworlds Inc. Mutually adaptive systems
US7283999B1 (en) 2003-12-19 2007-10-16 Ncr Corp. Similarity string filtering
US7472113B1 (en) 2004-01-26 2008-12-30 Microsoft Corporation Query preprocessing and pipelining
GB0413743D0 (en) 2004-06-19 2004-07-21 Ibm Method and system for approximate string matching
US8407239B2 (en) 2004-08-13 2013-03-26 Google Inc. Multi-stage query processing system and method for use with tokenspace repository
US7917480B2 (en) 2004-08-13 2011-03-29 Google Inc. Document compression system and method for use with tokenspace repository
US20080040342A1 (en) 2004-09-07 2008-02-14 Hust Robert M Data processing apparatus and methods
US7523098B2 (en) 2004-09-15 2009-04-21 International Business Machines Corporation Systems and methods for efficient data searching, storage and reduction
US8725705B2 (en) 2004-09-15 2014-05-13 International Business Machines Corporation Systems and methods for searching of storage data with reduced bandwidth requirements
EP1866808A2 (en) 2005-03-19 2007-12-19 ActivePrime, Inc. Systems and methods for manipulation of inexact semi-structured data
US9110985B2 (en) 2005-05-10 2015-08-18 Neetseer, Inc. Generating a conceptual association graph from large-scale loosely-grouped content
JP2007012039A (ja) * 2005-05-31 2007-01-18 Itochu Techno-Science Corp 検索システムおよびコンピュータプログラム
US7584205B2 (en) 2005-06-27 2009-09-01 Ab Initio Technology Llc Aggregating data with complex operations
US7672833B2 (en) 2005-09-22 2010-03-02 Fair Isaac Corporation Method and apparatus for automatic entity disambiguation
US7454449B2 (en) * 2005-12-20 2008-11-18 International Business Machines Corporation Method for reorganizing a set of database partitions
US20070162506A1 (en) * 2006-01-12 2007-07-12 International Business Machines Corporation Method and system for performing a redistribute transparently in a multi-node system
US20070244925A1 (en) 2006-04-12 2007-10-18 Jean-Francois Albouze Intelligent image searching
US7890533B2 (en) * 2006-05-17 2011-02-15 Noblis, Inc. Method and system for information extraction and modeling
US7809769B2 (en) * 2006-05-18 2010-10-05 Google Inc. Database partitioning by virtual partitions
US8175875B1 (en) 2006-05-19 2012-05-08 Google Inc. Efficient indexing of documents with similar content
US7634464B2 (en) 2006-06-14 2009-12-15 Microsoft Corporation Designing record matching queries utilizing examples
US20080140653A1 (en) * 2006-12-08 2008-06-12 Matzke Douglas J Identifying Relationships Among Database Records
US7630972B2 (en) * 2007-01-05 2009-12-08 Yahoo! Inc. Clustered search processing
US7739247B2 (en) 2006-12-28 2010-06-15 Ebay Inc. Multi-pass data organization and automatic naming
WO2008083504A1 (en) * 2007-01-10 2008-07-17 Nick Koudas Method and system for information discovery and text analysis
US8694472B2 (en) 2007-03-14 2014-04-08 Ca, Inc. System and method for rebuilding indices for partitioned databases
US7711747B2 (en) 2007-04-06 2010-05-04 Xerox Corporation Interactive cleaning for automatic document clustering and categorization
US8069129B2 (en) 2007-04-10 2011-11-29 Ab Initio Technology Llc Editing and compiling business rules
JP4203967B1 (ja) 2007-05-28 2009-01-07 パナソニック株式会社 情報探索支援方法および情報探索支援装置
US7769778B2 (en) 2007-06-29 2010-08-03 United States Postal Service Systems and methods for validating an address
US7788276B2 (en) 2007-08-22 2010-08-31 Yahoo! Inc. Predictive stemming for web search with statistical machine translation models
US7925652B2 (en) 2007-12-31 2011-04-12 Mastercard International Incorporated Methods and systems for implementing approximate string matching within a database
US8032546B2 (en) 2008-02-15 2011-10-04 Microsoft Corp. Transformation-based framework for record matching
US8266168B2 (en) 2008-04-24 2012-09-11 Lexisnexis Risk & Information Analytics Group Inc. Database systems and methods for linking records and entity representations with sufficiently high confidence
US7958125B2 (en) 2008-06-26 2011-06-07 Microsoft Corporation Clustering aggregator for RSS feeds
US20120191973A1 (en) 2008-09-10 2012-07-26 National Ict Australia Limited Online presence of users
US8150169B2 (en) * 2008-09-16 2012-04-03 Viewdle Inc. System and method for object clustering and identification in video
WO2010048538A1 (en) 2008-10-23 2010-04-29 Ab Initio Software Llc Fuzzy data operations
CN101751400A (zh) 2008-12-09 2010-06-23 财团法人工业技术研究院 技术数据分析的系统与方法以及专利分析的系统
US20100169311A1 (en) 2008-12-30 2010-07-01 Ashwin Tengli Approaches for the unsupervised creation of structural templates for electronic documents
JP5173898B2 (ja) 2009-03-11 2013-04-03 キヤノン株式会社 画像処理方法、画像処理装置、及びプログラム
US8161048B2 (en) 2009-04-24 2012-04-17 At&T Intellectual Property I, L.P. Database analysis using clusters
US20100274770A1 (en) 2009-04-24 2010-10-28 Yahoo! Inc. Transductive approach to category-specific record attribute extraction
CN102067128A (zh) 2009-04-27 2011-05-18 松下电器产业株式会社 数据处理装置、数据处理方法、程序及集成电路
US8195626B1 (en) 2009-06-18 2012-06-05 Amazon Technologies, Inc. Compressing token-based files for transfer and reconstruction
US20100333116A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Cloud gateway system for managing data storage to cloud storage sites
US8515957B2 (en) 2009-07-28 2013-08-20 Fti Consulting, Inc. System and method for displaying relationships between electronically stored information to provide classification suggestions via injection
US8433715B1 (en) * 2009-12-16 2013-04-30 Board Of Regents, The University Of Texas System Method and system for text understanding in an ontology driven platform
US8375061B2 (en) 2010-06-08 2013-02-12 International Business Machines Corporation Graphical models for representing text documents for computer analysis
US8346772B2 (en) 2010-09-16 2013-01-01 International Business Machines Corporation Systems and methods for interactive clustering
US8463742B1 (en) 2010-09-17 2013-06-11 Permabit Technology Corp. Managing deduplication of stored data
US8606771B2 (en) 2010-12-21 2013-12-10 Microsoft Corporation Efficient indexing of error tolerant set containment
WO2012104943A1 (ja) 2011-02-02 2012-08-09 日本電気株式会社 結合処理装置、データ管理装置及び文字列類似結合システム
US8612386B2 (en) 2011-02-11 2013-12-17 Alcatel Lucent Method and apparatus for peer-to-peer database synchronization in dynamic networks
JP6125520B2 (ja) 2011-11-15 2017-05-10 アビニシオ テクノロジー エルエルシー 候補クエリに基づくデータクラスタ化

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101030215A (zh) * 2006-02-28 2007-09-05 国际商业机器公司 利用流预取历史来改进数据预取性能的方法和系统
CN101079896A (zh) * 2007-06-22 2007-11-28 西安交通大学 一种并行存储系统的多可用性机制共存架构
CN101978348A (zh) * 2008-01-16 2011-02-16 起元技术有限责任公司 管理关于近似串匹配的档案
CN101727502A (zh) * 2010-01-25 2010-06-09 中兴通讯股份有限公司 一种数据查询方法及装置、系统

Also Published As

Publication number Publication date
JP6190817B2 (ja) 2017-08-30
EP3591538A1 (en) 2020-01-08
AU2012340429B2 (en) 2016-12-01
EP2780835B1 (en) 2019-08-07
KR20140094002A (ko) 2014-07-29
US20130124525A1 (en) 2013-05-16
WO2013074774A1 (en) 2013-05-23
US10572511B2 (en) 2020-02-25
KR20140094003A (ko) 2014-07-29
JP2014533409A (ja) 2014-12-11
CN104054074B (zh) 2019-03-08
AU2012340423A1 (en) 2014-05-29
CA3098038C (en) 2022-11-29
EP3432169B1 (en) 2021-02-24
WO2013074770A1 (en) 2013-05-23
EP2780835A1 (en) 2014-09-24
AU2012340418B2 (en) 2017-06-01
AU2012340429A1 (en) 2014-05-29
CN108388632A (zh) 2018-08-10
EP2780836A1 (en) 2014-09-24
CA2855710C (en) 2020-03-10
AU2012340418C1 (en) 2017-11-16
JP2014533408A (ja) 2014-12-11
US9037589B2 (en) 2015-05-19
JP2014533417A (ja) 2014-12-11
HK1200943A1 (zh) 2015-08-14
CN104054073A (zh) 2014-09-17
EP3591538B1 (en) 2021-01-20
WO2013074774A4 (en) 2013-08-29
CN104054074A (zh) 2014-09-17
US9361355B2 (en) 2016-06-07
US20130124474A1 (en) 2013-05-16
HK1259448A1 (zh) 2019-11-29
CA2855701C (en) 2021-01-12
CN104054073B (zh) 2018-10-30
WO2013074781A1 (en) 2013-05-23
US20160283574A1 (en) 2016-09-29
HK1200942A1 (zh) 2015-08-14
CA2855710A1 (en) 2013-05-23
HK1201096A1 (zh) 2015-08-21
EP2780833A1 (en) 2014-09-24
AU2012340418A1 (en) 2014-05-29
JP6125520B2 (ja) 2017-05-10
CA2855701A1 (en) 2013-05-23
CN104040544B (zh) 2018-06-26
KR102029514B1 (ko) 2019-10-07
EP3855321A1 (en) 2021-07-28
EP3432169A1 (en) 2019-01-23
US20200320102A1 (en) 2020-10-08
CN104040544A (zh) 2014-09-10
US20200356579A1 (en) 2020-11-12
CA2855715A1 (en) 2013-05-23
US10503755B2 (en) 2019-12-10
JP6113740B2 (ja) 2017-04-12
CA3098038A1 (en) 2013-05-23
CA2855715C (en) 2019-02-19
KR20140096127A (ko) 2014-08-04
AU2012340423B2 (en) 2017-02-09
KR102048597B1 (ko) 2019-11-25
KR102031392B1 (ko) 2019-11-08
US20130124524A1 (en) 2013-05-16

Similar Documents

Publication Publication Date Title
CN108388632B (zh) 数据分群、分段、以及并行化

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1259448

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant