Sal*_*wal 13 python regex string
我想知道你的字符串是否几乎相似.例如,像'Mohan Mehta'这样的字符串应该匹配'Mohan Mehte',反之亦然.另一个例子,像'Umesh Gupta'这样的字符串应该匹配'Umash Gupte'.
基本上一个字符串是正确的,而另一个字符串是错误拼写的.我的所有字符串都是人的名字.
有关如何实现这一目标的任何建议.
解决方案不必100%有效.
Pad*_*ham 20
如果你想要stdlib中的东西,你可以使用difflib.sequencematcher:
from difflib import SequenceMatcher
s_1 = 'Mohan Mehta'
s_2 = 'Mohan Mehte'
print(SequenceMatcher(a=s_1,b=s_2).ratio())
0.909090909091
Run Code Online (Sandbox Code Playgroud)
fuzzywuzzy是您可以安装的众多库中的一个,它使用带有python-Levenshtein的difflib模块.您还应该查看Approximate_string_matching上的wikipage
另一种方法是使用" 语音算法 ":
语音算法是用于通过其发音索引单词的算法.
例如,使用soundex算法:
>>> import soundex
>>> s = soundex.getInstance()
>>> s.soundex("Umesh Gupta")
'U5213'
>>> s.soundex("Umash Gupte")
'U5213'
>>> s.soundex("Umesh Gupta") == s.soundex("Umash Gupte")
True
Run Code Online (Sandbox Code Playgroud)