N元语法
N元语法是自然语言处理与统计语言学中使用的一种概率语言模型,其基本单位是由连续 N 个词或字符组成的片段,模型据此估算词语序列出现的可能性。它以马尔可夫假设为前提,只依据前面的 N-1 个词推断下一个词,常用二元、三元或四元形式。N 的取值在计算量与描述精度之间权衡:阶数越高,上下文越充分,但参数和存储需求也越大。这一模型曾是语音识别、机器翻译等系统的核心组件,也被视为后来大语言模型在思想上的前身。
定义
N元语法指文本中连续出现的 N 个语词,也常用来指代基于这种片段建立的统计语言模型[1]。作为语言模型,它给词语组成的序列赋予一个概率,从而判断哪些词串更有可能出现[2]。当 N 取 1、2、3 时,分别称为一元语法、二元语法与三元语法,对应英文 unigram、bigram 和 trigram[2]。
在中文文献中,N元语法与 N元文法、N元语法模型是同一对象的几种说法,多用于描述把连续拼音、笔画或字母串转换为汉字串时选取最可能句子的过程。它属于概率语法的范畴,与隐马尔可夫模型、概率上下文无关文法并列为统计语言处理中常见的模型类型[3]。
原理
给定词语序列 $w_1, w_2, \ldots, w_m$,按照链式法则,整句出现的概率可以写成每个词在全部前文条件下的条件概率之积[3]。但完整的前文会让参数数量急剧膨胀:设词表大小为 L,第 i 个位置要估计的上下文就有 $L^{i-1}$ 种,参数总量随之按指数增长[3]。
N元语法的做法是只保留最近 N-1 个词作为条件,把前文压缩成有限长度的窗口,这被称为马尔可夫假设,所得模型是以 N-1 阶马尔可夫链为基础的概率语言模型[2]。据此,序列概率可近似为 $P(w_1,\ldots,w_T) \approx \prod_{t=1}^{T} P(w_t \mid w_{t-(N-1)},\ldots,w_{t-1})$[2]。
条件概率通常由语料库中的相对频次估计,例如二元语法取相邻词串出现次数与其前缀出现次数之比,这就是最大似然估计[4]。为处理未登录或未见过的组合,实践中引入加一法、Good-Turing 折扣与回退等平滑手段,把一部分概率质量分给零频片段[4]。
flowchart LR
A[训练语料] --> B[切分为长度 N 的片段]
B --> C[统计片段频次]
C --> D[计算条件概率]
D --> E[平滑与回退]
E --> F[语言模型]
F --> G[预测下一个词或给句子打分]
发展历程
模型所依托的马尔可夫链理论由俄国数学家安德烈·马尔可夫在 1906 年提出,其无记忆性质后来成为截断上下文的理论依据[5]。1948 年香农(Claude Shannon)研究马尔可夫过程的熵,为评价语言模型提供了信息论工具[5]。20 世纪 50 年代,基于统计与信息论的经验主义方法在机器翻译等任务中受到关注,随后又因乔姆斯基(Noam Chomsky)在《句法结构》中对 N元语法的批评而降温[6]。
到 20 世纪 80 年代,基于 N元语法的语言模型在大词汇连续语音识别中取得明显效果,其中 IBM 托马斯·J·沃森研究中心的工作是较早的代表[7]。此后为缓解数据稀疏,折扣、回退与插值等平滑技术相继发展,Kneser-Ney 平滑在软件语料等实验中表现良好[8]。2003 年前后,本吉奥(Yoshua Bengio)等人以神经网络和词向量建模语言,绕开了 N元语法的计数式稀疏问题[9]。有研究认为,大语言模型可视为 N元语法思路的进一步发展,而 N元语法仍被视为统计语言模型的基础[10]。
应用
在语音识别中,声学部分会给出若干同音或近音的候选词串,语言模型则按概率为其排序,从而选出更通顺的结果[2]。机器翻译同样借助语言模型判断译文词序是否自然,例如在语序不同的几种译法中挑出概率更高的一种[2]。此外,词性标注、句法分析和信息检索也常用到这种模型[1]。
在字符与词串层面,N元片段可用于拼写纠错与查询纠错,按常见片段的频次为疑似错串寻找更合理的替代。输入法也可借助词组频次预测下一个词或候选字[11]。由于原理只依赖计数,这类模型还被用于文本分类、数据压缩以及 DNA、蛋白质等生物序列的统计分析[5]。
在资源受限的场景中,N元语法仍有实用价值:训练只需对语料计数,无需高性能算力,推理速度快、功耗低,模型规模取决于词表大小与阶数,并且其概率可直接追溯到具体片段计数,便于解释与人工干预[9]。
局限
最突出的问题是数据稀疏。词表较大时,三元模型需要估计的参数数量可达天文数字,而即使规模很大的语料也难以覆盖所有片段,未出现过的组合会被估成零概率,从而在遇到时给出不合理的判断[8]。平滑与回退只能缓解,无法彻底消除这一困难,多数合法三元组即便在很大的训练集里也未曾出现[12]。
其次是上下文长度受限。模型只看固定窗口内的前 N-1 个词,无法捕捉更远距离的搭配与依赖,容易低估在语料中不相邻却相关的符号序列[7]。N 的选择本身也是两难:取值小则描述能力弱,一元语法下不同词序的句子概率可能相同;取值大则计算和存储开销迅速上升[2]。此外,有语言学角度的研究指出,语言的递归嵌套会使统计规律被打乱,而结构依赖性也使统计模型所依赖的独立性假设失效[13]。
参见
参考资料
- [科普中国]-n元语法 [引用日期2026-10-29]
- lang-model [引用日期2026-10-29]
- 自然语言理解(5)概率语法(PDF) [引用日期2026-10-29]
- N-gram models [引用日期2026-10-29]
- n元语法 [引用日期2026-10-29]
- 基于语料库和面向统计学的自然语言处理技术\*) [引用日期2026-10-29]
- 语音及语音信息处理国家工程实验室 [引用日期2026-10-29]
- Communications of the ACM [引用日期2026-10-29]
- 对此, 本吉奥等人 (Bengio et al [引用日期2026-10-29]
- N元语法模型及其与大语言模型的关系 [引用日期2026-10-29]
- N元語法 是什麼?N-gram 完整解釋 [引用日期2026-10-29]
- MachineLearning for Text Aggarwal2018(PDF) [引用日期2026-10-29]
- 基于統計的語言處理模型的局限性 [引用日期2026-10-29]