模糊匹配在 Power Query 中的工作原理

Power Query 功能(如 模糊合并群集值模糊分组 )使用与模糊匹配相同的机制。

本文介绍了许多方案,演示如何利用模糊匹配具有的选项,目的是明确“模糊”。

注释

尽管群集值选项仅在 Power Query Online 中可用,但本节中显示的机制也适用于模糊合并和模糊分组。

调整相似性阈值

应用模糊匹配算法的最佳方案是,当列中的所有文本字符串仅包含需要比较的字符串,并且没有额外的组件时。 例如,与与比较相比,与Apples4ppl3s生成相似性分数相比ApplesMy favorite fruit, by far, is Apples. I simply love them!更高。

由于第二个字符串中的单词 Apples 只是整个文本字符串的一小部分,因此该比较会产生较低的相似性分数。

例如,以下数据集包含来自只有一个问题的调查的回复-“你最喜欢的水果是什么?”

水果
蓝 莓
蓝色浆果只是最好的
草莓
草莓 = <3
苹果
'sples
4ppl3s
香蕉
fav 水果是香蕉
巴纳斯
到目前为止,我最喜欢的水果是苹果。 我只是爱他们!

调查提供了一个用于输入值且没有验证的单个文本框。

现在,你的任务是聚类分析这些值。 若要执行该任务,请将上一个水果表加载到 Power Query 中,选择该列,然后在功能区中的“添加列”选项卡中选择“群集值”选项。

屏幕截图显示了在从表中选择“水果”列后可用的功能区中的“添加列”选项卡中的“群集值”选项。

此时会显示 “群集值 ”对话框,可在其中指定新列的名称。 将此新列命名为 “群集 ”,然后选择“ 确定”。

选择“水果”列后群集值对话框的屏幕截图。新的列名称字段设置为 Cluster。

默认情况下,Power Query 使用相似性阈值 0.8(或 80%)。 最小值为 0.00 会导致具有任何相似性的所有值相互匹配,最大值为 1.00 只允许完全匹配。 模糊的“完全匹配”可能会忽略大小写、单词顺序和标点符号等差异。 上一个作的结果生成下表,其中包含新的 群集 列。

在对具有默认值的 Fruit 列执行“聚类值”作后,默认输出的默认输出的屏幕截图。

完成聚类分析后,不会提供所有行的预期结果。 行号 2 (2) 仍具有值Blue berries are simply the best,但它应聚集到Blueberries,与文本字符串Strawberries = <3fav fruit is bananas类似,以及My favorite fruit, by far, is Apples. I simply love them!

若要确定导致此聚类分析的原因,请在“已应用的步骤”面板中双击“聚集”值,以返回“群集值”对话框。 在此对话框中,展开 模糊群集选项。 启用 “显示相似性分数 ”选项,然后选择“ 确定”。

群集值窗口的屏幕截图,其中显示了模糊群集选项,并且选择了“显示相似性分数”选项。

启用 “显示相似性分数 ”选项会在表中创建新列。 此列显示定义的群集与原始值之间的精确相似性分数。

具有名为Fruit_Cluster_Similarity的新相似性分数列的表的屏幕截图。

仔细检查后,Power Query 在文本字符串Blue berries are simply the bestStrawberries = <3fav fruit is bananasMy favorite fruit, by far, is Apples. I simply love them!的相似性阈值中找不到任何其他值。

“已应用的步骤”面板中双击“聚集值”,再次返回到“群集值”对话框。 将 相似性阈值0.8 更改为 0.6,然后选择“ 确定”。

“群集值”对话框的屏幕截图,其中显示了模糊群集选项,以及设置为 0.6 的相似性阈值。

此更改使你更接近要查找的结果,但文本字符串 My favorite fruit, by far, is Apples. I simply love them!除外。 将 相似性阈值0.8 更改为 0.6 时,Power Query 现在能够使用从 0.6 开始到 1 的相似性分数的值。

定义相似性阈值为 0.6 且群集列中分配的新值的表的屏幕截图。

注释

Power Query 始终使用最接近阈值的值来定义群集。 该阈值定义可接受的相似性分数的下限,该分数可以分配给群集。

可以通过将 相似性分数 从 0.6 更改为较低的数字来重试,直到获得要查找的结果。 在这种情况下,将 相似性分数 更改为 0.5。 此更改将生成你期望的确切结果,其中文本字符串 My favorite fruit, by far, is Apples. I simply love them! 现在分配给群集 Apples

包含群集列中所有正确值的表的屏幕截图。

注释

目前,只有 Power Query Online 中的 群集值 功能提供具有相似性分数的新列。

转换表的特殊注意事项

转换表有助于在执行模糊匹配算法之前将值从列映射到新值。

有关如何使用转换表的一些示例:

重要

使用转换表时,转换表中的值的最大相似性分数为 0.95。 这种故意的 0.05 惩罚是区分原始值与此类列相比的值不等于自转换发生以来的值。

如果首先想要映射值,然后执行模糊匹配而不执行 0.05 惩罚的情况,建议替换列中的值,然后执行模糊匹配。