{"word_count": 1924, "character_count": 12574}
Charlie Hebdo recommence à paraître normalement aujourd'hui.Sur son blog, Gaël évoque le travail de deux sociologues, publié sous la forme d'une tribune dans Le Monde. Le graphique ci-dessous résume à la fois le thème de l'étude et son résultat principal :On avait pu entendre la même chose sur certains plateaux télévisés. Sauf que…Sauf que Gaël pose les bonnes questions :[L]a quantité de « unes » de Charlie Hebdo consacrées à l'Islam faisait-elle débat ? […]Le décompte des “unes” du journal était-il un bon moyen de repérer l'obsession, si elle existe, de Charlie Hebdo pour l'Islam ?Comment, dès lors, qualifier précisément la relation de Charlie Hebdo à l'Islam ?On peut effectivement se demander si les “unes” de Charlie Hebdo peuvent s'analyser comme celles de Paris Match, en établissant simplement la fréquence de tel ou tel personnage ou thème en couverture. Et même si l'on accepte la méthode, il est difficile de répondre sans données : or, les deux sociologues n'en fournissent aucune, ce qui empêche à la fois de vérifier leur codage et de tenter une analyse secondaire.En revanche, le texte publié dans Le Monde renvoie fréquemment à un blog qui archive régulièrement les différentes “unes” de Charlie Hebdo depuis septembre 2008. Mieux, le blog fournit des mots-clés avec chaque couverture, comme "Religion", "François Hollande", "François 1er" ou "xénophobie", ainsi que la date de parution et l'auteur de la couverture. On peut donc passer aux choses sérieuses.Les donnéesOn commence par récupérer les métadonnées des 329 “unes” publiées sur le blog, ce qui demande 100 lignes de code à tout casser, téléchargement desdites “unes” inclus. On vérifie ensuite les fréquences principales, à commencer par les dates de parution. Il y en a bien 52 de publiées pour les années 2009-2013 ((L'année 2013 contient 53 “unes” parce qu'elle contient aussi la “une” d'un supplément.)), une quarantaine pour 2014, et quelques-unes avant et après :&#62; table(substr(d$date, 1, 4))2006 2007 2008 2009 2010 2011 2012 2013 2014 2015    2    1   19   52   52   52   52   53   43    3 Et puisque l'on va s'intéresser aux auteurs, les voici par fréquence décroissante :&#62; rev(sort(table(d$author)))    Charb      Cabu       Luz      Riss Catherine       Jul   Tignous    Honoré        97        78        73        57        14         4         3         2Le décor est planté. Passons aux 399 différents mots-clés que l'auteur du blog a utilisé pour catégoriser les “unes” : je les ai intégralement parcourus, et comme prévu, il n'y a aucune surprise dans ces mots-clés. On s'en doutait, Charlie Hebdo titre, comme tout le monde, sur l'actualité politique, économique et sociale. Jetons quand même un coup d'oeil aux 1% des mots-clés les plus fréquents :&#62; table(terms)[ table(terms) &#62; quantile(table(terms), .99) ]terms        élections françois hollande          religion           sarkozy                42                39                33                80On notera qu'à ce stade, on a déjà posé plein d'hypothèses : le codage est uniforme au cours du temps, tous les thèmes sont aussi bien catégorisés, etc. Vérification faite, à part quelques fautes d'orthographe, le codage est vachement bien : par exemple, l'auteur du blog inclue systématiquement les noms propres des personnages dans les mots-clés des couvertures où ils apparaissent ((Il y a même le nom précis des papes successifs ! Que demande le peuple.)).On note aussi que la religion revient souvent dans les mots-clés des “unes”, à raison d'environ une “une” sur dix. Notre corpus est plus limité que celui des sociologues cités plus haut, mais la fréquence du thème y est à peu près identique : on va simplifier les choses et se convaincre que c'est une convergence de codage en double aveugle, et que du coup, boum, les deux codages sont valides. Youpi.Voilà pour la phase “collecte et vérification des données”. D'accord, le raisonnement sur la validité du codage est ultra-léger, mais après tout, je veux bien faire confiance à un auteur de blog suffisamment consciencieux pour archiver la quasi-intégralité des “unes” de Charlie Hebdo depuis sept ans. A priori, distinguer Johnny Halliday et Mahomet n'est pas trop difficile, et la vingtaine de couvertures que j'ai vérifiées étaient bien codées.Les réseauxLes lecteurs réguliers de ce blog, s'il en reste quelques-uns, s'en doutaient : ça va finir en réseaux, cette histoire… D'ailleurs, j'ai oublié de raconter que j'en avais produit plein, plein d'autres sur le modèle des réseaux de cosignatures dans les chambres parlementaires françaises. Mais ce sera pour une prochaine fois. (Et dans l'attente, vous pouvez déjà jeter un coup d'oeil aux demos interactives.)Bref bref bref, maintenant qu'on a les données, que va-t-on en faire ? Pour rappel, il y a 329 “unes”, 329/52 ~ six années de publication de 2008 à 2014, quatre auteurs principaux avec au moins 50 “unes” à leur actif (mon bien-aimé Cabu, et les non moins bien-aimés Charb, Luz et Riss), 399 mots-clés différents, et une moyenne de presque quatre mots-clés par “une” :&#62; library(stringr)mean(1 + str_count(d$tags, ";"))[1] 3.893617Réponse : on va visualiser le réseau des co-occurrences des mots-clés, histoire de voir si les couvertures sur le thème “Religion” sont plus souvent associées à des termes comme “Terrorisme” que, par exemple, les couvertures sur le thème “Bretagne” ou “Syrie”. Pour cela, il nous faut la liste (non dirigée, et non pondérée, pour l'instant) de toutes les co-occurrences, par auteur :full = data.frame()for(i in 1:nrow(d)) {    y = unlist(strsplit(d$tags[ i ], ";"))  full = rbind(full, data.frame(    expand.grid(i = y, j = y, stringsAsFactors = FALSE),    author = d$author[ i ]  ))}Ce qui donne, pour les premières lignes :&#62; head(full)                      i       j author1               banques banques   Riss2                bourse banques   Riss3                 crise banques   Riss4 crise financière 2008 banques   Riss5               lagarde banques   Riss6               banques  bourse   RissExplication de texte : ces co-occurrences de mots-clés proviennent de la “une” de Charlie Hebdo n°849, parue le 24 septembre 2008, et qui était dessinée par Riss. Titre de la “une” tel qu'enregistré sur le blog : “Sauvez les banques”. Mots-clés : “banques, bourse, crise, crise financière 2008, lagarde”. Précis, n'est-ce pas ? Je vous l'avais dit, l'auteur du blog est un bon codeur, il a bien bossé.Qu'est-ce qu'on fait avec ça ? Déjà, on vire les “self-loops”, c'est-à-dire les lignes qui contiennent deux fois le même mot-clé. Ensuite, on établit la fréquence de chaque ligne : combien de fois, par exemple, Cabu a-t-il dessiné une “une” portant à la fois sur le thème “Armée” et sur le thème “Afghanistan” ? Réponse dans quelques lignes de code un peu dégueulasses mais parfaitement fonctionnelles :# remove self-loops and select artist nameedges = subset(full, i != j &#38; author == "Cabu")[, 1:2 ]  # aggregate and count identical (sorted) tiesedges$u = apply(edges, 1, function(x) paste0(sort(x), collapse = "///"))edges = data.frame(table(edges$u))edges = data.frame(i = gsub("(.*)///(.*)", "\\1", edges$Var1),                   j = gsub("(.*)///(.*)", "\\2", edges$Var1),                   n = edges$Freq / 2)La réponse, donc :&#62; head(edges)            i             j n1 afghanistan         armée 12 afghanistan       chômage 13 afghanistan        guerre 14 ahmadinejad antisémitisme 15 ahmadinejad        durban 16 ahmadinejad négationnisme 1On dispose désormais de ce que l'on appelle, dans le jargon, une one-mode edge list pondérée (mais non dirigée, car il n'y a pas de “directionalité” d'un mot-clé à l'autre). En clair, ça signifie que l'on va pouvoir dessiner le réseau des co-occurrences des mots-clés, où chaque noeud est un mot-clé et chaque lien une ou plusieurs co-occurrence(s). Et à plus long terme, on va même pouvoir évaluer la probabilité de chaque co-occurrence.Les graphesOn y arrive enfin. Avant de passer aux graphes, eux-mêmes, un dernier mot de méthode : pour faire ressortir les grandes thématiques des “unes” avec des couleurs, j'ai procédé à un rapide codage des mots-clés, similaire à celui de l'étude publiée dans Le Monde. J'ai ensuite simplifié ce codage pour ne garder que six catégories directement liées aux accusations diverses et variées dont Charlie Hebdo a fait l'objet :Trois couleurs claires codent des catégories de mots-clés très larges : “France”, “International”, et “Varia”, la catégorie résiduelle, qui contient tout et n'importe quoi (“France Télécom”, “Hitler”, j'en passe) ;Trois couleurs vives codent des catégories beaucoup plus précises :La catégorie “Religion”, en vert, contient les 22 mots-clés du corpus qui portent sur les trois religions monothéistes ((Il n'y a pas de mots-clés sur les autres religions.)) : “antisémitisme, athées, benoit xvi, bible, burka, charia, coran, dieu, évêque, françois 1er, intégrisme, jesus, laïcité, lourdes, mahomet, opus dei, pape, prophète, ramadan, religion, torah, vatican”La catégorie “Terrorisme”, en rouge, contient les 7 mots-clés directement assimilables au terrorisme international ou islamique : “al-qaida, 11 septembre, ben laden, jihad, mohamed merah, otage, terrorisme”La catégorie “Violence”, en mauve, contient 13 mots-clés à connotation négative : “assassinat, attentats, discrimination, guerre, homophobie, massacre, parricide, pédophilie, sexisme, torture, tueur de masse, violence, xénophobie”Ce codage a pour effet de souligner certains mots-clés bien précis, histoire de faciliter la lecture des graphes. Voici, par exemple, le réseau des co-occurrences de mots-clés construit à partir des 78 “unes” dessinées par Riss. Le graphe contient 172 mots-clés et 554 liens de co-occurrences entre ces mots-clés. Cliquez sur le graphe pour ouvrir la version PDF, qui est beaucoup plus lisible :Grâce aux couleurs, on repère aisément la zone du graphe qui correspond aux (quelques) “unes” sur la religion :On recommence l'exercice. Voici à présent le réseau des “unes” de Cabu (bien-aimé Cabu, tu me manques tous les mercredis) :Zoom à nouveau sur la “zone verte” correspondant aux “unes” sur la religion :On continue avec Luz, qui est un peu plus compliqué que les deux graphes précédents :Plus compliqué, en effet, car les mots-clés sur la religion sont éparpillés, mais il y a quand même un cluster visible en base à droite :Et enfin, le réseau des co-occurrences de mots-clés pour les “unes” de Charb, qui contient notamment cette superbe association entre Jean-Marie Bigard et le 11 septembre, grâce à la couverture de Charlie Hebdo n°848 (septembre 2008) :Dernier zoom sur la zone “Religion” et sur la zone “Terrorisme” mitoyenne ((Attention, les graphes utilisent une méthode de placement qui contient une part irréductible d'aléatoire : les positions affichées ne sont pas du tout les seules possibles.)) :Voilà pour les graphes. Pour la visualisation, voir ce script de 50 lignes, qu'il suffit de faire tourner après avoir fait tourner les deux précédents (données et codes couleurs). Le tout tient en 200 lignes de code et prend au strict maximum dix minutes à faire tourner. Et pour les feignasses, voici les données brutes (les pages du blog avec les métadonnées).Nota bene – ne vous fiez pas au nombre de “unes” indiqués en haut des graphes : j'ai juste eu la flemme de changer tous les fichiers après avoir rectifié une petite erreur de programmation. L'erreur laisse croire que tous les graphes sont basés sur 78 “unes”. Or, s'il y a bien 78 “unes” pour Cabu, il y en a 97 pour Charb, 73 pour Luz, et 57 pour Riss. Le code de réplication produit les bons chiffres.Conclusion provisoireA-t-on “prouvé” quoi que ce soit avec ces graphes ? Certainement pas, sinon que Charlie Hebdo parle de tout et de rien. Je garantis une seule chose : les mêmes réseaux de co-occurrences sur les “unes” de Valeurs actuelles ou de Minute auraient été beaucoup, beaucoup plus simples à interpréter. Et c'est un peu, je pense, ce que suggérait Gaël dans son billet.Prochaine étape : quelques probabilités simples à partir de ces réseaux et de leurs pondérations (que j'ai ignorées dans l'exercice de visualisation ci-dessus), et peut-être, si je trouve le temps de faire quelque chose de pas trop moche, une version interactive des graphes, avec visualisation parallèle des “unes” et autres gadgets. En attendant, Charlie Hebdo est en kiosques, si vous voulez voir un peu plus loin que la “une”.Mise à jour : le code a été amélioré depuis la publication de ce billet. Voir le billet suivant dans la série "Charlie Hebdo".