N-gram
N-gram 是指我们在预测一个词时,这个词和前(N-1)个词的依赖关系,常用的为bi-gram和tri-gram,分别考虑当前词和前一个,前两个词的关系。
有点类似于词语接龙,例如I后面常跟am,金钟罩后面常跟着铁布衫。
实际使用中我们遍历文本,找到所有词语并编码成词向量,以bi-gram为例,一个句子的概率由P = P(W1)P(W2|W1)P(W3|W2)…构成。
词语之间构成稀疏矩阵
由条件概率和大数定理得
P
(
W
k
∣
W
k
−
1
)
=
C
(
W
k
W
k
−
1
)
C
(
W
k
−
1
)
P(W_k|W_{k-1}) = \frac {C(W_kW_{k-1})}{C(W_{k-1})}
P(Wk∣Wk−1)=C(Wk−1)C(WkWk−1)
假设一个词表的规模为N=20000(汉语的词汇量)
所以实际当中常用的为bigram和trigram,又由于n-gram中大部分词语的概率接近0,导致只能检索部分句子,因此还需要采取一些平滑措施(data smoothing)使:
1、n-gram概率之和为1;
2、n-gram概率不为0。