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 知识体系 — 从机器学习到大语言模型