模糊匹配编辑匹配选项
使用 模糊匹配工具 配置窗口上的 编辑 按钮访问 编辑匹配选项 窗口。
匹配样式是一种预先确定的方法,用于在输入文件的记录之间查找适当的匹配项。在 “模糊匹配”工具 页面上定义了各个匹配样式选项。
匹配样式
任何预定义或自定义的用户定义匹配样式均显示在此列表中。对话框中的后续规范将根据所选的匹配样式进行选择。
如果编辑预定义匹配样式,下拉列表中的名称将更改为“自定义”。此自定义匹配样式中指定的设置与工作流一起保存。
添加新的自定义匹配样式,而不是删除或编辑默认选项。
要删除匹配样式,请从下拉列表中选择该样式,然后选择 删除 。
要添加匹配样式,请输入新名称,然后选择 确定 。
预处理
预处理 描述了在 生成键 和“模糊匹配”函数之前运行的过程。使用“预处理”应会生成更好的匹配项。此列表中的选项包括:
无 :未运行“预处理”。
去除标点符号 :当工具确定匹配项时,指定数据字段中的任何标点符号都将被忽略。
去除标点符号和称谓 :当工具确定匹配项时,指定数据字段中的任何标点符号及任何称谓(比如 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% 的置信度,则将忽略该记录。
匹配权重 :给出字段的重要性,从而在匹配过程中增加或减少对该字段的考虑程度。
如果“公司名称”的重要性是“联系人姓名”的两倍,您可以在此处设置重要性。因此,“公司名称”的匹配权重应是“联系人姓名”的匹配权重的两倍。此权重用于计算整体匹配评分。
有关“模糊匹配”用法的其他信息,请参阅 模糊匹配常见问题 。