疫情下微博用户情感分析_基于机器学习的微博情感分析

这篇博客介绍了如何利用机器学习对微博评论进行情感分析。数据来源于github,包括12万条正负向评论。作者使用python进行数据处理,通过jieba分词和TfidfVectorizer进行文本向量化,然后应用朴素贝叶斯、逻辑回归、随机森林、GradientBoostingClassifier、xgboost和lightgbm模型。最终,选择GradientBoostingClassifier、xgboost和lightgbm的投票结果,得到0.95的预测准确率。
摘要由CSDN通过智能技术生成

一、数据获取

数据来源于github,文末会附数据来源链接。数据包含微博评论约12万条,其中正向评论、负向评论各约6万条。数据有label、review两个字段,其中label字段用于表示评论是否是正向评论,当取值为1时表示正向评论,取值为0时表示负向评论;review字段用于表示微博评论内容。

二、数据导入与探索

全文运用python作为数据处理、预测的工具。首先利用pandas库导入数据并观察一下前五行数据来看一下数据的大致情况:

import pandas as pddata=pd.read_csv(r'C:\Users\zhousiying\Desktop\weibo_senti_100k\weibo_senti_100k\weibo_senti_100k.csv')data.head()

所得到的结果如下:

14560bc2804626f62a450150c4ca12d4.png

然后看一下数据是否存在空值:

data.isnull().sum()

所得结果如下:

label     0 review    0 dtype: int64

结果表示数据集中不存在空值,因此不需要对空值

# emotionAnalysis 疫情背景下,基于情感词典和机器学习对新闻和微博评论的情感分析 # Data Science Basics in SWI, NJU, 2020-Fall > ## 计算社会学:基于NLP技术的新冠疫情下的社会心态研究 Cong Jin , YDJSIR, Sugar Xu‘s project of 2020 Data Science Basic Course in SWI, NJU. 此为发布开源的版本而不是开发环境中使用的版本。 ## 文件结构 ```bash │ LICENSE │ README.md ├─Analyze # 分析数据的过程中所使用的所有代码 ├─Data # 原始数据以及处理过后的所有数据 ├─Report # 报告相关源文件以及最终报告的成品 └─Spyder # 爬虫代码 ``` 文件结构经过事后整理,并不是工作时目录的状态,因而代码中所涉及的路径需要稍加修改后运行。 原始报告数据在评分后抹掉相关关键词后后放出。 > ### `Data`目录下文件结构 > > 该目录下共有6个文件夹,分别对应`stage0` - `stage6` > > ##### stage内文件目录结构 > > ```bash > │ COVkeywords-Stage-.json # 人工筛选后的疫情相关关键词 > │ COVkeywords-Stage.json # 未经筛选的疫情关键词 > │ keywords-Stage.json # 从荔枝新闻中获取的原始结果 > │ ratioByDate.png # 该阶段内每日疫情相关重点微博占比 > │ SaveTest.png # 疫情相关度分布拟合结果图1 > │ SaveTest_Fit.png # 疫情相关度分布拟合结果图2 > │ stageCOVWeibo.json # 该阶段内疫情相关重点微博(按时间先后排序) > │ stageCOVWeiboByImportance.json # 该阶段内疫情相关重点微博(按疫情相关度排序) > | SaveTest-热度.png # 各项热度指标占比 > │ stageInfo.json # 该阶段基础信息 > │ weiboPolar.png # 疫情相关重点微博情感极性图 > | weiboEmotion.png # 当前阶段的疫情相关微博情感倾向 > ├─YYYY-MM-DD- > ├─YYYY-MM-DD- > ├─YYYY-MM-DD- > ├─YYYY-MM-DD- > ... > └─YYYY-MM-DD- > ``` > > ##### 每个日期内文件目录结构 > > ```bash > YYYY-MM-DD > | jstvRAW.csv # 疫情相关关键词检索得到的荔枝新闻原始数据 > | keywords.json # 荔枝新闻正文提取出来的关键词及其乘以100以后的TextRank权值 > | wordcloud.html # 由荔枝新闻生成的词云图 > | blog-Scored.json # 每篇微博都有一个疫情相关度 > | blog-COV.json # 筛选后的新冠疫情相关微博 > | blogInfo.json # 当日博客相关基础信息 > | weiboEmotion.png # 基于心态词典的当日疫情相关微博重点评论情感分析生成的雷达图 > └─weiboEmotion.csv # 基于心态词典的当日疫情相关微博重点评论情感分析原始数据 > ``` ======= # emotionAnalysis 疫情背景下,基于情感词典和机器学习对新闻和微博评论的情感分析
贝叶斯算法是一种常用于情感分析的算法之一,并且Python提供了丰富的库和工具来实现。实现贝叶斯算法进行疫情微博评论情感分析可以分为以下几个步骤: 1. 数据收集:首先需要收集疫情微博评论的数据集,可以通过API接口或爬虫等方式获取。数据集中应包含评论文本和对应的情感标签(如积极、消极或中性)。 2. 文本预处理:对评论文本进行预处理,包括去除特殊字符、转换为小写字母、分词等操作。可以使用Python中的nltk库、jieba库等进行文本预处理。 3. 特征提取:从预处理后的评论文本中提取特征,如词袋模型、TF-IDF等。可以使用Python中的sklearn库提供的特征提取工具进行操作。 4. 构建训练集和测试集:将特征和对应的情感标签划分为训练集和测试集,一般可以按照70%的比例进行划分。训练集用于模型训练,测试集用于评估模型的性能。 5. 构建贝叶斯分类器模型:使用Python中的sklearn库提供的朴素贝叶斯分类器进行建模。根据特征和情感标签进行训练,得到分类器模型。 6. 情感分析:使用构建好的分类器模型对未知评论进行情感分析。根据特征提取和训练好的模型,对新的评论进行预测,得到相应的情感标签。 7. 评估和优化:对模型进行评估,可以使用精确率、召回率、F1值等指标进行评估。根据评估结果,可以对模型进行优化,如调整特征提取方法、调整模型参数等。 通过以上步骤,便可以使用Python实现贝叶斯算法进行疫情微博评论情感分析
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值