《中国有嘻哈》火了,作为一名对中国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的生活状况,我开始分析一些常见词汇在歌词中出现的频率。饶舌歌手们的生活想必少不了豪车,出门骑摩拜可能有被开除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 达成!

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

说明: 文章来源于网络,如果涉及到版权问题,请联系我进行删除.

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

  1. python里的英文歌叫什么_Python告诉你:从《入海》到《消愁》毛不易的歌里都在唱些什么?...

    原标题:Python告诉你:从<入海>到<消愁>毛不易的歌里都在唱些什么? CDA数据分析师 出品 作者:Mika 数据:真达 后期:泽龙.Mika [导语]:今天我们来聊聊- ...

  2. python中的英文歌_Python告诉你:从《入海》到《消愁》毛不易的歌里都在唱些什么?...

    [导语]:今天我们来聊聊--B站联合毛不易发布的毕业季主题曲<入海>,以及背后不一样的毛不易.Python技术部分请看第三部分. Show me data,用数据说话!今天我们聊一聊 毛不 ...

  3. python125免费教程,125 个视频成就千万级网红,Python 告诉你李子柒都在拍些什么?...

    原标题:125 个视频成就千万级网红,Python 告诉你李子柒都在拍些什么? 作者 |Mika,数据 |真达 后期 |Mika.泽龙 责编 | 郭芮 来源 | CDA数据分析师 今天我们来聊聊把生活 ...

  4. 125 个视频成就千万级网红,Python 告诉你李子柒都在拍些什么?

    作者 | Mika,数据 | 真达 后期 | Mika.泽龙 责编 | 郭芮 来源 | CDA数据分析师 今天我们来聊聊把生活过成诗的李子柒. "李家有女,人称子柒."如果说到当下 ...

  5. 【Python学习】使用pandas和matplotlib分析1949-2016年中国各省市历年GDP数据

    [Python学习]使用pandas和matplotlib分析1949-2016年中国各省市历年GDP数据 导入包 读取数据 设置颜色列表 绘图分析 导入包 由于我是在jupyter notebook ...

  6. 用Python做单变量数据集的异常点分析

    大数据时代,数据的异常分析被广泛的用于各个场合. 今天我们就来看一看其中的一种场景,对于单变量数据集的异常检测. 所谓单变量,就是指数据集中只有一个变化的值,下面我们来看看今天我们要分析的的数据,点击 ...

  7. 上海python还是很多的_Python数据采集和分析告诉你为何上海的二手房你都买不起!(一)...

    1.前言 本人是个学生党,在过两年就要研究生毕业了,面临着找工作,相信很多人也面临或者经历过工作,定居租房买房之类的 在此,我们来采集一下上海在售的二手房信息,有人想问,为啥不采集新房?快醒醒吧,新房 ...

  8. 为什么不用python做大数据_光环大数据告诉你为什么说:人生苦短,我用Python

    首先我们要说明的是本文不扯什么大道理,只是先介绍Python的背景,然后从实用的角度出发举一两个真实栗子. 首先要想了解要一门语言的好坏,或者为什么招程序员喜欢(卧槽,原来程序员喜欢不是女朋友?)我们 ...

  9. 用Python做词云可视化带你分析海贼王、火影和死神三大经典动漫

    对于动漫爱好者来说,海贼王.火影.死神三大动漫神作你肯定肯定不陌生了.小编身边很多的同事仍然深爱着这些经典神作,可见"中毒"至深.今天小编利用Python大法带大家分析一下这些神作 ...

最新文章

  1. 【转载】从康耐视(NASDAQ : CGNX)看国内视觉识别行业的机会
  2. GNU make manual 翻译( 一百一十四)
  3. go使用之-编译约束
  4. 转载:c+string类详解
  5. 解决tomcat的undeploy
  6. Bootstrap3 Font Awesome 字体图标旋转或翻转图标
  7. SQL 基础笔试题 (三)
  8. f score matlab,机器学习中如何用F-score进行特征选择
  9. KMP算法的正确性证明及一个小优化
  10. secureCRT/telnet工具使用技巧(二):设置快捷登录
  11. 计算机键盘调亮度,电脑屏幕亮度怎么调
  12. ssh 远程连接详解--(linux运维09)
  13. Java桶排序LSD
  14. 域名注册流程是什么 注册域名的时候要注意什么
  15. 算力测试Linux,附录:计算力的标准Linpack测试详细指南(1)
  16. longest-consecutive-sequence(最长连续序列)
  17. Chart.xkcd图表库
  18. 详解1M宽带下载速度?1M等于多少kb?
  19. Java通过jacob生成动态word,还有一种方法通过word书签实现
  20. NYOJ 1253 Turing equation【题意是关键,模拟】

热门文章

  1. matlab贝叶斯编程代码,bnt 基于matlab的贝叶斯工具箱 各种程序与算法,在 网络编程中作为调用 238万源代码下载- www.pudn.com...
  2. JVM学习笔记之字节码指令集
  3. MySQL批量修改一个字段的部分内容
  4. 初征——淘特多店铺智能化运营的订单管理系统
  5. Key Points Estimation and Point InstanceSegmentation Approach for Lane Detection 论文精读
  6. C# 之 比较两个word文档的内容
  7. 超干干货:Linux 系统最强总结~
  8. 云计算推动下一代IDC行业发展
  9. Android 实现书籍翻页效果---番外篇之光影效果
  10. Web前端从入门到入土