Les “unes” de Charlie Hebdo : modèles définitifs

Suite et quasi-fin d’une suite de billets publiée en trois épisodes la semaine dernière : mercredi, vendredi, dimanche. Je vais en reprendre les points principaux, et rajouter les résultats définitifs. Et il y aura un épilogue après ça, puis basta.

Données

Pour rappel, on dispose, gràce au blog Strips Journal, de 338 “unes” de Charlie Hebdo catégorisées à l’aide de 401 mots-clés. Chaque “une” étant décrite par un ou plusieurs mots-clés (entre 1 et 11, moyenne et médiane à 4), on peut construire le réseau des co-occurrences de ces mots-clés sur l’ensemble des “unes” (cliquer pour la version PDF) :

full_network

De plus, en catégorisant ces mots-clés, on peut faire ressortir quelques grandes thématiques des “unes”, représentées ci-dessous dans un réseau bipartite (ou “deux-modes”) par des liens aux illustrateurs de ces “unes”, l’épaisseur des liens étant proportionnelle à la fréquence du thème chez l’illustrateur :

full_bipartite

Ces représentations graphiques du réseau étant soit trop compliquées (trop denses), soit trop simples (trop peu denses), on a exploré plusieurs visualisations des réseaux, par auteur et au cours du temps. Voici à nouveau le réseau de co-occurrences des mots-clés de 2009 à 2014, par période de trois mois :

network_quarters

Méthode

Pour rappel toujours, dans le dernier billet de notre série, on a proposé de modéliser la co-occurrence des mots-clés, afin d’observer la fréquence d’association de certains thèmes tout en prenant en compte la morphologie générale du corpus étudié. On va continuer et terminer ici cet exercice de modélisation.

Dernier rappel, enfin : les modèles exploratoires que l’on a fait tourner sur des tranches temporelles du corpus ont permis de détecter une sur-fréquence d’association entre les thèmes “Religion”, “Terrorisme” et “Violence”, mais de manière assez peu précise. On propose ici une modélisation un peu plus avancée de cette même fréquence.

Vu que les modèles exploratoires n’ont pas révélé d’effet temporel, et vu que les “unes” représentent aussi bien les choix de la rédaction de Charlie Hebdo que ceux de leurs illustrateurs, on va utiliser le corpus intégral des “unes”. Celles-ci proviennent largement des années 2009-2014, avec quelques “unes” avant et après :

2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 
   2    1   19   52   52   52   52   53   52    3

Une fois que les 1 311 mots-clés associés à ces “unes” sont présentés sous la forme du réseau de leurs co-occurrences, les mots-clés les plus fréquents figurent assez logiquement aussi parmi les plus centraux du réseau, c’est-à-dire ceux dont le degré (le nombre de liens avec d’autres mots-clés) est le plus élevé :

             keyword degree    theme freq
1            sarkozy    254   France   80
2  françois hollande    142   France   40
3          élections    136    Varia   42
4           religion    120 Religion   35
5         intégrisme     92 Religion   22
6                ump     84   France   17
7      marine le pen     82   France   25
8              crise     80    Varia   19
9             fillon     78   France   14
10                fn     72   France   23

Mais ce ne sont pas les fréquences brutes des mots-clés, et donc pas leur degré dans le réseau, qui nous intéresse. On va plutôt chercher à modéliser la fréquence relative des thèmes et de leurs associations, en s’intéressant tout particulièrement à l’association entre les thèmes “Religion” et “Violence”.

Le premier thème recouvre les 23 mots-clés directement liés aux trois religions monothéistes. Ces mots-clés apparaissent 133 fois dans le corpus :

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, voile

Certains de ces mots-clés désignent déjà des actes violents, mais le corpus contient aussi d’autres mots-clés qui, sans être intrinsèquement liés à la religion, évoquent des actes violents. Ce second thème recouvre 14 mots-clés apparaissant 54 fois dans le corpus :

assassinat, attentats, discrimination, guerre, homophobie, incendie criminel, massacre, parricide, pédophilie, sexisme, torture, tueur de masse, violence, xénophobie

Enfin, on va rajouter à ce thème 7 mots-clés liés au terrorisme international, qui apparaissent seulement 14 fois dans le corpus :

al-qaida, 11 septembre, ben laden, jihad, mohamed merah, otage, terrorisme

Jetons un rapide coup d’oeil à toutes les associations thématiques possibles. Les plus fréquentes correspondent à des associations au thème résiduel “Varia”, qui contient tous les mots-clés non thématisés (“carbone”, “la poste”, “téléthon”, etc.), et au thème “Politique [française]”. Viennent ensuite les mots-clés “Religion” :

                         assoc freq
1              Politique-Varia  578
2                  Varia-Varia  544
3          Politique-Politique  465
4            Religion-Religion  131
5          International-Varia  122
6               Religion-Varia  103
7               Varia-Violence   85
8      International-Politique   69
9           Politique-Violence   51
10 International-International   47
11           Religion-Violence   42
12          Politique-Religion   40
13      International-Religion   32
14      International-Violence   23
15           Violence-Violence   13

C’est la fréquence d’association entre “Religion” et “Violence” que l’on va désormais chercher à mesurer, et encore une fois, pas de manière “brute”, comme dans le tableau ci-dessus, mais de manière relative : pour chaque co-occurrence de mots-clés, la probabilité d’association de ces thèmes est-elle plus ou moins importante que…

  • … l’association “monothématique” de deux mots-clés au sein d’un même thème ?
  • … leur association aux autres thèmes généraux, comme “France” et “International” ?
  • … toute autre association possible, notamment au thème résiduel “Varia” ?

Du coup, il nous faut un modèle probabiliste.

Modélisation

Sans repartir dans les détails d’une modélisation par graphes aléatoires exponentiels (ERGM), rappelons simplement qu’elle permet de mesurer les probabilités d’association évoquées plus haut, tout en contrôlant par n’importe quelle autre probabilité que l’on souhaiterait mesurer.

On va donc écrire une équation additionnant plusieurs probabilités :

  • la probabilité générale d’une co-occurrence de mots-clés1 ;
  • la probabilité dite “principale” d’apparition de chaque thème2 ;
  • la probabilité que ces deux mots-clés appartiennent à un même thème3 ; et
  • toutes les autres probabilités d’association entre thèmes4.

