Skip to content

Latest commit

 

History

History
141 lines (87 loc) · 3.29 KB

File metadata and controls

141 lines (87 loc) · 3.29 KB

Google Gemini

🏫 厦门大学舆情洞察系统 (XMU Sentiment Insight System)

基于 Python Flask朴素贝叶斯模型 构建的轻量级校园舆情分析系统,用于模拟对校园论坛、社交媒体文本的情感倾向分析,并提供可视化仪表盘。


✨ 主要功能

1. 舆情仪表盘

  • 全网贴文总量统计
  • 情感倾向分布(积极/中立/消极)饼图
  • 24 小时舆情热度趋势
  • 数据来源统计

2. 实时情感检测

  • 输入文本即可获得即时情感判定
  • 三类情感的概率可视化
  • 自动提取文本关键词

3. 模拟数据生成

  • 内置爬虫模拟器
  • 自动生成带时间戳、来源、情感标签的模拟校园贴文数据

4. 机器学习模型

  • 使用 TF-IDF + MultinomialNB(朴素贝叶斯)
  • 针对校园语料场景进行了特化训练(如“芙蓉隧道”“选课”“食堂”)

📂 项目结构

.
 ├── app.py              # Flask 后端主程序 (API & 静态文件托管)
 ├── index.html          # 前端单页面 (Tailwind CSS + Chart.js)
 ├── model_train.py      # 模型训练脚本
 ├── spider.py           # 数据生成/模拟爬虫脚本
 ├── database.db         # SQLite 数据库
 └── models/
 └── sentiment_nb.pkl # 训练好的情感分析模型


🛠️ 环境依赖

确保安装 Python 3.8+,并执行:

pip install flask flask-cors jieba scikit-learn joblib numpy

🚀 快速开始

严格按顺序运行以下脚本:

第一步:训练模型

python model_train.py

脚本将在 models/ 目录生成 sentiment_nb.pkl 模型文件。


第二步:生成模拟数据

python spider.py

运行后输入需要生成的数据条数(推荐:1000)。 脚本将自动创建 database.db 并使用模型进行情感标注。


第三步:启动后端服务

python app.py

如看到输出:

🚀 舆情系统后端已启动...

说明服务已运行在:

http://127.0.0.1:5000


第四步:访问前端

浏览器打开:

http://127.0.0.1:5000

你将看到仪表盘和“舆情内容实时检测”区域。


🔌 API 接口说明

接口路径 方法 描述
/api/dashboard GET 获取仪表盘数据(总数、来源、情感分布、趋势)
/api/analyze POST 输入 {text:"内容"} 返回情感分类、概率、关键词

🧪 测试样本示例

  • 积极:厦门大学是最美校园,芙蓉湖太漂亮了,爱了爱了!
  • 消极:食堂的菜越来越贵,量还少,这学期的课表排得太满了。
  • 中立:请问翔安校区怎么去本部?明天上午有一节高数课。

⚙️ 技术栈

  • 后端:Python, Flask, SQLite
  • 前端:HTML5, Tailwind CSS(CDN), Chart.js(CDN)
  • 算法:Scikit-learn(朴素贝叶斯), Jieba(中文分词)

注意:本项目仅用于学习与演示,所有数据均为随机生成,不代表真实舆情。