Skip to main content

模糊匹配编辑匹配选项

使用 模糊匹配工具 配置窗口上的 编辑 按钮访问 编辑匹配选项 窗口。

匹配样式是一种预先确定的方法,用于在输入文件的记录之间查找适当的匹配项。在 “模糊匹配”工具 页面上定义了各个匹配样式选项。

匹配样式

任何预定义或自定义的用户定义匹配样式均显示在此列表中。对话框中的后续规范将根据所选的匹配样式进行选择。

如果编辑预定义匹配样式,下拉列表中的名称将更改为“自定义”。此自定义匹配样式中指定的设置与工作流一起保存。

添加新的自定义匹配样式,而不是删除或编辑默认选项。

  • 要删除匹配样式,请从下拉列表中选择该样式,然后选择 删除

  • 要添加匹配样式,请输入新名称,然后选择 确定

预处理

预处理 描述了在 生成键 和“模糊匹配”函数之前运行的过程。使用“预处理”应会生成更好的匹配项。此列表中的选项包括:

  • :未运行“预处理”。

  • 去除标点符号 :当工具确定匹配项时,指定数据字段中的任何标点符号都将被忽略。

  • 去除标点符号和称谓 :当工具确定匹配项时,指定数据字段中的任何标点符号及任何称谓(比如 Mr、Ms 和 Mrs)都将被忽略。

  • 去除标点符号及 AND、OF 和 THE :当工具确定匹配项时,指定数据字段中的任何标点符号及文字 and、of 和 the 的任何实例都将被忽略。

  • 去除标点符号和从美国地址中移除单元 :当工具确定匹配项时,指定数据字段中的任何标点符号及任何单元号都将被忽略。

  • 日语文本标记化 :此选项执行 Unicode 规范化,并将所有字符转换为片假名。

  • 日语文本标记化和去除日语公司后缀 :此选项还会删除常见的日语公司后缀。示例:㈱。

  • 日语文本标记化和规范化日语地址 :此选项还会标准化日语地址。示例:从今津 3 丁目 14 番地 19 到今津 3-14-19。

对预处理进行手动编辑

用户可以通过编辑 FuzzyMatchStyles.xml 来定义预处理。该文件位于以下 Alteryx 运行时目录中: \Program Files\Alteryx\bin\RuntimeData\FuzzyMatch 。仅当您熟悉 XML 和正则表达式时,才应编辑此文件。

生成键

生成键是识别潜在匹配项的方法。

Alteryx 浏览指定字段并为该字段的组件分配键。生成所有键后,Alteryx 会比较每个匹配字段的连接键值。如果为两个记录生成的键值相同,则确定为潜在的匹配,该配对即进入匹配过程的下一阶段。函数选项包括:

  • :在决定哪些记录匹配时,将考虑此字段的键值。

  • 仅限数字 :仅匹配指定字段中具有相同数字的记录。例如,1-(800)555-1234 匹配 800-555-1234。将忽略非数字字符,并且数字将从最后一位 (4) 匹配到第一位(8 或 1)。要使此记录匹配,请指定最大键值长度 = 10 以忽略前导 1。

  • 双变音算法 :双变音算法是首选算法。此算法可将英语单词(以及通常在英语中听到的外语单词)缩减为 12 种辅音,从而对其进行语音编码。这可以减少拼写错误导致的匹配问题。双变音算法是根据声音进行匹配的首选方法。如果一个单词具有 2 个可能的发音(比如外语单词),则返回 2 个键值。有关更多信息,请转至 双变音算法 。使用双变音算法可以指定 最大键值长度 。双变音算法最大键值长度限制为 100。

    最大键长度

    请注意,设置较高的最大键值长度可能会影响性能。

  • 数字双变音算法 :使用相同的双变音算法,但还包括数字。当字符串内存在数字,第一个令牌中的数字即为键值。例如,在字符串“1234 5th St”中,“1234”是键值。

  • Soundex :一种算法,可将姓氏缩减为第一个字母和最多 3 位数字(其中每个数字是六个辅音中的一个),从而对姓氏进行语音编码。这可以减少不同拼写导致的匹配问题。设计该算法是为了对美国人口普查登记中记录的姓名进行编码。标准算法最适用于欧洲姓名。为来自其他文化的姓名设计了各种变体。有关更多信息,请转至 Soundex

    前导字母替换 :在生成匹配键之前,Alteryx 会自动替换以下前导字母和字母组合:

    前导字母

    替换

    AV

    AF

    AH

    A

    AW

    A

    CAAN

    TAAN

    DG

    G

    D

    G

    HA

    A

    KN

    K

    K

    C

    MAC

    MC

    M

    N

    NST

    NS

    PF

    F

    PH

    F

    Q

    G

    SCH

    SH

    Z

    S

  • 支持数字的 Soundex :使用相同的 Soundex 算法,但还包括数字。当字符串中有数字时,第一个令牌中的数字是键值。

  • 完整字段(不区分大小写) :仅匹配整个字段匹配的记录。大小写被忽略。

  • 仅数字字母(不区分大小写):仅查找字母数字字符以进行匹配。大小写被忽略。

  • 地址号 + Soundex :从字符串中移除地址编号,并将 Soundex 算法应用于该字段的其余部分。然后,将 Soundex 代码附加到地址编号,以生成唯一键。

  • 为了准备仅适用于拉丁字符的 Soundex 和双变音算法的日语文本,这些方法首先将日语字符直译为罗马字:

    • 罗马字

    • 罗马字 Soundex

    • 含地址编号的罗马字 Soundex

    • 罗马字 Soundex(带数字)

    • 罗马字双变音算法

    • 罗马字双变音算法(带数字)

为各个单词生成键