Dans cette équation, la catégorie “Varia” sert systématiquement de catégorie de référence : est-il plus ou moins probable, par exemple, de trouver ensemble deux mots-clés du thème “Religion” par rapport à la probabilité d’association, qu’on peut juger aléatoire5, de deux mots-clés du thème “Varia” ?

Ce premier modèle donne les résultats suivants. Les premiers chiffres sont les coefficients du modèle, qui sont exprimés en log-probabilités et qui donnent la direction et la taille de l’effet. Les chiffres entre parenthèses sont les erreurs standard, qu’on souhaite aussi petites (proches de 0) que possible.

edges                            -4.06 (0.05)

nodefactor.International         -0.38 (0.11)
nodefactor.Politique              0.28 (0.07)
nodefactor.Religion              -0.00 (0.12)
nodefactor.Violence              -0.11 (0.13)

nodematch.International           1.60 (0.26)
nodematch.Politique               0.93 (0.13)
nodematch.Religion                2.96 (0.26)
nodematch.Violence                1.59 (0.39)

mix.International.Politique       0.24 (0.17)
mix.International.Religion        1.00 (0.24)
mix.Politique.Religion           -0.05 (0.21)
mix.International.Violence        0.89 (0.27)
mix.Politique.Violence            0.20 (0.21)
mix.Religion.Violence             1.65 (0.24)
           
BIC                                109643.54

Comment lire les trois premiers “blocs” de résultats :

  • la probabilité générale d’une association est négative (c’est normal) ;
  • le modèle détecte moins d’associations avec les mots-clés du thème “International” ;
  • le modèle détecte plus d’associations avec les mots-clés du thème “Politique” ; et
  • les associations “monothématiques” (au sein de chaque thème) sont très probables.

En clair, on retrouve bien le réseau de co-occurrence que l’on étudie : on a beaucoup de mots-clés, qui sont loin d’être tous connectés entre eux ; certains mots-clés sont à la fois fréquents et fréquemment associés à d’autres ; et souvent, ces autres mots-clés sont du même thème que les premiers, en particulier en ce qui concerne la religion.

Ce résultat est-il logique ? Certainement : on pouvait s’attendre à ce que les mots-clés des “unes” de Charlie Hebdo soient souvent homogènes d’un point de vue thématique. Si l’on avait catégorisé les mots-clés à l’aide d’un nombre plus important de thèmes, le même résultat s’observerait certainement dans une mesure moindre.

Voilà pour les “effets-contrôle” du modèle. Republions à présent le quatrième bloc :

mix.International.Politique       0.24 (0.17)    
mix.International.Religion        1.00 (0.24)
mix.Politique.Religion           -0.05 (0.21)    
mix.International.Violence        0.89 (0.27)
mix.Politique.Violence            0.20 (0.21)    
mix.Religion.Violence             1.65 (0.24)

Les co-occurrences thématiques “International-Religion”, “International-Violence” et “Religion-Violence” ressortent clairement : ces trois thèmes sont liés, de différentes manières et à des degrés variables, dans les “unes” étudiées, et leurs associations sont plus probables que plusieurs des autres associations possibles.

Ce résultat est-il logique ? Certainement : lorsque les “unes” de Charlie Hebdo évoquent la religion et des actes violents comme le terrorisme (ou la pédophilie), c’est souvent en rapport à l’actualité internationale (en Syrie, au Vatican, …) plutôt qu’en rapport à l’actualité nationale, même si des exceptions existent, à des fréquences bien moindres6.

Validation

Vérifions ces premiers résultats en améliorant un peu le modèle. Les modèles, c’est comme le tuning de bagnoles : on peut toujours faire mieux (ou pire), en rajoutant ou en enlevant quelque chose. Objectif : rendre le modèle plus précis, pour valider la direction (le signe) et la magnitude (la taille) des effets (les coefficients).

Point de départ du raisonnement : le réseau que l’on étudie est en partie transitif. La transitivité, c’est quand les amis de vos amis sont aussi vos amis. Ici, la transitivité s’applique à la personne qui a codé les “unes” : certaines de ses sélections de mots-clés sont en effet susceptibles d’être transitives entre elles7.

Or, en systématisant certaines connexions, la transitivité augmente la probabilité d’observer certaines associations plus que d’autres, ce qui rend les coefficients de ces associations moins comparables entre eux qu’ils n’en ont l’air. De plus, on ne peut pas annuler la transitivité du réseau : elle en fait structurellement partie.

En revanche, si l’on mesure la transitivité à part, on neutralise son effet de distorsion sur les coefficients. Il y a plusieurs méthodes, bien décrites par Hunter et Snijders. En voici un premier exemple, où l’on reprend le modèle précédent en rajoutant un dernier terme servant à capturer une partie des transitivités :

edges                           -5.23 (0.08)

nodefactor.International        -0.31 (0.21)
nodefactor.Politique            -0.04 (0.15)
nodefactor.Religion             -0.52 (0.29)
nodefactor.Violence             -0.22 (0.29)

nodematch.International          1.26 (0.49)
nodematch.Politique              0.98 (0.35)
nodematch.Religion               3.28 (0.67)
nodematch.Violence               0.29 (1.30)

mix.International.Politique      0.30 (0.36)
mix.International.Religion       0.85 (0.63)
mix.Politique.Religion           0.32 (0.52)
mix.International.Violence       0.42 (0.70)
mix.Politique.Violence           0.29 (0.43)
mix.Religion.Violence            2.16 (0.50)

gwdsp.fixed.1                    0.05 (0.00)

BIC                                16095.79

Les coefficients proches de zero ont changé de signe pour certains : ce n’est pas plus grave que ça, c’est même mieux8. En revanche, la magnitude des coefficients a pas mal augmenté pour certains effets, et notamment pour les effets qui nous intéressent le plus : l’homophilie “Religion” et l’association “Religion-Violence”.

Le résultat dont je n’ai pas encore parlé (le BIC) est une valeur qui se compare d’un modèle à l’autre pour voir si tel modèle est plus “performant” qu’un autre. Le critère de performance est bien meilleur dans le second modèle ; un seul paramètre en plus pour un BIC divisé par 10, c’est même vraiment pas mal.

