N-gram是一个语言模型(Language Model,LM),语言模型是一个基于概率的判别模型,它的输入是一句话(单词的顺序序列),输出是这句话的概率,即这些单词的联合概率(joint probability)
N-gram本身也指一个由N个单词组成的集合,各单词具有先后顺序,且不要求单词之间互不相同。常用的有 Bi-gram (N=2)和 Tri-gram (N = 3)。
由马尔科夫假设,每个词是否出现只与它之前的N个词有关。
让我们假设,每一个单词都要依赖于从第一个单词到它之前一个单词的影响,并由条件独立假设:
简单的如n=2,
如N=3,
如N=2
那么如何求解其中每一项的值?极大似然估计,也就是通过训练集来数数计算概率。 极大似然估计:知某个随机样本满足某种概率分布,但是其中具体的参数不清楚,参数估计就是通过若干次试验,观察其结果,利用结果推出参数的大概值。
用途:
- 词性标注:把分类成哪一种词性看成是一个多分类问题
- 分词器tokenizer:计算不同的分词方法哪一个概率更高
- 机器翻译和语音识别:对不同的翻译结果计算哪个概率更高。语言模型LM能够输出这些单词的联合概率。