自然语言处理4-4:语言模型之模型评估perplexity

perplexity可以用来评估训练的语言模型的好坏,其实就是下面这个公式

$$ perplexity = 2^{-x}qquad  x表示的是平均的log likelihood,也可以理解为平均的概率啦$$

下面举一个例子,假设我们有一个测试集如下:

我喜欢喝奶茶

假设我们有一个训练好的bi-gram模型,对于词典库中的每个单词,通过这个模型可以得到诸如P(单词2|单词1)的概率。这里列出部分概率

P(我)= 0.1
p(喜欢|我)= 0.1
p(喝|喜欢)=0.1
p(奶茶|喝)=0.1

我们可以得到

x = log{P(我)p(喜欢|我)p(喝|喜欢)p(奶茶|喝)} / 4= -4/4 = -1

perplexity = 2^(-x) = 2^(1) = 2

我们知道,似然估计越大越好,也就是说,x越大越好,所以perplexity越小越好,于是我们就可以通过perplexity对语言模型进行优化了。

这里举出的例子都非常小,实际上测试集肯定非常大,而且也不限于bi-gram,当然,训练的模型得到的概率也不可能都是0.1.

原文地址:https://www.cnblogs.com/loubin/p/13720192.html