Dernière vérification, on prend une autre méthode d’absorption des transitivités, on la teste à plusieurs valeurs de son paramètre alpha (cf. l’article de Snijders, précité, p. 143), puis on regarde l’effet sur les coefficients. Si tout se passe bien, l’effet et les erreurs standard ne varient pas trop, ce que l’on observe ici :

ergm_sensitivity

Conclusion

On a identifié un modèle qui donne des résultats à peu près stables autour de l’association, positive, entre les thèmes “Religion” et “Violence”. C’est loin d’être la seule association possible, mais c’en est une qui ressort des données, aussi bien lues “à plat” ou au moyen d’une modélisation des co-occurrences de mots-clés.

Pourquoi une association si forte, d’ailleurs, dans les modèles ? Très probablement parce que les thèmes “Religion” et “Violence” sont les plus homogènes de nos catégories thématiques : en conséquence, l’effet d’association est très identifiable, et très bien identifié, ce qui n’est pas le cas pour tous les autres thèmes, plus diversifiés.

J’écrirai ce que j’en pense dans l’épilogue de cette série de billets “Charlie Hebdo”, dans quelques jours. Et comme d’habitude, le code des modèles a été rajouté au code de l’analyse, histoire que vous puissiez essayer de votre côté, et/ou qu’un meilleur utilisateur des ERGM puisse me guider vers une meilleure spécification.

  1. Soit l’équivalent d’une ordonnée à l’origine. []
  2. En jargon “réseaux” : les fréquences des attributs ; en jargon ERGM : les main effects. []
  3. En jargon “réseaux” : les homophilies uniformes ; en jargon ERGM : la propension au node match. []
  4. En jargon “réseaux” : les mixes d’attributs ; en jargon ERGM : la propension au node mix. []
  5. Cette propriété vient de la largeur et de l’hétérogénéité de cette catégorie : le thème “Varia” contient 235 mots-clés différents apparaissant 573 fois dans le corpus. []
  6. Il n’y a que deux “unes” ayant trait aux attentats du 7 janvier 2015, et la “une” de Charlie Hebdo n°1060 sur Mohamed Merah n’est en fait pas consacrée au terrorisme. []
  7. Par exemple, si une “une” prend les mots-clés “présidentielle”, “élections” et “sarkozy”, et qu’une autre prend les mots-clés “européennes”, “élections” et “sarkozy”, alors les deux mot-clés “présidentielle” et “européennes” se retrouvent associés au mot-clé “sarkozy” par transitivité. []
  8. Indeed, les signes des coefficients sont maintenant uniformes par effet (tous positifs ou négatifs). []

Les “unes” de Charlie Hebdo : modèles exploratoires

J’ai expliqué, mercredi et vendredi, comment fabriquer des réseaux de co-occurrences de mots-clés à partir d’un blog qui a archivé et catégorisé les “unes” de Charlie Hebdo sur plusieurs années. On dispose de l’intégralité des années 2009-2014, que l’on a découpées en tranches de trois mois, ainsi que des réseaux propres à quatre illustrateurs des “unes” : Cabu, Charb, Luz et Riss.

Dans ces réseaux, on a procédé à un recodage supplémentaire des mots-clés en grandes catégories comme “France” et “International”, et on a spécifiquement codé trois catégories plus précises et moins fréquentes : “Religion”, “Terrorisme” et “Violence”. Le codage est à juger par vous-même : j’ai fourni le code, libre à vous, donc, de faire mieux si vous trouvez des erreurs ou des ambiguïtés dans la thématisation.

La question

Rappelons désormais la question initiale, qui vient d’une réflexion de Gaël : “mesurer l’islamophobie ? vaste programme…” Effectivement, et comme je n’ai aucune, mais aucune envie de prêter le flanc à quiconque voudrait obtenir des “preuves” que Charlie Hebdo est “islamophobe” ou pas, je ne vais pas partir de cette question, qui contient son pesant de cacahuètes de biais et de raccourcis.

Posons une autre question, plus inductive, à partir de l’exploration des données. Charlie Hebdo évoque, dans ses “unes”, la religion, le terrorisme, et des actes violents de toutes sortes. Ces thèmes sont-ils souvent évoqués ensemble ? Ou plus exactement, sont-ils plus souvent évoqués ensemble que séparément dans le reste des “unes” du magazine, qui peuvent évoquer, par exemple, la violence du terrorisme sans évoquer la religion ?

La question cherche donc à mesurer une probabilité conditionnelle : la probabilité d’occurrence des thèmes joints, conditionnée à celle de l’occurrence des thèmes disjoints. Et en réalité, comme on est dans un réseau de co-occurrences, on ne cherche pas la co-occurrence des trois thèmes en même temps, mais celles des paires (des dyades) formées par ces thèmes au fil des “unes”.

Les paires qui nous intéressent particulièrement sont les paires “Religion-Terrorisme” et “Religion-Violence”, ainsi qu’une dernière qui nous va nous servir d’effet-contrôle : la paire “Terrorisme-Violence”. Si le corpus est bien codé, cette paire va avoir une probabilité d’occurrence positive. Dans ce cas, on pourra également observer les probabilités des deux autres paires. Allez go.

Le modèle

Bon, là, j’en arrive au stade où ça devient un peu sérieux. Asseyez-vous.

Imaginez un espace en deux dimensions avec 400 mots-clés répartis aléatoirement dans l’espace. Chaque mot-clé est un sommet du réseau, qui apparaît une ou plusieurs fois dans les “unes” de Charlie Hebdo. Certains apparaissent souvent, d’autres pas : ça, c’est leur probabilité d’occurrence principale, qu’on va appeler l’effet principal dans la modélisation qui va s’ensuivre.

Vous n’avez pas encore tracé de lien entre les mots-clés. Maintenant, tracez un lien entre les mots-clés qui se retrouvent ensemble sur une même “une” de Charlie Hebdo. Quand les liens se produisent plus d’une fois, placez le nombre de co-occurrences à côté du lien. Quand vous avez fini, félicitations, vous venez de mesurer la probabilité de co-occurrence pondérée de chaque paire de mots-clés.

