胡慧华
菜单
首页人工智能机器学习深度学习项目实践关于我
跳至课程正文
← 人工智能课程

ARTIFICIAL INTELLIGENCE · COURSE 06

自然语言处理:从一句话到一个任务

认识文本分类、信息提取与语义匹配,理解文字处理的基本任务。

第 06 / 18 课20–30 分钟(含实验)无需密钥 · 本地实验
声音波形、文字信息和带检测框的图像在三块透明面板中汇合
读懂文字、图像与声音
  • 语言任务
  • 信息提取
01

START WITH A QUESTION

一句报修描述,包含好几种任务

“二楼会议室的空调不制冷,下午有人开会。”工作人员能从中找到地点、设备、故障和时间线索。计算机处理这句话时,也需要先明确任务:是判断报修类别,还是提取字段,或查找相似案例?

自然语言处理研究如何用计算方法处理人类语言。同一句话可以产生多种结果,但每种结果都有不同的正确标准。先弄清任务,比一开始就选择某个语言模型更重要。

02

BUILD YOUR VOCABULARY

先把三个概念讲清楚

CONCEPT 01

文本分类

为整段文字选择一个或多个类别。类别集合需要提前定义,边界模糊时可以保留人工复核。

放进场景看

把描述归为“空调报修”,而不是输出一段自由回答。

CONCEPT 02

信息提取

从原文中找出字段及其对应内容。缺失值应标为未知,不能为凑齐表格编造。

放进场景看

地点:二楼会议室;设备:空调;故障:不制冷。

CONCEPT 03

语义匹配

比较两段表达的含义是否相关。语义指含义,不只是字符是否一样。相似不代表内容完全相同或结论一定成立。

放进场景看

“冷气没有效果”可能与“不制冷”相关,但“不要关闭冷气”是另一种意图。

03

FOLLOW THE PROCESS

把原理放进完整流程

  1. 01

    保留原文

    原始描述作为追溯依据,清洗时不删除可能改变含义的否定词。

  2. 02

    明确任务

    选分类、提取或检索,给出目标格式和允许类别。

  3. 03

    产生候选结果

    用规则或模型处理文本,并标记不确定或缺失字段。

  4. 04

    验证并补问

    检查原文依据与字段格式,必要时请用户确认。

同一句话的三种输出
任务输出示例验收关注点
分类空调报修类别是否正确
提取设备=空调、故障=不制冷内容是否来自原文
匹配找到相似报修记录相关记录是否排在前面
04

CHANGE ONE THING & OBSERVE

让同一段文字完成不同任务

选择示例文本与任务,查看输出如何变化。本实验使用明确的词表规则,不调用语言模型,故意保留歧义和缺失情况。

INTERACTIVE LAB / 06
提取字段
设备
空调
地点
二楼会议室
故障
不制冷

规则只识别本例列出的词与一个否定短语,无法泛化到所有自然语言。切换到“不要报修”可观察不同输出的边界。

05

KNOW THE LIMITS

哪些结论不能直接推出?

删除一个“不”,就改变了任务

清洗文字不是越短越好。否定、时间、单位和指代都可能影响含义。

字段齐全不等于字段真实

如果原文没有地点,正确行为是补问,而不是从相似历史案例中复制地点。

06

READ, RUN & EXPLAIN

用可解释的规则提取两个字段

以下示例仅使用 Python 3 标准库,可复制到本地 Python 环境运行。先看每一行的作用,再修改一个输入观察结果;无需网络或密钥。

Python 3 · 完整示例下载 .py
text = '二楼会议室的空调不制冷'
devices = ['空调', '水泵']
device = next((word for word in devices if word in text), '未知')
fault = '不制冷' if '不制冷' in text else '未知'
result = {'设备': device, '故障': fault}
print(result)

复制或下载只获取本课示例,不会自动执行。

逐行解释(6 行)
  1. 第 1 行text = '二楼会议室的空调不制冷'

    保存原文,不修改否定词。

  2. 第 2 行devices = ['空调', '水泵']

    定义可识别设备词表,这只是小范围教学规则。

  3. 第 3 行device = next((word for word in devices if word in text), '未知')

    依次查找词表中的词,取第一个命中项;没有命中返回未知。

  4. 第 4 行fault = '不制冷' if '不制冷' in text else '未知'

    条件表达式先检查故障短语是否出现,否则保持未知。

  5. 第 5 行result = {'设备': device, '故障': fault}

    把提取结果组织成字典,便于后续界面使用。

  6. 第 6 行print(result)

    输出结果。本规则无法可靠处理同义句、多设备和复杂指代。

预期输出
{'设备': '空调', '故障': '不制冷'}
07

CHECK YOUR UNDERSTANDING

换一个角度,检查自己是否理解

已回答 0 / 3 题 · 当前答对 0 题

1. 把评论归为正向或负向属于什么任务?
2. 原文没有地点时应如何提取?
3. 文本相似是否说明处理办法一定相同?
08

TAKE IT WITH YOU

带走三个判断,再做一次迁移练习

  • 分类、提取和匹配有不同输出与验收方法。
  • 保留否定词、时间和原文出处。
  • 规则可作为基线,复杂语言仍需要专门评估。
参考与延伸阅读

本课例子、代码和模拟数据为教学设计。以下一手文档用于延伸核对,不代表对本示例的认证。