Ngram ppl 计算说明

语言模型可以用于知道前N-1个词的情况下,预测第N个词的概率。
Perplexity(PPL) 用来衡量语言模型的好坏,越小越好。其物理意义可以近似理解为:有了语言模型后,预测的第N个词的可能性大小,比如ppl=76,可以近似理解为,知道了前N-1个词,第N个词平均情况下的可能性大小为76,如果没有语言模型,这个可能性为词典大小V,ppl具体计算公式如下:

ppl = p(S)^{-\frac{1}{N}} p(S)通常得到的是log值,转换后如下
ppl = 10^{-\frac{1}{N} logp(S)}
N: 句子中词的个数。ppl计算中包括</s>,ppl1中计算不包括</s>,所有N要少1,ppl1比ppl要大不少

示例如下:

ppl.png

ppl = 10^{-\frac{1}{N} logp(S)} = 10 ^{-\frac{1}{14+1} * (-33.6968)} = 10^{2.2464} = 176.382

ppl1 = 10^{-\frac{1}{N} logp(S)} = 10 ^{-\frac{1}{14} * (-33.6968)} = 10^{2.4069} = 255.221

Ngram工具srilm中:

  • 底数选用都是10,而不是自然对数e,句子概率计算以及ppl计算的时候都是10。同样的,语音识别中和声学模型得分进行插值的时候需要做个转换。
  • 句子得分p(S)计算的时候,需要在前后加上<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部分。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容