跳转至

自然语言处理

文本理解、情感分析、机器翻译等NLP技术演进。

自然语言处理概述

**自然语言处理(Natural Language Processing, NLP)**是使计算机能够理解、处理和生成人类语言的技术领域。

为什么NLP困难

挑战 说明 示例
歧义性 同一句话多种理解 "苹果"是水果还是公司?
上下文依赖 含义依赖上下文 "他"指代谁?
语言多样性 不同语言结构不同 中文无空格,日语黏着
常识推理 需要背景知识 "下雨要带伞"
隐喻和幽默 非字面意思 "热得像烤箱"

NLP任务分类

NLP任务
├── 词法分析
│   ├── 分词
│   ├── 词性标注
│   └── 命名实体识别
├── 句法分析
│   ├── 依存句法分析
│   └── 成分句法分析
├── 语义分析
│   ├── 词义消歧
│   ├── 语义角色标注
│   └── 文本蕴含
└── 应用任务
    ├── 文本分类
    ├── 机器翻译
    ├── 问答系统
    ├── 文本生成
    └── 对话系统

文本预处理

分词(Tokenization)

将文本切分成基本单位(词或子词)。

英文:按空格分词

"Hello world" → ["Hello", "world"]

中文:需要专门的分词器

"我爱自然语言处理" → ["我", "爱", "自然语言", "处理"]

子词分词(BPE)

"unhappiness" → ["un", "happiness"]
"happiness" → ["happy", "ness"]

词干提取与词形还原

方法 说明 示例
词干提取 去掉词缀 running → run
词形还原 还原词典形式 better → good

停用词过滤

去除无实际意义的词:

英文:the, a, is, at, which
中文:的,了,在,是,和

文本表示

One-Hot编码

词表:[我, 爱, 自然, 语言]
我:[1, 0, 0, 0]
爱:[0, 1, 0, 0]

词袋模型(Bag of Words)

"我爱自然语言" → [1, 1, 1, 1]

TF-IDF: - TF:词频 - IDF:逆文档频率 - 衡量词的重要性


词嵌入(Word Embedding)

什么是词嵌入

将词映射到低维连续向量空间,语义相近的词在向量空间中也相近。

词 → 向量(如100维)
"国王" - "男人" + "女人" ≈ "女王"

Word2Vec

两种模型

模型 思想 类比
CBOW 上下文预测中心词 完形填空
Skip-gram 中心词预测上下文 举一反三

特点: - 捕捉语义关系 - 计算词向量相似度 - 支持类比推理

GloVe

全局向量(Global Vectors): - 结合全局统计信息 - 词-词共现矩阵 - 训练更快,效果稳定

词嵌入可视化

t-SNE降维

词向量(100维) → t-SNE → 2D可视化

可以看到语义相近的词聚集在一起。


序列标注

命名实体识别(NER)

识别文本中的命名实体(人名、地名、组织名等)。

标注格式

BIO标注:
B-ORG:组织开始
I-ORG:组织中间
O:非实体

示例:
"苹果公司" → [B-ORG, I-ORG, I-ORG]

应用: - 信息抽取 - 知识图谱构建 - 问答系统

词性标注(POS Tagging)

标注每个词的语法类别。

我/r 爱/v 自然语言/n

常用标签: - n:名词 - v:动词 - a:形容词 - r:副词


文本分类

任务定义

将文本分类到预定义的类别。

应用: - 情感分析(正面/负面) - 垃圾邮件检测 - 新闻分类 - 意图识别

传统方法

特征+分类器

文本 → TF-IDF特征 → SVM/朴素贝叶斯 → 类别

优点: - 可解释性强 - 训练快速 - 数据需求少

深度学习方法

TextCNN: - 使用卷积神经网络 - 捕捉局部特征 - 适合短文本

TextRNN: - 使用RNN/LSTM - 捕捉序列信息 - 适合长文本

BERT: - 预训练+微调 - 上下文表示 - 当前主流方法


机器翻译

翻译方法演进

方法 年代 特点
规则翻译 1950s-1990s 人工编写规则
统计翻译 1990s-2010s 从平行语料学习
神经翻译 2014-至今 端到端神经网络
大模型翻译 2020-至今 通用模型直接翻译

神经机器翻译(NMT)

编码器-解码器架构

源语言 → 编码器 → 上下文向量 → 解码器 → 目标语言

注意力机制: - 解决长句子问题 - 动态关注源语言不同部分 - Transformer的基础

Transformer翻译

优势: - 完全并行计算 - 长距离依赖建模 - 翻译质量高

代表系统: - Google Translate - DeepL - 百度翻译

大模型翻译

特点: - 无需专门训练 - 支持多语言 - 理解上下文

示例

Prompt: "将以下中文翻译成英文:我爱自然语言处理"
Output: "I love natural language processing"


