# 常见任务

URL: https://caijiao.org/nlp/tasks/
Source: docs/nlp/tasks/index.md
Description: 本章介绍 NLP 中的核心任务类别，包括文本分类、命名实体识别（NER）以及序列到序列任务（翻译、摘要）等。

自然语言处理领域包含多种任务，从最基础的分类到复杂的生成。  
本章将介绍 NLP 中的三类典型任务：

- [文本分类](/nlp/tasks/classification)
- [命名实体识别 (NER)](/nlp/tasks/ner)
- [序列到序列（翻译 / 摘要）](/nlp/tasks/seq2seq)

## 一、任务分类总览

| 类型 | 示例 | 输入 | 输出 |
|------|------|------|------|
| 分类任务 | 情感分析、垃圾邮件识别 | 一段文本 | 类别标签 |
| 序列标注任务 | 命名实体识别、分词 | 文本序列 | 每个词的标签 |
| 生成任务 | 翻译、摘要、问答 | 文本 / 问题 | 新的文本序列 |

## 二、模型架构视角

| 模型类型 | 常用任务 | 特点 |
|-----------|-----------|------|
| 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 任务。
