【问题标题】:Openrefine : key collision-fingerprint clustering + diacriticsOpenrefine:关键碰撞指纹聚类+变音符号
【发布时间】:2017-09-27 16:36:52
【问题描述】:

我认为 openrefine 在“关键碰撞指纹”聚类中管理变音符号的方式存在错误(或非常令人惊讶的功能......):

第 1 行:学校 第 2 行: école école 高等学校

-> 聚类-> 0 聚类

同样的问题

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

但是这个案例效果很好:

第 1 行:高等学校 第 2 行: école école école -> 1 个集群

【问题讨论】:

    标签: openrefine


    【解决方案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 表示

    “école”->“ecole”

    有人可能想知道操作 7 之前是否不应该执行。但是在您的示例中,如果存在错误,则可能是第三种情况。字符串“école”与字符串“ecole école école”非常不同,我认为它们不应该合并。给定名称“John-John”都不等同于“John”。

    编辑:One of the developpers agrees with you.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 2019-09-26
      • 2013-01-11
      • 1970-01-01
      • 2019-03-07
      相关资源
      最近更新 更多