python文本摘要分抽取式和生成式:抽取式用sumy等库快速提取关键句,适合结构化长文本;生成式调用BART等模型重写摘要,更自然但需算力;混合方案先抽取再生成可兼顾准确性与流畅性。

Python实现文本摘要,核心在于区分抽取式和生成式两类方法——前者从原文中直接挑出重要句子,后者用模型“重写”出新句子。选哪种,取决于你的数据量、计算资源和对流畅性的要求。
抽取式摘要:快、准、不依赖训练
适合新闻、报告等结构清晰的长文本,无需训练,实时性好,结果可追溯。
- 常用库:sumy(支持LSA、TextRank、LexRank等算法),nltk + 自定义TF-IDF或句子相似度排序
- 关键步骤:分句 → 提取关键词/向量 → 计算句子重要性得分 → 按分排序取Top-K
- 小技巧:预处理时去掉过短句(如<5字)和纯数字/符号行;对标题或首段句子可加权重提升入选概率
生成式摘要:更自然,但需模型与算力
产出像人写的摘要,语义连贯,能压缩信息、改写表达,但需要GPU和一定数据基础。
- 轻量方案:用transformers加载微调好的开源模型,如facebook/bart-large-cnn或google/pegasus-xsum
- 示例代码片段(一行调用):
from transformers import pipeline<br>summarizer = pipeline("summarization", model="facebook/bart-large-cnn")<br>result = summarizer("你的长文本...", max_length=130, min_length=30, do_sample=False) - 注意点:输入别超模型最大长度(BART是1024,PEGASUS约512);中文建议选uer/roberta-base-finetuned-chinese-extractive-summarization等中文适配模型
混合思路:先抽取再生成,兼顾可控与质量
比如用TextRank选出3个核心句,拼起来喂给轻量T5模型做二次润色——既保留原文关键信息,又提升语言通顺度。
立即学习“Python免费学习笔记(深入)”;
- 优势:降低生成模型幻觉风险,摘要事实一致性更高
- 适用场景:法律文书、医疗报告等容错率低的领域
- 工具链建议:sumy(抽取)→ jieba(中文分词)→ transformers(轻量生成模型微调或zero-shot)
基本上就这些。抽取式上手快,生成式效果好,实际项目里常先用抽取做baseline,再按需升级生成模块。不复杂但容易忽略的是——无论哪种方法,预处理和后处理(如去重标点、修复断句)往往比模型本身更影响最终体验。