当个Rapper有多难?会码Python我就燃!

2017 年 8 月 16 日 AI研习社 猫弟Azz


本文原作者猫弟Azz。本文原载于摩登天空杂志。


“你有freestyle吗”火遍全网之后,一个个你从来没听过的 rapper 像加拿大土拨鼠播报春天一样冒出洞口——你突然感觉到,妈的,HipHop还真要成主流了?我努力努力改天还靠这个吃饭吗?


然后,你作为一个对HipHop,尤其是中国HipHop毫无了解的吃瓜群众,你自然会好奇以下三个问题:


HipHop到底在唱些什么?

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

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


所以我用 Python 抓取了美国、英国、台湾、香港、中国大陆四个地区,总共六千万的歌词,其中包括大陆600万的歌词,做了一些数据分析的工作,目的就是给你想要的答案。


我的数据源选了虾米音乐,因为虾米有详细的嘻哈音乐分类,其它的如网易云音乐、QQ、Spotify、iTunes、StreetVoice,要么欠缺对歌手音乐风格的分类,要么分类粗糙,没法当做数据源。


选定虾米音乐之后,写了好一会代码,抓取歌词的爬虫开始蹭蹭工作了 ⇣



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


1.代理问题

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


2.效率问题

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


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


……


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


看着这满满的记录,感受到蜜蜂辛勤搬运后看着蜂蜜的喜悦,我相信,关于HipHop歌词的秘密全部都包含在里边了。



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


虾米的歌词都是用户编辑上传的,格式不适用数据分析,所以我得把无用的符号、编曲、作词之类的信息除去(格式统一有多么重要啊朋友们),然后中英文各自分词。英文需要去停词(对数据分析无用的词,一般没有实际含义,如 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 的生活状况,我开始分析一些常见词汇在歌词中出现的频率。饶舌歌手们的生活想必少不了豪车,出门骑摩拜可能有被开除 rap 籍的风险。


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



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


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


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


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


绝对伏特加在《中国有嘻哈》做广告确实是找对地方了,rapper 们对伏特加有高于常人的偏好。


所以 rapper 们都怎么喝金酒?我看了看歌词。


“Sippin’ gin and juice Layin' underneath the palm trees”,gin&juice 是最常见的组合,由于著名 rapper  Snoop Dogg 发过同名单曲,rapper 们特别喜欢。


“Think we a joke? I'll put three in your throat

Drunk off gin and C&C; coke then we flee in a boat”金酒兑可乐,听起来不错。


“Rolling weed in raw papers, taking shots, gin got me faded

If I get back to your spot, won’t know how I made it”,一边飞叶子一边喝金酒!


“Havin’ fun with some bitches smokin' weed in the ride

On the corner with my dogs drinkin' gin to survive”,这个 rapper 跟一个狗喝 gin,看来故事很多。


“Swimmin’ under water like I'm aquaman

I used to drink gin now it's vodka man”,这个 rapper 喝腻了,从金酒转到伏特加阵营......


然后,我们来看一下管制药物的情况 


 

果然大家还是喜欢叶子,不只是饶舌歌手啦。


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


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


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


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


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

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


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



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


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




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


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


双押x9 达成!


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





Freestyle不够?来看直播吧!



 扫码进入直播间

关注 AI 研习社(okweiwu),回复 1 领取

【超过 1000G 神经网络/AI/大数据、教程、论文!】


后台回复 “我要进群” 加入 AI 技术讨论群


 

对我们的分享会有什么建议?

希望成为分享人吗?

我们听到你的声音

▼▼▼

登录查看更多
0

相关内容

音乐,广义而言,指精心组织声音,并将其排布在时间和空间上的艺术类型。
【实用书】Python数据科学从零开始,330页pdf
专知会员服务
142+阅读 · 2020年5月19日
Python分布式计算,171页pdf,Distributed Computing with Python
专知会员服务
107+阅读 · 2020年5月3日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
225+阅读 · 2020年3月22日
算法与数据结构Python,369页pdf
专知会员服务
162+阅读 · 2020年3月4日
【2020新书】数据科学:十大Python项目,247页pdf
专知会员服务
213+阅读 · 2020年2月21日
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
180+阅读 · 2020年1月1日
【电子书推荐】Data Science with Python and Dask
专知会员服务
43+阅读 · 2019年6月1日
GitHub标星2.6万!Python算法新手入门大全
量子位
3+阅读 · 2019年4月27日
Python用法速查网站
Python程序员
17+阅读 · 2018年12月16日
吃鸡手游竟然是Python写的?
机器学习算法与Python学习
7+阅读 · 2018年9月11日
Python | Jupyter导出PDF,自定义脚本告别G安装包
程序人生
7+阅读 · 2018年7月17日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
为什么你应该学 Python ?
计算机与网络安全
4+阅读 · 2018年3月24日
Python NLP入门教程
Python开发者
9+阅读 · 2017年11月19日
Python NLP 入门教程
大数据技术
19+阅读 · 2017年10月24日
Python 自然语言处理(NLP)工具库汇总
数据挖掘入门与实战
7+阅读 · 2017年9月25日
A Modern Introduction to Online Learning
Arxiv
20+阅读 · 2019年12月31日
Arxiv
53+阅读 · 2018年12月11日
Arxiv
3+阅读 · 2018年4月5日
VIP会员
相关VIP内容
【实用书】Python数据科学从零开始,330页pdf
专知会员服务
142+阅读 · 2020年5月19日
Python分布式计算,171页pdf,Distributed Computing with Python
专知会员服务
107+阅读 · 2020年5月3日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
225+阅读 · 2020年3月22日
算法与数据结构Python,369页pdf
专知会员服务
162+阅读 · 2020年3月4日
【2020新书】数据科学:十大Python项目,247页pdf
专知会员服务
213+阅读 · 2020年2月21日
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
180+阅读 · 2020年1月1日
【电子书推荐】Data Science with Python and Dask
专知会员服务
43+阅读 · 2019年6月1日
相关资讯
GitHub标星2.6万!Python算法新手入门大全
量子位
3+阅读 · 2019年4月27日
Python用法速查网站
Python程序员
17+阅读 · 2018年12月16日
吃鸡手游竟然是Python写的?
机器学习算法与Python学习
7+阅读 · 2018年9月11日
Python | Jupyter导出PDF,自定义脚本告别G安装包
程序人生
7+阅读 · 2018年7月17日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
为什么你应该学 Python ?
计算机与网络安全
4+阅读 · 2018年3月24日
Python NLP入门教程
Python开发者
9+阅读 · 2017年11月19日
Python NLP 入门教程
大数据技术
19+阅读 · 2017年10月24日
Python 自然语言处理(NLP)工具库汇总
数据挖掘入门与实战
7+阅读 · 2017年9月25日
Top
微信扫码咨询专知VIP会员