语言模型理论与实战

语言模型用于计算句子概率,评估是否符合人类语言习惯,常见于语音识别和机器翻译。通过n元语法简化计算,如一元、二元、三元语法。n元语法在n值增大时准确性提高,但计算复杂度增加。本文借助nltk包展示语言模型的训练过程,包括ngram函数、填充符号的使用以及词汇表和n-gram模型的构建。
摘要由CSDN通过智能技术生成

原创:李孟启

1、前言

什么是语言模型(language model)?简单地说,语言模型就是用来计算一个句子的概率的模型,也就是判断一句话是否是人话的概率。

语言模型的应用比较广泛,可⽤于提升语⾳识别和机器翻译的性能。例如,在语音识别的过程中,给定一条语音“厨房里食油用完了”的语音,机器可能会把语音输出为“厨房⾥⻝油⽤完了”和“厨房⾥⽯油⽤完了”这两个读音相同的文本序列,如果通过提前训练好的语言模型,对识别的这两个句子进行概率计算可以判断出前者的概率大于后者的概率,我们就可以认定为句子概率较大的“厨房⾥⻝油⽤完了”文本序列是最终输出;在机器翻译中,如果对英⽂“you go first”逐词翻译成中⽂的话,可能得到“你⾛先”、“你先⾛”等排列⽅式的⽂本序列。如果语⾔模型判断出“你先⾛”的概率⼤于其他排列⽅式的⽂本序列的概率,我们就可以把“you go first”翻译成“你先⾛”。

2、语言模型的计算

我们用 w 1 , w 2 , . . . , w T , w_{1},w_{2},...,w_{T}, w1w2...wT表示一个长度为T的文本序列,可以将计算该序列(句子)的概率表示为: P ( w 1 , w 2 , … , w T ) P\left(w_{1}, w_{2}, \ldots, w_{T}\right) P(w1,w2,,wT).

那该如何计算一个句子的概率呢?假设序列 w 1 , w 2 , … , w T w_{1}, w_{2}, \ldots, w_{T} w1,w2,,wT中的每个词是依次⽣成的,我们可以这样计算句子的概率 P ( w 1 , w 2 , … , w T ) = ∏ t = 1 T P ( w t ∣ w 1 , … , w t − 1 ) P\left(w_{1}, w_{2}, \ldots, w_{T}\right)=\prod_{t=1}^{T} P\left(w_{t} \mid w_{1}, \ldots, w_{t-1}\right) P(w1,w2,,wT)=t=1TP(wtw1,,wt1)

例如,⼀段含有4个词的⽂本序列的概率 P ( w 1 , w 2 , w 3 , w 4 ) = P ( w 1 ) P ( w 2 ∣ w 1 ) P ( w 3 ∣ w 1 , w 2 ) P ( w 4 ∣ w 1 , w 2 , w 3 ) P\left(w_{1}, w_{2}, w_{3}, w_{4}\right)=P\left(w_{1}\right) P\left(w_{2} \mid w_{1}\right) P\left(w_{3} \mid w_{1}, w_{2}\right) P\left(w_{4} \mid w_{1}, w_{2}, w_{3}\right) P(w1,w2,w3,w4)=P(w1)P(w2w

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值