常见任务
自然语言处理领域包含多种任务,从最基础的分类到复杂的生成。
本章将介绍 NLP 中的三类典型任务:
一、任务分类总览
| 类型 | 示例 | 输入 | 输出 |
|---|---|---|---|
| 分类任务 | 情感分析、垃圾邮件识别 | 一段文本 | 类别标签 |
| 序列标注任务 | 命名实体识别、分词 | 文本序列 | 每个词的标签 |
| 生成任务 | 翻译、摘要、问答 | 文本 / 问题 | 新的文本序列 |
二、模型架构视角
| 模型类型 | 常用任务 | 特点 |
|---|---|---|
| Encoder-only(如 BERT) | 分类、序列标注 | 强上下文理解能力 |
| Decoder-only(如 GPT) | 生成任务 | 文本生成流畅自然 |
| Encoder-Decoder(如 T5、BART) | 翻译、摘要 | 同时具备理解与生成能力 |
三、典型任务场景
1. 文本分类
判定输入文本所属的类别,例如:
- 评论情感分析(正面 / 负面)
- 新闻主题分类(科技 / 体育 / 财经)
示例:
from transformers import pipeline
clf = pipeline("text-classification", model="distilbert-base-uncased-finetuned-sst-2-english")
print(clf("I love this movie!"))
`
2. 命名实体识别(NER)
识别文本中具有特定意义的实体,如人名、地点、组织等。
示例:
from transformers import pipeline
ner = pipeline("ner", model="dslim/bert-base-NER", grouped_entities=True)
print(ner("Elon Musk is the CEO of SpaceX."))
输出示例:
[{'entity_group': 'PER', 'word': 'Elon Musk'},
{'entity_group': 'ORG', 'word': 'SpaceX'}]
3. 序列到序列(Seq2Seq)
将输入序列映射为输出序列的任务,如:
- 机器翻译(Machine Translation)
- 摘要生成(Summarization)
- 问答系统(Question Answering)
示例:
from transformers import pipeline
translator = pipeline("translation", model="Helsinki-NLP/opus-mt-en-zh")
print(translator("Natural Language Processing is fascinating."))
四、小结
- 分类、标注、生成是 NLP 的三大核心任务类型;
- 不同任务需选择适合的模型结构;
- 现代 Transformer 模型几乎可以统一解决所有 NLP 任务。
相关内容
- 基础概念 本章介绍自然语言处理(NLP)的基础概念、发展历程和关键研究方向。
- 数据集与评估 本章介绍 NLP 中常用数据集、评估指标及方法,为模型训练与性能评估提供基础。
- 部署与工程化 本章介绍 NLP 模型的部署方式、工程化实践以及在生产环境中应用的注意事项。
- 向量表示与嵌入 本章介绍文本向量化的原理,包括词向量(Word Embedding)、上下文表示(Contextual Embedding)以及主流模型(Word2Vec、Gl...
- 术语表 NLP 常用术语解释,包括模型、任务、指标、技术等,便于快速查阅。
- 模型与训练 本章介绍 NLP 模型的训练流程,包括预训练、微调、常用架构及训练技巧。