编辑距离 Edit Distance

编辑距离,又被称为Levenshtein距离,是指两个字符串之间,由其中一个转变成另一个所需的最小编辑操作次数。

比如:"sea" 转变为 "eat" 需要2次操作:

1、将 s 删除

2、在末尾添加 t

所以"sea"和"eat"两个字串的编辑距离为2。

这里需要注意的是:所谓的操作只包含 (1) 插入 (2) 删除 (3) 替换 ,并不包括字符的交换操作!

 

编辑距离的应用:

编辑距离可以表示两个字串的相似程度,编辑距离越小,两个字串相似度就越高。

1、DNA序列分析

2、拼写纠错

3、机器翻译

机器翻译通常使用的是Seq2seq模型。编辑距离可以作为Seq2seq的损失函数,即度量标记值和输出值之间的相似程度。

4、网址归类

性质相近的网站,它们的url地址通常也相似,比如csdn不同用户的网址。根据编辑距离可以有效地对网址进行大规模处理。

......

 

Levenshtein算法:

Levenshtein算法的本质其实是动态规划。以 "holiday" 和 "today" 为例,它的具体步骤是:

1、建立一个二维数组,大小为 (word1.length+1)*(word2.length+1)

    t o d a y
             
h            
o            
l            
i            
d          
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值