B站2020跨年晚会,被弹幕刷屏的节目是哪个,发弹幕最多的人又是谁?
作者 | CDA数据分析师
本以为薛之谦粉丝会觉得不妥给C君留言指正,没想到却是被数据分析爱好者从内容上提出了严厉的批评。
垃圾标题党。。。我以为收集的数据是与春晚观看人数,成本之类的对比,结果搞了个收集评论。还起了个这个的标题,误人子弟。
我们听取了这位朋友的意见,首先就让我们来看看B 站晚会跟各卫视晚会的收视对比:
1
收视率对比播放率
截至2020年1月7日,B站跨年晚会在B站评分为9.9,播放量达6900万。而据CSM统计,湖南卫视跨年晚会未去重播放量约为两亿、江苏卫视为3,456万、浙江卫视为3,314万。
这么看起来,第一次办跨年晚会的 B 站成功挤进前三名,实力不容小觑!
2
春晚播放对比B站晚会
如果再放到跟春晚比比的话。2019年春晚通过电视、广播、互联网、社交媒体多渠道多终端传播,海内外收视观众总规模达11.73亿人。
在老大哥春晚面前,B 站还是个弟弟,不过C君觉得春晚很多时候都是大家开着在那儿当背景音乐的,要的就是那个氛围。
好啦,收视率播报完毕。
接下来,还是说回这位听众的回复:
垃圾标题党。。。我以为收集的数据是与春晚观看人数,成本之类的对比,结果搞了个收集评论。还起了个这个的标题,误人子弟。
末尾这句「误人子弟」,必须要在这里纠正一下。
数据≠数字
C君相信这也是很多朋友的一个误区,就是:数据就是数字。
但其实在数据分析所指的数据,不只是观看人数1234万,收视率12.34%,或者成本1234亿,除了这些阿拉伯数字还包括文本数据,像是评论,弹幕,都是非常好的数据。
而且C君相信 B 站这场跨年晚会做的这么成功的原因也是在这方面的数据分析做的特别好,因为你可以通过播放量看到某某明星视频特别火,但是具体火的梗是什么,你得去分析文本数据,然后结合这些梗来做设计更能打动观众。
这一期,C君特意加了一些代码讲解,顺便也给各位春晚导演们上一堂基础 Python 数据分析课,我们看看 B 站是怎么戳中观众内心的!
3
弹幕最多的节目是?
首先,我们先看结果。这是我们对 B 站跨年晚会《第一章:日落》的数据分析可视化展示:
大家猜猜弹幕最多的节目是什么?
公布答案:
弹幕最多的节目是《钢铁洪流进行曲》。第二多的是演奏名侦探柯南主题曲的时候。
4
弹幕最多的时候,大家在说什么?
比如「红」,比如「中国」,比如「云飞兄」,比如「此生无悔入华夏」等等。
那整个第一章,最多的弹幕是什么呢?
最多的词有像「吸吸」、「红」、「补课」
「吸吸」是什么时候出现的呢?
我们可以看到是2400秒的时候。那会儿正是冯提莫唱《好运来》的时候。
5
谁最喜欢发弹幕?
我们看到他发的内容,是「基德」「琴酒」「柯南」等等,我基本就可以判断他是个柯南迷。
我们看一下他的主页,你可以看到确实是看了晚会,投很多币,然后还收藏着柯南的视频。
那这些到底怎么实现的?
6
我们来打开软件实操看一下。比如实现词云的方法:
# 文本分析工具包
import pandas as pd
import collections
from bs4 import BeautifulSoup
import os
import time
# 画图工具包
from pyecharts.charts import Line
import pyecharts.options as opts
from pyecharts.commons.utils import JsCode
from pyecharts.charts import Page
from pyecharts.charts import WordCloud
from pyecharts.globals import SymbolType
from pyecharts.globals import ThemeType
# 分词工具包
import jieba
import jieba.analyse
# 文件路径
data_path='HTMLFiles/chapter_01/'
danmu_files = os.listdir(data_path)
# 获取弹幕
def get_danmu(danmu_file):
path = data_path+danmu_file
htmlfile = open(path, 'r', encoding='utf-8')
htmlhandle = htmlfile.read
soup = BeautifulSoup(htmlhandle, 'lxml')
results = soup.find_all('d')
# print(results)
# exit
# p 标签的数据全部内容
comments_info = [info.attrs['p'] for info in results]
# 分别取出所有数据内容
danmu_time_from_begin = [info.attrs['p'].split(',')[0] for info in results]
danmu_time_to_send = [info.attrs['p'].split(',')[4] for info in results]
danmu_user_id = [info.attrs['p'].split(',')[6] for info in results]
danmu_id = [info.attrs['p'].split(',')[7] for info in results]
comments = [comment.text for comment in results]
# 将数据内容直接存入数据库或者以 pandas DataFrame 的形式打印出来
comments_dict = {'comments': comments, 'danmu_time_from_begin': danmu_time_from_begin, 'danmu_user_id':danmu_user_id,'danmu_time_to_send': danmu_time_to_send, 'danmu_id': danmu_id}
df = pd.DataFrame(comments_dict)
return df
def get_all_danmu:
all_df = pd.DataFrame
for danmu_file in danmu_files:
df = get_danmu(danmu_file)
all_df = pd.concat([all_df, df], ignore_index=True)
print('全部弹幕数据数据加载中……')
return all_df
# 弹幕内容分词
df = get_all_danmu
# print(df.head)
# df['comments']
# exit
def bili20_wordcloud(df,mytitle='B 站2020跨年晚会弹幕词云图'):
# 加载自己的词库
jieba.load_userdict('CSVFiles/danmu_words_dict.txt') #filename为文件路径
# jieba.analyse.set_stop_words('CSVFiles/stop_words.txt')
stopwords = [line.strip for line in open('CSVFiles/stop_words.txt').readlines]
# print(stopwords)
# exit
# stopwords = ['啊啊啊']
replace_words={'吸':'吸吸','报到':'报道','二号':'2号','红红':'红',
'周董':'周杰伦','牛批':'牛逼','牛b':'牛逼','牛B':'牛逼','nb':'牛逼','NB':'牛逼','流批':'牛逼','牛':'牛逼','太牛':'牛逼','牛哔':'牛逼',
'゜':'(゜ -゜)つロ 乾杯~','乾杯':'(゜ -゜)つロ 乾杯~','bilibili':'B站','b站':'B站','打Call':'打call','打CALL':'打call','打电话':'打call'
}
# 保存全局分词,用于词频统计
segments =
for index, row in df.iterrows:
content = row[0]
# print(content)
#TextRank 关键词抽取,只获取固定词性
words = jieba.__lcut(content)
# words = jieba.analyse.textrank(content, topK=20,withWeight=False)
splitedStr = ''
for word in words:
word = word.strip
#停用词判断,如果当前的关键词不在停用词库中才进行记录
if word in replace_words: # 将某些在文中人物的昵称替换成正式的名字
word = replace_words[word]
if word not in stopwords:
# 记录全局分词
segments.append({'word':word, 'count':1})
splitedStr += word + ' '
# 将结果数组转为df序列
dfSg = pd.DataFrame(segments)
# 词频统计
seg_count = dfSg.groupby('word')['count'].sum
seg_count = pd.DataFrame(seg_count)
seg_count.sort_values(by='count', ascending=False, inplace=True)
seg_count.reset_index(inplace=True)
# print(seg_count)
# exit
# word = WordCloud(init_opts=opts.InitOpts(theme=ThemeType.BUILTIN_THEMES))
word = WordCloud(init_opts=opts.InitOpts)
word.add("", [*zip(list(seg_count['word']), list(seg_count['count']))], shape=SymbolType.ARROW ,word_size_range=[20, 100])
word.set_global_opts(title_opts=opts.TitleOpts(title=mytitle),
toolbox_opts=opts.ToolboxOpts)
print('词云图已经生成')
return word
word_all_danmu = bili20_wordcloud(df,mytitle='B 站2020跨年晚会弹幕词云图')
B 站跨年晚会第1章弹幕的数据分析,今天就聊到这里。
如果你对其他什么话题感兴趣,欢迎留言告诉我们。
B站2020跨年晚会,被弹幕刷屏的节目是哪个,发弹幕最多的人又是谁?相关推荐
- 大数据解读 | B站2020跨年晚会如何看哭我们?
作者 | CDA数据分析师 2020 年的跨年之夜,你是怎么过的?有多少人是跟我一样,窝在家里看跨年晚会呢?而你看的又是哪一家卫视的--江苏的,湖南的,安徽的,还是北京的--估计像我一样看B站(哔哩哔 ...
- b站2020用户画像_B站2020年度动画大选来袭!论引战,还是要看B站!
原标题:B站2020年度动画大选来袭!论引战,还是要看B站! bilibili2020年度动画大选正式来袭!可能刚刚关注B站的小伙伴不太清楚这个啥,这个活动其实就是当年的B萌升级版,从单纯的角色人气比 ...
- python b站日排行榜_B站2020年每周必看热门视频数据盘点!Python数据分析
1.数据抓取 数据集的获取是我们进行数据分析的第一步.现在获取数据的主要途径一般为:现成数据:自己写爬虫去爬取数据:使用现有的爬虫工具爬取所需内容,保存到数据库,或以文件的形式保存到本地. 博主用的是 ...
- B站2020年每周必看热门视频数据盘点!Python数据分析
1.数据抓取 数据集的获取是我们进行数据分析的第一步.现在获取数据的主要途径一般为:现成数据:自己写爬虫去爬取数据:使用现有的爬虫工具爬取所需内容,保存到数据库,或以文件的形式保存到本地. 博主用的是 ...
- Android弹幕实现:基于B站弹幕开源系统(3)-文本弹幕的完善和细节调整
Android弹幕实现:基于B站弹幕开源系统(3) 本文在附录1,2的基础上再次对异步获取弹幕并显示弹幕完善逻辑和代码,集中在上层Java代码部分: package zhangphil.danm ...
- B站2020年每周必看热门视频数据盘点(数据分析)1.数据抓取2.数据清洗3.数据分析及可视化
1.数据抓取 数据集的获取是我们进行数据分析的第一步.现在获取数据的主要途径一般为:现成数据:自己写爬虫去爬取数据:使用现有的爬虫工具爬取所需内容,保存到数据库,或以文件的形式保存到本地. 博主用的是 ...
- 2020年全国普通高校毕业生874万,同比增加40万人。我们该何去何从?
据昨天微博上发布 #2020年应届高校毕业生有874万#,同比增加40万人.这条消息后,可谓是众多学子彻夜难眠. 导语:在12日召开的国务院联防联控机制发布会上,教育部高校学生司司长王辉表示,2020 ...
- 计算机课吐槽,让上课更有趣!这位老师的课学生可发弹幕提问吐槽
上课可以发弹幕向老师提问和吐槽?在重庆邮电大学通信信息工程学院302教室,这样的课堂形式是常态.讲台上的老师不但不管,还乐呵呵地看着同学们"玩手机". 这是该校通信信息工程学院张毅 ...
- python自动发弹幕_一个直播弹幕机器人诞生过程,Python制作自动发送弹幕小程序...
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬取B站弹幕视频讲解 https://www.bilibili.com/vide ...
最新文章
- 图像传感器与信号处理——自动曝光算法
- u-boot中添加自定义命令
- 为RecyclerView添加下拉刷新(PullToRefresh)功能
- 不等式约束的拉格朗日乘数法_Abaqus血管支架仿真|接触约束执行方式
- 光栅图形学算法基础其二 (裁剪算法)
- Windows2008R2 --Active Directory回收站
- python修改csv文件字段顺序_Pandas中DataFrame交换列顺序的方法实现
- 彻底删除SQL Server2005(转)
- PageStateLayout
- 配置Visual Studio Code用作51单片机C51代码编辑器,替代KeilC编辑代码事半功倍!
- java查询ip归属地
- 永不消失的电波 2020.12.07
- Ubuntu16.04(14.04) 安装网卡驱动教程
- 关于吴恩达深度学习总结
- win10 查看版本信息(家庭版 专业版 企业版)
- 程序媛字节裸辞后,都干了些什么....
- photoshop中如何在6寸相纸上打印1寸照片10张2X5模式(自动填充模式)
- 关于京东商城在宜宾开通货到付款的随想
- 科普扫盲---ssh免密登陆(ssh的一些小秘密)
- 期权常见的六大交易误区
热门文章
- 聊一聊不同技术栈中hashmap扩容机制
- 计算机视觉之图像增广(翻转、随机裁剪、颜色变化[亮度、对比度、饱和度、色调])
- android右上、右下、左上、左下手势滑动判断
- 1012-RPA与目标使用者
- 珍藏的PS技巧(可以尝试一下哦)(转载)
- 香港城市大学赵翔宇招收AI机器学习数据挖掘 全奖PhD/博后/RA
- java swing实现的简单音乐播放器源码附带视频指导教程
- [转载]VBA创建数据透视表
- 盗版网课有多猖狂?原价上万,只卖5元
- 【报告分享】2021年度小红书高效种草营销手册-标记我的生活-小红书(附下载)