自然语言处理¶
文本理解、情感分析、机器翻译等NLP技术演进。
自然语言处理概述¶
**自然语言处理(Natural Language Processing, NLP)**是使计算机能够理解、处理和生成人类语言的技术领域。
为什么NLP困难¶
| 挑战 | 说明 | 示例 |
|---|---|---|
| 歧义性 | 同一句话多种理解 | "苹果"是水果还是公司? |
| 上下文依赖 | 含义依赖上下文 | "他"指代谁? |
| 语言多样性 | 不同语言结构不同 | 中文无空格,日语黏着 |
| 常识推理 | 需要背景知识 | "下雨要带伞" |
| 隐喻和幽默 | 非字面意思 | "热得像烤箱" |
NLP任务分类¶
NLP任务
├── 词法分析
│ ├── 分词
│ ├── 词性标注
│ └── 命名实体识别
├── 句法分析
│ ├── 依存句法分析
│ └── 成分句法分析
├── 语义分析
│ ├── 词义消歧
│ ├── 语义角色标注
│ └── 文本蕴含
└── 应用任务
├── 文本分类
├── 机器翻译
├── 问答系统
├── 文本生成
└── 对话系统
文本预处理¶
分词(Tokenization)¶
将文本切分成基本单位(词或子词)。
英文:按空格分词
中文:需要专门的分词器
子词分词(BPE):
词干提取与词形还原¶
| 方法 | 说明 | 示例 |
|---|---|---|
| 词干提取 | 去掉词缀 | running → run |
| 词形还原 | 还原词典形式 | better → good |
停用词过滤¶
去除无实际意义的词:
文本表示¶
One-Hot编码:
词袋模型(Bag of Words):
TF-IDF: - TF:词频 - IDF:逆文档频率 - 衡量词的重要性
词嵌入(Word Embedding)¶
什么是词嵌入¶
将词映射到低维连续向量空间,语义相近的词在向量空间中也相近。
Word2Vec¶
两种模型:
| 模型 | 思想 | 类比 |
|---|---|---|
| CBOW | 上下文预测中心词 | 完形填空 |
| Skip-gram | 中心词预测上下文 | 举一反三 |
特点: - 捕捉语义关系 - 计算词向量相似度 - 支持类比推理
GloVe¶
全局向量(Global Vectors): - 结合全局统计信息 - 词-词共现矩阵 - 训练更快,效果稳定
词嵌入可视化¶
t-SNE降维:
可以看到语义相近的词聚集在一起。
序列标注¶
命名实体识别(NER)¶
识别文本中的命名实体(人名、地名、组织名等)。
标注格式:
应用: - 信息抽取 - 知识图谱构建 - 问答系统
词性标注(POS Tagging)¶
标注每个词的语法类别。
常用标签: - n:名词 - v:动词 - a:形容词 - r:副词
文本分类¶
任务定义¶
将文本分类到预定义的类别。
应用: - 情感分析(正面/负面) - 垃圾邮件检测 - 新闻分类 - 意图识别
传统方法¶
特征+分类器:
优点: - 可解释性强 - 训练快速 - 数据需求少
深度学习方法¶
TextCNN: - 使用卷积神经网络 - 捕捉局部特征 - 适合短文本
TextRNN: - 使用RNN/LSTM - 捕捉序列信息 - 适合长文本
BERT: - 预训练+微调 - 上下文表示 - 当前主流方法
机器翻译¶
翻译方法演进¶
| 方法 | 年代 | 特点 |
|---|---|---|
| 规则翻译 | 1950s-1990s | 人工编写规则 |
| 统计翻译 | 1990s-2010s | 从平行语料学习 |
| 神经翻译 | 2014-至今 | 端到端神经网络 |
| 大模型翻译 | 2020-至今 | 通用模型直接翻译 |
神经机器翻译(NMT)¶
编码器-解码器架构:
注意力机制: - 解决长句子问题 - 动态关注源语言不同部分 - Transformer的基础
Transformer翻译¶
优势: - 完全并行计算 - 长距离依赖建模 - 翻译质量高
代表系统: - Google Translate - DeepL - 百度翻译
大模型翻译¶
特点: - 无需专门训练 - 支持多语言 - 理解上下文
示例:
问答系统¶
任务类型¶
| 类型 | 说明 | 示例 |
|---|---|---|
| 知识库问答 | 从结构化知识库检索 | "中国的首都是哪里?" → "北京" |
| 阅读理解 | 从文本中找答案 | 给定文章,回答问题 |
| 开放域问答 | 从大规模文本中找答案 | 搜索引擎问答 |
| 多轮对话 | 上下文相关的问答 | 聊天机器人 |
阅读理解¶
SQuAD数据集: - 文章+问题+答案片段 - 答案在文章中
模型架构:
检索增强生成(RAG)¶
流程: 1. 检索相关文档 2. 将文档作为上下文 3. 生成答案
优势: - 结合外部知识 - 减少幻觉 - 可溯源
文本生成¶
语言模型¶
目标:预测下一个词的概率。
生成过程:
生成策略¶
| 策略 | 说明 | 特点 |
|---|---|---|
| 贪心搜索 | 每次选概率最高的词 | 确定性高,多样性低 |
| 随机采样 | 按概率分布采样 | 多样性高,可能不连贯 |
| Top-k采样 | 从概率最高的k个词中采样 | 平衡确定性和多样性 |
| Top-p采样 | 从累积概率达到p的词中采样 | 更灵活的采样 |
| 温度调节 | 调整概率分布的平滑度 | 温度高→多样,温度低→确定 |
条件生成¶
Prompt工程:
控制生成: - 风格控制 - 长度控制 - 格式控制
预训练语言模型¶
ELMo(2018)¶
特点: - 双向LSTM - 上下文相关词向量 - 动态词表示
GPT系列¶
| 模型 | 参数量 | 特点 |
|---|---|---|
| GPT-1 | 1.17亿 | 生成式预训练 |
| GPT-2 | 15亿 | 多任务学习 |
| GPT-3 | 1750亿 | 涌现能力,Few-shot学习 |
| GPT-4 | 未公开 | 多模态,推理能力 |
BERT¶
特点: - 双向编码器 - 掩码语言模型(MLM) - 下一句预测(NSP)
预训练任务:
应用: - 文本分类 - 命名实体识别 - 问答系统 - 句子相似度
预训练-微调范式¶
流程: 1. 预训练:在大规模无标注语料上训练 2. 微调:在特定任务上微调
优势: - 利用大规模数据 - 减少标注需求 - 提高下游任务性能
大语言模型时代¶
规模扩展¶
涌现能力:模型规模达到一定程度后,突然出现新能力。
| 规模 | 能力 |
|---|---|
| 1B以下 | 基础语言理解 |
| 1B-10B | 简单推理 |
| 10B-100B | 复杂推理,指令遵循 |
| 100B+ | 涌现能力,多步推理 |
指令微调(Instruction Tuning)¶
目标:让模型遵循人类指令。
数据格式:
人类反馈强化学习(RLHF)¶
流程: 1. 收集人类偏好数据 2. 训练奖励模型 3. 用PPO算法微调语言模型
效果: - 更符合人类偏好 - 减少有害输出 - 提高有用性
NLP应用¶
搜索引擎¶
技术: - 查询理解 - 语义匹配 - 答案抽取
智能客服¶
流程:
内容审核¶
任务: - 垃圾信息识别 - 敏感内容检测 - 虚假信息识别
智能写作¶
应用: - 文章生成 - 摘要撰写 - 标题生成 - 改写润色
NLP工具¶
开源库¶
| 库 | 特点 | 适用场景 |
|---|---|---|
| NLTK | 经典NLP工具包 | 教学、研究 |
| spaCy | 工业级,速度快 | 生产环境 |
| Jieba | 中文分词 | 中文处理 |
| HanLP | 中文NLP全功能 | 中文NLP任务 |
| Transformers | Hugging Face出品 | 预训练模型 |
预训练模型¶
- BERT:双向编码,理解任务
- GPT:生成式,文本生成
- T5:编码器-解码器,翻译/摘要
- RoBERTa:BERT优化版
- DeBERTa:最新编码器
发展趋势¶
当前热点¶
- 大语言模型:规模和能力持续扩展
- 多模态融合:文本+图像+语音
- 高效微调:LoRA、Prompt Tuning
- 长上下文:支持百万token
- 工具使用:模型调用外部工具
挑战¶
- 幻觉问题:生成看似正确但实际错误的内容
- 对齐问题:确保模型符合人类价值观
- 效率问题:大模型推理成本高
- 可解释性:理解模型决策过程
小结¶
NLP经历了从规则到统计,再到深度学习,现在进入大模型时代。
关键发展: - Word2Vec → 词向量 - RNN/LSTM → 序列建模 - Attention → 长距离依赖 - Transformer → 现代NLP基础 - GPT/BERT → 预训练时代 - ChatGPT → 大模型应用爆发
学习建议: 1. 掌握深度学习基础 2. 理解Transformer架构 3. 实践预训练模型微调 4. 关注最新论文和模型
延伸阅读: