我分析了歌神张学友近16万歌词,发现了几个秘密

我分析了歌神张学友近16万歌词,发现了几个秘密

我是张学友的铁杆粉丝,听了他的很多很多歌曲,比如“吻别”,“饿狼传说”,“等你等到我心痛”,“祝福”,“她来听我的演唱会”等等。学友的歌伴我走过了很多很多岁月,从大学生到研究生,从学生到码农。都是歌神是情歌王子,那学友的歌里的情感到底如何,既然玩Python,不如动手分析一下。我们爬取了近16万的歌词并分析,并用机器学习分析了一下,哇发现几个亮点。


01


歌词的收集


首先是对于歌词素材的收集,我对比了各大音乐平台的歌词爬取难易程度,决定采用百度音乐作为爬取对象,爬取张学友的歌曲,由于其歌词是采用lrc文件保存,

我分析了歌神张学友近16万歌词,发现了几个秘密


爬虫这块非常简单,一共才几十行代码,我把核心的代码贴了一下,大家可以动手敲一下看看,不是很难的。爬取结束之后将所有的歌词文件爬取到了本地。如下图所示:

我分析了歌神张学友近16万歌词,发现了几个秘密


但是在读取歌词的时候,歌词中存在缺失,乱码等问题,所以需要对于歌词进行耐心的清洗,然后将歌词以及歌曲名称以及歌手信息保存到Excel表中,清洗好的数据如下图所示,去表格开头一部分的数据:

我分析了歌神张学友近16万歌词,发现了几个秘密


取表格后10行的数据:

我分析了歌神张学友近16万歌词,发现了几个秘密


02

歌词情感分析


接下来便是进行对于歌词的情感分析,对于歌词的情感分析,依托的是BosonNLP平台,该平台对于中文,提供了许多使用简单、功能强大、性能可靠的自然语言分析服务。我们这里是用到他的情感分析的功能。


首先大家得去它的平台注册,得到我们个人的API密钥,如下图所示:

我分析了歌神张学友近16万歌词,发现了几个秘密

得到API密钥后,就按照它的教程进行了对于歌词的情感分析,该平台提供的情感分析,每天只有500次的免费使用机会。而且它对于语句的情感分析返回的是两个值:

  • 第一个值是指该语句是非负面的概率

  • 第二个值是指的负面的概率,两个值的和加起来等于1

这里的负面可以理解为一些消极的态度,例如生气、焦虑、忧伤等等。代码如下图所示:

我分析了歌神张学友近16万歌词,发现了几个秘密

上述的代码非常的简单,主要做了下面几步:

1).先将歌词读入到list_lyrics这个列表中

2).然后调用requests.post函数,将语句送至BosonNLP平台

3).最后就会返回该歌词的情感分析值。


小编分析了497首歌,最终得到了张天王的十大悲伤歌曲排行榜,和十大积极歌曲排行榜,如下图所示:

我分析了歌神张学友近16万歌词,发现了几个秘密

>>

十大悲伤曲目为:                   0         1

0              我不明白  0.996758

1             不想失去你  0.996119

2                燥狂  0.989038

3  I Don T Wanna Be  0.986872

4             你冷得像风  0.977820

5                认床  0.977314

6                葬月  0.977087

7                问月  0.974448

8            当爱变成习惯  0.974190

9                算命  0.973292


十大积极曲目为:                       0         1

0                 让奇妙飞翔  0.996168

1                花与琴的流星  0.995877

2                    祝愿  0.992565

3                    温馨  0.991497

4                仍是会喜欢你  0.990432

5                 仍是喜欢你  0.990432

6                 流星下的愿  0.988126

7  留住这时光 (Full Version)  0.986213

8               简简单单就是爱  0.986053

9                飞机师的风衣  0.981768

由上图可以看出,学友哥的最悲伤的歌曲《我不明白》,负面指数达到了0.996758,可谓是悲伤至极。小编特地去听了一下,真的很悲伤,歌曲缓慢展开,充满了离别的忧伤,是一首典型的悲伤情歌。


03

高频词分析


做到这些就完了吗?显然不够,作为情歌王,张学友的各种必然充斥着复杂的“情感关系”,小编分析了歌词中“他”、“她”、“我”、“你”的数量,最终得到了一下的结果:

我分析了歌神张学友近16万歌词,发现了几个秘密

读取文件,然后遍列每一行大歌词,用count统计每一行的关键字.


我分析了歌神张学友近16万歌词,发现了几个秘密

从图上我们可以看出,学友哥的歌曲人物关系大部分还是围绕两人的情感展开,很少有掺杂“第三者”的问题。


既然是情歌,怎么能少得了“爱”,小编又为大家分析了这497首歌曲中哪五首歌曲中“爱”字出现的频率最高,如下图所示:

我分析了歌神张学友近16万歌词,发现了几个秘密


从上图可以看出,《命运舞会》这首歌中“爱”出现的次数最高。


最后小编为大家制作了歌词的词云分析,让大家清楚的看到,在学友哥的歌曲中,究竟哪些关键词出现的频率最高,如下图所示:

我分析了歌神张学友近16万歌词,发现了几个秘密

发现永远,自己,没有,一个,不会,一生,什么,一切这些词是高频出现的。想想确实是的,你试着回忆几首学友的歌,都忽多忽少的出现这些词。以上就是小编为大家带来的基于歌词的情感分析和统计,Python就是这么有趣,只要你想玩的趣味练习,Python大部分都能实现。



趣味学Python训练营

跟850人一起实战玩Python

原价118,现价68

仅限100名

我分析了歌神张学友近16万歌词,发现了几个秘密


往期趣味实战训练营:

1).用Python发送短信给你的朋友

2).用Python可视化分析2018年全年电影

3).用Python做一个图书比价系统

4).用Python爬取小密圈

5).用Python做股票提醒系统



现在加入小密圈还有机会获取高手进阶必读的Python设计模式我会在小密圈抽取5本,机不可失。


我分析了歌神张学友近16万歌词,发现了几个秘密


获取干货源码,阅读更多有趣的案例,也可以直接去微信公众号【菜鸟学Python】获取。
菜鸟学Python » 我分析了歌神张学友近16万歌词,发现了几个秘密