问答系统

任务类型

类型 说明 示例
知识库问答 从结构化知识库检索 "中国的首都是哪里?" → "北京"
阅读理解 从文本中找答案 给定文章,回答问题
开放域问答 从大规模文本中找答案 搜索引擎问答
多轮对话 上下文相关的问答 聊天机器人

阅读理解

SQuAD数据集: - 文章+问题+答案片段 - 答案在文章中

模型架构

文章 + 问题 → BERT → 答案起止位置

检索增强生成(RAG)

流程: 1. 检索相关文档 2. 将文档作为上下文 3. 生成答案

优势: - 结合外部知识 - 减少幻觉 - 可溯源


文本生成

语言模型

目标:预测下一个词的概率。

P(wₙ | w₁, w₂, ..., wₙ₋₁)

生成过程

输入 → 模型 → 预测下一个词 → 加入输入 → 重复

生成策略

策略 说明 特点
贪心搜索 每次选概率最高的词 确定性高,多样性低
随机采样 按概率分布采样 多样性高,可能不连贯
Top-k采样 从概率最高的k个词中采样 平衡确定性和多样性
Top-p采样 从累积概率达到p的词中采样 更灵活的采样
温度调节 调整概率分布的平滑度 温度高→多样,温度低→确定

条件生成

Prompt工程

输入:写一篇关于AI的文章
输出:[生成的文章]

控制生成: - 风格控制 - 长度控制 - 格式控制


预训练语言模型

ELMo(2018)

特点: - 双向LSTM - 上下文相关词向量 - 动态词表示

GPT系列

模型 参数量 特点
GPT-1 1.17亿 生成式预训练
GPT-2 15亿 多任务学习
GPT-3 1750亿 涌现能力,Few-shot学习
GPT-4 未公开 多模态,推理能力

BERT

特点: - 双向编码器 - 掩码语言模型(MLM) - 下一句预测(NSP)

预训练任务

输入:我[MASK]自然语言处理
目标:爱

应用: - 文本分类 - 命名实体识别 - 问答系统 - 句子相似度

预训练-微调范式

流程: 1. 预训练:在大规模无标注语料上训练 2. 微调:在特定任务上微调

优势: - 利用大规模数据 - 减少标注需求 - 提高下游任务性能


大语言模型时代

规模扩展

涌现能力:模型规模达到一定程度后,突然出现新能力。

规模 能力
1B以下 基础语言理解
1B-10B 简单推理
10B-100B 复杂推理,指令遵循
100B+ 涌现能力,多步推理

指令微调(Instruction Tuning)

目标:让模型遵循人类指令。

数据格式

{
  "instruction": "翻译以下句子",
  "input": "Hello world",
  "output": "你好世界"
}

人类反馈强化学习(RLHF)

流程: 1. 收集人类偏好数据 2. 训练奖励模型 3. 用PPO算法微调语言模型

效果: - 更符合人类偏好 - 减少有害输出 - 提高有用性


NLP应用

搜索引擎

技术: - 查询理解 - 语义匹配 - 答案抽取

智能客服

流程

用户问题 → 意图识别 → 知识检索 → 答案生成 → 回复用户

内容审核

任务: - 垃圾信息识别 - 敏感内容检测 - 虚假信息识别

智能写作

应用: - 文章生成 - 摘要撰写 - 标题生成 - 改写润色


NLP工具

开源库

特点 适用场景
NLTK 经典NLP工具包 教学、研究
spaCy 工业级,速度快 生产环境
Jieba 中文分词 中文处理
HanLP 中文NLP全功能 中文NLP任务
Transformers Hugging Face出品 预训练模型

预训练模型

  • BERT:双向编码,理解任务
  • GPT:生成式,文本生成
  • T5:编码器-解码器,翻译/摘要
  • RoBERTa:BERT优化版
  • DeBERTa:最新编码器

发展趋势

当前热点

  1. 大语言模型:规模和能力持续扩展
  2. 多模态融合:文本+图像+语音
  3. 高效微调:LoRA、Prompt Tuning
  4. 长上下文:支持百万token
  5. 工具使用:模型调用外部工具

挑战

  • 幻觉问题:生成看似正确但实际错误的内容
  • 对齐问题:确保模型符合人类价值观
  • 效率问题:大模型推理成本高
  • 可解释性:理解模型决策过程

小结

NLP经历了从规则到统计,再到深度学习,现在进入大模型时代。

关键发展: - Word2Vec → 词向量 - RNN/LSTM → 序列建模 - Attention → 长距离依赖 - Transformer → 现代NLP基础 - GPT/BERT → 预训练时代 - ChatGPT → 大模型应用爆发

学习建议: 1. 掌握深度学习基础 2. 理解Transformer架构 3. 实践预训练模型微调 4. 关注最新论文和模型


延伸阅读