首页 > 编程语言 > 详细

语言模型

时间:2019-03-07 11:38:09      阅读:148      评论:0      收藏:0      [点我收藏+]

语言模型(language model)是自然语言处理的重要技术。自然语言处理中最常见的数据是文本数据。我们可以把一段自然语言文本看作一段离散的时间序列。假设一段长度为\(T\)的文本中的词依次为 \(w_1, w_2, \ldots, w_T\)

定义

对于一段自然语言序列,语言模型就是计算他的概率:
\[P(w_1, w_2, \ldots, w_T).\]
也就是说语言模型是对语句的概率分布的建模。

语言模型的计算

概率链式法则

\[P(w_1, w_2, \ldots, w_T) = \prod_{t=1}^T P(w_t \mid w_1, \ldots, w_{t-1}).\]
为了计算语言模型,我们需要计算词的概率,以及一个词在给定前几个词的情况下的条件概率,即语言模型参数。设训练数据集为一个大型文本语料库,如维基百科的所有条目。词的概率可以通过该词在训练数据集中的相对词频来计算。例如, \(P(w_1)\) 可以计算为 \(w_1\) 在训练数据集中的词频(词出现的次数)与训练数据集的总词数之比。因此,根据条件概率定义,一个词在给定前几个词的情况下的条件概率也可以通过训练数据集中的相对词频计算。例如, \(P(w_2∣w_1)\) 可以计算为 \(w_1,w_2\) 两词相邻的频率与 \(w_1\) 词频的比值,因为该比值即 \(P(w_1,w_2)\)\(P(w_1)\) 之比;而 \(P(w_3∣w_1,w_2)\) 同理可以计算为 \(w_1 、 w_2\)\(w_3\) 三词相邻的频率与 \(w_1\)\(w_2\) 两词相邻的频率的比值。以此类推。

n-gram 语言模型

当序列长度增加时,计算和存储多个词共同出现的概率的复杂度会呈指数级增加。 n 元语法通过马尔可夫假设(虽然并不一定成立)简化了语言模型的计算。
\[P(w_1, w_2, \ldots, w_T) \approx \prod_{t=1}^T P(w_t \mid w_{t-(n-1)}, \ldots, w_{t-1}) .\]

参考

https://zh.gluon.ai/chapter_recurrent-neural-networks/lang-model.html

语言模型

原文:https://www.cnblogs.com/cuhm/p/10487635.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!