反向Levenshtein距离

时间:2013-11-27 10:13:12

标签: python levenshtein-distance

在levenshtein距离中,你问这个问题,给出这两个字符串,他们的levenshtein距离是多少。你将如何获得一个字符串和levenshtein距离并在levenshtein距离内生成所有字符串。 (它也会采用字符集)。所以,如果我传入一个字符串x和一个距离d。然后它会给我编辑距离内的所有字符串,包括d-1和d-2 .... d-n; (n

预期功能:

>>> getWithinDistance('apple',2,{'a','b',' '})
['applea','appleb','appel','app le'...]

请注意,该程序能够生成app le,因为字符集中包含空格。

1 个答案:

答案 0 :(得分:6)

有一种称为Levenshtein automaton的数据结构。您可以从一组字符串(可能只有一个成员)和固定距离 k 构建它,然后您可以查询距离最多 k 的所有字符串它存储的任何字符串。讨论了Python实现here

或者,您可以使用回溯功能对此类字符串进行深度限制搜索。