Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 检查字符串中的单词是否相似?(例如,书与溪与书与运气)_Python_Pandas_Dataframe_Python 3.7 - Fatal编程技术网

Python 检查字符串中的单词是否相似?(例如,书与溪与书与运气)

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

我编写了比较两个字符串以查找匹配单词的代码。现在我希望能够找到相对接近的单词。例如,书和布鲁克是相似的,而书和运气不是。我该怎么做

我想把每个单词分成几个字符,然后数一数这些字符的频率?现在一个匹配的单词给出的值是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 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")