语言模型可以用于知道前个词的情况下,预测第
个词的概率。
Perplexity(PPL) 用来衡量语言模型的好坏,越小越好。其物理意义可以近似理解为:有了语言模型后,预测的第个词的可能性大小,比如ppl=76,可以近似理解为,知道了前
个词,第
个词平均情况下的可能性大小为76,如果没有语言模型,这个可能性为词典大小
,ppl具体计算公式如下:
通常得到的是log值,转换后如下
: 句子中词的个数。ppl计算中包括</s>,ppl1中计算不包括</s>,所有N要少1,ppl1比ppl要大不少
示例如下:
ppl.png
Ngram工具srilm中:
- 底数选用都是10,而不是自然对数
,句子概率计算以及ppl计算的时候都是10。同样的,语音识别中和声学模型得分进行插值的时候需要做个转换。
- 句子得分
计算的时候,需要在前后加上<s>、<\s>,p(<s>)概率为1,log值为0,因为第一个词默认都是<s>。
- 语音识别得分计算中包括am cost、graph cost,其中graph cost = lm score + dict score + hmm score。 前两者分别是由G.fst和L.fst提供,构图后的HCLG.fst中就包括这两部分,hmm score 跳转是hmm state跳转部分,也就是Ha.fst部分。