自然语言处理(Natural Language ProcessingNLP) = 让计算机理解、生成、处理人类语言的技术。NLP 的核心任务著有可以分为 3 类:理解类、生成类、其他类。


# NLP 技术演进史

# 1️⃣ 规则系统时代(1950s-1990s)
  • 方法:人工编写语法规则、词典
  • 例子:ELIZA 聊天机器人(1966)
  • 缺点:规则太多,维护困难,无法处理例外
# 2️⃣ 统计机器学习时代(1990s-2010s)
  • 方法HMMCRFSVM统计模型
  • 优点:可以从数据中学习,不需要手工写规则
  • 缺点:特征工程复杂,需要大量人工设计特征
# 3️⃣ 深度学习时代(2013-2017)⭐
  • 突破Word2Vec(2013)让词有了向量表示
  • 模型RNNLSTMGRUCNN
  • 优点:自动学习特征,效果大幅提升
# 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 步:微调
用少量有标签数据(如情感分析数据)训练特定任务
学习:分类边界、任务特定模式

💡 类比:预训练 = 读万卷书(通识教育),微调 = 专业训练(职业技能)