Pipeline 方式 - 文本摘要任务
1 课程概览
本课讲解 Pipeline 方式进行文本摘要。文本摘要是给一段长文字(如文章、论文、故事),提炼出精华,用一段简短的话总结内容。使用 DistilBART 模型。可以通过查看模型的 config.json 了解模型配置。
2 核心概念与定义
- 文本摘要(Summarization):给一段长文字,提炼精华,用简短的话总结。
- 提炼精华:从长文本中提取关键信息。
3 模型与算法详解
文本摘要流程
1. 创建 pipeline 对象(summarization)
2. 定义文本
3. 将文本送给模型
4. 获取预测结果
模型选择
使用 DistilBART 模型。
| 任务 | 模型 |
|---|---|
| 文本摘要 | distilbart |
如何找模型
在 HuggingFace 或 ModelScope 网站上找模型。
- 点模型库
- 左边选任务(如 summarization)
- 搜索 chinese
- 选模型
模型配置文件
查看模型的 config.json 了解配置。
- 双击模型文件夹
- 查看 config.json
- 查看 README.md
- 查看 usage(使用方法)
翻译工具
模型可能输出英文,需要翻译。
| 工具 | 说明 |
|---|---|
| Translation 插件 | VS Code 翻译插件,可能不精准 |
| 有道翻译 | 翻译更精准 |
4 数学原理与推导
文本摘要
$$\text{summary} = \text{model}(\text{text})$$
其中:
- $\text{text}$ 是输入的长文本
- $\text{summary}$ 是输出的摘要
序列到序列
$$\text{summary} = \text{Decoder}(\text{Encoder}(\text{text}))$$
5 代码示例
from transformers import pipeline
def dm05_summarization():
"""Pipeline 方式:文本摘要"""
# 1. 创建 pipeline 对象
model_path = "C:/software/softwallg/pretrained_model/distilbart"
my_model = pipeline(
"summarization", # 文本摘要任务
model=model_path,
tokenizer=model_path
)
# 2. 定义文本
text = """
BERT是一个在大量文本数据上以自监督方式训练的模型。
这意味着它仅在原始文本上进行预训练,没有人工标注。
它可以使用这些预训练的表示形式来执行许多NLP任务,
如文本分类、命名实体识别、问答等。
BERT的架构是多层Transformer编码器,
它在许多NLP任务上取得了最先进的结果。
"""
# 3. 将文本送给模型
output = my_model(text)
# 4. 输出结果
print(f"原始文本长度: {len(text)}")
print(f"摘要文本长度: {len(output[0]['summary_text'])}")
print(f"\n摘要文本:")
print(output[0]['summary_text'])
return my_model
# 测试
if __name__ == "__main__":
print("=== Pipeline 方式:文本摘要 ===")
my_model = dm05_summarization()
代码说明
| 代码 | 说明 |
|---|---|
pipeline("summarization", ...) | 创建文本摘要 pipeline |
distilbart | DistilBART 模型 |
my_model(text) | 生成摘要 |
6 重难点与易错提醒
- ❗重点:文本摘要是提炼精华,用简短的话总结。
- ❗重点:使用 DistilBART 模型。
- ⚠️易错:模型可能输出英文,需要翻译。
- 💡技巧:查看模型的 config.json 了解配置。
7 课堂问答精选
Q1:文本摘要任务是什么?
A:给一段长文字(如文章、论文、故事),提炼出精华,用一段简短的话总结内容。
Q2:文本摘要使用什么模型?
A:使用 DistilBART 模型。
Q3:如何找模型?
A:在 HuggingFace 或 ModelScope 网站上,点模型库,左边选任务(如 summarization),搜索 chinese,选模型。
Q4:模型输出英文怎么办?
A:使用翻译工具翻译。可用 Translation 插件(可能不精准)或有道翻译(更精准)。
8 本课小结
- 文本摘要:提炼精华,用简短的话总结。
- 使用 DistilBART 模型。
- 三步:创建 pipeline → 定义文本 → 输出结果。
- 查看模型的 config.json 了解配置。
- 模型可能输出英文,需要翻译。
9 延伸思考
- Pipeline 方式如何进行 NER 任务?
- NER 任务如何识别实体?