语言模型:Unigrams, Bigrams…N-grams
unigram
Unigram:每个单词都是独立的
$$P(w_1,w_2,w_3,…,w_n) = P(w_1)P(w_2)P(w_3)…P(w_n)$$
exp:
$P(今天,是,春节,我们,休息)=P(今天)P(是)P(春节)P(我们)P(休息)$
$P(今天,春节,是,我们,休息)=P(今天)P(春节)P(是)P(我们)P(休息)$
Unigram的局限性:上述例子中后面这两句的概率是一样的,而显然最后一句的概率要低.
如何计算P(word)?
统计单词出现的次数/语料库单词的个数
注: 针对没有出现的单词,结果是0,这样是不太合理的.为解决此问题,通常加入平滑项
bigram
一阶马尔科夫假设
$P(w_1,w_2,w_3,…w_n)$
$=P(w_1)P(w_2|w_1)P(w_3|w_2)…P(w_n|w_{n-1})$
$=P(w_1)\prod_{i=2}^nP(w_i|w_{i-1})$
exp:
$P(今天,是,春节,我们,休息)=P(今天)P(是|今天)P(春节|是)P(我们|春节)P(休息|我们)$
$P(今天,春节,是,我们,休息)=P(今天)P(春节|今天)P(是|春节)P(我们|是)P(休息|我们)$
$$P(上午|今天)= count(今天上午) / count(今天) $$
n-gram