Python 为什么不是';t Levenshtein.还有什么吗?

Python 为什么不是';t Levenshtein.还有什么吗?,python,levenshtein-distance,Python,Levenshtein Distance,我有以下python函数: import Levenshtein SENTINEL = -1 def findClosestMatch(sampleElemList, convertElem, error): matchIndividualElem = False lowestLevDistance = SENTINEL closestMatchingString = '' for sampleElem in sampleElemList:

我有以下python函数:

import Levenshtein

SENTINEL = -1

def findClosestMatch(sampleElemList, convertElem, error):
    matchIndividualElem = False
    lowestLevDistance = SENTINEL
    closestMatchingString = ''
    for sampleElem in sampleElemList:
            if sampleElem.text == convertElem.text:
                    matchIndividualElem = True
                    break
            sampleDistance = Levenshtein.distance(sampleElem.text, convertElem.text)
            if sampleDistance < lowestLevDistance or lowestLevDistance == SENTINEL:
                    lowestLevDistance = sampleDistance
                    closestMatchingString = sampleElem.text
    if matchIndividualElem == False and convertElem.text != None:
            safeErrString = convertElem.text.encode('utf-8')
            error.write('The following text could not be matched: \'' + safeErrString + '\'. The closest text is: ' + closestMatchingString + \
                    ' with a Levenshtein distance of ' + str(lowestLevDistance) +  '.\n\n')
            return 1
    return 0;
该功能包含在一个程序中,该程序以前显示功能良好。它返回1或0,以添加到迄今为止在列表中发现的所有不匹配项中

程序编译时没有警告,程序的其余部分按其预期的方式运行。但是,错误文件始终读取:“无法匹配以下文本:“”,Levenshtein距离为-1


函数应该总是输出一些东西,只要“sampleElemList”中存在一个元素,我知道这是真的。我调用库的方式有问题吗?这是安装的问题吗?或者它完全是另一回事?

我在构建的应用程序中也遇到了Python Levenshtein包的问题,因此我找到了它的公共域实现,并将其放在实用程序模块中。如果您不需要包中的额外函数,我建议您也这样做。你可以找到它的源代码(公共域)。当你得到不想要的输出时,你能显示你正在输入什么吗?您可以尝试改用(
sudo pip install distance
)或编写自己的Levenshtein distance函数。该用法/函数可能存在错误。。需要进一步诊断。可能应该注意有关“”文本的消息。还请注意,这一行:
如果sampleDistance
最初将计算为
True
,因为在顶部,您将
lowestlevdance
设置为
SENTINEL
。在我构建的应用程序中,我也遇到了Python Levenshtein包的问题,所以我刚刚找到了它的公共域实现,并将其放在实用程序模块中。如果您不需要包中的额外函数,我建议您也这样做。你可以找到它的源代码(公共域)。当你得到不想要的输出时,你能显示你正在输入什么吗?您可以尝试改用(
sudo pip install distance
)或编写自己的Levenshtein distance函数。该用法/函数可能存在错误。。需要进一步诊断。可能应该注意有关“”文本的消息。还请注意,这一行:
如果sampleDistance
最初将计算为
True
,因为在顶部您将
lowestLevDistance
设置为
SENTINEL
sudo pip install python-Levenshtein