一篇新闻太长懒得看?我用 Python + 深度学习,3分钟教你做一个“自动摘要神器”

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: 一篇新闻太长懒得看?我用 Python + 深度学习,3分钟教你做一个“自动摘要神器”

🧠 一篇新闻太长懒得看?我用 Python + 深度学习,3分钟教你做一个“自动摘要神器”

有多少人和我一样:

  • 打开一篇新闻,2000 字起步
  • 划重点划到怀疑人生
  • 最后直接滑到评论区看“网友总结版”

说白了,我们不是不爱看内容,是信息密度太低 + 时间太少

那能不能自己做一个工具:

👉 输入一篇新闻 → 自动生成“人话版摘要”?

答案是:完全可以,而且比你想象的简单。

今天我就带你从 0 到 1,撸一个完整的:

🔥 Python + 深度学习新闻摘要系统(可直接跑)

不讲空话,全是能落地的东西。


一、先看效果(我们到底要做什么)

先看目标效果👇

输入(原新闻):

“某科技公司发布最新AI模型,该模型在多项基准测试中超越现有方案,并在自然语言处理、图像识别等多个领域取得突破……”

输出(自动摘要):

“该公司发布新AI模型,性能全面提升,在多个领域取得突破。”

👉 一句话讲清核心信息

这背后其实就是一个任务:

📌 文本摘要(Text Summarization)


二、技术选型(别一上来就搞复杂)

做摘要有两条路:

1️⃣ 抽取式(Extractive)

  • 从原文“挑句子”
  • 简单,但不够自然

2️⃣ 生成式(Abstractive)✅

  • 模型“理解后重写”
  • 更像人写的

👉 今天我们选第二种:生成式摘要


三、核心模型:直接用现成的(别重复造轮子)

我们用 HuggingFace 的模型,比如:

  • facebook/bart-large-cnn
  • t5-small

👉 这些模型已经在新闻摘要上训练好了


四、上代码:10行实现一个摘要系统

先安装依赖:

pip install transformers torch

🚀 核心代码(最简单版本)

from transformers import pipeline

# 加载摘要模型
summarizer = pipeline("summarization", model="facebook/bart-large-cnn")

text = """
A major tech company has released a new AI model that outperforms existing solutions 
in multiple benchmarks. The model demonstrates strong capabilities in natural language 
processing and image recognition.
"""

# 生成摘要
summary = summarizer(text, max_length=50, min_length=20, do_sample=False)

print(summary[0]['summary_text'])

👉 就这么简单,你已经有一个“AI摘要引擎”了。


五、加点“工程味”:支持真实新闻数据

我们不可能手动输入文本,真实场景是:

👉 从新闻网站抓数据


示例:用 requests 抓新闻

import requests
from bs4 import BeautifulSoup

url = "https://example.com/news"

response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")

# 假设文章在 <p> 标签
paragraphs = soup.find_all("p")
text = " ".join([p.get_text() for p in paragraphs])

print(text[:500])

👉 现在你有“真实新闻文本”了


六、长文本处理(很多人会踩的坑)

模型是有输入长度限制的(比如 1024 tokens)

👉 新闻太长怎么办?


✂️ 分段摘要(推荐)

def split_text(text, max_len=500):
    sentences = text.split(". ")
    chunks = []
    current = ""

    for sentence in sentences:
        if len(current) + len(sentence) < max_len:
            current += sentence + ". "
        else:
            chunks.append(current)
            current = sentence + ". "

    if current:
        chunks.append(current)

    return chunks

🧠 多段摘要再融合

chunks = split_text(text)

summaries = []
for chunk in chunks:
    result = summarizer(chunk, max_length=50, min_length=20)
    summaries.append(result[0]['summary_text'])

final_summary = " ".join(summaries)

print(final_summary)

👉 这就是一个“工业级思路”的雏形了。


七、让结果更“像人话”(优化点)

很多人跑完会吐槽:

“怎么有点像机器人写的?”

确实,这里有几个优化方向👇


1️⃣ 控制摘要长度

summarizer(text, max_length=60, min_length=30)

2️⃣ 使用中文模型(如果是中文新闻)

比如:

  • uer/t5-base-chinese-cluecorpussmall
summarizer = pipeline("summarization", model="uer/t5-base-chinese-cluecorpussmall")

3️⃣ 加一点“后处理”

def clean_text(text):
    return text.replace("\n", "").strip()

final_summary = clean_text(final_summary)

八、效果展示(更直观一点)

👉 上面这类流程其实就是:

原文 → 分段 → 模型理解 → 重写 → 合并摘要


九、再往上走一步:做成API服务

如果你想真正“用起来”,可以这样👇

from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route("/summarize", methods=["POST"])
def summarize_api():
    text = request.json["text"]
    result = summarizer(text)
    return jsonify(result[0]['summary_text'])

app.run(port=5000)

👉 现在你有:

  • 一个摘要模型
  • 一个接口服务
  • 可以接前端 / 小程序 / 内部系统

十、说点我的真实感受

我自己在做内容系统的时候,有一个很深的感受:

AI不是用来“替代人”,而是用来“压缩信息成本”。

新闻摘要这个东西,本质上解决的是:

  • 信息过载
  • 阅读时间不足
  • 注意力稀缺

