NLP—n-gram

$n-gram$模型

  语言模型(language model)定义了自然语言中标记序列的概率分布。根据模型的设计,标记可以是词、字符甚至是字节。标记总是离散的实体。最早成功的语言模型基于固定长度序列的标记模型,称为$n-gram$。一个$n-gram$是一个包含$n$个标记的序列。

$n-gram$模型定义的条件概率

  给定前$n-1$个标记后的第$n$个标记的条件概率。
  $Pleft ( x_{1},x_{2},x_{3},cdots ,x_{n} ight )=Pleft ( x_{1} ight )Pleft ( x_{2}mid x_{1} ight )Pleft ( x_{3}mid x_{1},x_{2} ight )cdots Pleft ( x_{n}mid x_{1},x_{2},cdots ,x_{n-1} ight )$

n值设置

  对于小的$n$值,模型有特定的名称:$n=1$称为一元语法(unigram),$n=2$称为二元语法(bigram),$n=3$称为三元语法(trigram)。
  $n=2$时,$Pleft ( x_{1},x_{2},x_{3},cdots ,x_{n} ight )=Pleft ( x_{1} ight )Pleft ( x_{2}mid x_{1} ight )Pleft ( x_{3}mid x_{1},x_{2} ight )cdots Pleft ( x_{n}mid x_{1},x_{2},cdots ,x_{n-1} ight )$
                    $approx Pleft ( x_{1} ight )Pleft ( x_{2}mid x_{1} ight )Pleft ( x_{3}mid x_{2} ight )cdots Pleft ( x_{n}mid x_{n-1} ight )$
  $n=3$时,$Pleft ( x_{1},x_{2},x_{3},cdots ,x_{n} ight )=Pleft ( x_{1} ight )Pleft ( x_{2}mid x_{1} ight )Pleft ( x_{3}mid x_{1},x_{2} ight )cdots Pleft ( x_{n}mid x_{1},x_{2},cdots ,x_{n-1} ight )$
                    $approx Pleft ( x_{1} ight )Pleft ( x_{2}mid x_{1} ight )Pleft ( x_{3}mid x_{1},x_{2} ight )cdots Pleft ( x_{n}mid x_{n-2},x_{n-1} ight )$
  $n-gram$模型中的$n$值表示当前词出现的概率只与前$n-1$个词相关,而这些词的出现的概率参数可以通过大规模语料库来计算,一般高于四元的用的非常少,由于训练它需要更庞大的语料库,并且数据稀疏严重,时间复杂度高,精确度却提高的不多。

$n-gram$模型的限制

  在许多情况下从训练集计数估计得到的$P_{n}$很可能为0(即使$left ( x_{t-n-1},cdots ,x_{t} ight )$可能出现在测试集中)这可能导致两种不同的灾难性后果。
  1.对于非常多的词对组合,在语料库中都没有出现,根据最大似然估计得到的概率将全是0。最后的结果是,我们的模型仅仅能用的只有几个句子。
  2.参数空间过大,造成维数灾难。

解决方法

1.平滑技术

  解决的问题:对语言而言,由于数据稀疏的存在,极大似然法不是一种很好的参数估计办法。
  平滑技术的主要策略是把在训练样本中出现过的事件的概率适当减小,然后把减小得到的概率密度分配给训练语料中没有出现过的事件。

2.马尔可夫假设

  解决的问题:解决参数空间过大的问题。
  马尔科夫假设指出:随意一个词出现的概率只与它前面的出现的有限的一个或几个词相关。
原文地址:https://www.cnblogs.com/wisteria68/p/10851272.html