Pour terminer, rajoutez dans l’équation les zéros structurels de la matrice d’adjacence de votre réseau. Whaaat the fuck! Sauf que c’est très simple : il s’agit de tous les liens qui n’existent pas dans votre graphe. S’il n’y a aucune co-occurrence de “Benoît XVI” et de “pédophilie”, alors il y a un zéro structurel à l’intersection de la ligne “Benoît XVI” et de la colonne “pédophilie” de la matrice du réseau.

Je viens de vous forcer à penser au réseau sous la forme d’un tableau à double entrée, c’est-à-dire d’une matrice d’adjacence, où chaque ligne et chaque colonne correspond à un mot-clé. Le réseau n’est pas dirigé : on a les mêmes mots-clés en lignes et en colonnes : la matrice est symétrique. De plus, elle contient beaucoup plus de “0” que de “1” : c’est une matrice creuse.

Maintenant, cherchez un modèle qui va simuler des dizaines de milliers de matrices aux dimensions similaires, en les remplissant aléatoirement avec autant de “1” que dans la matrice empirique (c’est-à-dire la matrice initiale, celle que vous avez observée dans les “unes”). Ne cherchez pas trop longtemps : ça s’appelle une modélisation par graphes exponentiels aléatoires – un “ERGM”, dans le jargon.

Respirez un coup.

L’équation

Un ERGM ressemble de très près à une équation de régression logistique, adaptée aux éventuelles dépendances dyadiques que vous pouvez vouloir mesurer. Si vous savez ce qu’est une équation de régression, vous savez qu’elle suppose que les observations soient indépendantes. Dans un réseau, ce n’est pas le cas : il y a des liens entre les observations. Du coup, l’ERGM se charge de modéliser ça.

Si vous ne savez pas ce qu’est une régression de régression, vous n’avez rien compris au paragraphe précédent. Contentez-vous de ça : le modèle va mesurer la probabilité de co-occurrence des mots-clés en contrôlant (c’est-à-dire, d’une certaine manière, en annulant) les effets de structure qui émanent du réseau lui-même, comme par exemple le fait qu’il contient surtout des absences de co-occurrence entre les mots-clés1.

L’équation contient donc :

  • un terme qui compte le nombre de liens (c’est-à-dire l’équivalent de l’ordonnée à l’origine dans une modélisation linéaire ou assimilée) ;
  • un terme qui absorbe les probabilités conditionnelles principales d’occurrence des catégories des mots-clés ; et
  • un terme qui mesure les probabilités conditionnelles de co-occurrence des catégories des mots-clés.

L’équation est additive : les termes sont mesurés indépendamment des deux autres termes. On raisonne donc “toutes choses égales par ailleurs”. Et comme on se concentre sur les catégories “Religion”, “Terrorisme” et “Violence”, on utilise toutes les autres catégories (“France”, “International”, etc.) comme catégorie de référence pour le troisième terme. Voilà, c’est terminé.

Je ne sais pas comment expliquer ça de manière plus simple sans trahir le fonctionnement du schmilblick. Trouvez un moyen de lire cet article, cet article et cet article (ne pas lire à jeun ; déconseillé aux femmes enceintes ; ne contient pas de noisettes). Concentrez-vous, c’est plus simple que ça en a l’air, surtout si on sait comment fonctionne une régression. Et dîtes non à la drogue.

Les résultats

Voici les résultats pour les réseaux de co-occurrence périodisés, correspondant chacun à une période trois mois. Il manque certaines périodes où les modèles ont échoué à produire des résultats suffisamment précis. Les résultats n’utilisent pas la pondération des co-occurrences des mots-clés, parce que celle-ci est presque toujours égale à 1 (ce qui est normal, quand on a beaucoup de mots-clés différents)2.

ergm_time

L’axe vertical est une log-probabilité conditionnelle : quand elle est positive, la co-occurrence de la paire de mots-clés est plus fréquente dans le réseau observé que dans un réseau aléatoire de même composition. La magnitude de la probabilité est calculée en référence à toutes les probabilités conditionnelles de co-occurrence que l’on ne montre pas ici : “France-Violence”, “International-Violence”, etc.

Enfin, le segment autour des points correspond à l’effet estimé ± 2 erreurs standard : c’est l’intervalle de confiance, qui met en doute la significativité statistique du résultat lorsqu’il contient zéro. Pour faire les choses bien, il faudrait faire des simulations supplémentaires pour mesurer un intervalle de crédibilité, mais j’ai la méga-flemme, et puis les résultats seraient à peu près mêmes (si si, promis).

Voici à présent les résultats par auteurs, plutôt que par période. Les coefficients (W), pour “weighted”, tiennent compte des pondérations des liens, ce qui n’est pas le cas des coefficients (B), pour “binaire”. Notez, par ailleurs, que les ERGM pondérés restent très expérimentaux : on sait ce qu’il y a dedans, mais on ne sait pas très bien vers quoi ça va3. Du coup, prudence dans la lecture des coefficients.

ergm_authors

À ce stade, vous avez peut-être envie de dire :

Explain_f3f71f_103575

Les explications

Voici ma lecture des résultats. Je ne vais pas discuter du fond : mes conclusions suivront dans quelques jours. Pour le moment, je vais me contenter de parler des coefficients, en évoquant leur direction, leurs intervalles de confiance, et leur distribution. Sans cette première phase de lecture, aucune interprétation possible.

Q : Que disent les coefficients ?

On commence par les modèles des réseaux périodisés.

Les coefficients sont presque tous positifs : la probabilité de co-occurrence des mots-clés associés aux thèmes “Religion”, “Terrorisme” et “Violence” est supérieure à celle des autres mots-clés, et même plutôt très supérieure : les coefficients tirent vers 1.7, soit une probabilité d’association des thèmes exp(1.7) = 5.5 fois supérieure à celle des autres associations thématiques.

On s’attendait à ce résultat, en particulier pour l’association thématique “Terrorisme-Violence”. Le seul contre-exemple se situe début 2013 : dans ce seul cas, l’association thématique “Religion-Violence” est moins probable que les autres associations thématiques de type “France-Violence” ou “International-Violence”. Le reste du temps, l’association thématique est forte, mais ne suit pas de progression temporelle particulière.

