模糊合并
模糊合并是一项智能数据准备功能,可用于在比较列时应用模糊匹配算法。 这些算法试图在正在合并的表中找到匹配项。
可以通过选择“使用模糊匹配执行合并选项”按钮,在“合并”对话框底部启用模糊匹配。 详情请见:合并操作概述
注意
模糊匹配只支持文本列的合并操作。 Power Query 使用 Jaccard 相似性算法来度量实例对之间的相似性。
示例方案
模糊匹配的常见用例是包含自由格式文本字段,如调查问卷中的文本字段。 本文中的样表直接取自一项在线调查,调查对象为一个群体,只有一个问题:您最喜欢的水果是什么?
该调查的结果如下图所示。
示例调查输出表的屏幕截图,其中包含列分布图,显示九个不同的答案,所有答案都是唯一的,还显示存在所有拼写错误、复数或单数以及大小写问题的调查的答案。
这九项记录反映了提交的调查报告。 所提交调查报告的问题在于,有些有错别字,有些是复数,有些是单数,有些是大写,有些是小写。
为了使这些值标准化,本例中使用了“水果”参考表。
“水果”参考表的屏幕截图,其中包含列分布图,显示四种不同的水果,所有水果都是唯一的,并显示水果列表:苹果、菠萝、西瓜和香蕉。
注意
为简单起见,此“水果”参考表仅包含此场景所需水果的名称。 参考表可以具有任意数量的行。
目标是创建一个如下所示的表,将所有这些值标准化,以便进行更多分析。
示例调查输出表的屏幕截图,其中“问题”列包含列分布图。 图表显示了九个不同的答案,所有答案都是唯一的。 调查的答案包含所有拼写错误、复数或单数问题以及大小写问题。 输出表还包含“水果”列。 此列包含列分布图,其中显示了四个不同答案和一个唯一答案。 它还列出了所有拼写正确、单数和大小写正确的水果。
模糊合并操作
若要执行模糊合并,请首先执行合并。 在这种情况下,你将使用左外部联接,其中左表是来自调查的表,右表是“水果”参考表。 在对话框底部,选中“使用模糊匹配执行合并”复选框。
选择“确定”后,你就可以看到由于这次合并操作,表中多了一列。 如果展开它,就会有一行中没有任何值。 这正是上图中对话框信息所显示的内容,即“所选内容与第一个表 9 行中的 8 行相匹配”。
添加到“调查”表的“水果”列的屏幕截图。 “问题”列中的所有行都已展开,但第 9 行除外,该行无法展开,且“水果”列包含 null。
模糊匹配选项
可以修改“模糊匹配选项”,调整近似匹配的方式。 首先,选择“合并查询”命令,然后在“合并”对话框中展开“模糊匹配选项”。
可用选项包括:
- 相似性阈值(可选):一个介于 0.00 和 1.00 之间的值,用于匹配超过给定相似度分数的记录。 1.00 的阈值与指定精确匹配标准相同。 例如,只有当阈值设置为小于 0.90 时,葡萄才与匍萄(缺少草字头)匹配。 默认情况下,此值设置为 0.80。
- 忽略大小写:无论文本是大写还是小写,都允许匹配记录。
- 通过组合文本部分进行匹配:允许组合文本部分查找匹配项。 例如,如果启用此选项,则 Micro soft 可与 Microsoft 匹配。
- 显示相似性分数:显示输入值与模糊匹配后的匹配值之间的相似性分数。
- 匹配数(可选):指定每个输入行可返回的最大匹配行数。
- 转换表(可选):允许根据自定义值映射匹配记录。 例如,如果提供的转换表中“从”列包含“葡萄”,而“到”列包含“葡萄干”,那么“葡萄”就会与“葡萄干”匹配。
转换表
在本文的示例中,可以使用转换表来映射有缺失匹配的值。 该值是“苹”,需要映射到“苹果”。 转换表有两列:
- “从”列中包含要查找的值。
- “目标”列包含用于替换使用“来源”列找到的值的值。
对于本文,转换表如下所示:
从 | 到 |
---|---|
苹 | 苹果 |
可以返回到“合并”对话框,然后在“匹配数”下的“模糊匹配选项”中输入 1。 启用“显示相似性分数”选项,然后在“转换表”下,从下拉菜单中选择“转换表”。
选择“确定”后,可以转到合并步骤。 展开包含表值的列时,除了“水果”字段外,还会看到“相似性分数”字段。 选择并展开,不要添加前缀。
展开这两个字段后,它们将添加到表中。 请注意每个值的相似性得分。 如果需要,这些分数可以帮助你进行进一步转换,以确定是否需要降低或提高相似性阈值。
对于此示例,相似性分数仅作为附加信息,并且此查询的输出中不需要这些信息,因此可以将其删除。 请注意,该示例一开始有九个不同的值,但经过模糊合并后,只有四个不同的值。
模糊合并调查输出表的屏幕截图,其中“问题”列包含列分布图,显示九个不同的答案,所有答案都是唯一的,还显示存在错别字、复数或单数以及大小写问题的调查的答案。 此外,还包含“水果”列,其中列分布图显示四个具有唯一答案的不同答案,并列出所有拼写、单数和大小写正确的水果。
有关转换表工作原理的详细信息,请转到转换表规则。