如何计算给定一个unigram语言模型_NLP基础-语言模型n-gram

本文介绍了NLP中的语言模型,从unigram到n-gram的概念,讨论了unigram的局限性并提出了平滑技术,包括add-one、add-K平滑以及Good Turing平滑,最后探讨了这些方法在生成句子中的应用。
摘要由CSDN通过智能技术生成

语言模型: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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值