On observe aussi des probabilités d’association positives dans les réseaux des illustrateurs, mais la comparaison des coefficients pondérés et non pondérés montre des grosses différences de magnitude, ce qui n’est pas bon signe pour la suite.

Q : Que disent les intervalles de confiance ?

Les intervalles signifient que les résultats sont loin d’être hyper-robustes d’un point de vue statistique : c’est particulièrement vrai pour la période de janvier à mars 2012, par exemple. Cela signifie que l’on ne peut pas être certain que les probabilités mesurées soient différentes de zero : au vu des intervalles, ça a l’air plutôt probable, mais la magnitude de l’effet est sujette à caution.

De plus, il manque des coefficients dans les résultats parce que les erreurs standard étaient parfois très larges : raison de plus de douter qu’on ait mesuré quelque chose de tout à fait fiable. Encore une fois, la direction de la probabilité d’association ne fait, à mes yeux, aucun doute ; mais la magnitude de l’effet (par exemple, le “5.5 fois supérieure” précité) mérite d’être mise en doute dans de nombreux cas.

Qu’est-ce qu’on en retient ?

On en retiendra que les modèles n’ont pas très bien convergé, mais suffisamment pour détecter une probabilité supérieure d’association entre les mots-clés des thématiques “Religion”, “Terrorisme” et “Violence”. Par exemple, il est plus probable de trouver “Benoît XVI” associé à “pédophilie” que de trouver “Johnny Halliday” associé à “pédophilie” ou “Johnny Halliday” et “Benoît XVI” associés entre eux.

Ce résultat général est obtenu toutes choses égales par ailleurs : on a pris en compte, dans le modèle, la fréquence d’occurrence de chaque thème, et la probabilité générale d’une co-occurrence entre deux mots-clés, quels qu’ils soient. En revanche, ce résultat n’est pas très précis : on va donc s’abstenir de le quantifier précisément, vu la largeur des intervalles de confiance.

Ce résultat ne varie pas non plus de manière caractéristique au cours du temps, ou selon les illustrateurs : les “unes” de Charlie Hebdo associent plus volontiers la religion, le terrorisme et la violence qu’elles n’associent d’autres thèmes entre eux ou à ces thèmes, mais sans que l’on ait pu détecter une progression de cette probabilité supérieure d’association au cours du temps ou chez un illustrateur particulier.

Conclusion ?

Aucune : on est au stade exploratoire, où l’on s’est contenté de faire tourner des modèles préliminaires sur des petits segments des données, histoire de voir si ça fonctionnait à peu près. Et ça fonctionne à peu près, même avec les soucis de puissance statistique évoqués ci-dessus. À ce stade, on cherche juste à expliquer et à tester la méthodologie principale, qui n’est pas aussi intuitive qu’un tri à plat.

On notera, de plus, qu’on a segmenté par période de trois mois et par auteur. Pour la période de trois mois, passe encore : c’est généralement une bonne idée que de rééchantillonner dans ses données, histoire de voir si l’effet observé sur N = { a, b, c } est aussi observable sur chacune des composantes de N. Mais segmenter par auteur, c’est purement exploratoire : la “une” n’est pas une publication individuelle.

Suite et (presque) fin, donc, au prochain épisode, avec un modèle global des “unes” de Charlie Hebdo. En attendant, voici le code intégral de l’analyse.

  1. Pour bien s’en assurer, on va même pousser le vice jusqu’à utiliser une distribution de Poisson “zéro-inflatée” dans certains des modèles. []
  2. Ça ne vaut pas le coup de remplacer une distribution de Bernoulli par une distribution de Poisson zéro-inflatée quand on a, à tout casser, trois ou quatre valeurs différentes de 1. []
  3. Par exemple, on ne connaît pas encore grand chose sur leur convergence quand la distribution est uniforme au lieu d’être binomiale ou Poisson. []

Les “unes” de Charlie Hebdo au cours du temps

Sur le thème “Qui est Charlie Hebdo ?”, voici quelques compléments au billet de mercredi. Au passage, j’ai légèrement amélioré le code de réplication des billets, en corrigeant quelques erreurs mineures et en complétant les (rares) valeurs manquantes ; on passe, du coup, à un jeu de données qui contient 338 “unes” de Charlie Hebdo, catégorisées à l’aide de 401 mots-clés. C’est encore améliorable, mais la version actuelle me suffit.

Dans le billet précédent, donc, j’évoquais les mots-clés des “unes” de quatre illustrateurs de Charlie Hebdo, à grands renforts de réseaux visualisant les co-occurrences entre ces mots-clés (merci encore au fantastique blog Strips Journal pour le travail de codage). En séparant les “unes” par auteur, j’ai supposé que celles-ci variaient dans l’espace : l’espace des mots-clés de Luz n’est pas celui de Charb, qui n’est pas celui de Cabu.

En revanche, je n’ai rien dit des variations dans l’espace. Y en a-t-il ? Trouve-t-on des mots-clés sur la religion dans les mêmes proportions au fil des années ? Le jeu de données couvre intégralement les années 2009 à 2014 : découpons-le en quatre périodes de trois mois chacune, et voyons si les thèmes “Religion”, “Terrorisme” et “Violence” y reviennent aussi souvent.

Voici, par exemple, les co-occurrences de termes de juillet à septembre 2009 (cliquer pour la version PDF) :

network_2009_3

On y parle de Sarkozy, Villepin, Clearstream, d’Hortefeux et de Besson, bref, de la Sarkozie. Et voici celui, pour comparaison, des trois “unes” de l’année 2015 :

network_2015_1

Pour la suite, on garde les trois “unes” de 2015 en mémoire, et l’on se concentre sur les années 2009-2014, où le nombre de “unes” est suffisamment élevé pour que les réseaux de co-occurrences soient un peu denses1. On va chercher, dans ces réseaux, les sous-réseaux les plus fortement liés aux thèmes “Religion”, “Terrorisme” et “Violence”.

Les réseaux de co-occurrence

Voici les réseaux de co-occurrences qui nous intéressent, mis à la suite les uns des autres (cliquer à nouveau pour une version un peu plus grande) :

