自然语言处理4-3:语言模型之n-gram模型

n-gram模型

unigram模型:假设每个单词的出现概率和前面的单词无关,写成表达式就是 :

$$P(\omega _{1},\omega _{2},...,\omega _{n}) = P(\omega _{1})P(\omega _{2} )P(\omega _{3})...P(\omega _{n})$$

bigram模型:假设每个单词的出现概率只和前面的一个单词有关,写成表达式就是:

$$P(\omega _{1},\omega _{2},...,\omega _{n}) = P(\omega _{1})P(\omega _{2} |\omega _{1})P(\omega _{3}|\omega _{2})...P(\omega _{n}|\omega _{n-1})$$

bigram模型和前面提到的1st order Markov Assumption是一样的哦。

tri-gram模型,假设每个单词的出现只和前面的两个单词有关,和前面的2nd Markov Assumption是一样的。

当每个单词只和前面的n-1个单词有关的时候,叫做n-gram模型,但是一般到tri-gram模型就够用了。

 

计算语言模型中的概率

计算的方法很简单,就是数个数.利用如下的公式:

$$P(\omega _{n}|\omega _{1},...,\omega _{n-1}) = \frac{C(\omega _{1},...,\omega {n})}{C(\omega _{1},...,\omega _{n-1})} $$

其中$C(\omega _{i})表示\omega_{i}的出现次数惹$

 

下面举一个例子

假设我们有语料库

我很喜欢自然语言处理
我很喜欢喝奶茶
我很喜欢编程
我很喜欢喝咖啡
我很希望斜视快点好

那么,P(我很喜欢自然语言处理) = P(我,很,喜欢,自然语言处理)/ P(我,很,喜欢)= 1/5

 

posted @ 2020-09-23 18:22  地球上最后一个直男  阅读(372)  评论(0编辑  收藏  举报