Toujours pareil

A chaque annonce du programme du Paléo, les gens se plaignent que la programmation est toujours la même, année après année. Je ne suis pas fan du Paléo, mais encore moins des gens qui se plaignent tout le temps. Alors, est-ce vrai? Le Paléo manque-t-il d’originalité?

Pour répondre simplement: non. En tout cas pas dans les chiffres. Peut-être que parmi les artistes qui sont revenus plusieurs années, il y avait proportionnellement beaucoup de têtes à claques d’affiche, ce qui peut donner plus facilement une impression de déjà-vu. Ou peut-être que lorsque les artistes reviennent, peu d’années se sont écoulées depuis leur dernier Paléo.

Combien d’artistes différents sont venus au Paléo entre 1976 et 2013?

2’383.

Paléo en compte 2’853. Soit il y a un bug dans mon code, soit Paléo compte les doublons, soit Paléo ne liste pas tous les artistes sur leur site, soit Paléo a déjà comptabilisé 2014.

Parmi ces 2’383 artistes, combien ne sont venus qu’une seule fois?

2’025, soit 85%

Quels sont les artistes qui sont revenus le plus souvent?

J’ai omis ceux qui ont eu 2 occurences parce que la liste des 358 revenants est (visuellement) assez longue. Libre à toi de jouer avec mon code pour voir la liste complète.

Artiste Nbre de Paléos Années
Bernard Lavilliers 6 1981 1985 1989 1992 2002 2005
Jacques Higelin 6 1984 1989 1992 1995 1999 2004
Stephan Eicher 6 1988 1994 1999 2000 2004 2012
-M- 5 1998 2000 2004 2010 2013
Dionysos 5 2002 2004 2006 2008 2012
IAM 5 1994 1997 1998 2004 2008
Le Quatuor 5 1983 1988 1992 1995 2000
Noir Désir 5 1989 1993 1997 2000 2002
Renaud 5 1983 1996 2000 2003 2007
Airvag 4 1995 1996 1997 2000
Alain Bashung 4 1990 1995 2004 2008
Ben Harper 4 1994 1996 1999 2001
Bénabar 4 2002 2003 2009 2012
Cali 4 2004 2006 2008 2011
Claude Nougaro 4 1985 1990 1998 2001
Eddy Mitchell 4 1991 1994 1997 2011
Hubert-Félix Thiéfaine 4 1986 1989 1995 2012
I Muvrini 4 1995 1999 2000 2003
Indochine 4 1986 2002 2006 2010
Jean-Louis Aubert 4 1993 1998 2003 2011
Jimmy Cliff 4 1983 1993 1996 2003
Joe Cocker 4 1989 1991 1995 1998
MC Solaar 4 1992 1995 1998 2002
Miossec 4 1996 2000 2002 2004
Patrick Chambaz 4 1984 1986 1988 1991
Placebo 4 1997 2001 2006 2009
Polar 4 1996 1999 2002 2006
Rachid Taha 4 1996 2001 2005 2007
Saez 4 2000 2002 2010 2013
Sens Unik 4 1993 1995 1996 2010
The Nits 4 1986 1987 1991 2004
The Young Gods 4 1990 2001 2007 2009
Tryo 4 1999 2003 2007 2013
Alain Souchon 3 1979 1995 2010
Aloan 3 2005 2007 2010
Arno 3 1994 2002 2007
Cap Indigo 3 2010 2011 2012
Cesaria Evora 3 1995 1999 2002
Charlélie Couture 3 1984 1988 1993
Cie 2 rien merci 3 2000 2001 2003
Diam’s 3 2004 2006 2010
Dominique A 3 1996 1999 2012
Franz Ferdinand 3 2005 2009 2012
Geoffrey Oryema 3 1991 1996 2001
Georges Moustaki 3 1979 1990 2004
Grand Corps Malade 3 2006 2007 2008
Henri Dès 3 1983 1990 1994
Jamiroquai 3 1997 2005 2010
Jérémie Kisling 3 2003 2004 2010
Joan Baez 3 1982 1988 1994
John Hammond 3 1986 1993 2001
Johnny Clegg & Savuka 3 1990 1994 1997
José Barrense-Dias 3 1978 1986 2008
Keziah Jones 3 1992 1994 1999
La Bottine Souriante 3 1979 1985 1997
Laurent Voulzy 3 1979 2003 2007
Le Peuple de l’Herbe 3 2001 2003 2010
Les Indécis 3 1997 1998 2000
Louise Attaque 3 1998 2000 2006
Mama Rosin 3 2009 2011 2013
Mass Hysteria 3 1997 2000 2013
Maurane 3 1985 1987 1997
Michel Bühler 3 1980 1983 1991
Michel Jonasz 3 1985 1993 1997
Mickey 3D 3 2000 2001 2003
Moonraisers 3 2002 2004 2008
Muse 3 2000 2004 2007
Natacha Atlas 3 1998 2007 2012
Noa 3 1996 1997 2000
Nouvelle Planète (partenaire) 3 2010 2011 2013
Olivia Ruiz 3 2004 2006 2010
Pascal Obispo 3 1997 2001 2004
Pascal Rinaldi 3 1986 1993 1998
Patrick Bruel 3 2000 2003 2013
Raphael 3 2006 2009 2013
Ray Lema 3 1985 1989 2001
Rude Music Selection 3 2002 2004 2007
Sarclo 3 1990 1991 1999
Sarclon 3 1976 1978 1983
Shantel & Bucovina Club Orkestar 3 2006 2010 2013
Sinclair 3 1994 1995 1998
Ska-P 3 2000 2003 2009
Solange La Frange 3 2007 2008 2010
Stevans 3 2004 2006 2010
Stress 3 2003 2005 2007
Texas 3 1997 2001 2004
The Cure 3 1985 2002 2012
The Flying Pickets 3 1985 1991 1994
Tiken Jah Fakoly 3 2001 2005 2008
William Fierro 3 1981 1983 1991
Zazie 3 1999 2003 2007
Zebda 3 1996 1999 2000
Zucchero 3 1988 2002 2007

