python模糊levenshtein比率提前退出?

python模糊levenshtein比率提前退出?,python,levenshtein-distance,fuzzy-search,Python,Levenshtein Distance,Fuzzy Search,我正在尝试比较10万个字符串。我无法进一步减小问题的大小(即集合中的字符串)。我用Levenshtein比率来比较。如果比率大于0.9,我想将这两个字符串存储在一个列表中。我的问题是关于运行时优化。因为0.9是我的标准,有没有办法将这个值传递给Levenshtein.ratio(),并期望在负面情况下尽早退出?如果存在提前退出的方法,则可以保存一些运行时。在Levenshtein算法中,在计算完整距离之前提前获得比率是否可行 例如 是否有类似于: Levenshtein.ratio('lot o

我正在尝试比较10万个字符串。我无法进一步减小问题的大小(即集合中的字符串)。我用Levenshtein比率来比较。如果比率大于0.9,我想将这两个字符串存储在一个列表中。我的问题是关于运行时优化。因为0.9是我的标准,有没有办法将这个值传递给Levenshtein.ratio(),并期望在负面情况下尽早退出?如果存在提前退出的方法,则可以保存一些运行时。在Levenshtein算法中,在计算完整距离之前提前获得比率是否可行

例如

是否有类似于:

Levenshtein.ratio('lot of runtime','why not an early exit in this case by taking the intended ratio', 0.9)

是的,像你所设想的那样提前退出是可能的

Levenshtein
模块的源代码免费提供,因此您可以自己添加该功能


您可能希望考虑另一个优化:三角形不等式。如果字符串A与字符串B的相似性为20%,字符串B与字符串C的相似性为90%,那么您知道字符串A与字符串C的相似性不会达到90%。这是不可能的,因此您根本不必实际计算A-C的Levenshtein距离。

是的,像您假设的那样提前退出是可能的

Levenshtein
模块的源代码免费提供,因此您可以自己添加该功能


您可能希望考虑另一个优化:三角形不等式。如果字符串A与字符串B的相似性为20%,字符串B与字符串C的相似性为90%,那么您知道字符串A与字符串C的相似性不会达到90%。这是不可能的,因此您根本不必实际计算A-C的Levenshtein距离。

如果重要的是算法,那么您为什么要关心Python的细节?我不知道这个模块“Levenshtein”是如何实现的,但是当然可以修改它的动态编程实现,使其在完成处理之前停止。我认为当前的实现不支持它。您可能不想用分叉和相应的更改来支持它,因为它应该直接实现。唉,Levenshtein==
python Levenshtein
是用C编写的。如果重要的是算法,为什么还要关心python的细节?我不知道这个模块“Levenshtein”是如何实现的,但是当然可以修改它的动态编程实现,使其在完成处理之前停止。我认为当前的实现不支持它。您可能不想分叉它并相应地进行更改以支持它,因为它应该直接实现。唉,Levenshtein==
python Levenshtein
是用C编写的。
Levenshtein.ratio('lot of runtime','why not an early exit in this case by taking the intended ratio', 0.9)