最小编辑距离

string-distance的Python项目详细描述


以cython为单位的最小编辑距离

Build Status

这在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对替换进行加权(例如,在键盘上彼此相邻的字母的成本较低,如we以及远键的成本较高,如zp)。可以使用char_func对插入或删除进行加权,例如,可以根据插入的可擦伤分数对其进行加权。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JPanel不会对键绑定做出反应   当时间大于零时,不得在UI线程上调用java Await   JTextArea的java线程安全。追加   Java用户输入的字和行计数器   java以spreedsheat格式将数据保存到文件中   java构造函数的意义是什么?   java findViewById返回null,尽管组件的ID存在   java如何向按钮添加图像   java如何中断ExecutorService的线程   java如何将属性(例如枚举)绑定到不同类型的组件属性(例如每个枚举的映像)?   随机森林分类器的java实现   html使用java连接到一个站点并发布,HTTP状态代码200   从类访问属性时发生java编译错误   Java自动填充ArrayList,搜索更好的选项