Openrefine:按键碰撞-指纹聚类+变音符号
Openrefine : key collision-fingerprint clustering + diacritics
我认为 openrefine 在 "key collision-fingerprint" 集群中管理变音符号的方式存在一个错误(或一个非常令人惊讶的功能...):
第 1 行:学校
第 2 行:学校学校学校
-> 聚类 -> 0 个簇
与
同样的问题
第 1 行:学校
第 2 行:学校学校学校
-> 0 个集群
但这个案例效果很好:
第 1 行:学校
第 2 行:学校学校学校
-> 1 个集群
并不奇怪。指纹聚类只是对每个单元格应用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 " -> "école école école"
2。将所有字符更改为小写形式
"éCole école école" -> "école école école"
3。删除所有标点符号和控制字符
"école-école, école" -> "école école école"
4.将字符串拆分为以空格分隔的标记
"école école école" -> ["école", "école", "école"]
5.对标记进行排序并删除重复项
["école", "école", "école"] -> ["école"]
6.将令牌重新组合在一起
["école"] -> "école"
7.将扩展的西方字符规范化为其 ASCII 表示
“学院”-> "ecole"
有人会想操作7以前是不是不应该做的。但是在您的示例中,如果存在错误,则错误可能在第三种情况下。字符串 "école" 与字符串 "ecole école école" 非常不同,我认为它们不应该合并。给定名称 "John-John" 都不等同于 "John".
我认为 openrefine 在 "key collision-fingerprint" 集群中管理变音符号的方式存在一个错误(或一个非常令人惊讶的功能...):
第 1 行:学校 第 2 行:学校学校学校
-> 聚类 -> 0 个簇
与
同样的问题第 1 行:学校 第 2 行:学校学校学校 -> 0 个集群
但这个案例效果很好:
第 1 行:学校 第 2 行:学校学校学校 -> 1 个集群
并不奇怪。指纹聚类只是对每个单元格应用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 " -> "école école école"
2。将所有字符更改为小写形式
"éCole école école" -> "école école école"
3。删除所有标点符号和控制字符
"école-école, école" -> "école école école"
4.将字符串拆分为以空格分隔的标记
"école école école" -> ["école", "école", "école"]
5.对标记进行排序并删除重复项
["école", "école", "école"] -> ["école"]
6.将令牌重新组合在一起
["école"] -> "école"
7.将扩展的西方字符规范化为其 ASCII 表示
“学院”-> "ecole"
有人会想操作7以前是不是不应该做的。但是在您的示例中,如果存在错误,则错误可能在第三种情况下。字符串 "école" 与字符串 "ecole école école" 非常不同,我认为它们不应该合并。给定名称 "John-John" 都不等同于 "John".