擅长:python、mysql、java
<p>这可能是一个名为<a href="https://pypi.python.org/pypi/fuzzywuzzy" rel="nofollow noreferrer">fuzzywuzzy</a>的优秀包的一个很好的用例。在</p>
<pre><code>from fuzzywuzzy import fuzz
import numpy as np
bad = ['bercelona', 'emstrdam', 'Praga']
good = ['New York', 'Amsterdam', 'Barcelona', 'Berlin', 'Prague']
# you can even set custom threshold and only return matches if above certain
# matching threshold
def correctspell(word, spellcorrect, thresh = 70):
mtchs = map(lambda x: fuzz.ratio(x, word) if fuzz.ratio(x, word) > thresh else None, spellcorrect)
max = np.max(mtchs)
if max is not None:
return spellcorrect[mtchs.index(max)]
else:
return None
# get correct spelling
map(lambda x: correctspell(x, good, thresh = 70), bad) # ['Barcelona', 'Amsterdam', 'Prague']
</code></pre>