我认为openrefine在“密钥碰撞 - 指纹”聚类中管理变音符号的方式存在一个错误(或一个非常令人惊讶的特征......):
第1行:école 第2行:écoleécoleecole- >聚类 - > 0簇
与
相同的问题 第1行:école 第2行:écoleécoleecole - > 0簇但这种情况很有效:
第1行:ecole 第2行:écoleécoleécole - > 1个群集
答案 0 :(得分:2)
不太令人惊讶。指纹聚类仅将fingerprint()
函数应用于每个单元格,然后逐个比较它们的等价。现在这里是你提到的三个案例中fingerprint
的结果:
1
row value value.fingerprint()
1. école ecole
2. école école ecole ecole ecole
2
row value value.fingerprint()
1. école ecole
2. école école ecole ecole ecole
3
row value value.fingerprint()
1. ecole ecole
2. école école école ecole
为什么在第三种情况下存在这种差异?由于指纹算法实际执行以下操作,in a strict order。
<强> 1。删除前导和尾随空格
“écoleécoleécole” - &gt; “écoleécoleécole”
<强> 2。将所有字符更改为小写字母
“éColeécoLeécole” - &gt; “écoleécoleécole”
第3。删除所有标点符号和控制字符
“école-école,école” - &gt; “écoleécoleécole”
<强> 4。将字符串拆分为以空格分隔的标记
“écoleécoleécole” - &gt; [“école”,“école”,“école”]
<强> 5。对令牌进行排序并删除重复项
[“école”,“école”,“école”] - &gt; [ “高等”]
<强> 6。一起加入令牌
[“école”] - &gt; “高等”
<强> 7。将扩展的西方字符规范化为ASCII表示
“école” - &gt; “高等”
有人可能想知道之前是否应该进行手术7。但是在你的例子中,如果有错误,可能是第3种情况。字符串“école”与字符串“ecoleécoleécole”非常不同,我认为它们不应合并。名称“约翰 - 约翰”都不等同于“约翰”。