最小编辑距离
string-distance的Python项目详细描述
以cython为单位的最小编辑距离
这在cython中提供字符串距离函数。
基于编辑
这些指标越小越好。
levenshtein
(1表示插入,1表示删除,1表示替换)levenshtein_no_sub
(1表示插入,1表示删除,2表示替换)brew
(0.1表示插入,15表示删除,1表示替换)dameran_levenshtein
(1表示插入,1表示删除,1表示替换,1表示换位)
基于令牌的
cosine_distance
binary_cosine_distance
jaccard_distance
基于序列的
这些指标越大越好。
longest_common_subsequence
longest_common_substring
Ratcliff-Obershelft
扩展和滚动您自己的成本函数
动态规划最小编辑距离算法有两种定义代价的函数。第一个是ctypedef int (*cmp_func)(int c1, int c2)
,用于比较两个字符并返回成本。第二个是ctypedef int (*char_func)(int c1, int c2)
。通过实现这些函数的您自己的版本(我建议您在cost.pxd中执行并内联函数),您可以将它们传递给距离解算器来实现您自己的权重方案。可以使用cmp_func
对替换进行加权(例如,在键盘上彼此相邻的字母的成本较低,如w
和e
以及远键的成本较高,如z
和p
)。可以使用char_func
对插入或删除进行加权,例如,可以根据插入的可擦伤分数对其进行加权。