欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

拿下60亿流量的《惊雷》都是哪些人在听?python帮你统计出来

程序员文章站 2022-07-09 19:07:32
前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者: 听不来喊麦的C君 PS:如果你处于想学Python或者正在学习Python,Python的教程不少了吧,但是是最新的吗?说不定你学了可能是两年前人家就学过的内容,在这 ......

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

拿下60亿流量的《惊雷》都是哪些人在听?python帮你统计出来

作者: 听不来喊麦的c君

ps:如果你处于想学python或者正在学习python,python的教程不少了吧,但是是最新的吗?说不定你学了可能是两年前人家就学过的内容,在这小编分享一波2020最新的python教程。获取方式,私信小编 “ 资料 ”,即可免费获取哦!

 

 

这看起来不着边际的歌词,配上简单粗暴的蹦迪音乐。

最近,一首《惊雷》的喊麦歌曲在短视频平台火了,震惊了整个音乐圈。

但4月10日歌手杨坤却在直播中批评《惊雷》“要歌没歌,要旋律没旋律,要节奏没节奏,要律动没律动”,评价其“难听”、“俗气”。

4月11日,mc六道以原唱者的身份对杨坤的指责做出回应表示,音乐没有高低之分,称《惊雷》现在比杨坤的任何一首歌都火。一时间更是把《惊雷》推上了风口浪尖。

那么《惊雷》这首歌到底怎么样?都是哪些人在听?今天我们就用python来给你解读。

01

拿下60亿流量 

喊麦歌曲《惊雷》火了!

 

说道喊麦,作为近年来一种新兴的表演形式,其内容和表达方式则比较简单和浮夸,主要形式是在网上下载一些伴奏(以电音伴奏为主),跟着伴奏以简单的节奏和朗朗上口的押韵手法进行的语言表演。

更简单的说法就是,演唱时不讲究什么技法,带着伴奏对着麦喊就完事。比如之前爆火的《一人我饮酒醉》就是很具代表性的喊麦歌曲。

而喊麦歌曲也因为一味堆积看似没有关联的词,闹腾的电音,简单粗暴的唱法等,让大家各种吐槽。而在“全民抵制”喊麦的背景下,《惊雷》却火了。

从今年3月起,以《惊雷》为bgm的短视频在各大平台上迅速走红。截止到4月24日,在抖音的#惊雷#的标签页下显示共有23w个视频作品使用,产生64.1亿次播放。

 

拿下60亿流量的《惊雷》都是哪些人在听?python帮你统计出来

 

一些网友更是跟风录制了各种翻唱版本。温柔版、方言版、戏腔版、小黄人版、种类之多,只有你想不到,没有网友做不到。瞬间《惊雷》就成了今年度的网络爆款神曲之一。在b站上搜索《惊雷》更是可以看到大量的相关视频。

拿下60亿流量的《惊雷》都是哪些人在听?python帮你统计出来

 

我们对b站上《惊雷》的各类视频进行整理分析发现:

 

 

拿下60亿流量的《惊雷》都是哪些人在听?python帮你统计出来

 

在3月底,《惊雷》就在b站小火了一把,总播放量突破50万。接着到了4月12日,随着杨坤和mc六道的“隔空互掐”,大量《惊雷》相关视频如雨后春笋一般爆发出来,无论是音乐、游戏、生活、影视和鬼畜各视频分区产生的相关视频突破300个,播放量更是水涨船高。

 

02

 

“精神小伙”专属歌曲 

都是哪些人在听《惊雷》?

我们使用python获取并分析了网易云音乐上,mc六道的这首《惊雷》相关的评论数据。

经过去重得到1534条样本,从而来分析一下《惊雷》这首歌的用户和评价信息。

先看到结论:

评论时间趋势图

 

 

拿下60亿流量的《惊雷》都是哪些人在听?python帮你统计出来

 

首先看到评论的时间,可以发现评论的高峰时间主要集中在:

 

  • 中午12-13点左右;
  • 下午5点之后的下班下课时间;
  • 以及傍晚睡前9-10点

 

看来主要的听歌时间是在忙完工作的午休时,下班后的路上,以及睡前,刷着手机听听歌写写评论,也比较符合用户的听歌习惯。

 

 

评论用户性别分布

 

 

拿下60亿流量的《惊雷》都是哪些人在听?python帮你统计出来

 

听歌的人群性别分布是如何的呢?经过分析发现,男性占比达到压倒性的67.08%,女性占比较少为16.43%,另外16.49%的用户没有标注性别。可见听《惊雷》的更多是男性群体。

 

评论用户年龄分布

 

拿下60亿流量的《惊雷》都是哪些人在听?python帮你统计出来

 

分析发现,用户大多集中在14-30岁之间,以20岁左右居多,除去异常和虚假年龄之外,这个年龄分布也符合网易云用户的年龄段。

  

评论用户地区分布

 

拿下60亿流量的《惊雷》都是哪些人在听?python帮你统计出来

 

从城市分布图中可以看出,评论用户涵盖了全国各大省份,其中广东的评论用户排名第一,其次是山东、河北、河南等省份。

 

 

拿下60亿流量的《惊雷》都是哪些人在听?python帮你统计出来

 

根据网易云曾发布的音乐数据,北上广深等发达地带的用户对小众音乐情有独钟,这些城市聚集了大量的小众音乐用户,其中广东也是聚集了众多热爱电音的用户,堪称“最电音省份”。

 

同时我们查询了2019年全国各省份的人口排名,排名前三的省份是:广东、山东、河南,这个结果也与分布图较为吻合,果然还是人多力量大。

 

评论情感正负分布

 

那么评论中大家对《惊雷》更多是称赞还是吐槽呢?接着我们对评论区的留言进行了情感分析,使用的是百度的api。

 

我们定义了一个函数获取情感评分正向和负向的概率值,值介于[0,1]之前,越接近1,情感越偏向于积极,反之则越消极。

 

拿下60亿流量的《惊雷》都是哪些人在听?python帮你统计出来

 

通过评论情感得分分布图,可以发现:

 

在1534条数据中,有780条数据评分分值在[0,0.05]之间,占比50.08%,有一半以上的用户对这首歌表达了非常厌恶的情绪。我们还看到,有227个样本的评分在0.95以上,属于非常正向,这些正向评论真的正向吗?

 

我们不妨看几条这些评论:

 

 

拿下60亿流量的《惊雷》都是哪些人在听?python帮你统计出来

 

比如这一条:

 

谢谢,这首‘歌’我笑吐了

 

明显是属于负向的情绪,但是因为正向的关键词比较多,百度的情感分析程序给了0.97分,所以可以看出这里的正向评分也是有误差。

 

还有这一条:

 

突然感觉杨坤老师有点伟大

 

这首歌虽然是赞扬杨坤老师,但是放到这里是表达贬义,但是程序并没有判断出来,间接说明程序还是没有人聪明啊(拟合能力不足+汉语语境情况复杂)。

 

所以实际上大部分评论带着反讽的口吻,我们可以大胆推断,这首歌的负向情绪占比至少上升10~15%个百分点。

 

评论词云分布:

 

 

拿下60亿流量的《惊雷》都是哪些人在听?python帮你统计出来

 

通过文本分析,可以看出大家对这首歌的评论集中对杨坤和mc六道的讨论上,吐槽点主要集中在关于歌曲的“难听”、“俗气”、"抄袭"等。同时也表达了对于“喊麦”和"音乐"的讨论上

03

 

 教你用python分析 

网易云音乐《惊雷》的评论

 

我们使用python获取并分析了网易云音乐上《惊雷2020》相关的评论数据并进行了以下部分处理和分析,整个分析过程分为以下几个步骤:

 

  1. 数据获取
  2. 数据读入与数据预处理
  3. 数据分析和可视化

 

01 数据获取

 

此次爬虫部分主要是调用官方api,本次用到的api主要是:

http://music.163.com/api/v1/resource/comments/r_so_4_{歌曲id}?limit={每页限制数量}&offset={评论数总偏移}

 

参数说明如下:

 

{歌曲id}:歌曲id

