【自嗨笔记#2】微博疫情舆情分析---舆情分析部分_Schoolchild_L的博客-程序员秘密

技术标签: 爬虫  python  数据分析  自嗨笔记  

[ 自嗨笔记#2] 微博疫情舆情分析—舆情分析部分

利用前面抓取的信息,开始分析,这里可以说都是看到大佬的文章,模仿加上自己的想象加工,确实不太了解实际业务需求,如果有业内朋友看到,欢迎帮我指正,也欢迎大家帮我出出主意,有时间会更新进文章里

Previously![ 自嗨笔记#1] 微博疫情舆情分析—爬取部分

一、观察数据,整理
在这里插入图片描述
这里评论2200条非空,其他的为2257条非空,估计是用表情评论的被过滤了,其他目前看不出问题

二、建立需求

  1. 微博正文词云,以及评论词云
  2. 利用snowNLP,情感分析
  3. 尝试利用已有信息,挖掘深度规律

三,代码实现

  • 正文词云
    在这里插入图片描述
  • 评论词云
    在这里插入图片描述
  • snowNLP分析
def snownlp_c(element):
    try:
        sn=SnowNLP(element)
        return round(sn.sentiments,1)
    except:
        pass
    
comment['snownlp']=comment['评论正文'].transform(snownlp_c)-0.5 #以0.5为分界线,处理为[-0.5,0.5]的区间,0.5为正向
# snowNlp
a = comment.groupby(by=['snownlp'])['评论正文'].count().reset_index()
print(a)

在这里插入图片描述
在这里插入图片描述
其实这里用柱状图更好些
在这里插入图片描述

  • 微博作者性别统计
    在这里插入图片描述
a2=news.groupby(by=['性别'])['作者id'].count().reset_index()
plt.figure()
plt.pie(a2['作者id'],labels=['女','男'],
        labeldistance = 1.1,autopct = '%3.1f%%',shadow = False,
        startangle = 90,pctdistance = 0.6)
plt.title('微博作者性别统计',fontproperties='SimHei')
plt.show()
  • 评论性别统计

在这里插入图片描述

a1=comment.groupby(by=['性别'])['id'].count().reset_index()
plt.figure()
plt.pie(a1['id'],labels=['女','男'],
        labeldistance = 1.1,autopct = '%3.1f%%',shadow = False,
        startangle = 90,pctdistance = 0.6)
plt.title('评论区性别统计',fontproperties='SimHei')
plt.show()
  • 微博时间范围
max_date = news['发布时间'].max()
min_date = news['发布时间'].min()
print('时间范围',max_date,min_date)

在这里插入图片描述

  • 发布疫情相关最多的微博id信息(前5)
n=news.groupby(by=['昵称'])['新闻id'].count().reset_index().sort_values(by='新闻id',axis=0,ascending=False).head()
print(n)

在这里插入图片描述

  • 平均评论的时间
    在这里插入图片描述
    我在三月时做过一次,当时回复是20分钟左右,回复时间变长,可能是受到大家复工的影响
dt['互动时间']=dt['时间日期']-dt['发布时间']
print(dt['互动时间'].mean())
  • 评论积极的人以及评论内容
m=comment.groupby(by='id')['评论正文'].count().reset_index().sort_values(by='评论正文',axis=0,ascending=False).head()
print(m)
# s=comment['id'].isin(m['id'])
# print(comment.loc[comment['id'].isin(m['id']),['评论正文','评论昵称','新闻id','时间日期']]) #再分组,实际效果不如for
for i in m['id']:
    print(comment.loc[comment['id'] == i,['评论正文','评论昵称','新闻id','时间日期']])

在这里插入图片描述

  • 微博发布时间的分布
    在这里插入图片描述

  • 评论时间的分布
    在这里插入图片描述

  • 微博发布时间与影响力关系
    影响力:转发数+评论数+点赞数
    在这里插入图片描述

相关文章
[ 自嗨笔记#1] 微博疫情舆情分析—爬取部分
[ 自嗨笔记#3] 后浪 评论分析
[ 自嗨笔记#4] 百度文库付费文章-----网页分析

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Schoolchild_L/article/details/105893181

智能推荐

[ESP32/ESP8266专题笔记-4] ESP32开发板-Micropython-TCP 远程通信_esp32延时函数_小树笔记的博客-程序员秘密

ESP32开发板-Micropython-TCP 远程通信控制LED操作1 硬件篇,确定连接LED的GPIO口2 软件篇(1)ESP32能控制灯亮灭from machine import Pin # 导入Pin模块from utime import sleep_ms #导入延时函数def led(control_cmd): LED = Pin(22,Pin.OUT) # 构建 LED 对象,GPIO22 输出 if control_cmd == "灯亮":

《C程序员从校园到职场》第3章 程序的样式_人民邮电出版社有限公司的博客-程序员秘密

第3章 程序的样式 在《高质量程序设计指南(C++/C语言)》中,作者说:可以把程序的版式比喻为“书法”,好的“书法”可以让人对程序一目了然,看得兴致勃勃。确实,我们一打开程序,首先看到的便是程序的排版,我们的第一印象便是程序写得是工整还是凌乱。都说第一印象很重要,为了给大家留下好的第一印象,我们一定要注重程序的版式。 此外,好的注释能够帮助读者更快地理解程序,提高工作效率。也许是因为工作比较...

javaweb敏感词过滤_dillon_no1的博客-程序员秘密

javaweb敏感词过滤1.装饰模式2.代理模式真实对象代理对象代理模式实现方式:1.静态代理:有一个类文件描述代理模式2.动态代理:在内存中形成代理类实现步骤:代理对象与真实对象实现相同的接口代理对象 = Proxy.newInstance使用代理对象调用方法。增强方法增强方式:1.增强参数列表2.增强返回值类型3.增强方法体执行逻辑...

Spring Boot——自定义多个拦截器(HandlerInterceptor)配置方法与执行顺序_spring handlerinterceptor 多个实现_Starzkg的博客-程序员秘密

执行顺序源代码拦截器类package com.jd.m.tg.interceptor;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Component;import org.springframework.web.serv...

[转载+电子书下载]《程序员修炼之道》 笔记与感想_yuxiaoyu.的博客-程序员秘密

[转载]《程序员修炼之道 》笔记与感想1 我的源码让猫给吃了不要寻找借口,从自身找原因2 软件的熵一句话:不以善小而不为,勿以恶小而为之.从初期就要做好规范,不要因为是poc这样的前提而放松对代码的规范,现在的项目就有这种问题,初期的时候有人认为(自己也有这种想法)等到以后正式开发的时候再规范,而往往还未到正式开发,到处出现不规范的东西.加上拷贝粘贴的大法,亡羊补牢都晚了.这就是所谓破...

java多线程之AtomicLong原子类(JDK8)_atomiclong java_-夏夜凉月-的博客-程序员秘密

引言有的同学可能会问这个问题,有了Long类型,为什么还要弄一个AtomicLong类出来?因为在32位的操作系统中,64位的Long类型变量会被jvm拆分为两个32位的来操作,因此不具备原子性。而AtomicLong类型可以保证原子性。1、AtomicLong介绍AtomicInteger, AtomicLong和AtomicBoolean这3个基本类型的原子类的原理和用法相似。本章以J...

随便推点

Python生成随机字符串SECRET_KEY_guohewei123的博客-程序员秘密

# -*- coding=utf8 -*-import osimport base64import randomimport timeimport hashlib# 方法一tmp = os.urandom(44)secret_key = base64.b64encode(tmp)print(secret_key)# 方法二def get_random_secret_ke...

Linux spi驱动分析(二)----SPI核心(bus、device_driver和device)_辉辉308的博客-程序员秘密

本文作为SPI的第二篇文章,讲述了设备驱动模型等。包括:1、spi总线注册。2、spi驱动注册。3、spi设备注册。4、spi传输函数。

AC自动机学习笔记_wa自动机是什么意思_Tag_king的博客-程序员秘密

不敢去做一件事就会一直觉得它很难。。以前一直觉得AC自动机应该超难写,学了以后发现实在太好写了。。AC自动机的fail指针与KMP算法的next数组是极为相似的,都是通过这些来减少冗余的扫描,所以我也把AC自动机的fail指针名字直接开成next了。。AC自动机与KMP的不同在于KMP是单模式串匹配,AC自动机是多模式串匹配,所以AC自动机可以理解为就是在trie树上加上一些next指

一个NODE_ENV 引发的血案_annuobin1120的博客-程序员秘密

1 表象 控制台报错截图没有完整的截下来,其实右边行号并没有具体的行号, 显示为payment-809e8ff.js 1很明显 这是 js语法错误 但是当点击开里面显示的是html内容 第一行的 红色错误首先第一眼看到这样的问题 直观感受是这问题 基本无法定位但是实际上仔细看下可以发现 这个html并不是我们引用这个js页面的html页面, 而是跳转到了默认的404,当我们再...

使用Bundle在Activity之间传递数据_liuzhidong123的博客-程序员秘密

Bundle可能过put****()方法添加各种类型的数据,Intent也可以通过putExtras(Bundle)将数据添加进去,然后通过startActivity()跳到下一下Activity的时候就把数据也传到下一个Activity了。package com.intent;import android.app.Activity;import android.content.Inte

Intel SGX Edger8r_dianyangshu0904的博客-程序员秘密

“The Edger8r tool ships as part of the Intel Software Guard Extensions SDK. It generates edge routines by reading a user-provided Enclave Description Language (EDL) file. These edge routines def...

推荐文章

热门文章

相关标签