Python 使用Levenshtein距离确定数组中是否存在类似字符串

Python 使用Levenshtein距离确定数组中是否存在类似字符串,python,ruby,algorithm,levenshtein-distance,Python,Ruby,Algorithm,Levenshtein Distance,例如,我有一个名为referenceArray的字符串数组。我现在有一个字符串str。我想检查referenceArray中是否有任何元素与str相似。我可以计算referenceArray和str的每个元素之间的Levenshtein距离,并选择距离最小的元素。 但是,这种方法的问题是我还需要知道referenceArray中的元素是否与str相似。因此,在这种情况下,选择具有最小L距离的元素是错误的 比如说, referenceArray = ['saint louis','new york

例如,我有一个名为referenceArray的字符串数组。我现在有一个字符串str。我想检查referenceArray中是否有任何元素与str相似。我可以计算referenceArray和str的每个元素之间的Levenshtein距离,并选择距离最小的元素。 但是,这种方法的问题是我还需要知道referenceArray中的元素是否与str相似。因此,在这种情况下,选择具有最小L距离的元素是错误的

比如说,

referenceArray = ['saint louis','new york']
str='st. louis'
在这种情况下,我选择圣路易斯,因为它的最小L距离为4。

但是如果
str='toronto'
,则具有
最小L距离的是“纽约”
,但是字符串当然完全不同。如何确定referenceArray中的元素是否与str不匹配,或者是否存在类似的字符串


谢谢

设置一些可接受距离的阈值怎么样?比方说,只有当距离小于
10
sqrt(len(str))
或类似值时,才接受具有最小距离的字符串。

设置可接受距离的阈值如何?例如,只有当距离小于
10
sqrt(len(str))
或类似值时,才接受具有最小距离的字符串。

尝试将上限阈值设置为
len(str)/x
,其中x是适当的常数。我会尝试使用2-4的x


使用一些示例输入进行尝试,看看什么最适合您。

尝试将上限阈值设置为
len(str)/x
,其中x是一个合适的常数。我会尝试使用2-4的x

使用一些示例输入进行尝试,看看什么最适合您