一、介绍

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

在这里插入图片描述

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

更多推荐