专栏首页Crossin的编程教室Python有嘻哈:Crossin教你用代码写出押韵的verse

Python有嘻哈:Crossin教你用代码写出押韵的verse

托某奇艺选秀节目的福,“嘻哈”无疑是这个夏天最热的音乐标签。年初的时候,我们教室实习生小D还是网易云上一只忧郁的民谣狗(参见 数据分析:当赵雷唱民谣时他唱些什么?)。没想到一夜之间,他的歌单已被HipHop占据,俨然一只黑怕老炮儿。

这对小D来说可谓一大利好:本来报个吉他班,学了仨月才把1645摸熟,如今去淘宝了一把嘻哈四件套,找段beat,药药切克闹,就嗨起来啦!

小D underground听多了就想找人battle。隔壁老王他早就不爽了,这次一定要写段词来diss他!但像小D这么real的rapper是绝对不屑套别人的词的,这可难为坏他小学及格的作文水平了。

小D一连几天闷头在纸上写写画画,也没憋出来几句。我实在看不下去了,不就是写点押韵的词嘛,交给哥来帮你搞定。小D一脸鄙夷:你还会写歌词?我微微一笑:词我是写不了,但我们会什么?编程啊!都什么时代了,还要靠人力嘛。

我的想法很简单:就是找些嘻哈歌手的歌词,把里面的词语都拿出来。当想要写一段歌词时,只要给一个参考词,就帮你找出押韵的备选词。当然太简单的单字押韵我都懒得列出来了,咱们要做就做双押和三押!

说干就干!

  1. 拿网易云的接口,抓了十几位中文嘻哈歌手的歌单,包括: 红花会、PGone、VaVa、艾福杰尼、BooM黄旭、Bridge、GAI爷、TizzyT、JonyJ、小青龙、辉子、孙八一、谢帝、马思维、满舒克、Mc光光 import requests url = 'http://music.163.com/api/playlist/detail?id=402614161' req = requests.get(url) data = req.json()
  2. 把他们的歌词全抓下来,共 459 首歌曲 import requests url = 'http://music.163.com/api/song/lyric?os=pc&id=411988938&lv=-1&kv=-1&tv=-1' req = requests.get(url) data = req.json()
  3. 用我们之前介绍过的结巴分词(参见【编程课堂】jieba-中文分词利器),把歌词处理下,分成一个个的词语,得到 21206 个词 import jieba seg_list = jieba.cut("我做的说唱从来不是为了混这圈子", cut_all=True) print("Full Mode: " + "/ ".join(seg_list)) ''' 结果 Full Mode: 我/ 做/ 的/ 说唱/ 从来/ 从来不/ 不是/ 为了/ 混/ 这/ 圈子 '''
  4. 用 xpinyin 将处理出来的词语转成拼音 from xpinyin import Pinyin p = Pinyin() print(p.get_pinyin(u"嘻哈")) ''' xi-ha '''
  5. 有了拼音就好办了。从网上找个押韵表,把这些嘻哈词语分门别类,就大告功成啦。最后得到 2845 个双押及三押的备选词汇 一、佳麻  a ia ua   第十部 麻、佳半,部分入声 二、开来  ai uai    第五部 佳半、灰半 三、先寒  an ian uan üan 第七部 寒删先元半十四部覃盐咸 四、江阳  ang iang uang 第二部 江阳 五、逍遥  ao iao     第八部 萧肴豪 六、国歌  e o uo    第九部 歌,部分入声 七、灰微  ei ui   第三部 支微齐,部分入声 八、森林  en in un ün  第六部 真文元半,十三部 侵 九、冬青  eng ing ong iong 第一部 东冬,十一部 庚青蒸 十、希奇(儿)i(er并入) 第三部 支微齐,部分入声 十一、诗词 i(整体认读)第三部 支微齐,部分入声 十二、别叠 ie (y)e      部分入声,佳麻二韵部分字 十三、忧愁 ou iu     十二部 尤 十四、读书 u      第四部 鱼虞,部分入声 十五、须臾 ü       第四部 鱼虞,部分入声 十六、绝学 üe      部分入声
  6. 最后,用django搭个网站,把这功能做成可在线访问的

