英语考试等级
⽹易云⾳乐评论可视化分析
之前已经⽤python获取了⽹易云⾳乐的评论数据,下⼀步的⼯作就是数据分析了。⼀般数据分析⽆⾮是采⽤(统计)数字、图或者表的形式来展现数据之中隐含的信息。其中图和表显然是最直观的了。所以这⾥我使⽤可视化的⽅法即⽤图形来展⽰从评论中挖掘到的各种信息。
可视化的⼯具有很多,⽐如常见的有excel还有⼀些专门的绘图软件,各个编程语⾔当然也有很多可视化的包或者库,⽐如统计上使⽤很多的R语⾔就有很多可视化的库,我最喜欢的就是ggplot2了,我使⽤R语⾔主要⽤于数据的清洗以及可视化,其丰富的包(package)⼤⼤简化了数据分析的⼯作量,⽽且可以绘制⾮常复杂、精美的图表,以后有机会可以给⼤家专门介绍⼀下。python中可视化的库也很多,最著名的的莫过于matplotlib了,这是⼀个⾯向对象的绘图库,很多⽅⾯的⽤法和matlab类似(从matlab的绘图风格借鉴⽽来),由于我以前使⽤过⼀段时间的matlab,所以上⼿还是⽐较快,其他的还有seaborn(据说是对matplotlib的改进和封装,使⽤起来更加⽅便,没⽤过,有时间再研究下)、pygraph等。但是使⽤最⼴泛的还是matplotlib。javascript有Echarts(百度的)等,这个我还没接触过,是⼀个可以⽹页上进⾏可视化的函数库,据说很棒。其他的当然还有特别多,这⾥我就不⼀⼀列举了。有兴趣的⼩伙伴可以⾃⾏去查阅资料。这⾥我决定使⽤matplotlib,主要是因为最近主要接触的就是python,但是数据可视化⽅⾯的库⽤的不多,刚好可以拿这次的数据来练练⼿,其次我接触过matlab,相信对matplotlib⼊⼿会更快⼀点。
这次主要分析的有以下⼏个⽅⾯:1、⼀⾸歌曲评论数⽬随时间变化的趋势,⽐如每天的评论数变化,每⽉的评论数变化等等。2、⼀⾸歌曲点赞数⽬分布的情况,⽐如0-10赞有多少个,占多少⽐例,1000赞以上占多⼤⽐例等等。3、热门评论词云的制作,主要想通过词云,将⽂本挖掘的结果可视化,可以看出哪些是⾼频词汇等。4、⼀⾸歌曲评论者的基本信息的情况展⽰,⽐如评论者的地区分布,年龄分布、累计听歌数⽬分布、动态分布、粉丝数分布等等。通过这些信息,可以直观看出⼀⾸歌曲被哪些地区、哪些年龄段的⼈所喜爱,以及听歌的⼈具有什么的特点等等。
  好了,废话不多说了,直接上图吧。
⾸先来看⼀些歌曲评论数随时间的变化。
图 1
图 2
图 3
图 4
图 5
  上⾯的5张图我分别选取了5⾸不同的歌曲,有华语歌曲也有英⽂歌曲,有的起⽌时间很长(从13年就开始),也有的起⽌时间很短(从最近⼏个⽉才开始)。总的来说可以分为两种模式,⼀种是开始⼀段时间评论数很少,后来逐渐呈现爆发式地增长,前⾯三⾸歌《同桌的你》、《七⾥⾹》、《All Too Well》都是这种模式,⽽后⾯两⾸歌《不要再孤单》、《stay》则是恰好相反,歌曲刚刚出来的
