一、介绍
系统采集微博话题文章和评论数据,利用基于 Hugging Face Transformers 的 BERT 预训练模型(uer/roberta-base-finetuned-jd-binary-chinese)进行情感分析,对话题的关键词、热度、地区进行分析,使用了 TF-IDF、TextRank 等算法,并通过 Vue.js 进行可视化展示。
二、系统功能
1、数据采集
爬取微博文章(含图片)、评论信息,利用基于 Hugging Face Transformers 的 BERT 预训练模型(uer/roberta-base-finetuned-jd-binary-chinese)进行情感分析,CNN(ResNet)提取图像特征。
2、微博舆情
展示爬取到的文章信息及其舆情分析结果,使用 BERT 模型对文章和评论内容进行正负面情感分类(绿色:低风险,橙色:中等风险,红色:高风险)。
点击地址可跳转到微博文章页面,点击详情按钮可查看该文章详情信息。

3、舆情趋势
以折线图形式展示各话题在不同时间段内舆情指数的变化趋势,支持多话题对比查看。


4、热度排行
根据热度公式(点赞×0.3 + 评论×0.5 + 转发×0.2)× 时间衰减因子,对各话题文章进行热度评分,以排行榜形式展示最热门内容。

5、热度分析
用时间热度图展示各个时期各个话题的热度变化情况,直观反映舆情爆发节点。

6、关键词分析
针对某一个话题,使用 TextRank 和 TF-IDF 分别提取话题关键词,以饼图和环形图的形式展示出来。

8、词云分析
使用 jieba、wordcloud 等库,对各个话题的文章和评论关键词进行分析,生成词云图。

9、舆情地图
以地图形式直观展示各省份舆情信息分布,可选择具体话题查看地区舆情热度。

10、风险预警
对舆情数据进行实时监控,当负面情感占比超过阈值时触发预警提示。

11、报告导出
支持将当前话题的舆情分析数据导出为报表文件,方便存档和汇报。
12、多模态分析
支持对文章中的图片内容进行多模态分析,结合图文信息综合评估舆情。


13、个人信息
用户查看、编辑个人信息。

14、修改密码
用户登录后可修改密码。

15、登录注册
用户登录注册。

16、用户管理
管理员功能,管理用户信息。

三、软件架构
后端
- Python 3.8+
- Flask
- BERT / Hugging Face Transformers(情感分析)
- TF-IDF / TextRank(关键词提取)
前端
- Vue.js
- iView / Element UI
- ECharts
数据库
- MySQL 5.7+
四、工程目录结构
|p_26_sentiment
|-- wb_server 后端目录
|-- app.py Flask 主程序入口
|-- app_business.py 接口蓝图 - 业务数据相关
|-- app_user.py 接口蓝图 - 用户管理相关
|-- spider_1_main.py 爬虫流水线编排入口(配置关键词等参数后执行此文件)
|-- spider_2_article.py 爬虫 - 微博文章信息
|-- spider_3_comment.py 爬虫 - 文章评论信息
|-- pipeline.py 数据清洗、BERT 编码、ResNet 特征提取
|-- analysis/
|-- sentiment_analysis.py 情感分析(批量 BERT 推理,写回数据库)
|-- hot_analysis.py 热度分析(热度公式计算,写入 hot_topic 表)
|-- preprocessing.py 文本清洗(去除表情、URL、@提及)
|-- model/
|-- sentiment_infer.py 情感推理模块(加载本地 uer-roberta-sentiment 模型)
|-- bert-base-chinese/ 本地 BERT 分词器(需自行下载)
|-- uer-roberta-sentiment/ 本地情感分析模型(需自行下载)
|-- stoplist.txt 关键词处理停词表
|-- u_cloud.py 工具类 - 生成词云
|-- u_data.py 工具类 - TF-IDF / TextRank 数据处理
|-- u_mysqlHelper.py 工具类 - MySQL 数据库连接封装
|-- wb_web 前端目录
|-- node_modules Node 依赖包
|-- public 静态入口文件
|-- src
|-- api Axios 接口调用封装
|-- assets 静态资源文件
|-- components 公共组件
|-- router Vue Router 路由配置
|-- store Vuex 状态管理
|-- utils 工具类
|-- views 页面视图
|-- sentiment 微博舆情页
|-- sentimentTrend 舆情趋势页
|-- data 数据分析页
|-- hotRank 热度排行页
|-- hot 热度分析页
|-- keyword 关键词分析页
|-- wordCloud 词云分析页
|-- map 舆情地图页
|-- riskAlert 风险预警页
|-- exportReport 报告导出页
|-- multimodal 多模态分析页
|-- user 用户管理页
|-- vue.config.js Vue 配置文件(含 /api 代理配置)
五、表结构
|p_26_sentiment
|-- talk_article 文章信息表(含情感标签、情感关键词、正负面概率)
|-- talk_comment 评论信息表(含情感标签、情感关键词、正负面概率)
|-- talk_article_img 文章图片记录表
|-- hot_topic 热度话题表(TF-IDF / TextRank 双算法权重及热度分值)
|-- tbl_user 用户账户表

可定做,需要的小伙伴私信联系~