基于 Django 的新闻舆情分析系统设计与实现

作品简介

面向新闻标题的舆情分析系统:真实采集中国新闻网、人民网、新华网 725 条公开标题,清洗后 232 条入库,完成情感判定、TF-IDF 关键词、KMeans 热点聚类与舆情预警,并在 20 条人工抽检中如实报告模型偏差(三分类一致率 60%、负面召回 100%)。第 20 套「杂志特稿风」界面。

技术栈

Python、Django、jieba、SnowNLP、scikit-learn、ECharts、MySQL

功能模块

  • 真实采集:中国新闻网滚动分页 + 国内/社会频道页 + 人民网/新华网 RSS,共 725 条标题;只取标题/链接/时间等元数据,不抓正文
  • 清洗与批次过滤:按 URL 去重、剔除过短与异常标题、过滤人民网 RSS 的 2025-06 旧缓存批次,避免时间轴断裂;最终 232 条、2 天窗口如实标注
  • 情感判定:SnowNLP 打分 0~1,三段阈值;20 条人工抽检得出三分类一致率 60%、负面召回 100%、精确率 50%——模型对真负面敏感,却把中性陈述判为正面
  • 关键词:jieba TF-IDF 每篇抽 5 词,汇总 TOP30,并统计每个关键词的负面率与峰值日期
  • 热点聚类:TF-IDF + KMeans 聚 8 簇,过滤单字与符号后取权重词作簇名(新疆/服务、博会/第九届等),每簇附代表标题
  • 预警:负面占比 ≥25% 记一条、每日高频词取前三且 ≥5 次;因窗口仅 2 天,弃用不稳定的「7 日移动基线」,规则改动本身写进论文
  • 9 个页面 + 原始 CSV 下载 + Django admin,ECharts 本地内置离线可用;第 20 套杂志特稿风(纯白 + 墨黑大字 + 克莱因蓝)
  • 论文实验可复现:所有数字来自 data/analysis/findings.json,重跑 import_news 自动更新

运行环境

  • 编程语言:Python 3.8 及以上
  • 后端框架:Django 4.2
  • 数据采集:requests 抓中新网滚动/频道页 + RSS 解析(低频、只取元数据)
  • 文本分析:jieba 0.42(分词/TF-IDF)、SnowNLP(情感)、scikit-learn 1.3(TF-IDF + KMeans)
  • 数据库:MySQL 8.0(交付默认 SQLite,免安装)
  • 可视化:ECharts 5(已内置本地文件,离线可用)
  • 数据规模:原始 725 条 / 清洗后 232 条 / 8 频道 / 2 天 / 8 话题
  • 操作系统:Windows / macOS / Linux
  • 启动方式:双击一键脚本,或 python manage.py runserver 8085

界面截图

文档预览

交付的任务书、开题报告与论文均为 Word 文档,下面是真实页面预览:

交付内容

  • 完整源码(Django 工程 + 真实采集脚本 + 情感/关键词/聚类/预警导入命令)
  • 原始新闻标题 CSV 与演示数据库、findings.json 实验产物
  • 毕业设计任务书(Word)
  • 毕业设计开题报告(Word)
  • 毕业论文(Word,七章制,含人工抽检与模型偏差分析)
  • 系统使用与二次开发说明(Word + md)
  • 系统运行截图 11 张
创作时间: