Skip to content

第一章:NLP 导论

什么是自然语言处理

自然语言处理(Natural Language Processing,简称 NLP)是人工智能(AI)领域的一个重要分支,它研究的是如何让计算机理解生成处理人类日常使用的自然语言(如中文、英文、法语等)。

核心目标

NLP 的终极目标是弥合人类语言与计算机理解之间的鸿沟——让机器能够像人一样"读懂"文字、"听懂"话,并做出有意义的回应。

为什么 NLP 很难?

人类语言具有高度的歧义性多样性隐含性。让我们通过几个例子来理解:

歧义性:同一个句子在不同语境下含义完全不同:

"他在银行工作"

这里的"银行"是指金融机构(bank)还是河岸(river bank)?人类可以依靠常识判断,但计算机需要额外的上下文信息。

多样性:同一个意思可以用无数种方式表达:

  • "今天天气真好" → 正面情感
  • "今天的阳光让人心情愉悦" → 正面情感
  • "Nice weather today!" → 正面情感(不同语言)

隐含性:语言中充满隐喻、反讽和文化背景:

  • "这个餐厅的菜真是'好吃'得让人想哭"(反讽)
  • "他终于把作业写完了,太阳从西边出来了"(夸张)

NLP 的常见任务

自然语言处理包含多个典型任务,可分为以下几大类:

1. 文本分类(Text Classification)

对整段文本进行判断或归类。

应用场景说明示例
情感分析判断评价是正面还是负面"这家餐厅太棒了!" → 正面
垃圾邮件识别判断邮件是否为垃圾邮件"恭喜你中奖了!" → 垃圾邮件
新闻分类将新闻归入不同主题"股市大涨" → 财经
意图识别识别用户说话的目的"帮我订一张机票" → 预订服务

2. 序列标注(Sequence Labeling)

对文本中的每个词或字打上标签。

应用场景说明示例
命名实体识别(NER)找出人名、地名、机构名等"张三北京大学读书"
词性标注(POS)标注每个词的词性"我/代词 爱/动词 自然语言/名词"
分词将连续文本切分为词语"我爱NLP" → ["我", "爱", "NLP"]

3. 文本生成(Text Generation)

根据已有内容生成新的自然语言文本。

应用场景说明
自动写作根据大纲或提示自动生成文章
摘要生成将长文本压缩为简短摘要
智能回复根据收到的消息自动生成回复
对话系统与用户进行多轮自然语言对话

4. 信息抽取(Information Extraction)

从文本中提取出结构化的信息。

应用场景说明
阅读理解给出一段文本和一个问题,从中抽取答案
关系抽取从文本中提取实体之间的关系
事件抽取识别文本中描述的事件及其参与者

5. 文本转换(Text Transformation)

将一种文本转换为另一种形式。

应用场景说明
机器翻译将一种语言翻译为另一种语言
文本纠错自动检测并纠正文本中的错误
风格转换改变文本的写作风格

6. 文本相似度与检索

衡量两段文本之间的语义相似程度。

应用场景说明
语义搜索根据语义而非关键词匹配来搜索
问答系统在知识库中找到与问题最匹配的答案
重复检测识别内容重复或高度相似的文本

NLP 的技术栈概览

一个完整的 NLP 系统通常包含以下技术层次:

┌─────────────────────────────────────┐
│           应用层                     │
│  聊天机器人 | 搜索引擎 | 翻译系统    │
├─────────────────────────────────────┤
│           模型层                     │
│  BERT | GPT | T5 | LLaMA            │
├─────────────────────────────────────┤
│           算法层                     │
│  Transformer | 注意力机制 | RNN      │
├─────────────────────────────────────┤
│           表示层                     │
│  Word2Vec | BPE | One-hot           │
├─────────────────────────────────────┤
│           预处理层                   │
│  分词 | 清洗 | 标注                  │
├─────────────────────────────────────┤
│           数据层                     │
│  语料库 | 知识图谱 | 标注数据         │
└─────────────────────────────────────┘

本教程将从最底层的数据层开始,逐层向上讲解,最终到达应用层。


本教程的学习路线

本教程分为 8 大部分,28 个章节

部分内容章节
第一部分NLP 基础与历史第 1-3 章
第二部分文本预处理第 4-6 章
第三部分文本表示第 7-10 章
第四部分传统序列模型第 11-13 章
第五部分注意力机制与 Transformer第 14-17 章
第六部分预训练语言模型第 18-22 章
第七部分现代 NLP 与大语言模型第 23-25 章
第八部分工程实践第 26-28 章

建议按照顺序学习,每一章都建立在前面章节的基础之上。


环境准备

在开始学习之前,建议准备以下环境:

Python 环境

bash
# 创建虚拟环境
conda create -n nlp python=3.12
conda activate nlp

核心依赖

bash
# PyTorch:深度学习框架
pip3 install torch --index-url https://download.pytorch.org/whl/cu128

# NLP 工具库
pip install jieba gensim transformers datasets tensorboard tqdm jupyter
用途
torch深度学习框架,用于模型构建与训练
jieba中文分词工具
gensim训练 Word2Vec 等词向量模型
transformersHuggingFace 预训练模型库
datasetsHuggingFace 数据处理库
tensorboard训练过程可视化
tqdm进度条显示
jupyter交互式开发环境

小结

本章介绍了 NLP 的定义、常见任务和技术栈概览。从下一章开始,我们将沿着 NLP 的发展历史,从最早的规则系统一直讲到现代的大语言模型,帮助你建立完整的技术演进认知。

AI 知识体系 — 从机器学习到大语言模型