心得:
先说结论,中国的嘻哈都在唱以下内容,这有什么好禁的?
““世界”和“时间”占据首位,
“老子”、“兄弟”、“baby”、“money”、“bitch”、“real” 等词
倒是让 rapper 的形象呼之欲出。rapper 的词里频繁提到“音乐”、“歌词”、
“旋律”、“歌曲”。”
https://goo.gl/DRR1gf
正文:【 我做了六百万字的歌词分析,告诉你中国Rapper都在唱些啥 】
https://weiwenku.net/d/101642774
文/ 猫弟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 有过一个有意思的定义。