语言模型基础技术的开端:N-Gram与Bag-of-words详解

在自然语言处理(NLP)的发展历程中,基础语言模型是构建复杂任务的基石。无论是早期的文本分类、机器翻译,还是如今大模型的预训练,都能看到 N-Gram 模型和 Bag-of-Words(词袋模型) 的影子。本文将从这两个经典模型出发,深入剖析它们的核心原理、相关支撑技术及适用场景,为理解现代“词嵌入”(Word Embedding)技术乃至大模型打下基础。


一、N-Gram模型:基于序列统计的语言建模先驱

N-Gram 模型是一种基于统计的语言模型,其核心思想是通过对文本中相邻词语序列的统计分析来估算句子的概率分布。它虽结构简单,但在 NLP 发展初期发挥了至关重要的作用。


(1)香农熵:衡量语言不确定性的核心指标

信息论之父克劳德·香农提出的“熵”概念,是语言模型的重要理论基础。它衡量的是语言序列的信息不确定性。

假设语言符号集合的概率分布为:
P ( x 1 , x 2 , . . . , x n ) P(x_1, x_2, ..., x_n) P(x1​,x2​,...,xn​)
则序列的香农熵定义为:
H ( X ) = − ∑ P ( x ) log ⁡ 2 P ( x ) H(X) = -\sum P(x) \log_2 P(x) H(X)=−∑P(x)log2​P(x)

简单解释:

熵值越高,语言越复杂;熵值越低,语言越容易预测。

在自然语言中,直接计算整段文本的熵极其困难,因此通常采用“条件熵”,即:
H ( X ∣ Y ) = − ∑ P ( x , y ) log ⁡ 2 P ( x ∣ y ) H(X|Y) = -\sum P(x,y) \log_2 P(x|y) H(X∣Y)=−∑P(x,y)log2​P(x∣y)
表示在给定前文情况下,下一个词的不确定性。

由此可引出两个重要指标:

  • 交叉熵:衡量模型预测分布与真实分布的差异;
  • 困惑度(Perplexity):模型预测能力的指标,值越低表示模型越“聪明”。

(2)N-Gram原理:利用马尔可夫假设简化序列建模

N-Gram 模型的核心是 马尔可夫假设:

第 n 个词的概率仅与前 n-1 个词相关。

马尔可夫假设

第n个词概率仅依赖前n-1个词

N-Gram分类

Unigram: 仅依赖自身

Bigram: 依赖前一个词

Trigram: 依赖前两个词

具体表现如下:

