news 2026/5/9 22:16:45

【AI大模型舆情分析】微博舆情分析可视化系统(pytorch2+基于BERT大模型训练微调+flask+pandas+echarts) 实战(上)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【AI大模型舆情分析】微博舆情分析可视化系统(pytorch2+基于BERT大模型训练微调+flask+pandas+echarts) 实战(上)

大家好,我是锋哥。最近发布一条【AI大模型舆情分析】微博舆情分析可视化系统(pytorch2+基于BERT大模型训练微调+flask+pandas+echarts)高级实战。分上下节。

实战简介:

前面的2026版【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts+爬虫) 二次开发,前面课程舆情分析用得是snowNLP,我们现在改用基于BERT开源大模型微调,来实现舆情分析,提高舆情分析的准确率。重点讲解基本BERT大模型实现舆情分析,二分类问题。

视频教程和源码领取:

链接:https://pan.baidu.com/s/1_NzaNr0Wln6kv1rdiQnUTg
提取码:0000

微博舆情分析可视化系统 - 项目准备

基于python微博舆情分析可视化系统(flask+pandas+echarts) 项目源码本地运行下。

登录页面,我们改下小标题,加个LLM

登录后,进入系统主页面:

BERT大模型实现舆情分析功能

大模型开发环境准备-PyTorch和transformers库

首先新建model目录,把Bert-base-chinese粘贴到model目录下。

我们大模型训练尽可能的基于GPU的,CUDA要安装下。

然后我们要安装Pytorch2和transformers库:

pip install torch torchvision --index-url https://download.pytorch.org/whl/cu126
pip install transformers -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

环境测试代码:

import torch from transformers import pipeline print(torch.cuda.is_available()) # 通过pipeline 加载模型 model = pipeline(task="text-classification", # 任务类型 二分类 model="Bert-base-chinese", # 模型名称 device=0 # 使用GPU ) # 调用模型预测 result = model("小明是好学生") print(result)

运行结果:

BERT大模型情感分析功能封装(使用AutoModel自动模型方式)

新建llm目录,里面再新建weibo.py文件

代码实现:

import torch from transformers import AutoTokenizer, AutoModelForSequenceClassification # 使用设备GPU device = torch.device("cuda" if torch.cuda.is_available() else "cpu") print(device) # 加载分词器 tokenizer = AutoTokenizer.from_pretrained('../model/Bert-base-chinese') # 加载模型 model = AutoModelForSequenceClassification.from_pretrained('../model/Bert-base-chinese') print(model) # 情感分析 def data_classfication(data): # 准备输入数据 input_ids = tokenizer.encode( text=data, # 输入文本 return_tensors='pt', # 返回PyTorch张量 truncation=True, # 截断超过长度的输入文本 max_length=20, # 最长长度 padding="max_length" # 填充短的输入文本 ).to(device) # 评估模型 model.eval() model.to(device) # 模型预测 output = model(input_ids) print(output) # 获取预测结果 logits = output.logits print(logits) predication = torch.argmax(logits, dim=-1) print(predication) sentiment = predication.item() # 把张量转成数字 print(sentiment) sentiment_label = "正面" if sentiment == 1 else "负面" return sentiment_label if __name__ == '__main__': result = data_classfication("开心") print("预测结果:", result)

运行结果:

使用BERT大模型对微博热词进行情感分析

找到视图层业务逻辑代码:

我们修改下:

# 改成使用大模型进行舆情分析 sentiments = data_classfication(defaultHotWord)

启动就直接报错了

原因是加载模型用得是相对路径,我们调用封装方法的时候,相对路径又变了。所以我们企业级开发,一般不用相对路径,只用绝对路径,由于开发环境,测试环境,线上环境模型路径会变,所以我们一般都会把路径放到配置文件里面去,方便修改路径。

我们在项目根目录下新建config.py

配置下模型路径:

# 定义模型路径 model_path = 'D:\python_pro\weiboLLMProject2\model'

接下来,weibo.py里把相对路径,改成绝对路径,使用config.py里的model_path属性;

改成:

# 加载分词器 tokenizer = AutoTokenizer.from_pretrained(config.model_path + "/Bert-base-chinese") # 加载模型 model = AutoModelForSequenceClassification.from_pretrained(config.model_path + "/Bert-base-chinese") print(model)

运行测试系统,可以了。不过情感分析的准确率很有限,等后面VIP课程,我们使用增量微调训练后的模型,准确率能上到90%以上。

使用BERT大模型对微博文章内容进行情感分析

找到微博舆情分析后端视图业务逻辑代码:

改成:

# 改成使用大模型进行舆情分析 sentiments = data_classfication(article[1])

重启项目测试:

使用BERT大模型对微博舆情分析以及可视化操作

找到数据可视化微博舆情分析后端视图层业务逻辑代码,包括柱状图,树形图,饼状图。代码都需要修改;

