基于Python的微博热点李佳琦忒网友话题的评论采集和情感分析的方法,利用情感分析技术对评论进行情感倾向性判断

本文主要是介绍基于Python的微博热点李佳琦忒网友话题的评论采集和情感分析的方法,利用情感分析技术对评论进行情感倾向性判断,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 引言

1.1背景

介绍了基于Python的微博热点李佳琦忒网友话题的评论采集和情感分析的方法。首先,使用Python编写程序实现微博评论的采集,通过API或爬虫方式获取相关话题下的评论数据。然后,对采集到的评论数据进行预处理,包括分词、去除停用词等操作,以准备进行情感分析。

接下来,利用情感分析技术对评论进行情感倾向性判断。可以使用自然语言处理库(如cnsenti)进行情感分析。情感分析的结果可以将评论划分为积极、消极或中立的类别,或者给出情感得分。这样可以更好地了解网友对于李佳琦的看法和态度。

最后,根据情感分析的结果,可以进一步进行统计分析和可视化呈现。可以统计不同情感类别的评论数量,并生成折线图等可视化图表,以直观展示网友对李佳琦的情感态度。

通过以上方法,可以系统地收集和分析微博热点李佳琦的话题下的评论,并从情感的角度了解网友的观点和情感倾向。这对于了解公众的反馈和情感态度,以及品牌或个人形象的管理都具有重要的参考价值。

1.2意义

基于Python的微博热点李佳琦忒网友话题的评论采集和情感分析具有重要意义。首先,这种方法可以帮助了解公众对李佳琦的态度和看法,包括积极、消极或中立的情感倾向。这对于品牌或个人形象管理非常重要,可以及时了解公众的反馈和情感态度,为决策提供参考。

其次,通过评论的采集和情感分析,可以发现用户需求和关注点,从而改进产品或服务。根据分析结果,可以识别出用户的喜好、痛点和期望,为品牌或个人提供改进和创新的方向。

此外,微博热点评论采集和情感分析还可以用于舆情监测和危机管理。通过实时收集和分析评论,可以快速掌握公众对于李佳琦事件的态度和情感动向,及时回应和应对负面信息,避免危机的进一步扩大。

最后,基于Python的评论采集和情感分析技术具备高效、灵活和可定制的优势。使用Python编程语言,可以自动化地收集和处理大量评论数据,并利用现有的自然语言处理库和深度学习模型进行情感分析。这为研究者、营销人员和舆情分析师提供了强大的工具,帮助他们更好地理解公众意见,并作出相应的决策和行动。

1.3相关技术

  1. Python爬虫技术:requests、Beatifuisoup、re、json
  2. 数据分析技术:pandas
  3. 情感分析技术:cnsenti
  4. 可视化技术:pyecharts

2实现

2.1环境搭建

  1. 安装Python 3.7编译器
  2. 安装pycharm代码编辑器
  3. 使用cmd命令安装所需要的库,安装命令为:pip install -i Simple Index +库名,所需要的库包括:requests/lxml/bs4/pandas/pyecharts/cnsenti,安装好库之后,需要降低urllib3的库版本为1.26.15,使用pip安装即可。
  4. 打开pycharm,创建一个项目,命名为data
  5. 点greate即可

2.2爬虫实现

首先打开微博,定位所需要爬取的内容。搜索话题‘李佳琦带货怼网友’

由下图可知,我们需要爬的数据包括图中框中地方:

通过右键--审查元素,可以定位到博文的内容信息和网页地址

可以使用Beatifulsoup库解析网页数据,定位爬取对应的博文内容。

具体代码为:

其中需要添加headers和cookies,以及设置ip代理,防止网站反爬:

其中cookie和headers可以在浏览器中的网络---xhr---选择一个链接---标头中找到,按F12即可打开查看,如下图:

博文采集即可完成。

采集完博文,需要对每一条博文的评论进行采集,需要定位找到每一条博文的评论内容,具体步骤如下:

  1. 点击某一条博文评论展开,点击查看更多评论,如下图

注意下图网址中两个框的位置,一个是发布的博文的用户id一个是这个用户的微博编码,这两个是后面构造爬取评论内容的关键。

找到这个网址,即可发现这个网址存放完整的博文内容信息,包括博文内容、发布时间、地址、用户名等信息,详细可以点击预览查看。

  1. 每一条博文评论采集,点开所有评论。

其中max_id: 143543321057511是最新页码,uid: 3979870522是用户ID,只有有这两样东西就能采集所有评论。

采集评论通过字典键值对获取。

致此,爬取某个话题下所有博文及评论的实现就此完成,最后将数据存储为csv,存储代码为:

采集结果为:

2.3数据处理实现及情感分析实现

致采集好评论和博文数据,我们要对博文和评论进行整合,将他们中一些话题标志清洗掉,最后融合成一张表。首先对DataFrame中的'微博全文'、'评论内容'列进行了正则表达式替换操作,去除了字符串中的'#.*?#'部分。然后,通过重命名列名的方式,将'发帖人昵称'改为'昵称','微博全文'改为'内容','发文时间'改为'时间',并生成了一个新的DataFrame df1。

同样地,对data DataFrame中的'评论者昵称'、'评论内容'、'评论创建时间'列进行了正则表达式替换和列名重命名操作,生成了一个新的DataFrame data1。

最后,将df1和data1两个DataFrame按行合并,得到一个新的DataFrame li。接着,将li和da1按行合并,得到最终的DataFrame li1,并打印出来。具体代码为:

最后处理后运行结果为下图,得到5155条数据,3列的数据集:

接下来就是对这数据集,也就是所有评论和博文进行情感分析。导入了cnsenti库中的Sentiment类。然后,通过senti = Sentiment()实例化一个情感分析器。

接下来,将DataFrame li1 转换为列表形式,并遍历每条评论。在循环中,使用senti.sentiment_count(text[1])对评论进行情感分析,得到结果 result。然后,根据积极词和消极词的数量判断情感倾向,如果积极词数减去2大于消极词数,则判定为积极情感;如果积极词数减去2小于消极词数,则判定为消极情感;否则判定为中性情感。

将判断结果添加到text列表中,并将情感标签存储在list0列表中。最后,将list0赋值给li1['情感分析']列,并打印出最终的DataFrame li1。

具体代码为:

运行结果为,其中words为分词数量,sentences为句子数量,pos为积极词数量,neg为消极词数量:

完成情感分析后,接下来就是可视化,需要筛选日期进行分析,查看不同时间下的情感变化趋势。

首先使用pd.to_datetime()将DataFrame li1中的时间列转换为日期时间类型。

然后,筛选出9月10日至9月14日之间的数据,通过设置起始日期和结束日期,并利用条件筛选生成新的DataFrame filtered_df。接着,打印出筛选后的结果。

接下来,对于特定日期进行筛选。使用pd.Timestamp()指定目标日期,例如9月24日和10月24日,并通过比较日期部分筛选出相应日期的数据,生成新的DataFrame filtered_df1和filtered_df2。打印出筛选后的结果。

最后,对filtered_df进行处理,将时间列转换为字符串类型并截取日期部分。然后,按情感分析和时间进行分组计数,并通过.reset_index()重置索引,得到聚合后的DataFrame filtered_df3。打印出最终的结果。

运行结果为:

10月24日情感分析结果:

9月24日情感分析结果:

9月10日到9月14日情感分析结果

最后,使用pyecharts库中的Line类创建了一个折线图,并设置了x轴和y轴的数据。

在折线图中,通过.add_xaxis()方法设置x轴数据为筛选后的中性情感评论的时间列表。然后,使用.add_yaxis()方法分别添加中性、消极和积极情感评论的数量数据,并设置平滑曲线、线条样式和颜色。

接下来,通过.set_global_opts()方法设置全局配置,包括标题、x轴和y轴的名称。

最后,使用.render()方法将折线图渲染为HTML文件,并保存为"line_chart.html"。

运行结果为:

主要代码如下:

这篇关于基于Python的微博热点李佳琦忒网友话题的评论采集和情感分析的方法,利用情感分析技术对评论进行情感倾向性判断的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/645852

相关文章

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

关于集合与数组转换实现方法

《关于集合与数组转换实现方法》:本文主要介绍关于集合与数组转换实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Arrays.asList()1.1、方法作用1.2、内部实现1.3、修改元素的影响1.4、注意事项2、list.toArray()2.1、方

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

python常用的正则表达式及作用

《python常用的正则表达式及作用》正则表达式是处理字符串的强大工具,Python通过re模块提供正则表达式支持,本文给大家介绍python常用的正则表达式及作用详解,感兴趣的朋友跟随小编一起看看吧... 目录python常用正则表达式及作用基本匹配模式常用正则表达式示例常用量词边界匹配分组和捕获常用re

python实现对数据公钥加密与私钥解密

《python实现对数据公钥加密与私钥解密》这篇文章主要为大家详细介绍了如何使用python实现对数据公钥加密与私钥解密,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录公钥私钥的生成使用公钥加密使用私钥解密公钥私钥的生成这一部分,使用python生成公钥与私钥,然后保存在两个文