类型表示方式示例优点
UnigramP(我爱吃苹果)=P(我)×P(爱)×P(吃)×P(苹果)词独立计算最简单
BigramP(我爱吃苹果)=P(我)×P(爱我)×P(吃爱)×P(苹果
TrigramP(我爱吃苹果)=P(我)×P(爱我)×P(吃我爱)×P(苹果

其概率估计公式为:
P ( x i ∣ x i − 1 ) = c o u n t ( x i − 1 , x i ) c o u n t ( x i − 1 ) P(x_i|x_{i-1}) = \frac{count(x_{i-1},x_i)}{count(x_{i-1})} P(xi​∣xi−1​)=count(xi−1​)count(xi−1​,xi​)​

这种基于语料计数的“最大似然估计(MLE)”非常直观,但会遇到数据稀疏问题——训练集中未出现过的组合,其概率估计为 0。

为此引入平滑技术:

  • 拉普拉斯平滑:对所有计数加 1;
  • 卡茨平滑:用低阶概率近似高阶稀疏概率。

(3)Token概念与分词技术

在进入语言建模之前,必须理解“Token”是什么。

  • Token(词元):语言模型处理文本的最小单位,可为单词、字符、子词等。
    例如:
    • 英文句子 "I love NLP" → [“I”, “love”, “NLP”]
    • 中文句子 "我爱自然语言处理" → [“我”, “爱”, “自然语言处理”]

常用分词工具:

工具特点
jieba支持多模式,国内应用最广
HanLP基于深度学习,高精度多语种支持
THULAC清华大学出品,速度快、适合大规模语料

常见预处理步骤:

  • 去噪(去 HTML、符号等)
  • 统一大小写(for English)
  • 去停用词(如“的”、“是”、“在”)
  • 词性标注与词干提取(stemming,如 love ← loved)

二、Bag-of-Words词袋模型:忽略顺序的文本表示方法

词袋模型更关注词频而非词序,是实现文本向量化的经典方法。


(1)核心原理与构建流程

开始

构建词表

收集所有不重复词语

词频统计

统计每个词在文本中的出现次数

构建向量

按词表顺序组合为数值向量

得到文本的词袋向量

举例:
若词表为 [“我”, “爱”, “吃”, “苹果”, “香蕉”]
则文本“我爱吃苹果,我爱吃香蕉”向量为:
[ 2 , 2 , 2 , 1 , 1 ] [2, 2, 2, 1, 1] [2,2,2,1,1]
(每个数字表示该词出现次数)

但词袋模型的向量维度通常很高,且稀疏性强,因此常用 TF-IDF加权:
T F I D F = T F × log ⁡ ( 总文档数 包含该词的文档数 + 1 ) TFIDF = TF \times \log\left(\frac{总文档数}{包含该词的文档数+1}\right) TFIDF=TF×log(包含该词的文档数+1总文档数​)
以突出少见但重要的关键词。


(2)文本相似度计算方法

✅ 余弦相似度(Cosine Similarity)

衡量两个向量之间的夹角:
cos ( θ ) = A ⋅ B ∣ ∣ A ∣ ∣ × ∣ ∣ B ∣ ∣ \text{cos}(θ) = \frac{A·B}{||A|| \times ||B||} cos(θ)=∣∣A∣∣×∣∣B∣∣A⋅B​
当角度越小,相似度越高。

示例:
文本1向量 A=[2,2,2,1,1]
文本2向量 B=[1,1,1,2,2]

计算结果

A·B=12

||A||=√14≈3.74

||B||=√11≈3.32

cosθ=12/(√14×√11)≈0.97,高度相似

向量空间示意

原点

A=[2,2,2,1,1]

B=[1,1,1,2,2]

✅ 欧氏距离(Euclidean Distance)

d ( A , B ) = ∑ ( A i − B i ) 2 d(A,B)=\sqrt{\sum (A_i - B_i)^2} d(A,B)=∑(Ai​−Bi​)2 ​
示例:
d = 5 ≈ 2.24 d = \sqrt{5} ≈ 2.24 d=5 ​≈2.24

原点

A=[2,2,2,1,1]

直线距离 d≈2.24

对比:

  • 欧氏距离——关注数值差异;
  • 余弦相似度——关注方向一致性;
    在文本处理中,余弦相似度更常用。

三、N-Gram与Bag-of-Words对比总结

评价维度N-Gram模型Bag-of-Words模型
核心优势保留序列信息;能进行概率预测;训练速度快计算简单;可结合TF-IDF;适合分类任务
缺点易受数据稀疏影响;无法捕捉长依赖;存储开销大忽略词序;语义信息缺失;向量高维稀疏
适用场景文本生成、语音识别、纠错文本分类、检索、情感分析
不适用场景语义推理、长文本模型化机器翻译、文本生成

四、从基础模型到词嵌入(Word Embedding)

N-Gram 和 Bag-of-Words 为后续的 词嵌入技术 奠定了理论基础。

它们的不足——无法体现词语间的语义联结与上下文依赖——催生了 Word2Vec、GloVe 等更先进的分布式表示方法。

词嵌入的核心思想:
将每个词映射到一个稠密向量空间,使得语义相似的词在向量空间中距离更近。
例如:
向量("国王") − 向量("男人") + 向量("女人") ≈ 向量("王后") \text{向量("国王")}-\text{向量("男人")}+\text{向量("女人")}≈\text{向量("王后")} 向量("国王")−向量("男人")+向量("女人")≈向量("王后")

这一区域式的语义计算成为现代 NLP 的基础,也使得模型如 Transformer 能够理解语义关系而非仅进行符号统计。


🧩 结语:从“词频”到“语义”的跃迁

N-Gram 解决了“序列概率”,Bag-of-Words解决了“文本量化”,而词嵌入解决了“语义表示”。
三者构成了语言建模的演化阶梯:

N-Gram:统计顺序关系

Bag-of-Words:统计词频特征

Word Embedding:捕捉语义关系

预训练模型(如BERT, Transformer):深层语义理解

如今的语言模型虽已进入深度学习时代,但这些基础模型的思想仍在——无论是序列依赖(N-Gram)还是词向量化(Bag-of-Words),都是理解自然语言本质的第一步。

上一篇: 机器学习与深度学习基础(五):深度神经网络经典架构简介
下一篇: 词嵌入来龙去脉:One-hot、Word2Vec、GloVe、ELMo
TracyCoder123
博客等级 码龄8年 1万+粉丝 226原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TracyCoder123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值