Le Concours Eurovision de la Chanson est un ensemble de données disponible gratuitement contenant des métadonnées, le classement du concours et les données de vote de 1 735 chansons ayant participé au Concours Eurovision de la chanson. La prochaine version contiendra également des fonctionnalités audio.
Chaque année , l'ensemble de données est mis à jour avec les résultats du concours. Cette version contient les métadonnées des candidats, le classement du concours et les données de vote de 1 735 candidatures ayant participé au Concours Eurovision de la chanson depuis sa première apparition en 1956 jusqu'à aujourd'hui. L'audio correspondant à chaque chanson peut être diffusé via YouTube.
Les métadonnées et les données de vote sont fournies par le site des fans d'EurovisionWorld.
L'ensemble de données peut être téléchargé ici. Pour le reproduire, suivez les instructions au bas du fichier Lisez-moi.
John Ashley Burgoyne, Janne Spijkervet et David John Baker ont étendu cet ensemble de données avec des données au niveau du jury, de nouvelles fonctionnalités audio et des analyses statistiques pour l'ISMIR 2023. Vous pouvez accéder à leurs données et à leur code dans ce référentiel.
Avec le contestants.csv
dans le même dossier que le fichier audio.py
, les flux audio YouTube de toutes les chansons peuvent être collectés en exécutant python3 audio.py
. Alternativement, sh run.sh audio
ou sh run.sh docker audio
peuvent être utilisés pour gratter localement ou utiliser un conteneur Docker pour gratter les flux.
Lorsque vous utilisez ces documents, veuillez citer les ressources suivantes. Je suis également intéressé par les projets s'appuyant sur ce travail, n'hésitez pas à envoyer un e-mail à : 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} }
Pour avoir une première idée de l'ensemble de données, un exemple de Jupyter Notebook est créé dans le répertoire examples
. Cela peut être ouvert avec jupyter notebook
. Pour répliquer l'ensemble de données, voir ci-dessous :
Vous pouvez télécharger l'intégralité de l'ensemble de données à l'aide du code de scraping inclus dans ce référentiel. Cela tentera de récupérer et de traiter les données du site Web d'EurovisionWorld dans les fichiers csv qui sont également disponibles dans la section des versions de ce référentiel :
votes.csv
contestants.csv
betting_offices.csv
pip3 install -r exigences.txt# donnera votes.csv et contestants.csvpython3 scrape_votes.py# donnera betting_offices.csvpython3 scrape_odds.py
Exécutez sh run.sh docker
pour créer le Dockerfile et exécutez scrape_votes.py
à partir du conteneur. Aucune configuration supplémentaire ne devrait être nécessaire. Cela répliquera l'ensemble de données, à la fois les fichiers contestants.csv
, votes.csv
betting_offices.csv
.
L'audio peut également être récupéré depuis l'intérieur ou l'extérieur du conteneur Docker :
bash run.sh docker audio bash run.sh audio
Les fonctionnalités audio peuvent être extraites une fois que tout l'audio est présent dans le dossier audio
en utilisant :
sh audio_features.sh
Cela lancera un conteneur Docker avec l'extracteur de musique de flux d'Essentia installé. Alternativement, audio_features.py
peut être exécuté étant donné que l'extracteur d'Essentia est installé dans l'environnement PATH.
Le classement de la compétition est fourni pour les finales et les demi-finales. Les données de vote d'un pays à l'autre contiennent 47 007 activités de vote et sont séparées par vote par jury et par vote télé après son introduction en 2016.
colonne | description |
---|---|
année | année du concours |
to_country_id | identifiant du pays du candidat |
vers_pays | nom du pays du candidat |
interprète | artiste |
chanson | titre de la chanson du candidat |
numéro_sf | participé à la demi-finale 1, 2 ou 0 (de 2004 à 2008, il n'y a eu qu'une seule demi-finale) |
course_finale | ordre dans la diffusion de la finale du concours |
course_sf | ordre dans la diffusion de la demi-finale du concours |
place_final | place en finale |
points_final | points en finale |
place_sf | place en demi-finale |
points_sf | points en demi-finale |
points_tele_final | points de vote télévisé lors de la finale du concours |
points_jury_final | points de vote du jury lors de la finale du concours |
points_tele_sf | points de vote télévisé lors de la demi-finale du concours |
points_jury_sf | points de vote du jury lors de la demi-finale du concours |
paroles | paroles de la chanson |
URL_youtube | URL vers la vidéo sur YouTube |
colonne | description |
---|---|
année | année du concours |
rond | finale, demi-finale |
from_country_id | identifiant du pays donnant des points |
to_country_id | identifiant du pays qui reçoit les points |
from_country | pays nom du pays donnant des points |
vers_pays | nom du pays qui reçoit les points |
points | nombre de points attribués |
Il est recommandé d'utiliser Docker en exécutant sh run.sh docker
, ou d'utiliser une installation locale en appelant simplement sh run.sh
. Pour obtenir également l'audio, exécutez sh run.sh audio
ou sh run.sh docker audio
.
Pour répliquer l'ensemble de données, un WebDriver pour Chrome, Firefox ou Safari est requis, par exemple le WebDriver pour Chrome, ainsi que le package Selenium Python ( pip3 install selenium
). Suivez les instructions pour configurer le WebDriver ici. Les dépendances du projet peuvent être installées en utilisant :
pip3 install -r requirements.txt
Utilisez la commande suivante pour extraire les données de tous les concours Eurovision de la chanson entre 1956 et 2023 :
python3 scrape_votes.py --start 1956 --end 2023
Cela créera un fichier contestants.csv
et 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} }