擅长:python、mysql、java
<p>更准确的解决方案是计算拼写错误的单词和拼写正确的单词之间的相似度比率。在Python中可用的少数几个库中,我使用了Levenshtein库,它有一个返回相似比的<a href="https://rawgit.com/ztane/python-Levenshtein/master/docs/Levenshtein.html#Levenshtein-ratio" rel="nofollow noreferrer">ratio</a>函数。获取比率非常简单,例如:</p>
<pre><code>from Levenshtein import ratio
ratio('banana', 'Banaa')
#0.7272727272727273
</code></pre>
<p>现在,如果我们有下面的正确单词列表<code>correct_words</code>,那么将计算序列中每个单词与<code>correct_words</code>中每个单词之间的比率。在</p>
^{pr2}$
<p>这意味着每个元素将有三个比率值。然而,我们只关心最大比率值和与之相关的正确单词。{and dictionary{and The intermediate words}创建一个中间值为cd3}的函数。函数返回具有最大值的键。最后,我们将函数返回的键映射到dataframe的每个元素中。在</p>
<pre><code>from Levenshtein import ratio
import operator
def similarity(x):
l = {}
for i in correct_words:
l[i] = ratio(x,i)
return max(l.items(), key=operator.itemgetter(1))[0]
df.applymap(similarity)
Ex1 Ex2 Ex3
0 apple apple pear
1 apple banana banana
2 pear apple apple
3 pear apple apple
4 banana banana pear
5 banana apple banana
</code></pre>