我正在寻找一种在两个字符串(例如:名称)之间输出匹配百分比的方法,同时还考虑到它们可能相同但单词的顺序不同。我尝试使用 SequenceMatcher() 但结果只是部分令人满意:
a = "john doe"
b = "jon doe"
c = "doe john"
d = "jon d"
e = 'john do'
s = SequenceMatcher(None, a, b)
s.ratio()
0.9333333333333333
s = SequenceMatcher(None, a, c)
s.ratio()
0.5
s = SequenceMatcher(None, a, d)
s.ratio()
0.7692307692307693
s = SequenceMatcher(None, a, e)
s.ratio()
0.9333333333333333
除了第二个结果,我对所有结果都满意。我注意到它没有考虑到c is 包含与 a 相同但顺序不同的单词。
在我上面提到的情况下,有没有其他方法可以匹配字符串并获得更高的匹配百分比。还应考虑到名称可能包含两个以上的单词。
谢谢!