为每个单词生成单独的键,即使单词调换顺序,“john smith”和“smith john”仍能作为潜在匹配项列出。

  • 不要为下列单词生成键 :指定或选择要从键值分配中排除的单词。这可以通过限制潜在匹配项的数量来缩短处理时间。

  • 不要为单字符单词生成键 :选择此选项可从键值分配中排除单字母单词。这可以通过限制潜在匹配项的数量来缩短处理时间。

  • 为空则忽略 :忽略指定匹配字段的空值。如果字段为空,则不会生成任何键,并将剔除记录。

  • 最大键长度 :指定匹配时要考虑的键值最大长度。

匹配函数

匹配函数是一个更精细的过程,通过该过程可以识别匹配项并应用评分。这与键值不同,键值必须完全匹配。选项包括:

  • 无 - 仅键值匹配 :仅查看“键生成”规范。

  • Levenshtein 距离 :将 1 个字符串或树更改为另一个字符串或树所需的最小插入、删除和替换数。选择“Levenshtein 距离”后,由于存在差异,匹配分数将显著降低。有关更多信息,请转至 Levenshtein 距离 。“Levenshtein 距离”选项包括:

    • 字符:Levenshtein 距离

    • 字符(无空格):Levenshtein 距离

    • 词语:Levenshtein距离

    • 词语和数字:Levenshtein距离

  • Jaro 距离 :衡量两个字符串之间的相似度。Jaro 指标是匹配字符百分比和必要变换量的加权总和。就字符串的差异而言,Jaro 距离比 Levenshtein 距离更宽容。有关更多信息,请转至 Jaro-Winkler 。Jaro-Winkler 选项包括:

    • 字符:Jaro距离

    • 字符(无空格):Jaro 距离

    • 单词:Jaro距离

    • 单词和数字:Jaro距离

  • 最佳 Jaro 和 Levenshtein :分析两种匹配类型并计分。最佳 Jaro 和 Levenshtein 选项包括...

    • 字符:最佳 Jaro 和 Levenshtein 距离

    • 字符(无空格):最佳Jaro和Levenshtein距离

    • 字词:最佳 Jaro 和 Levenshtein 距离

    • 文字和数字:最佳 Jaro 和 Levenshtein 距离

函数类型

  • 基于单词(匹配函数以 单词: 开头)的函数将查找指定字段中的任何单词,而不管这些单词的顺序如何。

  • 未基于单词的函数与整个字符串进行匹配。

  • 对于 单词和数字 函数,所有包含数字的令牌必须在两边都有才算匹配。这些函数通常用于地址。

基于词语的函数选项

  • 使用词语匹配时,同时使用 :您可以指定一种额外的匹配方法,以产生额外的评分(使用最佳评分),并且无需运行“模糊匹配”工具的 2 个实例:

    • :仅使用基于单词的评分。

    • 字符 :除了字符匹配函数外,还使用基于单词的匹配评分。将生成 2 个评分,并使用最佳匹配评分来识别匹配。

    • 字符(无空格) :与上述过程相同,但生成基于字符的匹配项时将忽略空格。

  • 词频统计(仅限词语匹配) :可以根据预定义的统计信息指定单词频率表。指定后,数据库中出现的单词在传入数据中的重要性会降低,匹配评分也会相应调整。选项包括:

    • [无] :不使用“词频统计”。

    • 姓名 :包含姓名字段中的常见词。频率与这些单词在匹配评分中的重要性成反比。

    • 美国地址 :包含“美国地址”字段中的常见单词。频率与这些单词在匹配评分中的重要性成反比。

    • 美国公司 :包含“公司名称”字段中的常见单词。频率与这些单词在匹配评分中的重要性成反比。

      示例

      将“Albert Commette”与“Albert Commette MD”匹配。

      “姓名”的单词频率统计表中包括“MD”一词。指定 单词频率:姓名 后,生成的匹配评分相比未指定“单词频率:姓名”时大约高出 5 分。

      字频率统计信息位置

      词频统计数据包含在 Alteryx 数据库文件 *yxdb 中,可位于运行时数据目录下:

      \Program Files\Alteryx\bin\RuntimeData\FuzzyMatch\

      您还可以通过编辑位于同一目录中的工作流 CollectStats.yxmd 来创建自己的词频统计。

    • 昵称/缩写表(仅限单词匹配) :使用常见昵称表来检查并进一步识别重复项。在仅包含名字(或同时包含名字和姓氏)的字段上使用此选项。添加其他昵称和缩写:

      • 更新位于以下位置的Common nicknames.yxdb数据库:

        \Program Files\Alteryx\bin\RuntimeData\FuzzyMatch\

      • 可从“模糊匹配”工具的“昵称”部分的下拉框中选择放置在该目录中的任何 .yxdb 文件。

    • 惩罚 :设置以昵称表中的数据进行匹配时适用的惩罚百分比。默认值为 15%。建议使用惩罚,因为昵称匹配是另一个潜在的错误来源。在与匹配阈值进行比较之前,将从匹配评分中减去惩罚百分比。

    • 匹配阈值 :设置允许的不确定性百分比,以返回特定字段的匹配项。如果字段 1 的阈值为 60%,但该字段的匹配仅具有 55% 的置信度,则将忽略该记录。

    • 匹配权重 :给出字段的重要性,从而在匹配过程中增加或减少对该字段的考虑程度。

      如果“公司名称”的重要性是“联系人姓名”的两倍,您可以在此处设置重要性。因此,“公司名称”的匹配权重应是“联系人姓名”的匹配权重的两倍。此权重用于计算整体匹配评分。

      有关“模糊匹配”用法的其他信息,请参阅 模糊匹配常见问题