语言模型

语⾔模型(language model)是⾃然语⾔处理的重要技术。⾃然语⾔处理中最常⻅的数据是文本数据。我们可以把⼀段⾃然语⾔⽂本看作⼀段离散的时间序列。假设⼀段⻓度为T 的⽂本中的词依次为 ,那么在离散的时间序列中, 可看作在时间步(time step)t 的输 出或标签。给定⼀个⻓度为 T的词的序列 ,语⾔模型将计算该序列的概率:

语⾔模型可⽤于提升语⾳识别和机器翻译的性能。例如,在语⾳识别中,给定⼀段“厨房⾥⻝油⽤完 了”的语⾳,有可能会输出“厨房⾥⻝油⽤完了”和“厨房⾥⽯油⽤完了”这两个读⾳完全⼀样的⽂本序 列。如果语⾔模型判断出前者的概率⼤于后者的概率,我们就可以根据相同读⾳的语⾳输出“厨房⾥⻝ 油⽤完了”的⽂本序列。在机器翻译中,如果对英⽂“you go first”逐词翻译成中⽂的话,可能得到“你⾛ 先”“你先⾛”等排列⽅式的⽂本序列。如果语⾔模型判断出“你先⾛”的概率⼤于其他排列⽅式的⽂本序 列的概率,我们就可以把“you go first”翻译成“你先⾛”。

语⾔模型的计算

语言如何计算呢?假设序列 中的每个词是依次⽣成的,我们有

例如,⼀段含有4个词的⽂本序列的概率

为了计算语⾔模型,我们需要计算词的概率,以及⼀个词在给定前⼏个词的情况下的条件概率,即语⾔ 模型参数。

设训练数据集为⼀个⼤型⽂本语料库,如维基百科的所有条⽬。词的概率可以通过该词在训 练数据集中的相对词频来计算。例如,P(w_{1}) 可以计算为w_{1} 在训练数据集中的词频(词出现的次数) 与训练数据集的总词数之⽐。因此,根据条件概率定义,⼀个词在给定前⼏个词的情况下的条件概率也 可以通过训练数据集中的相对词频计算。例如, P(w_{2}|w_{1})可以计算为w_{1}w_{2} 两词相邻的频率与 w_{1}词 频的⽐值,因为该⽐值即 P(w_{2}|w_{1})P(w_{1})之⽐;⽽ P(w_{3}|w_{1},w_{2})同理可以计算为 w_{1}w_{2}w_{3}三词相邻的频率与 w_{1}w_{2} 两词相邻的频率的⽐值。以此类推。

n元语法

序列长度增加,计算和存储多个词共同出现的概率的复杂度会呈指数级增加。n元语法通过马尔可夫假设简化模型,马尔科夫假设是指一个词的出现只与前面n个词相关,即n阶马尔可夫链(Markov chain of order n),如果n=1,那么有P(w_{3}|w_{1},w_{2})=P(w_{3}|w_{2})。基于n−1阶马尔可夫链,我们可以将语言模型改写为:

以上也叫 元语法( -grams)。它是基于n-1 阶⻢尔可夫链的概率语⾔模型。当 n分别为1、2和3 时,我们将其分别称作⼀元语法(unigram)、⼆元语法(bigram)和三元语法(trigram)。例如, ⻓度为4的序列 在⼀元语法、⼆元语法和三元语法中的概率分别为:

当n 较⼩时, n元语法往往并不准确。例如,在⼀元语法中,由三个词组成的句⼦“你⾛先”和“你先⾛”的 概率是⼀样的。然⽽,当n 较⼤时, n元语法需要计算并存储⼤量的词频和多词相邻频率。

参考

《动手学深度学习》第六章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值