limit:限制每页获取的数据条数

offset:翻页参数偏移量,offset需要是limit的倍数

返回的数据格式为json,通过此接口目前每天获取的数据量限制是1000条,代码思路如下:

  1. 先获取一页的数据,并封装成解析函数parse_one_page
  2. 变化offset参数,循环构建url,并调用解析函数

具体代码如下:

# 导入库
import requests
import json
import time
import pandas as pd

def parse_one_page(comment_url):
    """
    功能:给定一页的评论接口,获取一页的数据。
    """
    # 添加headers
    headers = {
        'user-agent': 'mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/81.0.4044.113 safari/537.36'
    }

    # 发起请求
    r = requests.get(comment_url, headers=headers)

    # 解析数据
    comment_data = r.json()['comments']

    # 获取用户id
    user_id = [i['user']['userid'] for i in comment_data]
    # 获取用户昵称
    nick_name = [i['user']['nickname'] for i in comment_data]
    # 获取评论id
    comment_id = [i['commentid'] for i in comment_data]
    # 获取评论内容
    content = [i['content'] for i in comment_data]
    # 获取评论时间
    content_time = [i['time'] for i in comment_data]
    # 获取点赞
    liked_count = [i['likedcount'] for i in comment_data]

    df_one = pd.dataframe({
        'user_id': user_id,
        'nick_name': nick_name,
        'comment_id': comment_id,
        'content': content,
        'content_time': content_time,
        'liked_count': liked_count
    })

    return df_one


def get_all_page(song_id):
    """
    功能:获取100页短评:目前接口一天最多获取数据量
    """
    df_all = pd.dataframe()

    for i in range(101):  # 最多100页
        url = 'http://music.163.com/api/v1/resource/comments/r_so_4_{}?limit=10&offset={}'.format(song_id, i*10)
        # 调用函数
        df = parse_one_page(comment_url=url)
        # 循环追加
        df_all = df_all.append(df, ignore_index=true)
        # 打印进度
        print('我正在获取第{}页的信息'.format(i + 1))
        # 休眠一秒
        time.sleep(1)

    return df_all

if __name__ == '__main__':
    # 惊雷
    song_id = '1431580747'
    # 运行函数
    df_jl = get_all_page(song_id) 
获取到的数据如下所示,此次我们一共获取了两天的数据,经过去重得到1534条样本,来分析一下《惊雷》这首歌的用户和评价信息。

获取的数据集主要包含了以下的信息:评论id、用户id、用户昵称、用户评论、评论时间、评论点赞。根据用户id可以获取评论用户相关信息,此处暂不做赘述。

 

 

拿下60亿流量的《惊雷》都是哪些人在听?python帮你统计出来

 

拿下60亿流量的《惊雷》都是哪些人在听?python帮你统计出来

02 数据读入与数据预处理

此处,我们将对获取的评论数据集进行以下的处理以方便后续的分析:

  1. 读入数据和数据合并,去除重复值
  2. 评论时间:将评论时间转换为标准时间
  3. 用户评论:使用jieba分词对评论数据进行分词处理。

代码实现如下:

 

读入数据、合并、去重

 

拿下60亿流量的《惊雷》都是哪些人在听?python帮你统计出来

评论时间处理

拿下60亿流量的《惊雷》都是哪些人在听?python帮你统计出来

03 使用百度api进行情感分析

 

情感分析是nlp的重要部分。这里我们使用百度的api,来进行情感分析,经测试这个api接口结果相对比较准确。我们定义了一个函数获取情感评分正向和负向的概率值。返回结果解释:以正向概率positive_prob为例,值介于[0,1]之前,越接近1,情感越偏向于积极。

 

代码和结果如下:

# 异常值处理
df_comment['content'] = df_comment['content'].replace('

                    
                
(0)
打赏 拿下60亿流量的《惊雷》都是哪些人在听?python帮你统计出来 微信扫一扫

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

拿下60亿流量的《惊雷》都是哪些人在听?python帮你统计出来
验证码: 拿下60亿流量的《惊雷》都是哪些人在听?python帮你统计出来