作者 猫弟Azz
本文转自公众号摩登天空杂志,转载需授权
当
“你有
freestyle
吗”
火遍全网之后,一个个你从来没听过的
rapper
像加拿大土拨鼠播报春天一样冒出洞口——你突然感觉到,妈的,HipHop还真要成主流了?我努力努力改天还靠这个吃饭吗?
然后,你作为一个对HipHop,尤其是中国HipHop毫无了解的吃瓜群众,你自然会好奇以下三个问题:
HipHop到底在唱些什么?
各个国家和地区的 Rapper 们想要说的聊的唱的都有哪些特色?
如果想当一个Rapper,我应该怎样写词才能紧跟潮流又不会离题太远?
所以我用
Python
抓取了
美国、英国、台湾、香港、中国大陆
四个地区,总共
六千万
的歌词,其中包括大陆
600万
的歌词,做了一些数据分析的工作,目的就是给你想要的答案。
我的数据源选了虾米音乐,因为虾米有详细的嘻哈音乐分类,其它的如网易云音乐、
QQ、Spotify、iTunes、StreetVoice,
要么欠缺对歌手音乐风格的分类,要么分类粗糙,没法当做数据源。
选定虾米音乐之后,写了好一会代码,抓取歌词的爬虫开始蹭蹭工作了 ⇣
爬虫一般会面对两个问题——
1.代理问题
频繁地抓取网站的页面,
IP
很容易被封。于是写了个抓免费代理的爬虫,抓了八百多个代理
IP
,够用了。
2.效率问题
10万首歌,即使是1秒一个请求,那得
27
个小时,我可等不了27个小时。
于是我决定开10个线程,三小时程序就能跑完。
……
然后在三小时之后,我收获一个约
100
M
,49419
首歌的数据库。
看着这满满的记录,感受到蜜蜂辛勤搬运后看着蜂蜜的喜悦,我相信,
关于HipHop歌词的秘密全部都包含在里边了。
接下来,就是一些数据清洗、处理、分析的工作。
虾米的歌词都是用户编辑上传的,格式不适用数据分析,所以我得把无用的符号、编曲、作词之类的信息除去(格式统一有多么重要啊朋友们),然后中英文各自分词。
英文需要去停词(对数据分析无用的词,一般没有实际含义,如
is、on、at、which
),大小写变换,以及词形变换。英语中词汇有单复数、各种时态,为了易于分析,需要还原为词干。
另外不管是中文还是英文都需要词性标注,一般来说分析也就分析名词和形容词,这些现成的开源库使用(此处省去1000万字)。
总之,我都搞定了,以下就是分析结果。
我们先看看大陆地区的
rapper
歌词里有都写啥关键词 ⇣
“世界”
和
“时间”
占据首位,
“老子”、“兄弟”、
“baby”、“money”、“bitch”、“real”
等词倒是让
rapper
的形象呼之欲出。
rapper
的词里频繁提到
“音乐”、“歌词”、“旋律”、“歌曲”
,可见他们对自己的音乐非常在乎。嘻哈音乐由于有
freestyle
的文化,对亲自写词有要求,否则就不
“ real ”
,从节目中他们对偶像
rapper
的
diss
也能看出来。
接着,我们来看看与其他几个地区的关键词对比↓
看起来
rapper
的生活差不多,无论大陆还是台湾,都喜欢喊
“baby”
,身边都有一群
“兄弟”
和
“朋友”
,有
“梦想”
,平时都在唱
“hip hop”
,有
“烦恼”
了就骂骂街。
亮点是美国的关键字
top
1 是
“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
们都喝什么 ⇣