自然语言处理(Natural Language Processing,NLP) = 让计算机理解、生成、处理人类语言的技术。NLP 的核心任务著有可以分为 3 类:理解类、生成类、其他类。
# NLP 技术演进史
# 1️⃣ 规则系统时代(1950s-1990s)
- 方法:人工编写语法规则、词典
- 例子:ELIZA 聊天机器人(1966)
- 缺点:规则太多,维护困难,无法处理例外
# 2️⃣ 统计机器学习时代(1990s-2010s)
- 方法:
HMM、CRF、SVM等统计模型 - 优点:可以从数据中学习,不需要手工写规则
- 缺点:特征工程复杂,需要大量人工设计特征
# 3️⃣ 深度学习时代(2013-2017)⭐
- 突破:Word2Vec(2013)让词有了向量表示
- 模型:
RNN、LSTM、GRU、CNN - 优点:自动学习特征,效果大幅提升
# 4️⃣ Transformer 时代(2017-至今)🚀
- 突破:Attention Is All You Need(2017)
- 模型:
BERT(2018)、GPT系列、T5 - 优点:并行计算、长距离依赖、效果碾压 RNN
# 5️⃣ 大语言模型时代(2020-至今)🦄
- 特点:超大规模参数(千亿级)、预训练 + 微调
- 代表:GPT-3/4、Claude、LLaMA、ChatGLM
- 能力:零样本学习、多任务通用、接近人类水平
# NLP 的核心概念
# 1️⃣ 分词(Tokenization)
把句子切成模型能处理的"单元"
英文:"I love NLP" → ["I", "love", "NLP"]
中文:"我爱 NLP" → ["我", "爱", "NLP"]
更细粒度(Subword):
"playing" → ["play", "##ing"]
"不喜欢" → ["不", "喜欢"]
空格分词
英文适用,中文不行
字符级
每个字独立,序列太长
词级
需要词典,未登录词问题
Subword
BPE、WordPiece,平衡粒度和词汇量 ⭐
# 2️⃣ 词嵌入(Word Embedding)
把单词变成稠密向量,保留语义信息
"国王" → [0.85, -0.32, 0.67, ...]
"王后" → [0.83, -0.30, 0.69, ...]
"男人" → [0.75, -0.45, 0.55, ...]
"女人" → [0.73, -0.43, 0.57, ...]
向量运算:"国王" - "男人" + "女人" ≈ "王后" ✅
One-Hot
早期
稀疏,无语义关系
Word2Vec
2013
稠密,有语义,静态 ⭐
GloVe
2014
基于全局共现统计
FastText
2016
支持子词,处理未登录词
BERT Embedding
2018
上下文相关,动态 ⭐⭐⭐
# 3️⃣ 注意力机制(Attention)⭐ 核心突破
让模型学会"关注重要的部分"
翻译:"The animal didn't cross the street because it was too tired"
↓
"it" 指的是谁?
↓
注意力指向 "animal" ✅
自注意力(Self-Attention):
- 每个词都可以"看"句子中的其他词
- 计算权重,决定关注谁
- 并行计算,比
RNN快得多
# 4️⃣ 预训练 + 微调(Pretrain + Finetune)
现代 NLP 的标准范式:
第 1 步:预训练
用海量无标签文本(维基百科、网页)训练通用语言模型
学习:语法、语义、常识、推理...
↓
第 2 步:微调
用少量有标签数据(如情感分析数据)训练特定任务
学习:分类边界、任务特定模式
💡 类比:预训练 = 读万卷书(通识教育),微调 = 专业训练(职业技能)