我希望能够测量两个单词之间的相似度。我的想法是使用OCR读取文本并检查其中关键词的结果。
我需要的函数应该比较两个单词,并以%的形式返回它们之间的相似度。因此,将一个单词与自身进行比较应该是100%的相似度。
我已经编写了自己的函数,并逐个字符进行比较,然后根据长度返回匹配数量的比率。但问题在于:
在我的函数中,第二个结果将增加到92%,但第一个结果仍不好。我已经找到了这个“R”的 解决方案,可以使用
wordComp('h0t',hot')
0.66
wordComp('tackoverflow','stackoverflow')
0
但是直观上看,这两个例子应该具有非常高的相似度>90%。添加Levenstein距离。
import nltk
nltk.edit_distance('word1','word2')
在我的函数中,第二个结果将增加到92%,但第一个结果仍不好。我已经找到了这个“R”的 解决方案,可以使用
rpy2
或使用agrepy
作为另一种方法。但是,我想通过更改接受标准的基准来使程序更加敏感和不敏感(只接受相似度> x%的匹配)。是否有其他好的度量标准可以使用,或者您有任何改进函数的想法?