那⼏天评论数猛增,后⾯评论数逐渐下降,之后趋于平稳。通过分析,其实也很好理解,第⼀种模式的歌曲,往往都是早期曲库中就存在的歌曲(也可以称之为“⽼歌”),那个时候⽹易云⾳乐才刚刚出来,⽤户数⽬还很少,所以这些歌曲每天的评论数很少(没记错的话⽹易云应该是12、13年左右才出来的吧),后来⽹易云⼀路⾛红,直⾄现在号称有2亿⽤户,由于⽤户基数⼤,所以这些经典的⽼歌⾃然评论数猛增了,可以想见,这种评论爆发式增长和⽹易云⾳乐⽤户的增长趋势应该是基本⼀致的。⽽⾄于第⼆种模式,出现这种模式的歌曲往往都是⽐较新的歌曲,⽽且往往伴随着影视剧的⽕热突然⽕起来,⽐如《不要再孤单》就是电影的主题曲,电影刚上映的那段时间,歌随影热,评论数⾃然爆发式增长,后来这段热潮过去了,评论数⾃然就降下来了(当然这种歌曲应该以⽹络歌曲居多,只是某⼀段时间特别⽕,不⿊,我觉得真正的经典评论数应该不会⼤起⼤落,⽐如《晴天》、《see you again》等)。当然我只是分析了两种典型的评论随时间变化的模式,实际肯定不⽌这两种模式,⼤家可以⾃⾏去探索。
陈小春儿子正面照图 6
王承渲是哪里人图 7
前⾯5张图都是使⽤折线图来展⽰的,图6使⽤的是柱状图。我们来看下图7,图7展⽰的最近⼀段时间⽐较⽕的李⽟刚的歌曲《刚好遇见你》的评论数随时间的分布,让⼈感到奇怪的是,中间从⼤约1⽉23⽇到3⽉24⽇的每天的评论量竟然是0!这怎么可能呢?难道真的是这样么?当然不是。我解释⼀下原因,这是程序本⾝的bug,我在抓取评论数过10W的歌曲的过程中发现,我最终看似抓取了全部的评论,但是实际上在去除重复之后,我只得到了部分的数据,每次⼤概只能得到2W到3W左右的数据,其他的数据就缺失了。⾄今我也没能解决这个问题,个⼈觉得是服务器做了什么限制,如果有朋友知道该怎么解决这个问题,望能不吝赐教!
      除了可以从宏观上看⼀⾸歌曲每天或者每⽉的评论数分布之外,我们还可以将不同的歌曲评论随时间变化放到⼀起对⽐,或者将⼀⾸歌曲每⽉的评论数放在⼀起进⾏对⽐。
图 8
图 9
图 10
完美通行证注册图 8 就展⽰了四⾸不同的歌曲在某⼀个时间段评论数⽬随时间变化,图9展⽰了《同桌的你》从16年8⽉到17年3⽉这8个⽉的时间⾥每⽉评论数的分布情况,图10则是《越长⼤越孤单》从16年4⽉到17年
3⽉这12个⽉的每⽉评论数分布。其实,这种图形很容易做出,因为我已经将绘图函数做了封装,可以设置⾃定义参数字典,来⽣成⾃⼰想要的不同的图形,也可以选择绘制图形的种类、颜⾊以及绘制的时间段、时间间隔等,在⽂末我会说明这⼀点。
       接下来,看⼀下评论点赞数⽬的分布情况。
图 11
社保卡丢了怎么补办
图 12
    图10和图11展⽰的点赞数⽬分布我去除了10赞以下的,原因是我发现⼀⾸歌曲绝⼤部分的点赞数⽬(超过99%)都是10赞以下的,这也与我们的常识相⼀致,所以为了⽅便我就直接去除了。通过上⾯的两张图我们可以看出,红⾊区域⾯积最⼤,即100赞到1000占据了全部10赞以上评论的绝⼤部分,其次是10到100赞,然后是1000赞到10000赞,最少的是1W赞以上,我发现⼤部分歌曲基本都是呈现这个规律,所以只在这⾥简单提⼀下,就不做详细分析了。
刘强东的初恋名字接下来分析歌曲热门评论的词云展⽰,其实python的词云,我之前的⼀篇随笔也有提到过,使⽤wordcloud(绘制词云)和jieba(中⽂分词)即可。这⾥就不细说了。直接看图吧。
图 13 《不要再孤单》词云
图 14  周杰伦热门50⾸歌曲热门评论词云
图 15 Taylor Swift 热门歌曲热门评论词云
    从以上的词云中还是可以看出⼀⾸歌曲或者⼀位歌⼿,评论区中出现频率最⾼的是哪些词的。⽐如杰伦的热门评论中反复出现的词就有周杰伦、青春、喜欢、⼥朋友、故事等等,⼀股青春怀旧风扑⾯⽽来啊。哈哈,其他有意思的⼤家⾃⼰去分析吧。