Précisions

Pour cet article, je voulais essayer R. Au final, mon choix était stupide puisque je n’ai absolument pas tiré profit des fonctions de statistiques du language. J’aurais en fait tout aussi bien pu utiliser Python par exemple.

J’ai fait l’hypothèse que les listes des artistes du site du Paléo sont correctes. Qu’elles ne contiennent par exemple pas de doublons dus à des fautes de frappe de l’auteur des pages. Il serait possible de vérifier ceci avec des fonctions comme adist qui calcule la distance de Levenshtein entre deux chaînes de caractères (mots).

Le code utilisé pour cet article est listé ci-dessous. Encore une fois, c’est ma première utilisation de R, j’avoue que je n’ai lu aucune documentation, juste fait des recherches Google. C’est mon côté script-kid ma foi.

library(XML)
library(selectr) # use CSS selectors, cf. querySelectorAll below
library(stringr)

#
# COLLECT THE DATA
#

artistsByYear <- list() # list of list. Every year has a list of artists

for(i in 1976:2013) {
    # read the HTML page
    page <- htmlParse(paste("http://yeah.paleo.ch/fr/edition/", i, sep = ""))

    # extract the list of artists
    artists <- querySelectorAll(page, "div.edition-artists-content")

    # strip the HTML tags
    artists <- xmlSApply(artists, xmlValue)

    # remove whitespace
    artists <- str_trim(artists[1])

    # make a list
    artists <- strsplit(artists, split = ", ")

    # add to the overall list
    artistsByYear <- c(artistsByYear, artists)
}

# flatten the list of lists
artists <- unlist(artistsByYear)

#
# DATA "ANALYSIS"
#

#
# HOW MANY ARTISTS HAVE COME TO PALEO?
#

nbArtists <- length(unique(artists))
print("How many artists have come to Paléo?")
print(nbArtists)

#
# HOW MANY ARTISTS HAVE COME ONLY ONCE?
#

# all artists that came several times
returningArtists <- unique(artists[duplicated(artists)])

result <- nbArtists - length(returningArtists)
print("How many artists have come only once?")
print(paste(result, " (", ceiling(result*100/nbArtists), "%)", sep = ""))

#
# WHO CAME MOST FREQUENTLY?
#

# create a data frame
dataFrame <- as.data.frame(table(artists))

# filter out only those who happend more than once
filtered <- dataFrame[dataFrame$Freq > 1,]

# sorting, most frequent first
result <- filtered[with(filtered, order(-Freq)),]

print("Who came most frequently?")
print(result)

#
# WHICH YEARS DID RETURNING ARTISTS PERFORM?
#

# for every artist, find which year he was performing
result <- sapply(returningArtists, function(artistName1) {sapply(which(sapply(artistsByYear, function(artistName2) which(artistName1 == artistName2)) > 0), function(index) 1975 + index)})

print("Which years did returning artists perform?")
print(result)