接下来,小D要做的事就只剩下:想一个词,然后去搜一下有什么其他词跟它配。比如要diss老王,搜一下“老王”:

于是小D就写下了:

隔壁老王,你不要嚣张,放学之后给我等在操场

实在太方便啦!

如果你也想来首自己的嘻哈,点击文章下方的“阅读原文”,进入网站自个儿玩儿去吧!

想要完整代码及详细讲解的,请在公众号(Crossin的编程教室)里回复 嘻哈

最后,本人亲自演示,如何用搜出来的双押词汇加上一段简单beat做出一段嘻哈歌曲。

视频内容

多谢各位homie支持,别忘了转发文章以及给我的知乎专栏点赞!

  • 点击左下角“阅读原文”,查看嘻哈押韵词汇检索工具
  • 代码问题请在论坛 bbs.crossincode.com 上发帖提问
  • 欢迎加入讨论交流群组共同学习进步
  • 别忘了将我们的文章转发朋友圈或在知乎上为我们的专栏点赞,你们的支持将会让编程教室做得更好:)

本文分享自微信公众号 - Crossin的编程教室(crossincode)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-09-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • R语言爬虫与文本分析

    之前用python做过简单的爬虫与分析,今天尝试一下用R完成相应的功能。首先用R爬取了《了不起的麦瑟尔夫人》豆瓣短评作为语料,然后进行了词云绘制、关键词提取的基...

    三猫
  • 使用开源人脸特征提取器进行脸部颜值评分

    本文仅为模型应用实战,而非颜值研究,所得结果仅供娱乐,仅供参考。 方法也仅供参考。 一般而言,数据量越大,结果越接近正常人审美。由于本次数据量较小,故仅为实验。...

    微风、掠过
  • 调用Dlib库进行人脸关键点标记

           昨天调试了人脸识别(classifier_webcam)这个程序,效果不错,响应速度也挺快。按照http://blog.csdn.net/u011...

    微风、掠过
  • MySQL之pymysql模块

    PyMySQL介绍 PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。 Django中...

    人生不如戏
  • 大数据奇葩说:中国常见家用Wifi密码

    前些日子,一位程序员改了一个Telnet Wifi扫描脚本,经过两三天的扫描,积累了9万余条Wifi密码数据。遂针对扫描到的数据做一次简单的分析,得到了中国家...

    灯塔大数据
  • Python Garbage Collection 与 Objective-C ARCPython GC 与 Objective-C ARC

    转载请注明出处 https://cloud.tencent.com/developer/user/1605429 Python GC 与 Objective-C...

    WWWWDotPNG
  • 静态爬虫与地址经纬度转换(python)

    “ 本文通过一个小例子,展示了用python进行静态爬虫的方法,并且将爬取下来的城市列表,通过调用百度地图api,返回对应经纬度。” ---- requests...

    三猫
  • 凯撒加密之一个神奇的Python的API

    凯撒加密 在密码学中,恺撒密码是一种最简单且最广为人知的加密技术。 本质上恺撒加密就是一种替换加密的方式。 明文中的所有字母都在字母表上向后(或向前)按照一个固...

    linxinzhe
  • 【干货】机器学习经典 PRML 最新 Python 代码实现,附最全 PRML 笔记视频学习资料

    【导读】最近GitHub上网友ctgk公布了Python实现的经典机器学习图书《Pattern Recognition and Machine Learning...

    WZEARW
  • python 网络编程(udp)

            什么是UDP:UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一份待发送的IP数据报。这与面向流...

    微风、掠过

扫码关注云+社区

领取腾讯云代金券