← 返回笔记列表
深度学习 第 43 / 49 篇

深度学习:NLP 常见任务 — 从文本分类到语言模型

查看“深度学习”专题目录(43/49)
本文目录 16 个小节

1. 文本分类

  • 输入:长短不一的文本
  • 输出:一个分类值
例子任务
淘宝商品评价正面 / 负面
邮件内容是否垃圾邮件
新闻内容自动分到某类别

2. 文本回归

  • 输入:一段文本
  • 输出:一个连续值

例子:根据用户评价文本返回具体分值;给作文打分。

与分类的区别:输出是连续数值而非离散类别。


3. 命名实体识别(NER)

任务:识别文本中的专有名词——人名、地名、机构名等。

  • 输入:文本序列
  • 输出:等长的标注序列(输入输出长度一致)

BIO 标注法

标注含义
B-XXX实体的开头
I-XXX实体的内部
O不属于任何实体
  • B-T / I-T:时间实体
  • B-N / I-N:人名实体
  • B-L / I-L:地点实体

为什么需要 B 和 I 区分

连续实体需要区分边界:

"北京上海" → B-L, I-L, B-L, I-L  (两个地名,而不是一个)

应用

识别实体后可构建知识图谱、文档归类/索引、检索。


4. 翻译、摘要

  • 输入、输出都是文本序列
  • 与 NER 不同:输入输出长度不同(sequence-to-sequence)

5. 文本蕴含(Textual Entailment)

判断两句话的逻辑关系:一句前提,一句假设。

前提假设关系
小王养了一只猫小王养了动物蕴含
小王没有养任何动物小王养了一只猫矛盾
小王养了一只猫小王喜欢游泳中立
  • 输入:两个序列
  • 输出:一个分类结果(支持/反对/不相关)

6. 语言模型(Language Model)

6.1 作用

给出一个句子的合理性概率。

经典应用:语音识别消歧

"我每天都会洗澡。"  (概率大 ✅)
"我每天都会洗枣。"  (读音相同,概率小)

语言模型判断哪句更常见,语音识别选概率大的。

6.2 概率定义

P(w1,w2,…,wn)=P(w1)⋅P(w2∣w1)⋅P(w3∣w1,w2)⋯P(wn∣w1,…,wn−1)P(w_1, w_2, \dots, w_n) = P(w_1) \cdot P(w_2 \mid w_1) \cdot P(w_3 \mid w_1, w_2) \cdots P(w_n \mid w_1, \dots, w_{n-1})

即:整句概率 = 每个词在其前面所有词出现条件下的条件概率连乘。

6.3 问题:完整条件概率算不了

  • 上下文丰富,词汇表庞大
  • 很多词序列在语料中根本没出现过 → 数据稀疏

6.4 近似解法:n-gram

假设当前词只依赖前面 (n-1) 个词:

模型依赖
unigram (1-gram)每个词独立
bigram (2-gram)依赖前 1 个词
trigram (3-gram)依赖前 2 个词

例:“I love natural language processing” 的 bigram 概率:

P(I)⋅P(love∣I)⋅P(natural∣love)⋅P(language∣natural)⋅P(processing∣language)P(I) \cdot P(love \mid I) \cdot P(natural \mid love) \cdot P(language \mid natural) \cdot P(processing \mid language)

通过统计词对共现频率估计条件概率。

6.5 神经网络语言模型

神经语言模型也从语料学习统计规律,只是用可学习的分布式表示和参数化函数估计条件概率,不再局限于直接查 n-gram 频数表。用 RNN、LSTM、Transformer、GPT 等构建,能力更强。


7. 大语言模型统一所有任务

在 ChatGPT 之前,语言模型只是辅助其他任务的”配角”(如语音转文本)。

大语言模型出现后,语言模型成了”主角”:

语言模型能给出句子概率 → 能找出接下来最可能的词 → 不断续写

如果输入是任务描述:
  "我喜欢这个杯子。上面这句话是正面还是负面评价?"
  → 大模型续写最可能的词 = "正面"
  → 语言模型就完成了文本分类!

原理:所有 NLP 任务都可以改写成”续写最可能的词”——所以一个强大的语言模型能统一所有任务。

但大模型计算成本大,传统的专用 NLP 模型(如 NER、分类的小模型)依然在各行业发挥作用。


8. 总结

六类 NLP 任务一览:

文本分类    文本 → 类别
文本回归    文本 → 连续值
NER        序列 → 等长标注序列(BIO)
翻译/摘要   序列 → 不同长度序列
文本蕴含    两个序列 → 分类(支持/反对/不相关)
语言模型    序列 → 该句的概率

语言模型演进:
  统计 n-gram(bigram/trigram)
  → 神经网络语言模型(RNN/LSTM/Transformer/GPT)
  → 大语言模型统一所有任务(续写最可能的词)

关键洞察:
  语言模型 = 预测下一个词的概率
  所有 NLP 任务 = 改写成"续写"
  所以强语言模型 = 万能 NLP 模型
继续学习本专题