network_quarters

On distingue, sur certaines périodes, des “zones vertes” — des clusters de mots-clés liés à la religion. Comment repérer ces périodes ? Une méthode ultra-basique :

  1. Pour chaque période de trois mois (soit de 12 à 14 “unes”), on mesure les dimensions du réseau de co-occurrences complet : le nombre de mots-clés, et le nombre de liens, c’est-à-dire de co-occurrences.
  2. On extrait ensuite le sous-graphe qui ne contient que les mots-clés liés aux trois thèmes qui nous intéressent : “Religion” (en vert), “Terrorisme” (en rouge), et “Violence” (en mauve).
  3. On mesure les dimensions du sous-réseau, que l’on divise par les dimensions du réseau complet. Plus les fractions de mots-clés ou de liens augmentent, plus les thèmes sont représentés.

Voici les résultats de l’opération. Les deux plus hautes barres sont en bleu, les quatre suivantes en turquoise, et les autres en jaune2 :

prop_nodes

prop_edges

Les lignes horizontales en pointillés correspondent au niveau de chaque proportion dans le réseau de co-occurrences des trois “unes” de 2015, qui servent de niveau de référence. Comme on peut le voir, il y a deux autres périodes où Charlie Hebdo a souvent fait sa “une” sur les mêmes thèmes :

Voici le réseau “2011-2” (cliquer pour bla bla bla) :

network_2011_2

Et voici le réseau “2013-1” (cliquer pour bla bla bla) :

network_2013_1

On va se servir de ces deux réseaux pour avancer un peu dans l’analyse—parce que jusqu’à présent, il faut signaler que l’on a utilisé des réseaux de co-occurrences, mais sans vraiment bénéficier de la forme “réseau” : 90% de ce que l’on a observé aurait également été observable sur des tris à plat de fréquences brutes. Pour pouvoir réellement bénéficier de la forme “réseau”, il va falloir faire un peu de modélisation.

La suite dans le prochain billet.

  1. La densité correspond au nombre de liens dans le réseau, divisé par le nombre de liens qu’il aurait pu contenir si tous les noeuds étaient connectés à tous les autres. Cela vous donne une fraction de 0 (réseau vide) à 1 (réseau complet), comparable d’un réseau à l’autre. La densité des réseaux des années 2009-2014 varie de 0.08 à 0.38. []
  2. Si vous voyez d’autres couleurs, ce n’est pas grave, c’est juste que les cônes de votre rétine déconnent. Ou alors les miens. On s’en fiche. []

De quoi parlent les “unes” de Charlie Hebdo ?

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 :

charlie_lemonde

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ées

On 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-20131, une quarantaine pour 2014, et quelques-unes avant et après :

> 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 :

> rev(sort(table(d$author)))

    Charb      Cabu       Luz      Riss Catherine       Jul   Tignous    Honoré 
       97        78        73        57        14         4         3         2

Le 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 :

> table(terms)[ table(terms) > quantile(table(terms), .99) ]
terms
        élections françois hollande          religion           sarkozy 
               42                39                33                80

On 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 apparaissent2.

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éseaux

Les 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” :

> library(stringr)
mean(1 + str_count(d$tags, ";"))
[1] 3.893617

Ré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 :

> head(full)
                      i       j author
1               banques banques   Riss
2                bourse banques   Riss
3                 crise banques   Riss
4 crise financière 2008 banques   Riss
5               lagarde banques   Riss
6               banques  bourse   Riss

Explication 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 name
edges = subset(full, i != j & author == "Cabu")[, 1:2 ]
  
# aggregate and count identical (sorted) ties
edges$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 :

> head(edges)
            i             j n
1 afghanistan         armée 1
2 afghanistan       chômage 1
3 afghanistan        guerre 1
4 ahmadinejad antisémitisme 1
5 ahmadinejad        durban 1
6 ahmadinejad négationnisme 1

On 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 graphes

On 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éistes3 : “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 :

network_Riss

Grâce aux couleurs, on repère aisément la zone du graphe qui correspond aux (quelques) “unes” sur la religion :

Screen Shot 2015-02-26 at 04.24.19

On recommence l’exercice. Voici à présent le réseau des “unes” de Cabu (bien-aimé Cabu, tu me manques tous les mercredis) :

network_Cabu

Zoom à nouveau sur la “zone verte” correspondant aux “unes” sur la religion :

Screen Shot 2015-02-26 at 04.26.39

On continue avec Luz, qui est un peu plus compliqué que les deux graphes précédents :

network_Luz

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 :

Screen Shot 2015-02-26 at 04.30.36

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) :

network_Charb

Dernier zoom sur la zone “Religion” et sur la zone “Terrorisme” mitoyenne4 :

Screen Shot 2015-02-26 at 04.34.12

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 provisoire

A-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”.

  1. L’année 2013 contient 53 “unes” parce qu’elle contient aussi la “une” d’un supplément. []
  2. Il y a même le nom précis des papes successifs ! Que demande le peuple. []
  3. Il n’y a pas de mots-clés sur les autres religions. []
  4. 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. []

“Facebook manipule vos émotions” : Milgram 2.0

Les médias n’ont eu aucune difficulté à médiatiser ad nauseam la dernière actualité du réseau social Facebook : en manipulant les informations que lisent plusieurs centaines de millions d’utilisateurs, on peut créer une variation de sentiment de quelques points de pourcentages — et qui correspond, en pratique, à trois fois rien.

Faire varier l’opinion d’un ou plusieurs iotas est inscrit dans l’ADN des médias, et si le verbe “manipuler” est remplacé par le verbe “personnaliser”, on retombe sur la définition de la page d’accueil de Google ou du Monde : de l’information, et beaucoup de publicité, taillée sur mesure pour l’utilisateur, en partie grâce aux données des autres utilisateurs.

Or, les utilisateurs Facebook ne se sont pas tous fait une raison sur le fait que “quand on ne paie pas, on est le produit”. Cette expérience n’est pas unique et ses résultats ne sont pas si encourageants que ça, mais sa grande échelle fournit un bon motif à chacun pour s’indigner de cet état de fait.

