mt20基于编辑距离算法增量更新介绍.pdfVIP

  1. 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
  2. 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
  3. 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
mt20基于编辑距离算法增量更新介绍

mt2.0基于编辑距离算法增量更新介绍 waynelu(/waynelu) 2014-06 about me 卢勇福 (waynelu) 微博 /waynelu /u/1849616271 github: /luyongfugx /mtjs/mt 提纲 l Mt1.0 chunk算法的问题 l 什么是编辑距离计算 l 编辑距离计算算法具体实现 l 在mt里面编辑距离计算算法 Mt1.0 chunk算法的问题 mt1.0基于分块chunk算法来做增量更新,节省资源 的量取决于块的大小和碎片的大小,无法做到字符 级别的增量更新 什么是编辑距离计算 概念 : Levenshtein Distance (编辑距离) ,编辑 距离即从一个字符串变换到另一个字符 串所需要的最少变化操作步骤 作者 : 俄罗斯科学家Vladimir Levenshtein在 1965年提出这个概念 编辑距离计算算法具体实现 编辑代价定义 : 1.不变 0 2. 替换 1 3.插入 1 4.删除 1 删除 ,替换 ,插入这几种操纵的代价 是1 ,即修改一个字符 ,不变则是0 , 表示没有修改 ,即操作代价是0 编辑距离计算算法具体实现 编辑距离计算公式: edit(i, j):第一个字符串的长度为i 的子串到第二个字符串的 长度为j 的子串的编辑距离 通过动态规划法(dp )得到:   if i == 0 且 j == 0 ,edit(i, j) = 0   if i == 0 且 j 0 ,edit(i, j) = j   if i 0 且j == 0 ,edit(i, j) = i   if i ≥ 1  且 j ≥ 1 edit(i, j) = min{ edit(i-1, j) + 1, edit(i, j-1) + 1, edit(i-1, j-1) + f(i, j) },当第一个字符串的第i个字符不 等于第二个字符串的第j 个字符时,f(i, j) = 1;否则,f(i, j) = 0 编辑距离计算算法具体实现 以batyu 修改为beauty ,编辑距离为3 (右下 数字): 在mt里面编辑距离计算算法 我们记录每一个编辑步骤(红字 ): 0 :未修改, 1:替换,2:删除,3:插入 在mt里面编辑距离计算算法 从右下脚开始往左上脚遍历 : 0:未修改, 1:替换,2:删除 ,3:插入 删除 :y-1. 替换,相等:x-1,y-1 插入:x-1 在mt里面编辑距离计算算法 得到编辑代价最小的编辑步骤 : 0-3-0-3-0-0-2 (0:未修改, 1:替换,2:删除 ,3: 插入 ) 根据操作步骤和新字符串beauty ,我们可以得到如下 数组 : [ [ 1, 0 ], ‘e’, [ 2, 0 ], ‘u’, [ 3,

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档