编辑距离与语音识别中WER的计算

本文介绍了编辑距离的概念,由Vladimir Levenshtein提出的编辑距离用于衡量两个字符串之间的相似度,涉及插入、删除和替换三种操作。在语音识别中,通过编辑距离计算词错误率(WER),不同的回溯路径可能产生不同的插入、删除和替换错误统计,但不影响最终的WER值。
摘要由CSDN通过智能技术生成

编辑距离(edit distance)

做语音识别算法工程师好几年,最近才弄清楚wer与插入错误,删除错误和替换错误的统计算法,真是惭愧。

编辑距离,又称Levenshtein Distance,是一位俄罗斯的科学家Vladimir Levenshtein 在1965年在1965年提出来的。编辑距离指的是在两个字符串S1和S2 之间,将S1转换为S2所需要的最少编辑操作次数。

字符编辑操作有且仅有三种:

  • 插入(Insertion)
  • 删除(Deletion)
  • 替换(Substitution)

编辑距离的算法公式:

我们将两个字符串 a,b 的编辑距离表示为lev_a,_b(i,j),其中|a||b|分别对应字符串a,b的长度。两个字符串 a,b 的编辑距离即可用如下的数学语言表示:

 

lev_a,_b(i,j)是指字符串a的前i个字符和字符串b的前j个字符之间的编辑距离。这里的i,j的上限是a,b的长度|a|,|b|。注意,字符串的第一个字符的index从 1 开始。

min(i,j)=0,表示字符串a或者b有一个是空字符串,所以,将a转化成b就需要max(i,j)次编辑。

min(a,b)\neq 0, 表示a和b都不是空字符串,a和b的编辑距离等于三种情况下编辑距离的最小值。其中,

  • lev_a,_b(i-1,j)+1 表示插入编辑,(个人理解:a_i从末尾删除一个字符后的a_i-_1b_j的编辑距离只需做一次插入操作就和lev_a,_b(i,j)相等)
  • lev_a,_b(i,j-1)+1 表示删除编辑,
  • lev_a,_b(i-1,j-1)a_i\neq b_j 表示替换编辑,
  • lev_a,_b(i-1,j-1)+1a_i = b_j 表示跳过不做编辑

算法举例:

a: "This great machine can recognize speech"

b: “This machine can wreck a nice beach”

1. 首先列一个表格,表格的长度和宽度分别等于|a|+2和|b|+2,行列开头分别填充一个0.

  0 this machine can wreck a nice beach
0
this              
great              
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值