跳到主要内容

NLP 概述

学习目标

完成本节后,你将能够:

  • 说清楚 NLP 在解决什么问题
  • 了解 NLP 里最常见的几类任务
  • 理解一条最基础的 NLP 流程
  • 明白为什么文本处理往往比表格和图像更“拧巴”
  • 通过最小示例建立“文本 -> 结构化结果”的直觉

一、NLP 到底在做什么?

NLP 是 Natural Language Processing,自然语言处理。

说得更直白一点:

NLP 就是让计算机处理人类语言。

这里的“语言”包括很多形式:

  • 聊天消息
  • 评论
  • 新闻
  • 合同
  • 工单
  • 邮件
  • 搜索词
  • 会议纪要

它最终想解决的,不只是“识别文字”,而是更进一步:

  • 理解意思
  • 提取信息
  • 生成回答
  • 完成任务

二、NLP 里最常见的任务有哪些?

你可以先把 NLP 任务分成四大类来看:

1. 整句判断类

输入一段文本,输出一个整体结果。

例如:

  • 文本分类
    “这是退款问题还是发票问题?”
  • 情感分析
    “这条评论是正面还是负面?”

2. 片段定位类

输入一段文本,输出其中某些关键片段。

例如:

  • 命名实体识别
    从 “张三在北京工作” 中抽出 张三北京
  • 信息抽取
    从公告里抽出时间、地点、人物

3. 文本到文本类

输入一段文本,输出另一段文本。

例如:

  • 机器翻译
  • 文本摘要
  • 改写
  • 问答生成

4. 交互式与系统类

输入不一定只是单轮文本,可能还包括状态、历史和工具结果。

例如:

  • 聊天机器人
  • RAG 问答系统
  • Agent

这类任务会把前面几种能力组合起来。


三、为什么文本处理通常比表格数据更难?

1. 文本有歧义

一句话可能有多种解释。

例如:

“这个手机不便宜,但拍照是真的能打。”

如果只看 “不便宜”,很容易误判成负面;
但整句其实更偏正向评价。

2. 文本强依赖上下文

很多词单独看并不重要,放进上下文后才有具体意思。

例如:

  • bank 既可能是银行,也可能是河岸

3. 文本表达不统一

用户描述同一个意思,可能有很多写法。

例如:

  • “怎么退钱”
  • “退款怎么弄”
  • “这单还能退吗”

这些文本词面差异很大,但意图接近。

4. 文本天然非结构化

表格数据往往有明确列含义:

  • 年龄
  • 收入
  • 城市

但文本通常是人随手写的自由表达。
模型必须先把它变成可计算结构。


四、NLP 的典型处理流程长什么样?

最基础的一条线可以先理解成:

这条线的每一段都很重要:

  • 预处理
    把脏文本整理得更适合当前任务
  • 文本表示
    把文字变成数字
  • 模型
    学习输入和目标之间的关系
  • 输出
    变成标签、答案、摘要或实体片段

后面第七阶段的大部分课程,其实都在围绕这条线往下展开。


五、先跑一个最小 NLP 示例

下面这个例子非常简单,但它已经完整体现了 NLP 的核心流程:

  1. 输入是文本
  2. 做一点最小预处理
  3. 用规则识别意图
  4. 输出结构化结果
import re

texts = [
"帮我查一下今天北京天气",
"请帮我订一张去上海的机票",
"计算一下 25 乘以 4 是多少",
"明天深圳会下雨吗",
]


def classify_intent(text):
text = re.sub(r"\s+", "", text)

if "天气" in text or "下雨" in text:
return "weather_query"
if "机票" in text or "订票" in text:
return "ticket_booking"
if "计算" in text or "乘以" in text:
return "calculation"
return "unknown"


for text in texts:
print(text, "->", classify_intent(text))

这个例子真正想让你抓住什么?

它说明 NLP 的最小闭环其实很朴素:

  • 输入是自然语言
  • 系统从里面识别模式
  • 最后输出结构化结果

哪怕这里只用了规则,也已经是一个最基础的 NLP 系统。


六、NLP 的三条主要发展路线

1. 规则系统

靠人工规则写逻辑。

优点:

  • 可解释
  • 小任务起步快

缺点:

  • 难维护
  • 泛化差

2. 传统机器学习

先做特征,再训练分类器。

例如:

  • BoW
  • TF-IDF
  • SVM
  • 逻辑回归

3. 深度学习与预训练模型

让模型直接学习表示和上下文关系。

例如:

  • RNN / LSTM
  • Transformer
  • BERT
  • GPT

所以你后面学的很多内容,本质上都在回答同一个问题:

怎样让机器越来越稳定地处理人类语言?


七、为什么 NLP 会和大模型、RAG、Agent 强相关?

因为大语言模型本质上仍然是在处理文本。
如果你不了解这些基础概念:

  • token
  • 语义表示
  • 上下文
  • 分类
  • 抽取
  • 生成

那后面学 LLM、RAG、Agent 时就很容易只停留在:

  • 会调 API

而不是:

  • 真正理解它们在做什么

所以第七阶段不是绕路,而是在铺后面的底。


八、初学者最常见的误区

1. 以为 NLP 就等于聊天机器人

聊天只是 NLP 的一个应用场景,不是全部。

2. 以为预处理只是细枝末节

很多任务里,预处理质量会直接影响结果上限。

3. 以为只有深度学习才算 NLP

规则系统和传统机器学习在很多中小任务里依然很有价值。

4. 以为文本“看懂了”就等于机器也能直接处理

对机器来说,文本必须先被转换成可计算形式。


小结

这节课最该记住的一句话是:

NLP 的本质,是把自然语言变成可计算、可建模、可推理的对象。

后面你会看到:

  • 预处理解决“怎么整理文本”
  • 文本表示解决“怎么把文本变成数字”
  • 模型解决“怎么从数字中学出规律”

只要这张地图在脑子里先立住,第七阶段后面的内容就不容易乱。


练习

  1. 用自己的话解释:为什么文本处理往往比表格数据更难?
  2. 把示例里的规则再扩成一个 hotel_booking 意图分类。
  3. 想一想:聊天机器人为什么只是 NLP 的一个应用,不是全部?
  4. 你能否把一个你熟悉的 AI 产品,拆解成它背后用到的 NLP 任务?