而你如果能把这个能力用在:

  • 内容推荐
  • 数据分析报告
  • 内部知识库

那价值就完全不一样了。


十一、总结一句话(建议收藏)

如果你今天只记住一件事,那就是:

文本摘要 ≠ 技术炫技,而是信息效率革命。


🔥 最后给你一个升级方向

如果你想把这个项目再往上打磨,我建议你试试:

  • ✅ 加入关键词提取(KeyBERT)
  • ✅ 做“多新闻聚合摘要”
  • ✅ 用大模型(GPT / Claude)做对比增强
  • ✅ 加缓存 + 并发优化
目录
相关文章
|
2月前
|
机器学习/深度学习 自然语言处理 监控
别再用“好评率”骗自己了:用 Python + Transformers 做一套真正能用的情感分析系统
别再用“好评率”骗自己了:用 Python + Transformers 做一套真正能用的情感分析系统
257 8
|
2月前
|
存储 JSON 自然语言处理
大模型应用开发-LangChain框架基础
本文摘要: 文章系统介绍了大模型技术应用与开发的全流程,涵盖云端/本地模型部署、Prompt工程、LangChain框架及RAG项目实战。主要内容包括: 模型部署 阿里云百炼平台API接入与安全配置 Ollama本地模型部署方案 OpenAI兼容SDK的多平台调用方法 Prompt工程 Zero-shot/Few-shot提示技巧 金融文本分类/信息抽取实战案例 JSON数据结构处理与模板设计 LangChain框架 组件化架构:Models/Prompts/Memory/Vectorstores 链式调用
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
手撕 Transformer:从原理到代码,一步步造一个“小型大模型”
手撕 Transformer:从原理到代码,一步步造一个“小型大模型”
580 6
|
2月前
|
人工智能 自然语言处理 Java
大模型应用开发5-SpringAIalibaba实战
本文介绍了SpringAIAlibaba开源项目,该项目基于SpringAI构建,为阿里云通义系列模型提供Java开发实践。主要内容包括: 基础使用:配置模型API、依赖引入、调用示例,支持同步和流式调用; 多种集成方式:对接本地Ollama模型、ChatClient高级API、SSE流式输出; 核心功能实现:提示词模板、结构化输出、持久化内存、文本生成图片/语音; 高级能力:向量数据库、RAG增强检索、工具调用(Tool Calling); MCP协议:标准化工具调用方案,实现服务端工具共享;
|
3月前
|
数据采集 供应链 物联网
别再只会调用 API 了:一步步教你用 Python Fine-Tune 一个定制化大模型
别再只会调用 API 了:一步步教你用 Python Fine-Tune 一个定制化大模型
464 4
|
2月前
|
Linux API 云计算
零基础保姆级|阿里云计算巢+MacOS/Linux/Windows11部署OpenClaw 技能集成+大模型配置全流程
2026年,AI自动化框架OpenClaw(原Clawdbot)凭借云端+本地双部署、多模型兼容与Skills插件化扩展能力,成为个人与团队实现复杂任务自动化的核心工具。阿里云计算巢提供OpenClaw官方一键部署方案,无需手动配置环境,5分钟即可完成云端部署;本地则支持MacOS、Linux、Windows11全系统部署,搭配阿里云千问、免费Coding Plan大模型API,再通过Skills扩展能力,可实现从信息查询、文件处理到流程自动化的全场景能力。
1060 15
|
2月前
|
自然语言处理 PyTorch 算法框架/工具
大模型太慢?别急着上 GPU 堆钱:Python + ONNX Runtime 优化推理性能实战指南
大模型太慢?别急着上 GPU 堆钱:Python + ONNX Runtime 优化推理性能实战指南
662 10
大模型太慢?别急着上 GPU 堆钱:Python + ONNX Runtime 优化推理性能实战指南
|
2月前
|
分布式计算 运维 Kubernetes
别再手搓集群了:用 Terraform + Helm 把数据平台“养成宠物”变“放养牛群”
别再手搓集群了:用 Terraform + Helm 把数据平台“养成宠物”变“放养牛群”
227 5
|
2月前
|
机器学习/深度学习 存储 人工智能
大模型应用开发1-认识大模型
摘要: 本文系统介绍了大模型的基础概念、本地部署及API调用方法。首先阐述了AI及神经网络的基本原理,重点解析了Transformer架构及其在大语言模型(LLM)中的应用。其次详细对比了三种模型使用方案(开放API/云部署/本地部署)的优缺点,并以Ollama为例演示了本地部署流程,包括模型管理、交互指令和GPU加速配置。最后说明了大模型API调用规范,列举了主流大模型产品及其应用场景,强调大模型在自然语言处理、内容生成等领域的优势,以及与传统编程结合开发智能应用的可能性。全文涵盖技术原理到实践操作,为大
|
1月前
|
人工智能 JSON Java
Spring AI Alibaba + MCP:调用MCP市场公开服务实操
本文详细讲解Spring Ai Alibaba调用MCP市场公开服务的全流程,以高德地图MCP服务为例,包含API-Key申请、客户端配置、代码实操,助力开发者快速掌握Spring Ai Alibaba与MCP服务对接技巧。
502 7
Spring AI Alibaba + MCP:调用MCP市场公开服务实操