ITPub博客

首页 > 数据库 > 数据库开发技术 > 周杰伦的歌里都有些啥?

周杰伦的歌里都有些啥?

原创 数据库开发技术 作者:Crossin的编程教室 时间:2019-07-26 13:47:00 0 删除 编辑

前几天微博上突然兴起了一波“为周杰伦做数据”的热潮。周董的夕阳红粉丝团“被迫营业”,把蔡徐坤拉下了盘踞许久的微博超话人气榜第一,还一举破了亿。


当然,等我知道的时候,都战局已定了……作为当年会唱前三张专辑里所有歌曲的老粉,不想就这么躺赢,我今天也来给周杰伦做一把数据:



这是我们从酷我音乐上获取了周杰伦32张专辑,共189首歌曲(去除重复)的歌词,对其中的歌词进行了分词统计,得到了歌词中频率最高的词汇。


具体的前十名数据:

爱、回忆、微笑、世界……看得出来,周董的歌还是充满青涩和小清新的。难怪人说:周杰伦的歌里,有我们的青春。


下次有机会,咱也来做做其他想把重心放在作品上的小鲜肉的数据。但前提是,样本量得够啊……


代码实现


通过歌词做词云,这个你们可能在网上看到过很多了。其实我在两年多前就已经做过:


数据分析:当赵雷唱民谣时他唱些什么?


基本思路都是一样的。这里我再简单说一下:


1. 在酷我的页面上,找到专辑列表的接口:

http://www.kuwo.cn/api/www/artist/artistAlbum?artistid=336&pn=1&rn=50 


通过 requests 库获取结果(JSON格式数据),得到专辑 id。



2. 通过专辑 id,获取歌曲 id 列表:

http://www.kuwo.cn/album_detail/555949


再通过歌曲 id,进入歌曲详细页面获取歌词:

http://m.kuwo.cn/newh5/singles/songinfoandlrc?musicId=7119717




3. 使用 jieba 分词库,对歌词进行分词,并统计计数。关于 jieba 库的介绍,可参考:【编程课堂】jieba-中文分词利器


为避免某些歌里不断重复的词汇影响数据,我们对于每首歌中出现的词汇仅计数一次。


4. 去除一些没有特别含义的助词、副词、介词,选取结果前300的词汇,使用 wordcloud 库绘制图云,便得到开头的那张图。关于 wordcloud 的使用可参考:【编程课堂】词云 wordcloud


注意:要用 wordcloud 显示中文的话,需要附加中文字体,否则会显示为 □。


5. 用 matplotlib 库的 bar 函数 绘制一张最高频词汇的柱状图。


本文代码部分由编程教室的实训生 清风小筑 同学完成。同时他也是我们的助教之一,码上行动答疑群中的同学如对此项目有疑问,可找他讨论。


完整代码、详细说明和中间数据已上传,需要的同学请在公众号(Crossin的编程教室)里回复关键字 周杰伦



顺便再提醒下,我们这期的7天打卡活动今天正式开启啦。

详情 >>> 像蜗牛一样学习

还没上车的赶紧了,上车的可以开始动起来了!


种一棵树最好的时间是十年前,其次是现在。

编程也是。






其他内容回复左侧关键词获取:

python :零基础入门课程目录

新手 :初学者指南及常见问题

资源 :超过500M学习资料网盘地址

项目 :十多个进阶项目代码实例


如需了解视频课程及答疑群等更多服务,

请号内回复 码上行动


推荐阅读

经验:高考选专业 | Python转行 | 我用Python | 新手建议

干货:如何debug |  一图学Python  | 知乎资源 | 单词表

案例:漫威API | 爬抖音 | 查天气 | 智能防挡弹幕 | 红包提醒



欢迎加入

Crossin的编程教室

crossincode.com


请把我们分享给身边爱学习的小伙伴 :)  

☟点击文末“阅读原文”,查看更多学习资源

原文作者:Crossin的编程教室;如有侵权,请联系管理员删除。

下一篇: 像蜗牛一样学习
请登录后发表评论 登录
全部评论

注册时间:2015-06-05

  • 博文量
    498
  • 访问量
    200503