2019独角兽企业重金招聘Python工程师标准>>>

托某奇艺选秀节目的福,“嘻哈”无疑是这个夏天最热的音乐标签。年初的时候,我们教室实习生小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做出一段嘻哈歌曲。

https://www.zhihu.com/video/888055148159602688

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

════

其他文章及回答:

听说你好不容易写了个爬虫,结果没抓几个就被封了? 喏,你们要的 PyCharm 快速上手指南 编程新手:看懂很多示例,却依然写不好一个程序 给伸手党的福利:Python 新手入门引导 如何用100行Python代码做出魔性声控游戏“八分音符酱” 学习编程的过程中可能会走哪些弯路,有哪些经验可以参考? 你是如何自学 Python 的?

Crossin的编程教室

微信公众号ID:crossincode
网站: crossincode.com

转载于:https://my.oschina.net/crossin/blog/1844750

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

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

    托某奇艺选秀节目的福,"嘻哈"无疑是这个夏天最热的音乐标签.年初的时候,我们教室实习生小D还是网易云上一只忧郁的民谣狗.没想到一夜之间,他的歌单已被HipHop占据,俨然一只黑怕老 ...

  2. Python编曲实践(八):我,乔鲁诺·乔巴那,能用两百行代码写出JOJO黄金之风里我自己的出场曲!

    前言 前些天笔者写的文章 Python编曲实践(七):整整一百行Python代码写出黑人抬棺梗曲<Astronomia>的旋律 受到了大家的许多支持和好评,本篇文章挑战更复杂.更有挑战性, ...

  3. 如何用PYTHON代码写出音乐

    如何用PYTHON代码写出音乐 什么是MIDI 博主本人虽然五音不全,而且唱歌还很难听,但是还是非常喜欢听歌的.我一直在做这样的尝试,就是通过人工智能算法实现机器自动的作词和编曲(在这里预告下,通过深 ...

  4. python怎么实现音乐快进_如何用PYTHON代码写出音乐【】

    如何制作MIDI(用于vocaloid 3) 我也是因为V家才来找midi的 如何用PYTHON代码写出音乐 在python-midi,每个乐谱用Pattern对象表示,乐的每个音轨(通常音乐很多轨道 ...

  5. 用代码写出浪漫__合集(python、matplotlib、Matlab、java绘制爱心、玫瑰花、前端特效玫瑰、爱心)

    活动地址:CSDN21天学习挑战赛 用代码写出浪漫合集(爱心.玫瑰花)       本文目录: ​一.前言 二.用python.matplotlib.Matlab.java绘制爱心 (1)爱心图形1( ...

  6. python写出的程序如何给别人使用-如何用PYTHON代码写出音乐

    什么是MIDI 博主本人虽然五音不全,而且唱歌还很难听,但是还是非常喜欢听歌的.我一直在做这样的尝试,就是通过人工智能算法实现机器自动的作词和编曲(在这里预告下,通过深度学习写歌词已经实现了,之后会分 ...

  7. 中软python编码规范考试试题_卓越分享 | 如何写出一手漂亮的Python代码?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Python语言这么火,有很多同学是从其他语言转行过来的(比如c++,java语言),多多少少写代码的时候也会受其他语言的影响!而对于刚开始学编程的小白同 ...

  8. python open方法1001python open方法_怎样才能写出 Pythonic 的代码 #P1001#

    L = [ i*i fori inrange(5) ] forindex, data inenumerate(L, 1):print(index, ':', data) 去除 import 语句和列表 ...

  9. 【python表白神器】手把手教你用代码浪漫追求对象!(附完整源码+讲解)

    文章目录 一.前言 二.演示看效果! 三.网站制作 四.部署网站 五.二维码制作 六.强烈推荐系列教程,建议学起来!! 七.总结 一.前言 跟着我做,做成功就去表白,不介意的话表白成功给我打个赏.第一 ...

最新文章

  1. Django 无法加载静态文件(js,css,image)解决办法
  2. arraylist从大到小排序_JAVA零基础入门课程笔记----数组排序
  3. fiddler弱网测试_移动端质量体系之弱网测试
  4. RocketMQ部署安装(非Docker安装)
  5. QT的QHashIterator类的使用
  6. Crontab作业时间设置
  7. com.alibaba.fastjson.JSONObject之对象与JSON
  8. 微信小程序运营案例(一)—— XXX商贸冷冻食品配送中心
  9. could not find Fragment constructor
  10. hcia是什么等级的证书_华为hcia是什么等级的证书
  11. C#中的bin和obj文件夹有什么用?
  12. 什么样的打码网站算正规的打码网站
  13. adobe acrobat 无效批注对象
  14. 阿里云服务器ECS怎么重装系统?
  15. input输入框中嵌入下拉选项
  16. 小程序生成统一支付prepay_id相关配置和类介绍
  17. Kafka分区副本重分配源码分析
  18. 人工智能之父 艾伦·图灵 —— 我在战争中才华横溢,却在和平中寸步难行
  19. Jenkins 配置邮件通知
  20. POJ1753 flip Game翻转棋盘

热门文章

  1. ps更换证件照底色(视频版)
  2. Hadoop No FileSystem for scheme “hdfs“ 客户端环境变量配置
  3. Unity3D疫情传播模拟器完整代码
  4. windows插耳机没声音?
  5. 使用script#编写Xrm的Javascript
  6. error: C1083: 无法打开包括文件: “QString”: No such error: ‘QDir‘ file not found
  7. AS3实现经典算法(一) 斐波纳契数列
  8. 初中英语和计算机融合的教学案例,初中英语与信息技术整合教学案例
  9. jibx进行xml数据绑定的binging.xml配置
  10. 1.Linux基本简介和使用