python中的字符串编辑距离



我需要检查python中两个字符串之间的字符串距离(测量最小更改次数-字符删除、添加和换位(是否大于1。

我可以自己实现它,但我敢打赌,有一些现有的包可以让我不用自己实现它。我找不到任何一个我能确定为常用的包。有吗?

您可以使用一个NLTK包,它使用Levenstein编辑距离,这应该是您想要的。

示例:

import nltk
s1 = "abc"
s2 = "ebcd"
nltk.edit_distance(s1, s2) # output: 2

参考:https://tedboy.github.io/nlps/generated/generated/nltk.edit_distance.html

strsimpy可以使用。点击此处查看-https://pypi.org/project/strsimpy/我希望这就是你想要的。下面是一个用法示例:

from strsimpy.levenshtein import Levenshtein
levenshtein = Levenshtein()
levenshtein.distance('1234', '123')   # 1 (deletion/insertion)
levenshtein.distance('1234', '12345') # 1 (deletion/insertion)
levenshtein.distance('1234', '1235')  # 1 (substitution)
levenshtein.distance('1234', '1324')  # 2 (substitutions)
levenshtein.distance('1234', 'ABCD')  # 4 (substitutions)

还有很多其他指标可用。

您需要许多相应算法的实现:以下属于一个名为NLTK的文档库。

https://www.nltk.org/_modules/nltk/metrics/distance.html

最新更新