Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.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 Levenshtein中设置编辑限制_Python_Levenshtein Distance - Fatal编程技术网

在python Levenshtein中设置编辑限制

在python Levenshtein中设置编辑限制,python,levenshtein-distance,Python,Levenshtein Distance,我在列表A中有数百万个单词,在列表B中有大约100个单词。我想找到集合A中所有看起来像集合B中的项目的项目。我使用的是Python Levenshtein库,它是用C编写的,运行得非常好 但是99%的比较都是浪费时间,因为Levenshtein计算了像“苹果”和“香蕉”这样的单词之间的距离,即使很明显它们看起来不一样 我想做的是在Levenshtein距离达到3时结束函数。我可以通过从某处借用的python函数中的一行来实现这一点。但是我更喜欢使用Levenshtein库,它是用C语言构建的,应

我在列表A中有数百万个单词,在列表B中有大约100个单词。我想找到集合A中所有看起来像集合B中的项目的项目。我使用的是Python Levenshtein库,它是用C编写的,运行得非常好

但是99%的比较都是浪费时间,因为Levenshtein计算了像“苹果”和“香蕉”这样的单词之间的距离,即使很明显它们看起来不一样

我想做的是在Levenshtein距离达到3时结束函数。我可以通过从某处借用的python函数中的一行来实现这一点。但是我更喜欢使用Levenshtein库,它是用C语言构建的,应该更快

#!/usr/bin/python
def lvn(a, b):
    "Calculates the Levenshtein distance between a and b."
    n, m = len(a), len(b)
    if n > m:
          # Make sure n <= m, to use O(min(n,m)) space
          a,b = b,a
          n,m = m,n

    current = range(n+1)
    for i in range(1,m+1):
          previous, current = current, [i]+[0]*n
          for j in range(1,n+1):
            add, delete = previous[j]+1, current[j-1]+1
            change = previous[j-1]

            if a[j-1] != b[i-1]:
              change = change + 1
              current[j] = min(add, delete, change)
            if current[j]==3: return #what I want to replicate

        return current[n]
#/usr/bin/python
def lvn(a、b):
“计算a和b之间的Levenshtein距离。”
n、 m=len(a),len(b)
如果n>m:

#确保n为什么不传入深度参数:

def lvn(a、b、深度)


每次递归时递增,到3时返回1000?

我认为这行行不通。下一次发布问题时,请包含您实际使用的内容的详细信息,包括指向您需要帮助的库的链接。我现在已经发布了3次了,没有你正在使用的库的链接。如果你不提出一个好的问题,你永远不会得到一个好的答案。这个函数确实可以正常工作,但我想知道是否有办法使用Levenshtein库本身来做同样的事情,因为我的函数可能效率低下。哪个库?有一个C语言,一个python语言,一个lisp语言,一个java语言,一个ruby语言,其中的一些语言有不止一个实现,python语言是用C语言编写的,所以我不理解它