Du coup, bien que tout soit écrit noir sur blanc dans les conditions d’utilisation (que personne ne lit) et que n’importe quel essai clinique contrôlé pose exactement les mêmes questions (élevées au risque de vie ou de mort dans certains cas), c’est le cocktail, très efficacement servi par Facebook aux médias, qui fait le plus de bulles, à partir de :

  • 90% d’eau claire (les effets sont de très faible magnitude)
  • 9% de big data (sans guillemets : n > 500 000, bitches)
  • 1% de Milgram 2.0

Le dernier ingrédient concerne les normes éthiques qui s’appliquent aux expériences contrôlées : Facebook semble avoir suivi les normes états-uniennes en la matière, en validant son étude auprès de l’IRB, mais ces normes sont récentes et jamais complètement consensuelles.

Et surtout, on ne sait pas ce que Facebook va faire de ces résultats : si la finalité d’une expérience contrôlée est claire dans le cas d’un essai clinique, elle l’est moins dans le cas d’un réseau social, d’autant plus que les publicitaires n’avaient pas besoin de cette étude pour acheter ses services.

En définitive, c’est ce dernier travestissement qui peut poser problème : sous couvert de mener une recherche inductive de sociologie appliquée à l’insu de votre plein gré, Facebook vend sa force de frappe publicitaire, et votre réaction indignée fait partie intégrante de la stratégie de diffusion auprès des futurs investisseurs.

Milgram, peut-être, mais “2.0”.

Extraire un corpus médiatique sans (trop) saigner des yeux

Vous vous êtes déjà demandé quelle avait la couverture médiatique d’un projet de loi comme le projet de loi DADVSI ? ou, plus connu, le projet de loi HADOPI, qui donna lieu à un feuilleton législatif de plusieurs années ?

J’avais très rapidement mentionné le sujet en évoquant un papier co-écrit avec Pierre Gueydier, présenté à l’AFSP en 2013 et que nous avons commencé à remettre à jour. Comme d’habitude, tout est en ligne.

Le papier portant sur la politisation, une étude préliminaire de la médiatisation des projets de loi peut être un bon moyen de jeter un premier coup d’oeil aux individus, aux institutions et aux organisations mobilisées autour de leur examen.

Quelques essais et 300 lignes de code plus loin, on dispose donc d’un corpus de 6350 articles issus de sept médias français différents1, qui ressemble à ça au fil du temps :

counts

Comment faire

  • Pour chaque média, il y a un moteur de recherche utilisant une pagination des résultats. La première étape consiste donc à parcourir chaque page de résultats, en récupérant les adresses des articles.
  • Ensuite, pour chaque article, on a accès soit à une page donnant accès au texte intégral, soit aux premières lignes du texte dans le cas des articles payants du Figaro et du Monde.
  • Enfin, il faut se donner une syntaxe permettant de sauvegarder le contenu d’un lien HTTP vers un fichier texte, ce qui demande quelques essais-erreurs avec les expressions régulières.

Les techniques servant à récupérer et à nettoyer les données ayant déjà été traitées dans plein d’autres billets (exemple), je ne développe pas sur ce point, mais suis intéressé par tout scraper équivalent pour d’autres sites de médias.

Qu’en tirer

Le raisonnement du texte étant qualitatif, l’exploration du corpus est avant tout une manière de trianguler des décisions de terrain, comme le choix de se focaliser sur certains acteurs plutôt que d’autres.

Histoire de repérer les acteurs, on extrait tous les termes contenant une majuscule initiale, que l’on nettoie ensuite des termes courants. Restent les termes comme “Vivendi Universal” ou “Frédéric Mitterrand”.

On parcourt ensuite les mille termes les plus fréquents, dont on tire une liste de presque 350 entités, allant de la classe politique à Twitter en passant par les DRM et la jurisprudence SABAM.

Voici à quoi ressemble la co-occurrence de ces entités dans les articles publiés entre 2012 et aujourd’hui, représentées sous la forme d’un réseau de termes fréquemment associés à la “mission Lescure-préparant-l’acte-II-de-l’exception culturelle” :

seq3

Le réseau est naturellement très dense (il y a énormément de co-occurrences), mais les liens sont plus ou moins ténus, grâce à une technique de pondération qui tient compte du nombre d’entités identifiées dans chaque article2.

En additionnant ces liens, on obtient un indice plus synthétique, le degré pondéré de centralité. Dans le graphique ci-dessus, la taille des entités est proportionnel à cet indice, qui n’est qu’une mesure possible parmi d’autres.

Voici donc, pour terminer, les quinze premiers scores de centralité sur la totalité des neuf années couvertes. D’autres tableaux et graphiques explorant des segments temporels spécifiques de la période couverte sont disponibles dans l’annexe du papier.

Screen Shot 2014-06-26 at 3.39.09 PM

Je n’ai pas le temps de m’acharner sur les données, mais cette preuve du concept montre qu’il n’est pas difficile de récolter un corpus médiatique, hélas moins riche qu’une base de données comme Factiva ou LexisNexis, mais d’ampleur raisonnable.

Si vous avez des suggestions sur comment modéliser tout ça proprement, à coups de topic models ou autre chose, laissez un commentaire, mais c’est en général à ce stade-là que l’on commence à saigner un peu des yeux.

  1. Libération apparaît dans le corpus Écrans.fr, et les articles des Échos ne sont pas disponibles avant décembre 2011. []
  2. Cette technique permet de mettre sur un même plan les articles en texte intégral et ceux pour lesquels on ne dispose que des deux premiers paragraphes. []

Big Data Fail ?

La base de données GDELT (Global Database of Events, Language, and Tone), déjà mentionnée ici, donne enfin lieu à quelques analyses précises. Les résultats sont sans équivoque : la base, qui contient plusieurs millions d’articles sur toutes sortes d’événements à travers toute la planète, ne sert pas à grand chose pour le moment.

Les problèmes semblent moins venir des données elles-mêmes que de leur classification a posteriori. L’exemple du kidnapping géant par Boko Haram au Nigeria en mai dernier l’illustre très bien : l’événement a été géocodé à une quarantaine d’endroits différents, avec pour conséquence… le comptage d’autant d’événements différents.

