《中国有嘻哈》火了,作为一名对中国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也能看出来。
转自:CSDN