图片来源:豆瓣

最近由腾讯视频、爱奇艺联合出品综艺《哈哈哈哈哈》(又名五哈)话题不断,节目中由邓超、陈赫、鹿晗组成的兄弟旅行团,开启了一段由东到西穿越中国的真实旅行。作为首个双平台联播的超级网综,给广大观众带来了无限欢乐,妥妥登上了综艺热搜榜第一。

腾讯视频综艺热搜TOP3

本文通过爬取腾讯视频《哈哈哈哈哈》47687条弹幕,进行可视化分析和情感分析。

01

数据获取

《哈哈哈哈哈》目前已播出10期,本文爬取了第10期上下两篇弹幕。弹幕数据爬虫在往期原创文章中已详细讲解,本文不做赘述,以下给出完整代码:

#-*- coding = uft-8 -*-import requests
import json
import time
import pandas as pddf = pd.DataFrame()
for page in range(15, 3973, 30):headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}url = 'https://mfm.video.qq.com/danmu?otype=json&timestamp={}&target_id=6384458060%26vid%3Dd0035ka5c02&count=80'.format(page)print("正在提取第" + str(page) + "页")html = requests.get(url,headers = headers)bs = json.loads(html.text,strict = False)  #strict参数解决部分内容json格式解析报错time.sleep(1)#遍历获取目标字段for i in bs['comments']:name = i['opername']    #昵称content = i['content']  #弹幕upcount = i['upcount']  #点赞数user_degree =i['uservip_degree'] #会员等级timepoint = i['timepoint']  #发布时间comment_id = i['commentid']  #弹幕idcache = pd.DataFrame({'用户名':[name],'弹幕':[content],'会员等级':[user_degree],'发布时间':[timepoint],'弹幕点赞':[upcount],'弹幕id':[comment_id]})df = pd.concat([df,cache])
df.to_csv('haha-1.csv',encoding = 'utf-8')
print(df.shape)

02

数据处理

1.数据读取并预览

首先,将两个弹幕csv文件进行数据合并,采用concat方法。

import pandas as pd
import numpy as npdf1 = pd.read_csv("/弹幕/腾讯/哈哈哈哈哈/haha-1.csv")
df1["期数"] = "10期上"
df2 = pd.read_csv("/弹幕/腾讯/哈哈哈哈哈/haha-2.csv")
df2["期数"] = "10期下"
df = pd.concat([df1,df2])
df.sample(10)

抽样10条弹幕数据,预览效果如下:

2.查看数据信息

df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 47687 entries, 0 to 21820
Data columns (total 8 columns):#   Column      Non-Null Count  Dtype
---  ------      --------------  ----- 0   Unnamed: 0  47687 non-null  int64 1   用户名         13433 non-null  object2   弹幕          47687 non-null  object3   会员等级        47687 non-null  int64 4   发布时间        47687 non-null  int64 5   弹幕点赞        47687 non-null  int64 6   弹幕id        47687 non-null  int64 7   期数          47687 non-null  object
dtypes: int64(5), object(3)
memory usage: 3.3+ MB

发现数据存在以下几个问题:

(1)字段名称可调整

(2)Unnamed、弹幕id字段多余

(3)用户名字段有缺失值,可填充

(4)发布时间字段类型需要调整

3.数据清洗

#重命名字段
df = df.rename(columns={'用户名':'用户昵称','弹幕':'弹幕内容','发布时间':'发送时间','评论点赞':'弹幕点赞','期数':'所属期数'})#过滤不需要的字段
df = df[["用户昵称","弹幕内容","会员等级","发送时间","弹幕点赞","所属期数"]]#缺失值填充
df["用户昵称"] = df["用户昵称"].fillna("无名氏")

清洗后,数据预览如下:

03

数据可视化

1.弹幕在讨论些什么

通过对4万+弹幕制作词云图,我们发现,弹幕中出现频率较高的词汇有「哈哈哈、鹿晗、晨艺、虞书欣」等。这综艺的初衷,是让观众在看节目的过程中频繁大笑,由弹幕可知,效果还是很明显的。鹿晗在这一期表现亮眼,躺赢刺杀游戏,被很多观众夸赞。

