python 计算在OpenRefine中与维基数据重新调整的术语及其候选者之间的Levensthein编辑距离的方法(https:// gi

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 计算在OpenRefine中与维基数据重新调整的术语及其候选者之间的Levensthein编辑距离的方法(https:// gi相关的知识,希望对你有一定的参考价值。

def call_counter(func):
    def helper(*args, **kwargs):
        helper.calls += 1
        return func(*args, **kwargs)
    helper.calls = 0
    helper.__name__= func.__name__
    return helper
memo = {}
@call_counter
def levenshtein(s, t):
    if s == "":
        return len(t)
    if t == "":
        return len(s)
    cost = 0 if s[-1] == t[-1] else 1
       
    i1 = (s[:-1], t)
    if not i1 in memo:
        memo[i1] = levenshtein(*i1)
    i2 = (s, t[:-1])
    if not i2 in memo:
        memo[i2] = levenshtein(*i2)
    i3 = (s[:-1], t[:-1])
    if not i3 in memo:
        memo[i3] = levenshtein(*i3)
    res = min([memo[i1]+1, memo[i2]+1, memo[i3]+cost])
    return res

candidates_edit = []
for i in cell['recon']['candidates']:
    candidates_edit.append(str(levenshtein(value, i.name)))

return "|".join(candidates_edit)

以上是关于python 计算在OpenRefine中与维基数据重新调整的术语及其候选者之间的Levensthein编辑距离的方法(https:// gi的主要内容,如果未能解决你的问题,请参考以下文章

python 基于gazeeter在OpenRefine中检测比利时城市名称的Jython天真方法

python 使用parsetree的OpenRefine / jython POS标记

python Jython:将Google Books api与OpenRefine记录一起使用

python OpenRefine / Jython sparql查询(查找令牌中可能的位置和人员)

python Jython天真的方法,用于根据名字列表检测OpenRefine中的潜在人名

openrefine为啥不能运行