我需要检查在Python中两个字符串之间的距离(度量最小更改次数-字符删除、添加和转置)是否大于1。
我可以自己实现它,但我打赌有现有的软件包可以节省我自己实现的时间。我没有找到任何被认为是常用的软件包。有吗?
我可以自己实现它,但我打赌有现有的软件包可以节省我自己实现的时间。我没有找到任何被认为是常用的软件包。有吗?
有一个 NLTK 包可供使用,它使用的是 Levenshtein 编辑距离算法,这应该是你需要的。
示例:
import nltk
s1 = "abc"
s2 = "ebcd"
nltk.edit_distance(s1, s2) # output: 2
Reference: https://tedboy.github.io/nlps/generated/generated/nltk.edit_distance.html
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的文档完备的库。