我用Python做了六百万字的歌词分析,告诉你中国Rapper都在唱些啥

2017 年 8 月 5 日 程序人生 猫弟Azz

本文转载自公众号摩登天空杂志(ModernskyMag),作者:猫弟Azz

《中国有嘻哈》火了,作为一名对中国HipHop毫无了解的吃瓜群众,我开始好奇以下三个问题:


HipHop到底在唱些什么?


各个国家和地区的 Rapper 们想要说的唱的都有哪些特色?


如果想当一个Rapper,我应该怎样写词才能紧跟潮流又不会离题太远?

为了解答这个疑问,我用Python抓取了美英、台湾、香港、中国大陆四个地区,总共六千万的歌词,其中包括大陆600万的歌词,做了一些数据分析的工作,目的就是给我以及像我一样的吃瓜群众们一个有理有据的答案。

我的数据源选了X米音乐,写了好一会代码,抓取歌词的爬虫开始蹭蹭工作了⇣


爬虫一般会面对两个问题——


1.代理问题


频繁地抓取网站的页面,IP很容易被封。于是写了个抓免费代理的爬虫,抓了八百多个代理IP,够用了。


2.效率问题


10万首歌,即使是1秒一个请求,那得27个小时,我可等不了27个小时。


于是我决定开10个线程,三小时程序就能跑完。

……


然后在三小时之后,我收获一个约100M,49419首歌的数据库。


接下来,就是一些数据清洗、处理、分析的工作。


虾米的歌词都是用户编辑上传的,格式不适用数据分析,所以我得把无用的符号、编曲、作词之类的信息除去(格式统一有多么重要啊朋友们),然后中英文各自分词。英文需要去停词(对数据分析无用的词,一般没有实际含义,如is、on、at、which),大小写变换,以及词形变换。英语中词汇有单复数、各种时态,为了易于分析,需要还原为词干。另外不管是中文还是英文都需要词性标注,一般来说分析也就分析名词和形容词,这些现成的开源库使用(此处省去1000万字)。


总之,我都搞定了,以下就是分析结果。我们先看看大陆地区的rapper歌词里有都写啥关键词⇣

“世界”和“时间”占据首位,“老子”、“兄弟”、“baby”、“money”、“bitch”、“real”等词倒是让rapper的形象呼之欲出。rapper的词里频繁提到“音乐”、“歌词”、“旋律”、“歌曲”,可见他们对自己的音乐非常在乎。嘻哈音乐由于有freestyle的文化,对亲自写词有要求,否则就不“ real ”,从节目中他们对偶像rapper的diss也能看出来。


接着,我们来看看与其他几个地区的关键词对比↓

看起来rapper的生活差不多,无论大陆还是台湾,都喜欢喊“baby”,身边都有一群“兄弟”和“朋友”,有“梦想”,平时都在唱“hip hop”,有“烦恼”了就骂骂街。


亮点是美国的关键字top1是“nigga”,这个和带有种族歧视意味的“nigger”还不是一个词。关于这个Tupac有过一个有意思的定义。


nigger : a black man with a slavery chain around his neck.(黑奴)

nigga : a black man with a gold chain on his neck.(金链黑汉子)

美国rapper fetty wap 


接下来,为了了解rapper的生活状况,我开始分析一些常见词汇在歌词中出现的频率。饶舌歌手们的生活想必少不了豪车,出门骑摩拜可能有被开除rap籍的风险。


感谢维基提供汽车品牌页面,并且很贴心的分了英语名称、中国大陆译名,于是我又写了个爬虫把品牌名称抓下来,然后统计数据库中每个品牌出现的频率。

这是各汽车品牌在国内16284首嘻哈歌曲中出现的情况,在一首歌的歌词中出现算一次,总共约有400多首歌中出现至少一次汽车的品牌名字。可以看出,饶舌歌手喜欢宝马和奔驰的很多,特点只有一个,就是贵!其实夏利、桑塔纳等车也有不少歌提到,但一般表达的是消极情绪。


然后我又统计了一下rapper们都喝什么⇣

*红色是国内饶舌歌手的数据,黄色是总数据


看来饶舌歌手不那么喜欢喝威士忌,排在威士忌前面的还分别有龙舌兰、白兰地、朗姆酒,限于图表大小我没将这几个列入图表。香槟作为富有的象征,遥遥领先,不过国内的饶舌歌手似乎处于消费尚未升级的水平,啤酒排在首位。外国人比较喜欢金酒,国内的饶舌歌手几乎没提到,虽然金酒一般用来调鸡尾酒,但是鸡尾酒提到的次数也是少得可怜。

饶舌歌手喜欢互相diss(怼),所以他们diss时会骂些啥?让我们来看看他们都骂了什么脏话。


这个统计有个小插曲,第一次统计发现一个中文脏话都没有,还以为净网运动成功了,结果发现分词的词库里压根就没脏话的词汇,重新手动加入词库后就好了。


(左边是所有数据的出现次数,右边是大陆说唱的出现次数)


大陆16284首歌2496首出现脏话,脏话率约为15%,而非大陆的数据中,33134首歌有13217首出现脏话,脏话率约为40%


总的来看,我国歌手比较符合社会主义核心价值观。我试着把“damn”和“shit”这两个不那么“脏”并且口语常见的词在国外的统计中去掉,最后脏话率还有33%,比例远远高于大陆。一个推测是,英文脏话词汇在歌词中更容易押韵,或者唱起来flow更好把握。另一个可能是审查原因,早有“in3”这样的乐队因为歌词原因被禁,国内的rapper创作起来可不能太奔放。

