12月的音乐可视化笔记:我从TOP2000歌曲中,分析了这几年流行音乐的变化趋势

本文讲述了作者通过分析Top2000歌曲数据,揭示了流行音乐的变化趋势。作者从数据收集、处理到可视化,详细介绍了如何使用R语言和d3.js创建音乐可视化项目,探讨了歌曲发行年代与排行榜表现的关系,并分享了在数据匹配和可视化设计过程中的挑战与解决方案。
摘要由CSDN通过智能技术生成

大数据文摘作品

编译:HAPPEN、朝夕、林海、吴双


2017年的最后一个月挟裹着寒风悄悄地来临了,与我们不经意间撞了一个满怀。今天,我们收录了两篇特别可爱的“创作笔记”,是生活在阿姆斯特丹的Nadish和在旧金山生活的Shirley,因为要共同在12月份完成属于各自的一篇音乐可视化的小项目。他们各自用了4周完成创作,并写了下了两篇”创作笔记”。

从一开始确定各自的选题,到收集数据完成阶段性效果草图,再到最终实现代码完成验证,他们经历了一些趣事,我们从中既可以看到音乐可视化模型的新视角,也希望为大家在寒冬里带来一丝暖意。


第一篇,Nadieh的创作笔记


“我从TOP2000歌曲中,分析了这几年流行音乐的变化趋势”


第一周 | 数据


关注大数据文摘,公众号后台回复“隔壁老王”,下载设计师老王从隔壁发来的高清大图


当你和荷兰人谈论“12月的音乐”,他们很有可能想到Top 2000,这是一个从圣诞节开始到12月31日午夜之间播放的年度音乐榜单。我其实在之前就接触过这份数据。那是我的第二个正式个人项目,当时对于d3(交互式数据可视化的Java库)我还是个新手。有时我会看到艺术家重温自己过去完成的作品,来审视自己风格的变化(这也是我很爱做的事),我认为这个项目很适合去尝试一下(在效果草图(sketch)的部分,你可以看到我其实已经思考这个想法长达几个月了)。所以,在我初次尝试了两年后,我开始再次关注Top2000并将一些见解进行可视化处理。


不用担心你不是荷兰人,Top2000榜单中90%都是英文歌。Queen常常排榜首,还有许多Beatles、U2、Michael Jackson的歌,所以这份列表对你来说可能很熟悉。


Top2000网站在今年12月19日公开分享了一份包含2000首歌的歌名、歌手、发行年份等特征的Excel文件。


但是我需要另一个重要的变量:歌曲在每周榜单中达到的最高排名。


这在荷兰比较少见,我最终选择使用每周Top40作为重点研究对象,一方面因为它从1965年开始持续到今日没有中断,另一方面是它的数据看起来很好抓取。因此我写了一个小爬虫程序,爬取了近50年的列表,保存了歌手名字、歌曲名称、歌曲界面地址以及排名位置。之后我将数据做了整合,使每一首歌都有唯一一行数据(歌曲的URL是唯一键),并保存了额外的信息,例如达到的最高排名以及在Top40上榜的周数。


接下来是麻烦的地方,将Top40的歌手和歌曲与Top2000相匹配。当然我首先尝试直接通过精准匹配歌手和歌曲名称来融合两张榜单,结果只有大概60%的歌曲被完全匹配。浏览了剩下的歌曲后,我发现两张榜单有时候用词的长度有差异,比如John Lennon-Plastic Ono Band 对应John Lennon。所以我开始在两张榜单中搜索部分匹配的歌曲,只要这首歌曲名和歌手名的所有单词都能被另一张榜单的某一项包含即可。这种方法帮助我又匹配了10%的歌曲。    


随后是不好判断的部分。有时候有些单词的拼写存在微妙的区别,例如Don't stop 'til you get enough 对应Don't stop 'till you get enough。我使用了R语言的stringdist包,用其中的Full Damerau-Levenshtein距离来比对两个榜单的歌曲名与歌手名(它计算了将b转为a时相邻字符发生的删除、插入、替换、转置等必要变换的数量)。我在处理上比较严格,设定在标题和歌手名匹配时只能有两次变换(否则歌曲 U2的Bad 可能会被转换为任意一首三个词的歌和2-3个词的歌手)。令人沮丧的是,这种方法只提高了2.5%的匹配率。这侧面说明,我非常需要在每一步处理后快速检查一下所有已匹配的歌曲,以找出错误的匹配。


此时还有大约600首歌未被匹配。不过这并不是很糟糕的事,因为不是所有的歌都在Top40中,例如排名第三的歌,Led Zeppelin with Stairway to Heaven ,因为它只发行了唱片而没有发行单曲。但是如何判断未匹配的歌是确实理应匹配不上还是出现在Top40中但未被匹配呢?我采用的最后一个想法是使用每周音乐贴士(Tips of the week)。从1970年左右开始,音乐网站在评选Top40时,还提供了一个20-30条左右的扩充列表以列出一些不在Top40中,但被DJ认为将在或应该在榜单中的歌曲。因此我抓取了所有年份的列表,然后像Top40那样处理了一遍。这个方法匹配了8%左右我确定是在Top40中从未出现的歌曲(但是它们曾经在扩充列表中被提到过)。


对于剩余的430首歌,我浏览了列表中的较长或少见的歌手名或歌曲名,这些是我认为可能是匹配方法没有成效但的确出现在Top40中的歌曲,例如Top2000中的 Andrea Bocelli& Sarah Brightman对应Top40中的  Sarah Brightman& Andrea Bocelli 。我无法确定剩下的380首歌中有多少曾出现在Top40里,但是说实话,经过所有的数据处理以及我对数据的检查,我认为这种情况低于10%。


第二周 | 效果草图


今年春天我参加了 Juan Velasco一家很棒的工作坊叫“ Information Graphics for Print and Online”。这家工作坊的一部分工作是绘制信息图。我的三人小团队对Top2000歌曲榜单都非常感兴趣,写下了大约40个可能的想法。但从我之前对这份数据进行可视化的尝试中,我已经知道在过去的时间里,最受人喜欢的年代(歌曲发行时间)发生了一个非常有趣的变化。因此,我们选择以它作为整体概念,围绕着它来设计信息图的每一个基础部分。


以最新的Top2000榜单为中心,将同一年发行的歌曲聚集在一起,通过蜜蜂群图来可视化。每一个圈(也就是一首歌)的大小由它们在Top40的最高排名来决定,颜色由它们在Top2000的排名决定。其中一些歌曲会添加注释,并高亮提示,例如排名最高的新歌。



最后,底栏中是一些迷你图表,突出展示了1999、2008、2016年版本的Top2000榜单中被选歌曲的发行年份分布。这强调了一个事实即1999年,大部分歌曲都是在70年代发行的,但是它们慢慢地进入了下几个十年。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值