news 2026/2/12 3:45:30

【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/2/9 12:05:37

如何搜集图片?超实用功能必看!

&#x1f64b;相册开启了多人上传&#xff0c;不知道图片是谁上传的&#xff0c;能否在上传前让上传人填个表单&#xff0c;好让管理员知道是谁上传的图片&#xff1f;&#x1f449;支持的上传前表单填写&#xff1a;访客上传相册内容前&#xff0c;需要填写表单信息「可用于收…

作者头像 李华
网站建设 2026/2/12 2:11:33

安卓开发工程师核心能力体系深度解析与面试指南

华东计算技术研究所(中国电子科技集团公司第三十二研究所)安卓开发工程师 职位信息 岗位职责: 1.参与项目需求分析,进行APP相关的设计、开发、调试等; 2.按需求完成界面、逻辑功能、网络通信等设计; 3.配合其他开发人员、测试人员,完成产品设计和发布; 4.编写相关开发文…

作者头像 李华
网站建设 2026/2/10 18:50:11

自己平台接入国家网络身份认证公共服务接入

一、接入主体要求&#xff08;谁能申请&#xff09;必须是合法登记的企业 / 事业单位 / 政府机构&#xff0c;个人不能申请企业级接入。准入主体类型&#xff1a;企业法人&#xff08;含国企、民企、外企&#xff09;政府部门、事业单位金融机构、持牌支付机构、运营商互联网平…

作者头像 李华
网站建设 2026/2/5 8:52:27

花小钱取悦自己,才是最聪明的养生

别等花大钱看病才懂&#xff1a;花小钱取悦自己&#xff0c;是最划算的养生 目录 别等花大钱看病才懂&#xff1a;花小钱取悦自己&#xff0c;是最划算的养生一、先理清&#xff1a;观点的核心逻辑是什么&#xff1f;二、靠谱依据&#xff1a;情绪影响健康&#xff0c;有实打实…

作者头像 李华
网站建设 2026/2/8 15:40:08

基于微信小程序的中医食谱推荐系统【源码文末联系】

基于微信小程序的中医食谱推荐系统 两个角色&#xff08;管理员&#xff0c;用户&#xff09; 效果如下&#xff1a; 登录页面 管理员主页面 食品信息管理页面 新增食品信息页面 健康资讯管理页面 用户首页面 食品信息页面 食品信息详情页面 研究背景 在快节奏的现代生活中…

作者头像 李华
网站建设 2026/2/9 23:45:41

开发家用小家电器故障自查助手,输入电器型号及故障现象,匹配常见故障及故障现象,匹配常见故障原因及解决方法,支持图文指引,帮普通人快速排查小故障,不用急着找维修。

1. 实际应用场景描述 在日常生活中&#xff0c;家用小电器&#xff08;如电饭煲、微波炉、电风扇、电水壶等&#xff09;出现故障时&#xff0c;用户常遇到以下问题&#xff1a; - 不懂原理&#xff1a;不知道故障可能的原因 - 盲目报修&#xff1a;小问题也找维修师傅&#x…

作者头像 李华