最后我们来探讨一下rap里的押韵。

在《中国有嘻哈》中我们看到有单押、双押、三押,各种层出不穷的押韵。旋律、押韵、节奏是说唱歌曲三个很重要的评判标准,一个好的押韵,能让歌曲的flow更加流畅。


那么我们怎么才能唱出酷酷的押韵呢?我从歌词库中取出所有歌词,分词,然后根据韵母、声调分类,然后得到了一个押韵词汇文件。


韵脚的分布挺有趣的,我统计了一下出现前十的两字词语韵脚⇣


可以看出,i i这个韵脚是最容易押韵的。下图的这个韵脚的部分词汇。“势利”,“世纪”,“日志”,“秘密”……


看着这些词汇,我就情不自禁rap起来了,drop the beat!


双押x9 达成!


以上应该能告诉你中国到底有什么样的嘻哈了。

本月精华推荐 TOP30


职场指南

公司更需要会哪种语言的工程师

程序员职业生涯全攻略,附神级跳槽攻略图

百度陆奇内部最新演讲:成为优秀工程师的五个方法

你是王者荣耀里的哪种程序员

什么会让程序员丢掉工作


技术话题

如何掌握所有的编程语言

养成这6个编程好习惯,助你减少90%BUG

1个月只敲1天代码,拿着全额薪资,我错了吗?

刚写了一百万行代码,现在迷之自信


程序人生

惊呆了,2000行代码搞定特斯拉

一封90后“程序猿”的离职信引发的血案

终于,买杜蕾斯不再尴尬,说起来还是技术人的功劳

“等我干IT发财了,就和你离婚”

女程序员的尴尬事儿

程序员女友日记


我的404专属电台

如何用一句话噎死面试官

程序员开的公司只招妹子

巧妙应对频繁改需求的老板

大侠厉害了,一秒改完所有BUG

大战三百回合!程序员与产品经理奇谈




程序人生交流群



登录查看更多
0

相关内容

Python是一种面向对象的解释型计算机程序设计语言,在设计中注重代码的可读性,同时也是一种功能强大的通用型语言。
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
194+阅读 · 2020年6月29日
【2020新书】从Excel中学习数据挖掘,223页pdf
专知会员服务
90+阅读 · 2020年6月28日
【实用书】Python数据科学从零开始,330页pdf
专知会员服务
142+阅读 · 2020年5月19日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
225+阅读 · 2020年3月22日
算法与数据结构Python,369页pdf
专知会员服务
162+阅读 · 2020年3月4日
【2020新书】数据科学:十大Python项目,247页pdf
专知会员服务
213+阅读 · 2020年2月21日
【新书】Python中的经典计算机科学问题,224页PDF
专知会员服务
52+阅读 · 2019年12月31日
已删除
架构文摘
3+阅读 · 2019年4月17日
文本分析与可视化
Python程序员
9+阅读 · 2019年2月28日
吃鸡手游竟然是Python写的?
机器学习算法与Python学习
7+阅读 · 2018年9月11日
我是一个爬虫
码农翻身
12+阅读 · 2018年6月4日
Python 爬虫实践:《战狼2》豆瓣影评分析
数据库开发
5+阅读 · 2018年3月19日
速看|Python 拯救你的人生颓
机器学习算法与Python学习
4+阅读 · 2018年3月16日
Python | 拯救鉴黄师
计算机与网络安全
5+阅读 · 2018年2月17日
Python NLP入门教程
计算机与网络安全
9+阅读 · 2017年11月21日
Arxiv
8+阅读 · 2019年5月20日
Relational recurrent neural networks
Arxiv
8+阅读 · 2018年6月28日
Arxiv
5+阅读 · 2018年1月23日
VIP会员
相关VIP内容
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
194+阅读 · 2020年6月29日
【2020新书】从Excel中学习数据挖掘,223页pdf
专知会员服务
90+阅读 · 2020年6月28日
【实用书】Python数据科学从零开始,330页pdf
专知会员服务
142+阅读 · 2020年5月19日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
225+阅读 · 2020年3月22日
算法与数据结构Python,369页pdf
专知会员服务
162+阅读 · 2020年3月4日
【2020新书】数据科学:十大Python项目,247页pdf
专知会员服务
213+阅读 · 2020年2月21日
【新书】Python中的经典计算机科学问题,224页PDF
专知会员服务
52+阅读 · 2019年12月31日
相关资讯
已删除
架构文摘
3+阅读 · 2019年4月17日
文本分析与可视化
Python程序员
9+阅读 · 2019年2月28日
吃鸡手游竟然是Python写的?
机器学习算法与Python学习
7+阅读 · 2018年9月11日
我是一个爬虫
码农翻身
12+阅读 · 2018年6月4日
Python 爬虫实践:《战狼2》豆瓣影评分析
数据库开发
5+阅读 · 2018年3月19日
速看|Python 拯救你的人生颓
机器学习算法与Python学习
4+阅读 · 2018年3月16日
Python | 拯救鉴黄师
计算机与网络安全
5+阅读 · 2018年2月17日
Python NLP入门教程
计算机与网络安全
9+阅读 · 2017年11月21日
Top
微信扫码咨询专知VIP会员