N-gram
分类: NLP基础
N-gram
定义
N-gram 是自然语言处理中的一种基于统计的语言模型方法,将文本视为连续 个词(或字符)的序列片段。N-gram 语言模型通过马尔可夫假设估计条件概率 ,即一个词的出现概率仅取决于其前面 个词。
常见类型
| N | 名称 | 示例(“the cat sat on”) |
|---|---|---|
| 1 | Unigram | ”the”, “cat”, “sat”, “on” |
| 2 | Bigram | ”the cat”, “cat sat”, “sat on” |
| 3 | Trigram | ”the cat sat”, “cat sat on” |
核心要点
简洁有效的基线:N-gram 模型实现简单、推理快速,在数据量充足时对短程依赖的建模效果不错,长期作为 NLP 的标准基线方法(语音识别、拼写纠错、机器翻译)
稀疏性问题:随着 增大,可能的 N-gram 数量呈指数增长 ,大量合理的 N-gram 在训练语料中从未出现,需要平滑(smoothing)技术处理零概率问题
平滑方法:Laplace 平滑(加一)、Kneser-Ney 平滑、Stupid Backoff 等。Kneser-Ney 通过低阶 N-gram 的续接概率(continuation probability)进行回退,是传统方法中效果最好的
无法捕获长距离依赖:N-gram 模型受限于固定的窗口大小(通常 ),无法建模跨越多个句子的语义关联,这一根本限制推动了 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 查表)