基于机器学习的社交媒体舆情分析系统

一、介绍

​ 系统采集微博话题文章和评论数据,利用基于 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          用户账户表

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

相关推荐
李可以量化6 分钟前
Tornado 部署公域网络安全与防护(上)
python
风跟我说过她16 分钟前
SQL 一键转经典 Chen 风格 ER 图:开源 CLI + 在线工具 + Agent Skill
数据库·python·sql·开源·开源软件
Ulyanov34 分钟前
AudioVision Pro:基于 PySide6 + sounddevice 的实时音频可视化播放器设计
python·算法·音视频
ID346107442035 分钟前
【课程设计】基于Spring Boot+Vue的校园共享无人机服务系统设计与实现-计算机毕设 附源码44219
javascript·vue.js·spring boot·python·node.js·php·课程设计
星空36 分钟前
pycharm复习
ide·python·pycharm
Maiko Star41 分钟前
Python 包与项目管理工具——uv
python·uv
ch.ju1 小时前
Java—idea知识:如何创建新项目
java·开发语言·intellij-idea
Evand J1 小时前
【MATLAB例程,图像滤波降噪12】加权中值滑动窗口滤波(WMF)图像降噪,包含滤波质量评价。附代码下载链接
开发语言·图像处理·人工智能·计算机视觉·matlab·滑动窗口·滤波
Tairitsu_H1 小时前
[C++] C++11类和STL的新特性
开发语言·c++·stl·c++11
weixin199701080161 小时前
[特殊字符]《京东POP二手品类对接:B2C订单模型 vs 二手C2C属性的字段转换难题》(附Python源码)
前端·python·算法