five

tijdloze.rocks MusicBrainz dataset

收藏
github2024-06-23 更新2024-06-25 收录
下载链接:
https://github.com/stijnvermeeren/tijdloze-musicbrainz
下载链接
链接失效反馈
官方服务:
资源简介:
该数据集是为tijdloze.rocks网站生成的,基于MusicBrainz数据库,用于提供完整的图表和统计数据。数据集包含了歌曲的详细信息,如首次出现的专辑、艺术家国籍和Spotify标识符等,以自动化添加新歌曲到数据库的过程。

This dataset was developed for the website tijdloze.rocks, leveraging the MusicBrainz database, to provide comprehensive charts and statistical data. It contains detailed song metadata including the album of first release, artist nationality, and Spotify identifiers, aiming to automate the process of adding new songs to the database.
创建时间:
2024-06-09
原始信息汇总

tijdloze.rocks MusicBrainz 数据集生成

背景

tijdloze.rocks 网站提供了比利时广播电台 Studio Brussel 的年度“最佳歌曲”列表 De Tijdloze 的完整图表和统计数据。该列表最初包含 100 首歌曲,但近年来已增长到超过 2000 首歌曲。为了尽可能自动化地添加新歌曲到数据库中,需要从 MusicBrainz 数据库中获取更多关于每首歌曲的信息,包括:

  • 歌曲首次出现的专辑,包括发行年份
  • 艺术家的国籍
  • 歌曲的 Spotify 标识符

MusicBrainz 数据库结构

MusicBrainz 数据库中最相关的数据类型包括艺术家、发行组、发行、录音和作品。例如:

  • 艺术家 Nirvana 有一个发行组 Nevermind
  • 在 tijdloze.rocks 数据库中,MusicBrainz 的发行组对应于专辑。然而,在 MusicBrainz 数据库中,一个发行组可以有许多不同的发行,每个发行都有自己的曲目列表、格式、发行日期等。
  • 歌曲 Smells Like Teen Spirit 在 MusicBrainz 数据库中是一个作品。通常,一个作品有许多不同的录音(早期演示版本、专辑版本、现场录音、不同艺术家的封面)。通常,一个录音可以被识别为该作品的“规范录音”,即当你请求播放该歌曲时,你期望在电台播放的录音(例如 Smell Like Teen Spirit)。

tijdloze.rocks MusicBrainz 数据集生成

数据集生成过程如下:

  • 遍历所有来自比利时或与他们链接的 URL 超过 8 个的艺术家(其他艺术家被忽略,因为他们在任何 Tijdloze 图表中出现的可能性非常小)。
  • 遍历所有归功于该艺术家的官方发行组,并确定哪些录音将此发行组视为其“规范”发行组,考虑以下因素:
    • 一首歌可能作为单曲发行,发行年份比相应专辑早一年。然而,我们仍然认为这首歌首次出现在专辑上,而不是作为独立单曲发行(当发行日期差异超过一年时)。
    • 同样,合辑专辑的优先级低于录音室专辑,尽管一首歌确实可能首次在合辑专辑上发行(例如 Nothing Really Ends)。
    • 当 MusicBrainz 数据库中存在两个发行组(单曲和相应专辑)之间的“单曲来自”关系时,这是一个强烈的指示,表明这是正确的“规范”关系。然而,一些相关歌曲从未作为单曲发行,即使那些作为单曲发行的歌曲,“单曲来自”关系也不总是存在于 MusicBrainz 数据库中。
  • 对于遇到的每个录音,导出已识别的规范发行组的 ID,以及其他相关数据,包括一个分数(基于该录音出现的发行数量),该分数稍后可用于识别与给定查询最相关的录音。

在使用数据集进行查询时,例如在 tijdloze.rocks API 中,应考虑以下因素:

  • 艺术家和歌曲在拼写错误或使用替代名称时也应被找到。
  • 只应考虑更相关的匹配录音,忽略例如现场录音(除非查询明确指出我们正在寻找现场录音)或不太知名的录音(例如早期演示版本),使用数据集中包含的分数进行识别。当多个录音足够相关时,应返回具有最早发行日期的录音。

数据集生成步骤

复制 MusicBrainz 数据库

按照 musicbrainz-docker 仓库中的说明创建 MusicBrainz 数据库的副本。

创建数据库导出模式

在数据库中创建一个新的 musicbrainz_export 模式,并执行以下 SQL 文件中的命令:

运行脚本以计算歌曲和专辑

运行 Python 脚本填充 mb_albummb_song 表:

  • 创建虚拟环境并安装 Python 依赖项
  • 执行 main.py 脚本

填充 mb_song_alias

执行 sql/5_song_alias_data.sql 中的命令填充 mb_song_alias 表。

导出新的表

使用 pg_dump 命令导出 musicbrainz_export 模式中的表。

查询创建 tijdlozedb.csv 数据集

执行以下 SQL 查询创建 tijdlozedb.csv 数据集:

