编辑距离法的优化与实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编辑距离法的优化与实现

编辑距离算法的优化与实现 摘 要:在分析基于动态规划的编辑距离算法对文本相似度计算的不足的基础上,利用数据结构在空间效率和时间效率上优化该算法、采用中文分词的思想优化和改善该算法的时间效率和准确率,克服了原有的基于动态规划的计算方法所具有的效率低、准确率低、耗内存高的缺点。通过多种优化方案的实验测试和分析,结果表明优化后的算法取得了很好的准确率和时空效率,更好的用于文本相似度计算。 关键词:编辑距离算法;文本相似度计算;算法优化;动态规划 引言 文本相似度的计算在信息检索、文本分类、知识挖掘、网页去重、问答系统等诸多领域有着极为广泛的应用,长期以来一直是研究的热点和难点。人们在文本相似度计算中使用编辑距离算法,但该方法单纯以字为单位计算各个字符之间的编辑距离,插入删除替换三种基本操作的代价值的方法不够明确合理,从而使计算结果存在一定的偏差。故对传统的文本相似度检测编辑距离算法进行优化和改善,提出了一种基于改进编辑距离和中文分词相融合的计算文本相似度的方法,使优化改善后的算法具有较高的准确率和效率、较低的存储空间,更符合文本相似度计算的要求,有效提高文本相似度算法的效率和准确性,使文本相似度计算的性能进一步改善。 编辑距离算法 编辑距离定义 编辑距离又称Levenshtein距离(也叫做Edit Distance)科学家Vladimir Levenshtein1965年提出编辑距离是指之间所需的最少操作次数步骤 描述 设置n为字符串s的长度。 设置m为字符串t的长度。如果n等于0,返回m并退出。 如果m等于0,返回n并退出。 构造0..m行和0..n列。 初始化第一行0..?。 初始化第一列0..m。 3 检查 s (i from 1 to n) 中的每个字符。 4 检查 (j from 1 to m) 中的每个字符。 5 如果 s[i] 等于 t[j],则编辑代价0; 如果 s[i] 不等于 t[j],则编辑代价1。 6 设置d [i,j] 的值为下面的最小值 a. 正上方单元格的值1: d[i-1,j] + 1. b. 左边单元格的值加1: d[i,j-1] + 1. c. 对角线单元格的值加上编辑代价cost的值: d[i-1,j-1] + cost. 7 在完成迭代 (3, 4, 5, 6) 之后,便是编辑距离的值。 本小节将演示如何计算GUMBO和GAMBOL两个字符串Levenshtein距离? ? G U M B O ? 0 1 2 3 4 5 G 1 ? ? A 2 ? ? M 3 ? ? B 4 ? ? O 5 ? ? L 6 ? ? ? ? G U M B O ? 0 1 2 3 4 5 G 1 0 ? ? A 2 1 ? ? M 3 2 ? ? B 4 3 ? ? O 5 4 ? ? L 6 5 ? ? ? ? G U M B O ? 0 1 2 3 4 5 G 1 0 1 ? ? A 2 1 1 ? ? M 3 2 2 ? ? B 4 3 3 ? ? O 5 4 4 ? ? L 6 5 5 ? ? 步骤3、6,当i=3 步骤3、6,当i=4 步骤3、6,当i=5 ? ? G U M B O ? 0 1 2 3 4 5 G 1 0 1 2 ? ? A 2 1 1 2 ? ? M 3 2 2 1 ? ? B 4 3 3 2 ? ? O 5 4 4 3 ? ? L 6 5 5 4 ? ? ? ? G U M B O ? 0 1 2 3 4 5 G 1 0 1 2 3 ? A 2 1 1 2 3 ? M 3 2 2 1 2 ? B 4 3 3 2 1 ? O 5 4 4 3 2 ? L 6 5 5 4 3 ? ? ? G U M B O ? 0 1 2 3 4 5 G 1 0 1 2 3 4 A 2 1 1 2 3 4 M 3 2 2 1 2 3 B 4 3 3 2 1 2 O 5 4 4 3 2 1 L 6 5 5 4 3 2 步骤7,编辑距离是矩阵右下角的值,d[m,n]=2; 源字符串GUMBO变换为GAMBOL的过程将A替换为U,并在末尾追加Lij=D(s1…si,, t1…tj),0≤i≤m,0≤j≤n, Dij表示从s1…si到t1…tj的编辑距离,那么(m+1)×(n+1)阶矩阵Dij可通过下面的(1)式计算得到: 0 i=0且j=0; Di-1 j-1+(if si= tj then 0 else 1);

文档评论(0)

1444168621 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档