语言模型是天然语言处理中的重要技术,其描述的是一段话的流畅度,给定一个一个长度为 T 的词的序列w一、w二、.....、wt,语言模型将计算该序列的几率:性能
语言模型可用于提高语音识别和机器翻译的性能。例如,在机器翻译中,若是对英文 “ you go first ” 逐词翻译成中文的话,可能获得 “ 你先走 ” 、“ 你走先 ” 等排列方式的文本序列。若是语言模型判断 “ 你先走 ” 的几率比较大,咱们就把 “ you go first ”翻译成 “ 你先走 ”。 或者在语音识别中,给定一段 “ 厨房中里食油用完了 ” 的语音,有可能会输出 “ 厨房里食油用完了 ” 和 “ 厨房里石油用完了 ” 这两个读音彻底同样的文本序列,若是前者的几率大于后者,咱们就取几率大的那句话。翻译
假设序列w一、w二、.....、wt中的每一个词是依次生成的,咱们有:blog
为了计算语言模型,咱们须要计算语言模型的几率,以及一个词在给定前几个词的状况下的条件几率,即语言模型参数。假设训练数据集为一个大型文本语料库,词的几率能够经过该词在训练数据集中的相对词频来计算,例如,P(w1)能够计算为w1在训练数据集中的词频与训练数据集的总词数之比。所以,一个词在给定前几个词的状况下的条件几率也能够经过训练数据集中的相对词频来计算。语法
当序列长度增长是,计算和存储多个词共同出现的几率的复杂度会成指数级增长。n元语法经过马尔可夫假设简化了语言模型的计算。这里的马尔科夫假设是指一个词的出现只与前面 n 个词相关,即隐马尔可夫链,咱们能够将语言模型改写为:im
例如长度为 4 的序列w一、w二、w三、w4 在一元语法、二元语法和三元语法中的几率分别为:技术