舆情新闻聚合大屏 · RSS 采集 + 热度指数 + ECharts 预览图

舆情新闻聚合大屏 · RSS 采集 + 热度指数 + ECharts

多源 RSS 抓取、标题相似度聚成热点事件、自实现热度指数,词云与趋势环图同屏联动

源码/项目包 v1.0 # Python# Flask# 可视化

这个项目解决什么问题

新闻每分钟都在产生,但"看了很多条新闻"和"知道现在什么在升温"是两回事。本项目把散落在多个 RSS 源的新闻聚合起来,用一套热度指数算法找出正在变热的话题,再聚合成"热点事件",最终呈现在一块深色科技感大屏上。它回答的正是舆情分析最核心的问题:怎么从海量文本里,把"趋势"捞出来。

核心亮点

  • 热度指数算法:不是简单数词频——词频 × 时间衰减 × 源权重,24 小时内的新闻天然更热。这个公式怎么调出来的、每个因子为什么存在,源码里有答案。
  • 热词排名变化追踪:大屏不只显示 Top20 热词,还标注"新上榜"和"↑2"这类排名变化——看的是趋势而不是快照,这是和同类项目拉开差距的细节。
  • 标题相似度聚类:用 Jaccard 相似度把标题相近的新闻聚合成"热点事件",大屏展示的是事件而非碎片。课程汇报讲清楚"为什么聚类"比讲"用了什么算法"更有说服力。
  • snownlp 情感分析:自动标注每条新闻的正/中/负情感倾向,大屏实时呈现整体情绪占比。
  • APScheduler 定时抓取:后台定时拉取内置的 4 个公开 RSS 源,无需任何 API Key,跑起来就有源源不断的新数据。爬虫的容错设计(某个源挂了怎么办)也考虑到了。
  • ECharts 词云 + 多图联动:趋势折线、分类环图、事件 Top 榜同屏共振,视觉效果直接拉满课程汇报现场。

效果预览

深色可视化大屏——发文量趋势、热词 Top20(带排名变化标注)、分类占比、情感分布、热点事件榜,一屏尽收:

舆情大屏

新闻列表页——按关键词搜索,来源与分类标签一目了然:

新闻列表

你将学到

  • 爬虫的容错设计:超时、断源、脏数据怎么优雅处理
  • 中文文本处理:jieba 分词、停用词、词频统计的工程化做法
  • APScheduler 定时任务的配置与调试
  • 前后端分离的 JSON API 设计(大屏只吃接口,数据全部来自后端计算)
  • 大屏可视化:ECharts 多图表布局与配色套路

适合谁

需要一个展示型汇报项目的毕业生——大屏视觉效果好,评委看到第一眼就有印象;也适合想入门"数据采集 + 文本挖掘 + 可视化"完整链路的学习者。难度 ★★★☆,算法部分有梯度但都有注释引导。


交付内容:完整可运行源码、README.md(逐步运行方法与实现说明)、requirements.txt。

许可:个人使用,可用于自己的学习、课程实验与研究报告,请勿转售或公开传播。

Flask 2
SQLAlchemy
feedparser
jieba
snownlp
APScheduler
ECharts

环境与步骤

pip install -r requirements.txt
pip install -r requirements.txt
python app.py

注意事项

  • 新闻来自公开 RSS,运行需能访问外网;断网时可用包内缓存演示。

Q:必须联网吗?

A:采集环节需要(RSS 源)。README 第五节给了内置源列表与替换方法;抓下来的新闻存本地 SQLite,之后大屏和列表页可以离线演示,不必反复请求源站。

Q:热度指数是调库算的吗?

A:不是,自己实现的:词频 × 时间衰减权重 × 源权重,公式与取舍写在 nlp_utils.py 顶部注释里。分词用 jieba,情感倾向用 snownlp。

Q:页面地址分别是什么?

A:python app.py 后 http://127.0.0.1:5000/dashboard 是可视化大屏,/news 是新闻列表;趋势折线、分类环图、事件 Top 榜与词云同屏联动。

Q:“热点事件”是怎么归并出来的?

A:用 Jaccard 相似度把标题相近的新闻聚成事件,大屏展示的是事件而不是碎片化的单条新闻——这一层比“用了什么算法”更值得讲清楚。

购买评价(0)

暂无评价,购买后第一个来评价吧
相关商品
🍪 隐私提示 我们仅收集提供服务所必需的信息(详见《隐私政策》),不出售、不追踪。
¥89
立即购买