n‑gram 是自然语言处理(NLP)和信息检索中常用的统计语言模型概念,指的是在一段文本中连续出现的 n 个词(或字符)的序列。这里的 n 可以是任意正整数,常见的取值包括:
n 的取值 | 名称 | 示例(以句子 “我爱自然语言处理” 为例) |
---|---|---|
1 | unigram(单元) | “我”、 “爱”、 “自然”、 “语言”、 “处理” |
2 | bigram(二元) | “我爱”、 “爱自然”、 “自然语言”、 “语言处理” |
3 | trigram(三元) | “我爱自然”、 “爱自然语言”、 “自然语言处理” |
… | n‑gram | 依此类推,n 越大,序列越长 |
1. 工作原理
n‑gram 模型通过统计大量语料中各 n‑gram 出现的频率。
2. 主要用途
领域 | 典型应用 |
---|---|
语言模型 | 生成文本、自动补全、机器翻译的概率估计 |
拼写纠错 | 基于常见 bigram/trigram 判断词序是否合理 |
信息检索 | 计算文档与查询的相似度(如 TF‑IDF 与 n‑gram 结合) |
文本分类 | 将 n‑gram 作为特征输入到机器学习模型 |
语音识别 | 通过 n‑gram 约束词序,提高识别准确率 |
3. 优点与局限
优点
- 实现简单,易于统计和计算。
- 对局部上下文捕捉较好,尤其在 n 较大时能体现短语级别的语义。
局限
- 数据稀疏:随着 n 增大,可能出现大量未出现过的 n‑gram,导致概率为零(需要平滑技术如拉普拉斯平滑、Kneser‑Ney 平滑等)。
- 上下文局限:只能考虑固定长度的前文,难以捕捉长距离依赖。
- 模型规模:高阶 n‑gram 会产生巨大的词表,存储和查询成本高。
4. 常用平滑与改进方法
- 拉普拉斯(加一)平滑:在计数上加 1,防止零概率。
- Kneser‑Ney 平滑:基于“出现次数的出现次数”进行更精细的概率分配,是实际系统中常用的高效平滑。
- 回退模型(Back‑off):当高阶 n‑gram 未出现时,退回到低阶 n‑gram 的概率。
- 插值模型(Interpolation):将不同阶的概率加权组合,兼顾高阶信息和低阶可靠性。
5. 与深度学习模型的关系
在近年来,基于神经网络的语言模型(如 RNN、Transformer)逐渐取代传统 n‑gram,原因在于:
- 能够捕捉更长的上下文依赖;
- 参数共享避免了数据稀疏问题;
- 通过大规模预训练,表现更优。
然而,n‑gram 仍在资源受限或需要解释性强的场景中发挥价值,且常作为 基线模型 与深度模型进行对比。
6. 小结
- 定义:n‑gram 是文本中连续出现的 n 个词(或字符)的序列。
- 核心思想:利用统计频率估计词序列的概率,进而用于语言建模、纠错、检索等任务。
- 关键挑战:数据稀疏和上下文局限,需要平滑和回退等技术来缓解。
- 发展趋势:虽被神经语言模型部分取代,但在解释性、轻量化和特定应用场景仍具实用价值。
声明:文章均为AI生成,请谨慎辨别信息的真伪和可靠性!