主题
常见任务
自然语言处理领域包含多种任务,从最基础的分类到复杂的生成。
本章将介绍 NLP 中的三类典型任务:
一、任务分类总览
类型 | 示例 | 输入 | 输出 |
---|---|---|---|
分类任务 | 情感分析、垃圾邮件识别 | 一段文本 | 类别标签 |
序列标注任务 | 命名实体识别、分词 | 文本序列 | 每个词的标签 |
生成任务 | 翻译、摘要、问答 | 文本 / 问题 | 新的文本序列 |
二、模型架构视角
模型类型 | 常用任务 | 特点 |
---|---|---|
Encoder-only(如 BERT) | 分类、序列标注 | 强上下文理解能力 |
Decoder-only(如 GPT) | 生成任务 | 文本生成流畅自然 |
Encoder-Decoder(如 T5、BART) | 翻译、摘要 | 同时具备理解与生成能力 |
三、典型任务场景
1. 文本分类
判定输入文本所属的类别,例如:
- 评论情感分析(正面 / 负面)
- 新闻主题分类(科技 / 体育 / 财经)
示例:
python
from transformers import pipeline
clf = pipeline("text-classification", model="distilbert-base-uncased-finetuned-sst-2-english")
print(clf("I love this movie!"))
2. 命名实体识别(NER)
识别文本中具有特定意义的实体,如人名、地点、组织等。
示例:
python
from transformers import pipeline
ner = pipeline("ner", model="dslim/bert-base-NER", grouped_entities=True)
print(ner("Elon Musk is the CEO of SpaceX."))
输出示例:
txt
[{'entity_group': 'PER', 'word': 'Elon Musk'},
{'entity_group': 'ORG', 'word': 'SpaceX'}]
3. 序列到序列(Seq2Seq)
将输入序列映射为输出序列的任务,如:
- 机器翻译(Machine Translation)
- 摘要生成(Summarization)
- 问答系统(Question Answering)
示例:
python
from transformers import pipeline
translator = pipeline("translation", model="Helsinki-NLP/opus-mt-en-zh")
print(translator("Natural Language Processing is fascinating."))
四、小结
- 分类、标注、生成是 NLP 的三大核心任务类型;
- 不同任务需选择适合的模型结构;
- 现代 Transformer 模型几乎可以统一解决所有 NLP 任务。