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

一、介绍

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

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

相关推荐
jieyucx2 小时前
Go 语言零基础入门:编写第一个 Hello World 程序
开发语言·后端·golang
生信研究猿2 小时前
第2题-大模型Attention模块开发
python
2401_871696522 小时前
JavaScript中代码覆盖率Coverage在精简脚本中的应用
jvm·数据库·python
沐知全栈开发2 小时前
Rust 数据类型
开发语言
XiYang-DING2 小时前
【Java EE】多线程(1)
java·python·java-ee
m0_734949792 小时前
Python GUI界面如何实现主题美化_引入ttk模块实现原生外观风格
jvm·数据库·python
jieyucx2 小时前
Go 语言基础语法:变量、常量与数据类型详解
开发语言·后端·golang
光影少年2 小时前
Python+LangGraph学习路线及发展前景
开发语言·人工智能·python·学习
m0_678485452 小时前
如何让导航栏的下落动画效果更慢?
jvm·数据库·python