基于Twitter数据的情感预测与案例分析
导读
本次分享的是关于文本分析中的情感预测分析和主题分析的一个小科研项目,数据爬取自Twitter,主要内容分为3部分:
1.情感预测机器学习模型选择及建立
2.情感预测深度学习模型LSTM的介绍和建立
3.主题分析模型简介
01
# 情感预测机器学习模型选择及建立
情感预测分析主要内容是爬取Twitter用户在election2016这个话题下对Trump和Hillary的讨论,通过人工标注一部分推文的情感标签(即对某位候选人持支持、中立或不支持态度),并将其作为训练数据,用不同算法模型来学习并预测其余未标注推文数据集的标签。
最终情感预测的结果可以用来展示和预测不同地区的选民对某位候选人的情感偏向,也可以用来在未来大选期间通过选民推文内容预测某位候选人情感偏向。
1.数据说明及处理
首先通过一些文本处理清洗操作,包括选取重要的数据项、去掉不必要的标点符号、数字和停词以及词根处理等,将每条Twitter数据处理为这条Twitter中对情感预测重要的词汇集合。下图为一部分数据处理操作。
数据整理结束后,用词云可视化展示了在这两个数据集中词频较高的词汇。
2.机器学习模型的选择和建立
算法模型训练前先选择TDIDF算法进行了词向量的转化,机器学习模型选择了3个基于不同算法逻辑的模型,分别是逻辑回归、朴素贝叶斯和随机森林。下面展示的分别是部分词向量处理过程和模型训练过程。
下图展示了3个机器学习模型训练的结果。
逻辑回归相较于其他两个模型表现稍好一点,两个数据集的平均准确率在69%左右。
02
情感预测深度学习模型LSTM的介绍和建立
1.LSTM模型的简介
长短期记忆网络(LSTM,Long Short-Term Memory)是基于循环神经网络(Recurrent Neural Network, RNN)的。下图展示的是RNN的网络结构。
简单的理解RNN就是每上一层的隐藏层的信息会传到下一层的隐藏层中,从而达到了文本分析中前后语境影响的效果。
LSTM模型基于RNN模型进行了进一步的改良,主要是为了解决RNN的梯度消失问题。下图简单展示了LSTM的结构。
LSTM在RNN的基础上加了3个门,分别是输入门、遗忘门和输出门。也就是增加了3组不同的参数和sigmoid函数。
2.LSTM模型的建立
下图展示的是项目中建立的深度学习网络结构。
在添加LSTM网络层之前,先进行了word2vec embedding的训练,将每个词转化为32维的词向量,word2vec embedding的训练可以将词性、词义和前后语境等信息训练在词向量中,这样可以提高我们之后网络训练的效率,也可以减少训练所需数据量。
LSTM网络选择了包含120个神经元的1层隐藏层结构,之后连接10个神经元的全连接神经网络结构,激活函数选择的relu函数。下图展示的是relu函数图。
Relu函数做为激活函数比sigmoid函数有几点优势,一方面relu函数可以在一定程度上缓解梯度消失问题;另一方面函数求导计算更为简单,也就使网络训练过程中反向传播计算效率提高;并且relu函数在一些情况下可以起到dropout的效果,保证网络稀疏性,缓解过拟合问题。
最后一层网络结构选择的是3个神经元的全连接神经网络结构,激活函数用的softmax。
3.LSTM模型的结果和优化
下图展示的是一个数据集LSTM模型训练的结果。
通过结果展示可以看到随着训练epoch的增加,损失(模型预测值和实际值之间的差异)越来越小,准确率越来越高。最终训练集的平均准确率达到90.7%,测试集的平均准确率达到74.9%。可以看到LSTM的结果还是明显优于之前的机器学习模型,但是可能出现了一点过拟合的问题,训练集的结果明显好于测试集。下图展示的是随着训练epoch的增加,训练集和验证集准确率的走势。
从图中可以看到当训练epoch数到18、19左右时,训练集的准确率还在上升,但是验证集的准确率却开始下降,说明这时候模型可能开始有过拟合的倾向。为了缓解这个问题,用了下图展示的modelcheckpoint方法,将验证集准确率最高的参数作为我最优模型的参数进行数据训练和学习,最终结果有小幅度优化。
鉴于不断调整网络结构和不断进行调优尝试后结果仍没有明显变好的情况,考虑到是项目数据量较小的原因。由于Twitter API对于爬取数据的限制和人工标注大量耗费时间和人力的原因,项目数据量较小。而LSTM做为深度学习模型,需要大量数据训练才会得到更好的结果,所以数据量小也可能是影响最终模型效果的一个原因。
下图展示的是基于LSTM模型的预测结果,不同地区选民对Trump的情感偏向。
03
主题分析模型简介
主题分析的数据集来自kaggle上整理的大选期间两位候选人所发的推文数据。因为LDA算法对推文这种较短文本做主题分析效果差的原因,项目参考了一篇科研文章做出了优化。首先根据LSI的计算结果,将每条推文对所有主题的相似度作为特征,做一个Kmeans聚类,并将属于同一个聚类的tweet拼接起来后再进行LDA主题分析,下图展示了Trump数据集的主题分析结果。
图中可以看到Trump数据集训练除了9个主题,每个主题展示了相应的前5个关键词,优化后的结果有了明显的主题区分和提取效果。
本次分享就到这里啦,谢谢大家~
主题分析参考文章
https://blog.csdn.net/Aaronji1222/article/details/78153269
更多交流:请关注公众号【通信大数据分析及应用】
基于Twitter数据的情感预测与案例分析相关推荐
- 易生信-宏基因组积微学术论坛:基于大数据整合准确预测土壤的枯萎病发生...
博彩众家之长,积微成就突破.为促进我国宏基因组研究领域的学术交流和技术分享,推动微生物组领域的发展,"宏基因组"公众号联合国内外优秀人才组织"易生信-宏基因组 积微学术论 ...
- 易生信-宏基因组2020 积微学术论坛:基于大数据整合准确预测土壤的枯萎病发生...
博彩众家之长,积微成就突破.为促进我国宏基因组研究领域的学术交流和技术分享,推动微生物组领域的发展,"宏基因组"公众号联合国内外优秀人才组织"易生信-宏基因组 积微学术论 ...
- pandas基于时序数据计算模型预测推理需要的统计数据(累计时间、长度变化、变化率、方差、均值、最大、最小等):范围内的统计量、变化率、获得数据集最后的几条数据的统计量、变化率、获得范围内的统计量
pandas基于时序数据计算模型预测推理需要的统计数据(累计时间.长度变化.变化率.方差.均值.最大.最小等):范围内的统计量.变化率.获得数据集最后的几条数据的统计量.变化率.获得范围内的统计量 目 ...
- pandas基于时序数据计算模型预测推理需要的统计数据(累计时间、长度变化、变化率、方差、均值、最大、最小等):数据持续的时间(分钟)、获得某一节点之后的数据总变化量、获得范围内的统计量
pandas基于时序数据计算模型预测推理需要的统计数据(累计时间.长度变化.变化率.方差.均值.最大.最小等):数据持续的时间(分钟).获得某一节点之后的数据总变化量.获得范围内的统计量 目录
- 基于大数据的银行反欺诈的分析报告
from--http://www.cnblogs.com/yueyebigdata/p/5893454.html 基于大数据的银行反欺诈的分析报告 (备注,本人主要是整理,学习他人的博客.由于大量的资 ...
- 基于大数据的动漫影视可视化分析系统
温馨提示:文末有 CSDN 平台官方提供的学长 Wechat / QQ 名片 :) 1. 项目简介 本动漫分析系统开发语言为Python,并进行数据清洗,数据处理,并最后利用可视化技术进行动漫数据分析 ...
- lyuyou消费大数据_基于大数据技术的电力用户行为分析及应用现状
&Automation 基于大数据技术的电力用户行为分析及应用现状 沈玉玲,吕燕,陈瑞峰 ( 上海电气集团股份有限公司中央研究院, 上海 200070 ) 摘 要: 电力行业是大数据技术应用的 ...
- 非线性有限元:基本理论与算法及基于Python、Fortran程序实现与案例分析实践技术
有限单元法在岩土工程问题中应用非常广泛,很多商业软件如Plaxis/Abaqus/Comsol等都采用有限单元解法.尽管各类商业软件使用方便,但其使用对用户来说往往是一个"黑箱子" ...
- 基于大数据的城市轨道交通客流分析及调控策略【附PPT】
来源:2020世界交通运输大会(WTC) 北京交通大学 交通运输学院 姚恩建教授的分享,支持原创,版权归作者所有,如有侵权,联系立删.禁止二次转载.欢迎转发支持.公众号内回复[轨道交通],获取PPT下 ...
最新文章
- php 正则教程,最通俗易懂的php正则表达式教程(上)
- FLV audio tag
- 视频异常行为检测算法MPN,在多个数据库上达到SOTA
- 《Oracle DBA工作笔记》第一章
- Java学习笔记之:Java 继承
- 手机游戏行业洗牌在即 成本增长小团队出局
- jQuery 异步上传插件 Uploadify 使用 (Java平台)
- 软件测试硬盘使用时间,硬盘使用时间检测工具_硬盘使用时间清零
- C++常用的图像像素值读写的方法
- 【转】中控系统的概念、特点及功能
- lambda表达式写法
- 计算机读博士一个月补助多少钱,中国200万在读硕士生和博士生,每月能拿到多少补助?...
- SDR HDR 区别
- matplotlib入门基础(五)轴坐标范围 轴刻度比例 轴刻度
- 歪写数学史(当之无愧的数学王子)
- 老年人智能手机APP开发界面设计具体策略
- java实现微信的逆向分析_PC 端微信逆向分析
- 《数据结构与算法之红黑树(Java实现)》
- 乐观型人格分析,性格乐观的优缺点和职业发展分析
- python函数内嵌,嵌套函数