1. 程式人生 > 實用技巧 >自然語言處理4-4:語言模型之模型評估perplexity

自然語言處理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.