我试图看看两个翻译的名字是否相同。有时翻译会以不同的方式命名。例如:
>>> import difflib
>>> a = 'Yuk-shing Au'
>>> b = 'Au Yuk Sing'
>>> seq=difflib.SequenceMatcher(a=a.lower(), b=b.lower())
>>> seq.ratio()
0.6086956521739131
'Yuk-Shing Au'和'Au Yuk Sing'是同一个人。有没有办法检测这样的事情,这样ratio
这样的名字会更高?类似于以下结果:
>>> a = 'Yuk-shing Au'
>>> b = 'Yuk Sing Au'
>>> seq=difflib.SequenceMatcher(a=a.lower(), b=b.lower())
>>> seq.ratio()
0.8181818181818182
答案 0 :(得分:2)
您可以在比较之前规范化名称的排序:
def normalize(name):
name_parts = name.replace("-", " ").split()
return " ".join(sorted(name_parts)).lower()