Pas étonnant, du coup, que personne ne s’y retrouve, en particulier lorsque l’architecte de la base affirme que les caricatures danoises de Mahomet sont l’événement mondial le plus saillant sur les trente-cinq dernières années. La personnalité de l’architecte en question, qui a fait toutes sortes de déclarations grandiloquentes, y est peut-être aussi pour quelque chose, mais ce n’est qu’une supposition de ma part.

Cela ne condamne pas définitivement les données, mais jette un sérieux doute sur leur exploitation en l’état actuel de la base. On peut imaginer toutes sortes de rectifications (après tout, c’est l’intérêt d’avoir placé la base en accès ouvert), ou imaginer des réformes plus radicales, comme limiter la base à quelques sources bien choisies à l’entrée et espérer en tirer quelque chose de mieux structuré à la sortie—c’est la stratégie suivie par l’outil équivalent que possède le Department of Defense américain.

Un bref aperçu filigrané des propositions du rapport Hautcoeur

Le rapport Hautcoeur sur l’enseignement des sciences économiques dans le supérieur a l’air intéressant, surtout si l’on s’amuse à lire le filigrane des recommandations. En partant du principe qu’on ne recommande que ce qui n’existe pas encore de manière univoque et généralisée, voici par exemple la recommandation #2, qui suit l’obligatoire recommandation #1 sur la pluridisciplinarité et la spécialisation progressive :

2. Favoriser la construction et la critique des données et des faits stylisés par les étudiants dès le premier cycle, au sein des cours d’une part, et en les associant, en tant qu’assistants, à des projets de recherche d’autre part.

L’auteur du rapport a le mérite de tenter un exercice périlleux : émettre des recommandations à destination des étudiants, sans trop directement émettre de critiques à destination… des enseignants. Mais concrètement, lorsqu’il écrit dans son résumé que “[l]es étudiants doivent apprendre à maîtriser la construction et l’analyse critique des bases de données et indicateurs statistiques”, il s’adresse aussi aux chercheurs qui font l’économie (hum) de cette critique dans leurs propres travaux—les économistes n’étant bien sûr pas les seuls concernés, seulement les plus exposés.

Il me semble en effet difficile de ne pas faire de lien entre cette recommandation et les récentes “controverses” autour des données de Reinhart et Rogoff ou, plus récemment, de Piketty ; je place “controverse” entre guillemets car, dans le premier cas, les erreurs sont grossières et avérées, alors que dans le second, la charge de l’accusation est au mieux, mince, au pire, pas complètement honnête.

On trouve aussi, dans le rapport, une proposition portée de longue date par la CJC sur l’intégration des docteurs dans la haute fonction publique, ainsi qu’une demande de contournement de l’agrégation comme instrument principal de promotion intra-disciplinaire. Dans le texte :

supprimer l’agrégation du supérieur comme mode prioritaire de recrutement

Les termes “suppression” et “agrégation” reviennent de plus en souvent côte-à-côte. L’enjeu est légèrement différent en science politique, mais la position de l’ANCMSP, votée dès 2007, mérite d’être mentionnée ici. Ayant longtemps milité dans les deux associations, je m’en tiendrai à ces simples mentions, tout en remarquant que d’autres éléments centraux du système d’enseignement et de recherche français ont survécu à des tentatives de suppression dans la période récente.

Toujours dans les recommandations, et toujours en lecture filigrane :

7. Imposer aux organisations publiques de publier les évaluations des politiques publiques effectuées sur appel d’offre et de favoriser la réplication de ces évaluations.

On aura donc lu : à l’heure actuelle, les organisations publiques ne sont pas tenues de publier les évaluations des politiques publiques effectuées sur appel d’offre (et financées par la collectivité)1. Je ne sais pas si c’est vrai, ni si ça se fait de poser une QPC sur un article (le quinzième) de la Déclaration des Droits de l’Homme et du Citoyen2.

La recommandation suivante se passe de commentaire :

8. Préciser les potentiels conflits d’intérêt des enseignants-chercheurs dans les publications, enseignements et rapports d’évaluation.

“Préciser” doit être l’antonyme d’“occulter” : filigrane, toujours.

Suivent, un peu plus loin, deux recommandations bizarroïdes : celle qui demande au CNRS de recréer les contrats post-doctoraux qu’il a supprimés par centaines quand ses crédits sont partis à l’ANR (recommandation #16), et celle qui demande à ce que cette même ANR se coordonne avec la Commission européenne pour financer des CDI (recommandation #17), ce qui semble complètement contre-nature : aucune de ces institutions ne me semble vouloir s’engager dans cette voie.

La ministre/secrétaire d’État trouvera tout cela certainement très intéressant, et y trouvera même certainement des ressemblances avec les discussions sur ces mêmes points lors des Assises qu’elle avait elle-même organisé. Idem pour une bonne partie des annexes reprenant les enquêtes CEREQ, que l’on retrouve dans un rapport sur deux.

Pour terminer, big up à Baptiste Coulmont, grâce à qui on trouve désormais des graphiques réalisés avec R dans un rapport public ! Voir page 123, reproduite ci-dessous. En revanche, les “nuages de mots” des autres pages ne me semblent pas servir à grand chose, même si c’est joli.

Screen Shot 2014-06-09 at 1.32.13 PM

Voilà pour l’aperçu des premières pages — sachant que la lecture des premières pages est exactement ce qu’il restera, à terme, du rapport. Allez jeter un coup d’oeil par vous-même, et dîtes-moi si vous y avez lu autre chose : pour ma part, j’y ai trouvé d’excellentes propositions, en lien avec d’autres propositions actuelles, et sans révolution copernicienne du statu quo : un rapport public comme on les connaît dans le secteur.

  1. L’État n’ayant pas besoin de passer des marchés publics avec ses propres corps d’inspection, peut-être est-il moins concerné que les collectivités locales, qui dépensent des sommes parfois faramineuses en rapports d’audit. []
  2. En revanche, pour avoir déjà consulté des rapports rendus par des micro-entreprises de consultants jugés scientifiques grâce à des diplômes gracieusement obtenus dans les années soixante (de l’aveu même de leurs détenteurs), je pense qu’il y aurait de quoi s’amuser un peu si les logiques de l’open access et de la réplication venaient à s’y appliquer. []