核心要点
定义 unigram/bigram/trigram 及马尔可夫近似
解释 n-gram LM 概率计算与平滑
联系 perplexity 评估
说明从 n-gram 到神经语言模型的演进
标准回答
一、先给出结论和背景
- 定义:n-gram = 文本中长度 n 的连续词序列。unigram=词,bigram=词对,trigram=三连。
- 语言建模:估计序列概率 $P(w_1...w_T)=prod_t P(w_t|context)$。n-gram LM 用 $(n-1)$ 阶马尔可夫近似上下文。
二、拆开关键步骤和判断点
- 训练:统计语料中 n-gram 计数 → 最大似然 → 平滑(加一、Good-Turing、Kneser-Ney)处理零计数。
- 贡献:1. 拼写纠错、输入法候选
- 机器翻译候选评分(传统 SMT)
- 语音识别语言模型分支
- 文本分类特征(bag-of-n-grams)
三、补上落地边界和取舍
- 局限:数据稀疏(未见 n-gram);无法泛化到语义相似表达;n 增大指数爆炸。
- 评估:困惑度 Perplexity 越低越好。
现代 Transformer LM 用神经网络隐式建模任意长依赖,但 n-gram 思想仍见于 BPE token 与局部特征。详见 语言模型。
回答思路
【定义】用一句话说清「什么是 N 元语法?对语言建模有何贡献」
【原理】讲清关键机制或步骤(2~3 点)
【例子】举一个真实项目、论文或产品中的例子
【对比】与易混淆概念或替代方案比较(如有)
【收尾】总结适用场景 + 一个局限或风险
延伸学习
知识库:语言模型入门。术语:语言模型、Perplexity、BLEU。
常见误区
⚠️ 常见踩坑
误区一:容易答偏的地方:不说平滑;混淆 n-gram 特征与 n-gram LM;声称 n-gram 能建模长距离依赖。
追问
追问 1:Kneser-Ney 平滑解决什么问题?
普通加一平滑对「未见上下文」分配概率不合理。Kneser-Ney 用低级 n-gram 的延续概率做回退,使「Francisco」在「San」后概率高于孤立词频暗示。
追问 2:字符 n-gram 有何用途?
语言识别、拼写纠错、恶意 URL/垃圾检测、形态丰富语言;对 OOV 更鲁棒,但序列更长。工程上常配合哈希特征控制维度。
追问 3:Perplexity 如何解释?
模型对测试集平均「分支因子」——困惑度 100 相当于每步在 100 个等概词中猜。要与词表大小、分词方式一起看,跨模型比较需统一 tokenization。
🔗 相似问题
同一考点的不同问法,换着练更稳
延伸学习
按主题分类的相关资源,便于系统复习
