Python 检查字符串中的单词是否相似?(例如,书与溪与书与运气)
我编写了比较两个字符串以查找匹配单词的代码。现在我希望能够找到相对接近的单词。例如,书和布鲁克是相似的,而书和运气不是。我该怎么做 我想把每个单词分成几个字符,然后数一数这些字符的频率?现在一个匹配的单词给出的值是0。否则,将给出2,但我想扩展该部分以实现我上面描述的内容Python 检查字符串中的单词是否相似?(例如,书与溪与书与运气),python,pandas,dataframe,python-3.7,Python,Pandas,Dataframe,Python 3.7,我编写了比较两个字符串以查找匹配单词的代码。现在我希望能够找到相对接近的单词。例如,书和布鲁克是相似的,而书和运气不是。我该怎么做 我想把每个单词分成几个字符,然后数一数这些字符的频率?现在一个匹配的单词给出的值是0。否则,将给出2,但我想扩展该部分以实现我上面描述的内容 for i in range(0, out.shape[0]): # from 0 to total number of rows out.shape[0] is rows - out.shape[1] is columns
for i in range(0, out.shape[0]): # from 0 to total number of rows out.shape[0] is rows - out.shape[1] is columns
for word in refArray: # for each word in the samplearray
#out.ix[i, str(word)] = out.index[i].count(str(word))
if out.index[i].count(str(word)) == 1:
out.ix[i, str(word)] = 0
else:
out.ix[i, str(word)] = 2
您希望计算编辑距离。
在浏览谷歌之后,我最终使用了nltk。在这个阶段,我只需要比较简单的单词就可以了解我的程序的基本功能。稍后会考虑更复杂的解决方案。谢谢你的帮助
import nltk
nltk.edit_distance("word1", "word2")
资料来源:
余弦相似性是实现它的方法之一。您也可以使用diiflib库。如果是同一个字母和相同的位置,可以加+2进行计数;如果是word中的同一个字母,可以加+1,否则+0您需要的是两个字符串之间的余弦相似性。在这里查看一个示例实现——我尝试了您的方法Pruthvi,它适用于整个字符串。当尝试比较单个单词时,它给出值0。我正试图修正这台自动取款机。为什么我被否决了?这里有什么官僚主义吗?我最终会转向语音学,所以这是为了功能演示,而不是结构寿命。
import nltk
nltk.edit_distance("word1", "word2")