1. 什么是 Bigram
Bigram(又称二元组、二元模型)是一种 统计语言模型,用于在自然语言处理中预测序列中某个词出现的概率时,只考虑它前面紧邻的一个词。它基于 马尔可夫假设(Markov assumption),即当前词的出现仅依赖于前一个词,而不受更早词的影响。
2. 工作原理
- 构建词对:把文本切分为所有相邻的词对(bigram),如句子 “I love coding” 会产生 “I love” 与 “love coding”。
- 统计频次:统计每个 bigram 在语料库中出现的次数。
- 概率估计:利用相对频率估计条件概率,其中分子是该 bigram 的出现次数,分母是前一个词的出现次数(即对应的 unigram 计数)。
- 平滑处理:为避免零概率(未出现的 bigram),常加入拉普拉斯平滑、Kneser‑Ney 等技术。
3. 与其他 N‑gram 模型的关系
- Unigram 只考虑单个词的出现概率(不考虑上下文)。
- Bigram 是 N‑gram 系列中最常用的二阶模型,兼顾简洁性与上下文信息。
- Trigram 及更高阶 N‑gram 进一步考虑更长的上下文,但计算和存储成本显著上升。Bigram 在成本与效果之间取得平衡,是许多实际系统的基础。
4. 典型应用场景
场景 | 作用 |
---|---|
文本生成 | 根据前一个词预测下一个词,生成连贯句子。 |
拼写纠错 | 通过 bigram 概率判断词序是否合理,纠正错误拼写。 |
机器翻译 | 作为统计翻译模型的语言模型部分,提升译文流畅度。 |
语音识别 | 结合声学模型,利用词对概率约束识别结果。 |
信息检索 & 文本分类 | 作为特征(词对)提升文档区分度。 |
这些应用在实际系统中仍被广泛使用,尤其在资源受限或需要解释性强的场景下,bigram 仍是重要的基线模型。
5. 优势与局限
优势
- 实现简单:只需统计词对频次,计算成本低。
- 捕捉局部依赖:比 unigram 能更好地反映词序关系。
- 解释性强:概率直接来源于可观测的词对频率,易于解释和调试。
局限
- 上下文范围有限:只能利用前一个词的信息,无法捕捉更长距离的依赖。
- 数据稀疏:在大词汇表下,很多词对很少出现,需要平滑或更高阶模型来补足。
- 无法建模语义:仅基于共现统计,缺乏深层语义理解,已被神经网络语言模型(如 Transformer)所超越。
6. 小结
Bigram 是一种 基于二元词对的统计语言模型,通过 马尔可夫假设 简化语言序列的概率计算。它在 文本生成、拼写纠错、机器翻译、语音识别 等多个 NLP 任务中发挥了重要作用,尤其在资源受限或需要可解释性的场景下仍具价值。尽管现代深度学习模型已成为主流,bigram 仍是理解语言模型基本原理和构建基线系统的关键概念。
声明:文章均为AI生成,请谨慎辨别信息的真伪和可靠性!