n-gram模型

简介

n-gram是自然语言处理NLP中一种词组序列预测和评估模型。

n-gram将日常中的一句话切分成不同单元的序列,通过前\(n-1\)个单元(词组)评估第n个单元的合理性。

切分单元和n数量的选择非常重要,往往决定着模型的效果。

评估语句是否合理

假设一个句子由词组序列\(w_1,w_2,w_3,\cdots,w_m\)构成,根据链式规则,计算该句子出现的概率为

\[P(w_1,w_2,w_3,\cdots,w_m)=P(w_1)*P(w_2|w_1)*P(w_3|w_1,w_2)\cdots*P(w_1,...,w_{m-1}) \]

这个概率非常难算,所以采用了马尔科夫链的假设,即下一个词出现的概率仅与前面有限个词有关,因此得到概率公式:$$P(w_1,w_2,w_3,\cdots,w_m)=P(w_i|w_{i-n+1},...,w_{i-1})$$

大概意思就是在前面\(n-1\)个词已经出现的条件下,词组\(w_m\)出现的概率。再利用贝叶斯公式即可计算。

平滑技术

由于可能出现零概率问题,需要给未出现的n-gram条件概率分布一个非零估计值,相应得需要降低已出现n-gram条件概率分布,且经数据平滑后一定保证概率和为1.

常见平滑技术有拉普拉斯平滑、古德图灵(Good Turing)平滑、组合估计平滑等。

参考

[1] n-gram语言模型原理到实践 - 知乎 (zhihu.com)

posted @ 2021-09-21 22:41  ddddd1234654732  阅读(226)  评论(0)    收藏  举报
Live2D