N-gram

分类: NLP基础

N-gram

定义

N-gram 是自然语言处理中的一种基于统计的语言模型方法,将文本视为连续 nn 个词(或字符)的序列片段。N-gram 语言模型通过马尔可夫假设估计条件概率 P(wtwt1,,wtn+1)P(w_t | w_{t-1}, \ldots, w_{t-n+1}),即一个词的出现概率仅取决于其前面 n1n-1 个词。

常见类型

N名称示例(“the cat sat on”)
1Unigram”the”, “cat”, “sat”, “on”
2Bigram”the cat”, “cat sat”, “sat on”
3Trigram”the cat sat”, “cat sat on”

核心要点

简洁有效的基线:N-gram 模型实现简单、推理快速,在数据量充足时对短程依赖的建模效果不错,长期作为 NLP 的标准基线方法(语音识别、拼写纠错、机器翻译)

稀疏性问题:随着 nn 增大,可能的 N-gram 数量呈指数增长 O(Vn)O(|V|^n),大量合理的 N-gram 在训练语料中从未出现,需要平滑(smoothing)技术处理零概率问题

平滑方法:Laplace 平滑(加一)、Kneser-Ney 平滑、Stupid Backoff 等。Kneser-Ney 通过低阶 N-gram 的续接概率(continuation probability)进行回退,是传统方法中效果最好的

无法捕获长距离依赖:N-gram 模型受限于固定的窗口大小(通常 n5n \le 5),无法建模跨越多个句子的语义关联,这一根本限制推动了 RNN 和 Transformer 语言模型的发展

在神经网络时代的角色:虽然作为语言模型已被神经方法超越,但 N-gram 统计仍广泛用于评估指标(如 BLEU 分数基于 N-gram 精确率匹配)、文本特征提取和数据去重

代表工作

Shannon (1951): Prediction and Entropy of Printed English(信息论视角的语言建模)

Kneser & Ney (1995): Improved backing-off for M-gram language modeling

Bengio et al. (2003): A Neural Probabilistic Language Model(用神经网络取代 N-gram 查表)

相关概念

Distributional Semantics

Co-occurrence Matrix

GPT

Perplexity