蟒蛇模糊levenshtein比率提前退出?

时间:2013-01-14 18:12:40

标签: python levenshtein-distance fuzzy-search

我试图相互比较100k字符串。我不能进一步减小问题的大小(即集合中的#strings)。我使用Levenshtein比率进行比较。如果ratio大于0.9,我想将2个字符串存储在列表中。我的问题是关于运行时优化。由于0.9是我的标准,有没有办法将这个值传递给Levenshtein.ratio()并期望在负面情况下提前退出?如果存在提前退出的方法,则可以保存一些运行时。在计算完整距离之前,Levenshtein算法在提前获得比率是否可行。

E.g

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

是否有类似的东西:

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

1 个答案:

答案 0 :(得分:1)

是的,可以提前退出,就像你假设一样。

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

您可能希望考虑另一种优化:三角不等式。如果字符串A与字符串B相似20%,字符串B与字符串C相似90%,那么你知道字符串A不会与字符串C相似90%。这是不可能的,所以你没有实际上计算AC Levenshtein距离。