欧洲歌唱大赛是一个免费提供的数据集,包含参加欧洲歌唱大赛的 1735 首歌曲的元数据、比赛排名和投票数据。即将发布的版本还将包含音频功能。
每年,数据集都会根据比赛结果进行更新。此版本包含从 1956 年首次举办至今参加欧洲歌唱大赛的 1735 个参赛作品的参赛者元数据、比赛排名和投票数据。每首歌曲的相应音频都可以通过 YouTube 进行流式传输。
元数据和投票数据由 EurovisionWorld 粉丝网站提供。
数据集可以在这里下载。要复制它,请按照自述文件底部的说明进行操作。
John Ashley Burgoyne、Janne Spijkervet 和 David John Baker 使用陪审团级别的数据、新的音频功能以及 ISMIR 2023 的统计分析扩展了该数据集。您可以在此存储库中访问他们的数据和代码。
将contestants.csv
与audio.py
文件放在同一文件夹中,通过运行python3 audio.py
即可收集所有歌曲的YouTube音频流。或者,可以使用sh run.sh audio
或sh run.sh docker audio
在本地抓取或使用 Docker 容器来抓取流。
使用这些材料时,请引用以下资源。我也有兴趣了解基于这项工作的项目,请随时发送电子邮件至:janne [dot] spijkervet [at] gmail [dot] com
@inproceedings{burgoyne_mirovision, author = {John Ashley Burgoyne and Janne Spijkervet and David John Baker}, title = {Measuring the {Eurovision Song Contest}: A Living Dataset for Real-World {MIR}}, booktitle = {Proceedings of the 24th International Society for Music Information Retrieval Conference}, year = 2023, address = {Milan, Italy}, url = {https://archives.ismir.net/ismir2023/paper/000097.pdf} } @misc{spijkervet_eurovision, author = {Janne Spijkervet}, title = {{The Eurovision Dataset}}, month = mar, year = 2020, doi = {10.5281/zenodo.4036457}, version = {1.0}, publisher = {Zenodo}, url = {https://zenodo.org/badge/latestdoi/214236225} }
为了初步了解数据集,在examples
目录中创建了一个示例 Jupyter Notebook。这可以用jupyter notebook
打开。要复制数据集,请参见下文:
您可以使用此存储库中包含的抓取代码下载整个数据集。这将尝试从 EurovisionWorld 网站获取数据并将其处理到 csv 文件中,这些文件也在此存储库的发布部分中提供:
votes.csv
contestants.csv
betting_offices.csv
pip3 install -rrequirements.txt#将产生votes.csv和contestants.csvpython3 scrape_votes.py#将产生betting_offices.csvpython3 scrape_odds.py
运行sh run.sh docker
以构建 Dockerfile 并从容器内运行scrape_votes.py
。不需要额外的设置。这将复制数据集、 contestants.csv
、 votes.csv
和betting_offices.csv
文件。
还可以从 Docker 容器内部或外部获取音频:
bash run.sh docker audio bash run.sh audio
一旦所有音频都存在于audio
文件夹中,就可以使用以下命令提取音频特征:
sh audio_features.sh
这将启动一个安装了 Essentia 的流音乐提取器的 Docker 容器。或者,如果 Essentia 的提取器安装在 PATH 环境中,则可以运行audio_features.py
。
决赛和半决赛均提供比赛排名。国别投票数据包含47007次投票活动,自2016年推出以来,以陪审团投票和电视投票分开。
柱子 | 描述 |
---|---|
年 | 比赛年 |
目的地国家/地区 ID | 参赛者的国家/地区 ID |
目的地国家 | 参赛者的国家名称 |
演员 | 艺术家 |
歌曲 | 参赛者歌曲的标题 |
sf_num | 参加过半决赛1、2或0(2004-2008年只有一场半决赛) |
跑步最终 | 比赛决赛转播顺序 |
运行_sf | 比赛半决赛的转播顺序 |
决赛名次 | 进入决赛 |
最终积分 | 决赛积分 |
地点_SF | 进入半决赛 |
点_SF | 半决赛积分 |
积分最终 | 比赛决赛中的电视投票点 |
评审团最终分数 | 比赛决赛评审团投票分数 |
点_远程_sf | 比赛半决赛的电视投票点 |
点_陪审团_sf | 比赛半决赛评审团投票分数 |
歌词 | 这首歌的歌词 |
youtube_url | YouTube 上视频的网址 |
柱子 | 描述 |
---|---|
年 | 比赛年 |
圆形的 | 决赛、半决赛 |
来自国家/地区 ID | 给予积分的国家/地区的国家/地区 ID |
目的地国家/地区 ID | 接收点所在国家的国家ID |
来自国家/地区 | 给予分数的国家的国家名称 |
目的地国家 | 接收点国家名称 |
点 | 给出的点数 |
建议通过运行sh run.sh docker
来使用 Docker,或者通过调用sh run.sh
来使用本地安装。要同时获取音频,请运行sh run.sh audio
或sh run.sh docker audio
。
要复制数据集,需要适用于 Chrome、Firefox 或 Safari 的 WebDriver,例如适用于 Chrome 的 WebDriver 以及 Selenium Python 包 ( pip3 install selenium
)。按照此处的说明设置 WebDriver。可以使用以下命令安装项目的依赖项:
pip3 install -r requirements.txt
使用以下命令提取 1956 年至 2023 年间所有欧洲歌唱大赛的数据:
python3 scrape_votes.py --start 1956 --end 2023
这将创建一个contestants.csv
和votes.csv
文件。
@inproceedings{burgoyne_mirovision, author = {John Ashley Burgoyne and Janne Spijkervet and David John Baker}, title = {Measuring the {Eurovision Song Contest}: A Living Dataset for Real-World {MIR}}, booktitle = {Proceedings of the 24th International Society for Music Information Retrieval Conference}, year = 2023, address = {Milan, Italy}, url = {https://archives.ismir.net/ismir2023/paper/000097.pdf} } @misc{spijkervet_eurovision, author = {Janne Spijkervet}, title = {{The Eurovision Dataset}}, month = mar, year = 2020, doi = {10.5281/zenodo.4036457}, version = {1.0}, publisher = {Zenodo}, url = {https://zenodo.org/badge/latestdoi/214236225} }