0

2 つの翻訳された名前が同等かどうかを確認しようとしています。翻訳では、名前の順序が異なる場合があります。例えば:

>>> 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
4

1 に答える 1

2

比較する前に、名前の順序を正規化できます。

def normalize(name):
    name_parts = name.replace("-", " ").split()
    return " ".join(sorted(name_parts)).lower()
于 2015-03-14T20:20:17.460 に答える