擅长:python、mysql、java
<p>您要查找的“分数”称为编辑距离。有相当多的文献和算法可用-很容易找到,但只有在您知道正确的术语:)</p>
<p>请参阅相应的<a href="https://en.wikipedia.org/wiki/Edit_distance" rel="nofollow noreferrer">wikipedia article</a></p>
<p>nltk包提供了所谓的Levenshtein编辑距离的实现:</p>
<pre><code>from nltk.metrics.distance import edit_distance
if __name__ == '__main__':
print(edit_distance("xido9", "xido9 "))
print(edit_distance("xido9", "xido8"))
print(edit_distance("xido9", "xido9xxx"))
print(edit_distance("xido9", "xido9"))
</code></pre>
<p>在本例中,结果为1、1、3和0</p>
<p>下面是相应的<a href="https://www.nltk.org/api/nltk.metrics.html" rel="nofollow noreferrer">nltk module</a>的文档</p>
<p>这个分数有更专门的版本,考虑到各种打字错误的频率(例如,可能经常出现“e”而不是“r”,因为qwert键盘上的键彼此相邻)</p>
<p>但经典的Levenshtein会让我开始</p>