编辑距离 Edit Distance

编辑距离,即Levenshtein距离,衡量了两个字符串之间转换所需的最小编辑操作数。它广泛应用于DNA分析、拼写纠错、机器翻译和网址归类等领域。Levenshtein算法基于动态规划,通过构建二维矩阵确定字符串间的相似度。具体实现包括插入、删除和替换三种操作。Java和Python中都有相应的实现库,便于实际应用。
摘要由CSDN通过智能技术生成

编辑距离,又被称为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          
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值