我需要检查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