Openrefine:关键碰撞 - 指纹聚类+变音符号

时间:2017-09-26 16:11:49

标签: openrefine

我认为openrefine在“密钥碰撞 - 指纹”聚类中管理变音符号的方式存在一个错误(或一个非常令人惊讶的特征......):

第1行:école 第2行:écoleécoleecole

- >聚类 - > 0簇

相同的问题 第1行:école 第2行:écoleécoleecole - > 0簇

但这种情况很有效:

第1行:ecole 第2行:écoleécoleécole - > 1个群集

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”非常不同,我认为它们不应合并。名称“约翰 - 约翰”都不等同于“约翰”。

编辑:One of the developpers agrees with you