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为啥不能运行