postgresql SELECT song.id, song.title, album.id as "album_id", album.title as "album_title", album.release_year, album.musicbrainz_id, artist.id as "artist_id", IFNULL(CONCAT(artist.name_prefix, " ", artist.name), artist.name) as "artist_name", artist.country_id as "artist_country_id", artist.musicbrainz_id as "artist_musicbrainz_id", artist2.id as "artist2_id", IFNULL(CONCAT(artist2.name_prefix, " ", artist2.name), artist2.name) as "artist2_name", artist2.country_id as "artist2_country_id", artist2.musicbrainz_id as "artist2_musicbrainz_id" FROM song JOIN album ON album.id = song.album_id JOIN artist ON artist.id = song.artist_id LEFT JOIN artist AS artist2 ON artist2.id = song.second_artist_id

搜集汇总
数据集介绍
main_image_url
构建方式
该数据集的构建基于对MusicBrainz数据库的深度预处理。首先,通过筛选比利时艺术家或具有多个链接的艺术家,确保数据的相关性。随后,对这些艺术家的官方发行组进行迭代,确定哪些录音具有这些发行组作为其‘规范’发行组。在处理过程中,考虑了单曲与专辑发行年份的差异、合辑与录音室专辑的优先级,以及MusicBrainz数据库中的‘单曲来自’关系。最终,导出每个录音的规范发行组ID及其他相关数据,包括基于录音出现次数的评分,以便后续查询时识别最相关的录音。
特点
该数据集的主要特点在于其高度定制化和优化查询效率。通过预处理MusicBrainz数据库,创建了新的表结构,仅包含与tijdloze.rocks使用场景相关的数据,从而将所需磁盘空间从约100GB压缩至4GB。此外,数据集中包含的评分机制有助于在查询时快速识别最相关的录音,同时考虑了艺术家和歌曲名称的拼写变体,确保查询的准确性和灵活性。
使用方法
使用该数据集时,首先需按照提供的步骤复制MusicBrainz数据库,并执行一系列SQL脚本以创建和填充新的表结构。随后,运行Python脚本以计算并填充专辑和歌曲数据。最终,通过pg_dump工具导出新的表数据。在查询时,应考虑艺术家和歌曲名称的拼写变体,以及评分机制,以确保返回最相关的录音。此外,数据集支持通过tijdloze.rocks API进行高效查询,适用于需要精确音乐数据的应用场景。
背景与挑战
背景概述
tijdloze.rocks MusicBrainz数据集是由比利时广播电台Studio Brussel的年度‘最佳歌曲’榜单De Tijdloze的完整图表和统计数据驱动的。自1987年首次发布以来,该榜单已从最初的100首歌曲扩展到超过2000首,每年都有新歌曲需要添加到数据库中。为了自动化这一过程,研究人员利用了MusicBrainz这一开放音乐数据库,该数据库提供了更为完整和准确的音乐信息。通过预处理MusicBrainz数据库,创建了针对tijdloze.rocks使用场景优化的数据表,从而实现了高效查询,同时将所需的磁盘空间从约100GB减少到仅4GB。这一数据集的生成不仅简化了新歌曲的添加流程,还为音乐数据的分析和应用提供了坚实的基础。
当前挑战
构建tijdloze.rocks MusicBrainz数据集面临的主要挑战包括:1) 从MusicBrainz数据库中提取相关信息的复杂性,尽管MusicBrainz提供了API,但为每首歌曲检索所有相关数据需要大量的API调用;2) 复制完整的MusicBrainz数据库并直接在其上进行查询虽然提供了灵活性,但需要大量的磁盘空间,且查询可能复杂且低效;3) 确定每首歌曲的‘规范’版本,这涉及到处理不同版本的录音、专辑和艺术家的复杂关系,以及如何准确地映射这些信息到tijdloze.rocks的使用场景。此外,数据集的生成过程需要大量的预处理和优化,以确保数据的高效性和准确性。
常用场景
经典使用场景
tijdloze.rocks MusicBrainz数据集的经典使用场景主要集中在自动化音乐信息管理与查询优化。该数据集通过预处理MusicBrainz数据库,提取并结构化比利时电台Studio Brussel的年度最佳歌曲榜单所需的关键信息,如歌曲、专辑、艺术家的详细数据及其Spotify标识符。这种预处理不仅大幅减少了数据查询的复杂性和时间成本,还确保了数据的高效利用,特别是在处理大规模音乐数据时,显著提升了系统的响应速度和准确性。
实际应用
在实际应用中,tijdloze.rocks MusicBrainz数据集被广泛用于音乐推荐系统、音乐版权管理、音乐历史研究等多个领域。例如,在音乐推荐系统中,该数据集通过提供详细的音乐信息和艺术家背景,帮助系统更精准地推荐符合用户口味的音乐。在音乐版权管理中,数据集的结构化信息有助于快速识别和追踪音乐作品的使用情况,确保版权所有者的权益。此外,历史音乐研究者可以利用该数据集进行深入分析,探索音乐趋势和艺术家的影响力。
衍生相关工作
tijdloze.rocks MusicBrainz数据集的发布催生了多项相关研究和工作。首先,它启发了音乐信息检索领域的研究,推动了基于结构化数据的音乐推荐算法的发展。其次,该数据集为音乐数据的标准化和互操作性研究提供了实际案例,促进了不同音乐数据库之间的数据交换和整合。此外,它还激发了对音乐历史数据深度挖掘的研究,如通过分析音乐作品的流行趋势来研究社会文化变迁。这些衍生工作不仅丰富了音乐信息学的研究内容,也为实际应用提供了技术支持。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作