代码修改:

@pb.route('sentimentAnalysis') def sentimentAnalysis(): """ 舆情数据分析 :return: """ xHotBarData = ['正面', '负面'] yHotBarData = [0, 0] # 只读取前100条 df = pd.read_csv('./fenci/comment_fre.csv', nrows=100) for value in df.values: # 情感分析 # stc = SnowNLP(value[0]).sentiments # if stc > 0.6: # yHotBarData[0] += 1 # elif stc < 0.2: # yHotBarData[2] += 1 # else: # yHotBarData[1] += 1 # 使用大模型进行情感分析 sentiment_label = data_classfication(value[0]) if sentiment_label == '正面': yHotBarData[0] += 1 else: yHotBarData[1] += 1 hotTreeMapData = [{ 'name': xHotBarData[0], 'value': yHotBarData[0] }, { 'name': xHotBarData[1], 'value': yHotBarData[1] }] commentPieData = [{ 'name': '正面', 'value': 0 }, { 'name': '负面', 'value': 0 }] articlePieData = [{ 'name': '正面', 'value': 0 }, { 'name': '负面', 'value': 0 }] commentList = commentDao.getAllComment() for comment in commentList: # 情感分析 # stc = SnowNLP(comment[1]).sentiments # if stc > 0.6: # commentPieData[0]['value'] += 1 # elif stc < 0.2: # commentPieData[2]['value'] += 1 # else: # commentPieData[1]['value'] += 1 # 使用大模型进行情感分析 sentiment_label = data_classfication(comment[1]) if sentiment_label == '正面': commentPieData[0]['value'] += 1 else: commentPieData[1]['value'] += 1 articleList = articleDao.getAllArticle() for article in articleList: # 情感分析 # stc = SnowNLP(article[1]).sentiments # if stc > 0.6: # articlePieData[0]['value'] += 1 # elif stc < 0.2: # articlePieData[2]['value'] += 1 # else: # articlePieData[1]['value'] += 1 # 使用大模型进行情感分析 sentiment_label = data_classfication(article[1]) if sentiment_label == '正面': articlePieData[0]['value'] += 1 else: articlePieData[1]['value'] += 1 df2 = pd.read_csv('./fenci/comment_fre.csv', nrows=15) xhotData15 = [x[0] for x in df2.values][::-1] yhotData15 = [x[1] for x in df2.values][::-1] return render_template('sentimentAnalysis.html', xHotBarData=xHotBarData, yHotBarData=yHotBarData, hotTreeMapData=hotTreeMapData, commentPieData=commentPieData, articlePieData=articlePieData, xhotData15=xhotData15, yhotData15=yhotData15)

重启项目测试:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 4:00:37

基于Simulink的A*算法自动驾驶路径规划仿真建模示例

目录 手把手教你学Simulink--基于Simulink的A*算法自动驾驶路径规划仿真建模示例 一、引言&#xff1a;为什么需要A*算法路径规划&#xff1f;——“最优性”与“效率”的平衡术 挑战&#xff1a; 二、核心原理&#xff1a;A*算法的“评估-搜索-生成”逻辑 1. A*算法基本框…

作者头像 李华
网站建设 2026/5/9 4:00:16

深度解析Android系统开发工程师岗位:技术体系与实战指南(含面试题库)

上海大帜信息技术有限公司 MTK/展锐 平台Android系统 软件开发工程师 职位信息 1、负责Android手机及行业设备的客户需求对接、上层基本功能配置开发、客户软件编译输出等工作; 2、负责协同测试部或其他相关部门解决研发、生产、测试中出现的framework、app等软件问题; 3,有A…

作者头像 李华
网站建设 2026/5/9 4:00:37

基于javaweb的网上购物系统 开题报告

目录 项目背景与意义技术选型系统功能模块创新点与特色预期成果参考文献 项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作 项目背景与意义 随着电子商务的快速发展&#xff0c;网上购物系统已成为现代商业…

作者头像 李华
网站建设 2026/5/3 5:27:21

codeblocks+wxWidgets Projects中引用第三方库(sqlite3)

1. 下载sqlite3合并版本 https://www.sqlite.org/2024/sqlite-amalgamation-3450100.zip 解压后的内容如下&#xff1a; 2. sqlitee3.c和sqlite3.h放在 3. 在Project build options的Search directories中添加".\sqlite3" 最后在项目中通过如下方式引用&#xf…

作者头像 李华
网站建设 2026/5/3 10:24:47

图文详解Trae配置Java开发环境

版权声明 本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl 安装Trae 请从Trae官方网站 https://trae.ai/ 下载并安装Trae;图示如下: 安装完毕后;图示如下: 安装插件 安装Trae后,请在Trae中安装支持Java开发的核心插件;图示如下:

作者头像 李华