模糊联接

Analytics 模糊联接使用键域值的模糊匹配将两个 Analytics 表组合为第三个新表。在大多数方面,模糊联接类似于常规 Analytics 联接(请参见联接表)。主要区别是除了基于键域值的精确匹配来联接记录以外,模糊联接还可以基于近似匹配来联接记录。

当主键和辅助键包含的数据种类相同,但形式稍有不同时,模糊联接很有用。另外,当键中的数据具有可能阻止精确匹配的轻微不规则性(如打字错误)时,它也很有用。

示例

场景

您想要识别任何身兼员工身份的供应商,作为分析可能存在的不适当支付工资的相关数据的方式。

方法

您使用每个表中的地址域作为公共键(Vendor_StreetEmp_Address),将 Vendor 主表与 Employee 表相联接。但是,键域中地址数据的形式略有不同,因此您使用模糊联接而不是常规联接。

部分数据一览

不经过繁重的数据清理和协调工作,常规 Analytics 联接功能将无法联接如下所示的主键值和辅助键值,即使它们很可能是匹配的地址。

主键值 辅助键值
605 3rd Avenue 605 Third Avenue
400 High St SE 400 High Street S.E.
2203 Rowan Street 2203 Rowen St

即使经过数据清理和协调,在拼写方面略有差异的键值(如 "Rowan" 和 "Rowen")也很可能不会被匹配。

根据模糊联接设置的不同,这些键值可能被模糊联接加以联接。

输出结果

在下面的联接表示例中,精确键域匹配被突出显示为紫色,而模糊键域匹配被突出显示为绿色。

模糊联接与模糊重复之比较

模糊联接分析两个表中的键域中的值。要测试单个 Analytics 表中的单个域是否包含几乎完全相同的值,请参见模糊重复概述

输出表大小和命令性能

输出表大小

模糊联接类似于 Analytics 多对多联接。所有主键值都可能被匹配到所有辅助键值。输出表的大小可能比主要或者辅助输入表的大小大很多倍。

命令性能

模糊匹配算法可保只有指定模糊度以内的键值或者精确匹配值会被实际联接。但是,必须测试每个可能的主要-辅助匹配,这意味着模糊联接过程可能很费时。必须执行的单个测试的数量等于主表中的记录数乘以辅助表中的记录数。

最佳做法

当您准备主要和辅助输入表以及指定模糊度时,请牢记输出表大小和命令性能。

  • 调整数据 请确保只将相关记录包括在主要表和辅助表中。如果某些记录没有得到匹配的机会,请在执行模糊匹配之前过滤掉它们。
  • 测试运行 对于大型数据集,请对一小部分数据执行测试运行,以便更有效地到达模糊匹配算法的合适设置。首先从更谨慎的模糊设置开始,如果需要,则逐步放宽它们。

模糊匹配算法

当您执行模糊联接时,您可以在两个不同的模糊匹配算法之间进行选择:

  • Dice 系数
  • 编辑距离

这些算法完全相互独立工作,并且可能生成稍微不同的结果。一个方法是执行模糊联接两次,每个算法各使用一次,并且比较结果。通常,各个结果集中的一些模糊匹配可能相互重叠,但某些匹配可能是各个结果集所独有的。

模糊度

您需要为每个算法指定模糊度,这可能显著改变结果集的大小和构成。“模糊度”是指两个值匹配的紧密程度。

根据您选择的算法的不同,您可以使用下列设置来控制模糊度:

算法 设置

Dice 系数

  • N 元语法
  • 百分比

编辑距离

  • 距离

请尝试试用不同的模糊度。首先谨慎地进行设置并且生成较小的结果集,然后逐渐放宽设置,直到您开始得到过多明显不是匹配的联接值(误报)为止。

Dice 系数

Dice 系数算法通过测量主键值和辅助键值之间的相似度来工作,相似度的取值范围为 0.0000 到 1.0000。这两个值的 Dice 系数越大,它们就越相似。

编辑距离

编辑距离算法通过以从 0 开始的整数刻度尺来衡量主键值和辅助键值之间的差异度来工作。该刻度尺表示使一个值与另一个值完全相同所需的单字符编辑数量。这两个值之间的编辑距离越大,它们的差异就越大。

获得更好的结果

使用 Analytics 函数对主键域和辅助键域执行数据清理和协调,可以提高模糊联接的有效性。例如,如果您协调诸如 "Street"、"St." 和 "St" 之类的值,或者完全移除它们,则可以使用更严格的模糊设置,并且在减少误报匹配数量的同时,仍然获得相同的模糊匹配。

移除通用元素

您可以使用 OMIT( ) 和 EXCLUDE( ) 函数从域值中移除诸如 "Corporation" 和 "Inc." 之类的通用元素或者诸如逗号、句点和 & 之类的字符。

移除通用元素和标点符号可使模糊联接的键域值比较仅专注于可能发生有意义差异的值部分。

步骤

您可以使用键域值的模糊匹配将两个 Analytics 表组合为第三个新表。

Analytics 14.1 帮助