精度和模糊匹配
模糊匹配允许您在数据不完全匹配时删除重复数据并匹配字符串数据。 具有拼写错误和其他微小差异的字符串数据是模糊匹配的良好候选者。
规则中的每个条件有一个名为精度的设置,您可以在其中选择两个字符串被视为匹配的接近程度。 默认精度设置要求被比较的字符串完全匹配才能匹配。 选择任何其他精度值可以为该条件启用模糊匹配。
精度可以设置为低(30% 匹配)、中(60% 匹配)和高(80% 匹配)。 您还可以选择下拉列表,将基本更改为自定义,允许您将精度设置为 1% 递增。
备注
只有字符串数据类型列可以使用模糊匹配。 对于具有其他数据类型(如整数、双精度或日期/时间)的列,精度字段设置为完全匹配并且为只读。
模糊匹配计算
通过计算两个字符串的编辑距离分数来进行模糊匹配。 如果分数达到或超过精度阈值,字符串将被视为匹配项。
编辑距离是通过添加、删除或更改字符将一个字符串变成另一个字符串所需的编辑次数。
例如,当我们删除 q、u、e、i 和 e 字符并插入 y 字符时,字符串“Jacqueline”和“Jaclyne”的编辑距离为 5。
确定编辑距离分数的基本计算方法为:(基本字符串长度 – 编辑距离) / 基本字符串长度
基本字符串 | 比较字符串 | 分数 |
---|---|---|
Jacqueline | Jaclyne | (10-5)/10=.5 |
fred@gmail.com | fred@gmal.cm | (14-2) / 14 = 0.857 |
franklin | frank | (8-2) / 8 = 0.75 |
标准化和模糊匹配
Customer Insights – Data 提供了强大的数据标准化例程,可以比模糊匹配更有效地处理很多数据差异。 您可以为列选择一个或多个数据标准化模式。 标准化不会在最终输出中更改数据。 标准化数据仅用于比较目的,以更有效地匹配客户记录。
标准化 | 示例 |
---|---|
数字 | 将数字的 Unicode 表示形式转换为数字。 示例:□ 和 Ⅷ 均会被标准化为数字 8。 注意:符号必须以 Unicode 点格式编码。 |
代码 | 删除符号和特殊字符。 示例:!?"#$%&'( )+,.-/:;<=>@^~{}`[ ] |
文本转小写 | 将大写字符转换为小写字符。 示例:“THIS Is aN EXamplE”转换为“this is an example” |
类型 – 电话 | 将各种格式的电话转换为数字,考虑国家/地区代码和分机号显示方式的变化。 示例:+01 425.555.1212 = 1 (425) 555-1212 |
类型 - 名称 | 转换 500 多种常见名称变体和标题。 示例:“debby”->“deborah”“prof”和“professor”->“Prof.” |
类型 - 地址 | 转换地址的通用部分 示例:“street”->“st”和“northwest”->“nw” |
类型 - 组织 | 删除大约 50 个公司名称“干扰词”,如“co”、“corp”、“corporation”和“ltd.” |
Unicode 转 ASCII | 将 Unicode 字符转换为同等 ASCII 字母 示例:字符“à”、“á”、“â”、“À”、“Á”、“”、“Ô、“Ä”、“Ⓐ”和“A”全部转换为“a”。 |
空白 | 删除所有空格 |
别名映射 | 允许您上载字符串对的自定义列表,然后可以使用该列表来指示应始终被视为完全匹配的字符串。 当您有您认为应该匹配的特定数据示例,但使用其他标准化模式之一无法匹配时,使用别名映射。 示例:Scott 和 Scooter,或 IBM 和 International Business Machines。 |
自定义绕过 | 允许您上载字符串的自定义列表,然后可以使用该列表来指示永远不应匹配的字符串。 当您的数据具有应忽略的通用值(如虚拟电话号码或虚拟电子邮件)时,自定义绕过非常有用。 示例:Never match the phone 555-1212, or test@example.com |
性能 – 使用精确匹配条件
模糊匹配功能强大,但比精确匹配需要更多的时间和资源。 最好使用数据标准化作为处理数据违规的第一个方法,并有策略地使用模糊匹配。
重要提示
在每个规则中至少使用一个精确匹配条件。
首先运行精确匹配条件来获取需要模糊匹配的一组较小值。 要达到预期结果,精确匹配条件应该具有合理程度的唯一性。 例如,如果您的所有客户都居住在同一个国家/地区,那么国家/地区的精确匹配可能无助于缩小范围。
全名、电子邮件、电话或地址字段这样的列具有良好的唯一性,是用作精确匹配的理想列。