#绘制词云图
text1 = get_cut_words(content_series=df['弹幕内容'])
stylecloud.gen_stylecloud(text=' '.join(text1), max_words=200,collocations=False,font_path='simhei.ttf',icon_name='fas fa-video',size=653,#palette='matplotlib.Inferno_9',output_name='./haha.png')
Image(filename='./haha.png') 

2.弹幕里都提到了谁

鹿晗被观众提及7329次,王晨艺3222次,张颜齐1632次。鹿晗的吸粉体质为这个综艺带来了较大的流量,而陈赫在最新一期的节目中似乎被一些观众遗忘。

df8 = df["人物提及"].value_counts()[1:11]
print(df8.index.to_list())
print(df8.to_list())
c = (Bar(init_opts=opts.InitOpts(theme=ThemeType.WALDEN)).add_xaxis(df8.index.to_list()).add_yaxis("",df8.to_list()) .set_global_opts(title_opts=opts.TitleOpts(title="人物提及次数",subtitle="数据来源:腾讯视频 \t制图:菜J学Python",pos_left = 'left'),xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=13)), #更改横坐标字体大小yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=13)), #更改纵坐标字体大小).set_series_opts(label_opts=opts.LabelOpts(font_size=16,position='top')))
c.render_notebook()

我们分别对六位主要提及演员进行词云图绘制,发现他们的人缘是真的好,几乎看不到负面的评价。陈赫的外号还挺多:赫赫、赫哥,不做词云我还不知道呢,看来J哥要补充知识点了。

3.谁是弹幕发射机

每天都是小春日和共发射弹幕158条,遥遥领先其他弹幕党,名副其实的弹幕发射机。想太多de猫紧随其后,发射了97条弹幕,如果大家还有印象的话,他(她)还是《令人心动的offer》第2季弹幕发射机。

df8 = df["用户昵称"].value_counts()[1:11]
df8 = df8.sort_values(ascending=True)
df8 = df8.tail(10)
print(df8.index.to_list())
print(df8.to_list())
c = (Bar(init_opts=opts.InitOpts(theme=ThemeType.WALDEN,width="1100px",height="500px")).add_xaxis(df8.index.to_list()).add_yaxis("",df8.to_list()).reversal_axis() #X轴与y轴调换顺序.set_global_opts(title_opts=opts.TitleOpts(title="弹幕发送数量TOP10",subtitle="数据来源:腾讯视频 \t制图:菜J学Python",pos_left = 'left'),xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=13)), #更改横坐标字体大小yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=13)), #更改纵坐标字体大小#yaxis_opts=opts.AxisOpts(axislabel_opts={"rotate":40})#更改纵坐标字体大小).set_series_opts(label_opts=opts.LabelOpts(font_size=16,position='right')))
c.render_notebook()

我们来看看弹幕发射机讨论了些啥,通过弹幕点赞数降序排列,筛选出点赞数最多的10条弹幕,弹幕内容几乎全为王勉相关内容,死忠粉无疑了。

df_first = df[df["用户昵称"]=="每天都是小春日和"]
df_first.sort_values('弹幕点赞',inplace=True,ascending=False)
df_first[:10]

04

情感分析

通过运用百度开源NLP对弹幕内容进行情感分值计算,我们发现,《哈哈哈哈哈》第1季情感分值整体高于0.6,观众表现出较高的积极倾向。情感分值变化趋势则表现为视频播放开始和中期高,播放快结束时有所下滑。

import paddlehub as hub
#这里使用了百度开源的成熟NLP模型来预测情感倾向
senta = hub.Module(name="senta_bilstm")
texts = df['弹幕内容'].tolist()
input_data = {'text':texts}
res = senta.sentiment_classify(data=input_data)
df['情感分值'] = [x['positive_probs'] for x in res]
#重采样至15分钟
df.index = df['发送时间']
data = df.resample('15min').mean().reset_index()
import pyecharts.options as opts
from pyecharts.charts import *
from pyecharts.globals import ThemeType
c = (Line(init_opts=opts.InitOpts(theme=ThemeType.WALDEN)).add_xaxis(data["发送时间"].to_list()).add_yaxis('情感倾向', list(data["情感分值"].round(2)), is_smooth=True,is_connect_nones=True,areastyle_opts=opts.AreaStyleOpts(opacity=0.5))#.add_yaxis('弹幕点赞',list(df["弹幕点赞"].round(2)), is_smooth=True,areastyle_opts=opts.AreaStyleOpts(opacity=0.5))#.add_yaxis('会员等级',list(df["会员等级"].round(2)), is_smooth=True,areastyle_opts=opts.AreaStyleOpts(opacity=0.5)).set_global_opts(title_opts=opts.TitleOpts(title="情感倾向",subtitle="数据来源:腾讯视频 \t制图:菜J学Python",pos_left = 'left')))
c.render_notebook()
-----------------
长按识别下方二维码,并关注公众号1.回复“PY”领取1GB Python数据分析资料2.回复“BG”领取3GB 名企数据分析报告

Python分析《哈哈哈哈哈》4万弹幕相关推荐

  1. 我们用Python分析了B站4万条数据评论,揭秘本山大叔《念诗之王》大热原因!...

    来源:恋习Python 本文约2000字,建议阅读10分钟. 我们通过Python大法通过获取B站:[春晚鬼畜]赵本山:我就是念诗之王!4万条数据评论,与大家一起看看其背后火起来的原因. 1990年本 ...

  2. 抗击肺炎,我们能做到的,就是别让爱隔离——python分析B站三个视频弹幕内容,云图数据。

    武汉是个美丽的城市,但这个城市现在生病了. "人之初,性本善" 美丽的武汉生病了,一场大病,有钱的人能捐钱,而我,一直陪着你们吧,武汉加油 ! 有人说"武汉人咋啥也吃&q ...

  3. 用Python分析《令人心动的offer2》的13万条弹幕,网友们都在吐槽什么?

    公众号后台回复"图书",了解更多号主新书内容 作者:J哥 来源:菜J学Python 前言 大家好,我是J哥. 综艺,是我们劳累了一天的放松方式,也是我们饭后的谈资.看着自己喜欢的综 ...

  4. Python分析《青你2》67万条弹幕,看看有没有你Pick的小姐姐

    ** CDA数据分析师 出品  ** 作者:泽龙.Mika **数据:真达  ** **后期:泽龙 ** 今天我们来聊一聊选秀节目<青春有你2>. Show me data,用数据说话 淡 ...

  5. Python 分析 10 万条弹幕告诉你:《古董局中局2》到底好不好看?

    作者 | 泽龙.Mika 来源 | CDA数据分析师 今天我们聊一聊<古董局中局2> 点击下方视频,先睹为快: 上周日,有一部鉴宝题材的剧静悄悄上线了,那就是夏雨.魏晨等主演的古董局中局系 ...

  6. 实例 | 分析38万条数据,用Python分析保险产品交叉销售和哪些因素有关

    公众号后台回复"图书",了解更多号主新书内容  CDA数据分析师 出品   作者:真达.Mika 数据:真达   [导读] 今天教大家用Python分析保险产品交叉销售和哪些因素有 ...

  7. Python分析《哈哈哈哈哈》47687条弹幕,看看大家都在说些啥!

    图片来源:豆瓣 最近由腾讯视频.爱奇艺联合出品综艺<哈哈哈哈哈>(又名五哈)话题不断,节目中由邓超.陈赫.鹿晗组成的兄弟旅行团,开启了一段由东到西穿越中国的真实旅行.作为首个双平台联播的超 ...

  8. Python分析《哈哈哈哈哈》第11期弹幕数据

    Python分析<哈哈哈哈哈>第11期弹幕数据 本文针对<哈哈哈哈哈>第11期弹幕数据进行分析,提取弹幕中对五哈成员的提及次数.话不多说,上代码. 一.解析URL提取弹幕 # ...

  9. 使用Python抓取猫眼近10万条评论并分析

    <一出好戏>讲述人性,使用Python抓取猫眼近10万条评论并分析,一起揭秘"这出好戏"到底如何? 黄渤首次导演的电影<一出好戏>自8月10日在全国上映,至 ...

  10. 《一出好戏》讲述人性,使用Python抓取猫眼近10万条评论并分析,一起揭秘“这出好戏”到底如何?

    视频课程链接:https://edu.csdn.net/course/detail/9348 黄渤首次导演的电影<一出好戏>自8月10日在全国上映,至今已有10天,其主演阵容强大,相信许多 ...

最新文章

  1. 通过Python在Windows或Linux上快速搭建HTTP服务器
  2. 架构之美(china-pub全国独家首发)
  3. 使用LS2J技术在LotusScript中使用Java
  4. spring4.x注解概述
  5. python、numpy,keras,tensorflow等函数用法积累(持续更新)
  6. USequencer系列 |初识
  7. springsecurity oauth2_跟OAuth2杠上了,老师,我要学全套的!
  8. 【Cocos2d-x游戏开发】解决Cocos2d-x中文乱码的三种方法
  9. [haoi2011]向量
  10. Linux 64位的操作系统版本,查看cpu 以及linux和windows系统是32为还是64位?+查看操作系统版本...
  11. 管理感悟:计划是给谁看的
  12. 云计算示范项目_“云计算和大数据”重点专项2018年度项目申报指南
  13. 百度认证(深度学习初级工程师)考试题2
  14. 论文的字数是怎么算的
  15. idea解决Cannot Download Sources
  16. 如何根据商品条码查询商品名称和价格信息?
  17. 超星未来:让智能驾驶更简单! | 百万人学AI评选
  18. 微信小程序--------商品物流跟踪模板
  19. (转载)关于C#的fixed
  20. Vue3通过axios来读取本地json文件

热门文章

  1. python包导入方式_python导入包的方法有哪些
  2. 《缠中说禅108课》24::MACD 对背弛的辅助判断
  3. web前端期末大作业 基于HTML+CSS家乡主题毕业设计源码
  4. 音频处理-2 WAV格式
  5. 计算机磁盘管理 移动硬盘创建盘符,电脑中插入移动硬盘后无法显示分区盘符如何解决...
  6. java毕业设计老师评语_java毕业设计_springboot框架的教师评价评教系统
  7. ubuntu codename
  8. 凤姐的原创诗歌 思想的悲哀
  9. 深圳神州行今日起单向收费 零月租成套餐亮点
  10. Typora使用技巧之插入图片及图片上传