其他分享
首页 > 其他分享> > 编辑距离与WER的计算

编辑距离与WER的计算

作者:互联网

编辑距离(edit distance)

做语音识别算法工程师好几年,最近才弄清楚wer的统计算法-编辑距离,真是惭愧。

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

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

算法公式:

我们将两个字符串 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的编辑距离等于三种情况下编辑距离的最小值。其中,

举例:

a: "This great machine can recognize speech"

b: “This machine can wreck a nice beach”

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

 

 0thismachinecanwreckanicebeach
0        
this        
great        
machine        
can        
recognize        
speech        

 

2. 计算当min(i,j)=0

 

 0thismachinecanwreckanicebeach
001234567
this1       
great2       
machine3       
can4       
recognize5       
speech6       

 

3. 计算第一行:

 

 0thismachinecanwreckanicebeach
001234567
this1 0 1 2 3 4 5 6
great2       
machine3       
can4       
recognize5       
speech6       

 

计算技巧:只需要计算单元格的上+1,左+1,左上+1(或+0)的值,再进行比较即可。比如计算(1,2)时,上面单元2+1=3,左面单元0+1=1,左上单元,由于this = machine,所以是1+0=1。三者取最小值是1

 0thismachine
0012
this1 0 1

4. 以此类推,填满整个表格,最右下角的值就是a和b的编辑距离5。

 0thismachinecanwreckanicebeach
001234567
this1 0 1 2 3 4 5 6
great2 1 1 2 3   4 5 6
machine3 2 1 2 3 4 5 6
can4 3 2 1 2 3 4 5
recognize5 4 3 2 2 3 4 5
speech6 5 4 3 3 3 4 5

 

5. 那在语音识别里面,如何分别计算删除错误D,插入错误I,和替换错误S呢?只需要从图标右下角,根据前向计算过程的选择进行回溯即可。但是不同的回溯方式可能会计算出不同的IDS。如下图所示,不同颜色的回溯路径:

如,红色路径。对应的回溯路径是c-d-c-c-s-s-i-i.

那么:ref :This great machine can recognize speech

          hyp:This          machine can wreck        a nice beach

再比如绿色路径,对应的额回溯路径是:c-d-c-c-s-i-i-s

那么:ref :This great machine can recognize            speech

          hyp:This          machine can wreck       a nice  beach

橙色和蓝色回溯路径,同样会导致ref和hyp对应方式不同。但是这些不同的回溯方式不影响最终的识别率的值。

上面的例子,不同过的回溯路径恰好会使IDS相同,但是,有的时候,不用的回溯路径会导致不同的IDS。例如:

ref: x, y, z; hyp: a,b,c,y

ref:      x y z

hyp: a b c y 

或者:

ref: x y z

hyp:a b c y 

上面两种不同的对齐方式,编辑距离一样,wer也一样,但是IDS一个是2-1-1,另外一个是 1-0-3。

标签:hyp,编辑,距离,machine,WER,回溯,字符串
来源: https://blog.csdn.net/yishujixiaoxiao/article/details/114373775