Journée d’étude « réseaux » à Lille, jeudi 8 juin 2017

Jeudi 8 juin à Lille, nous organisons, avec Sylvain Mignot et Fabien Éloire, une journée d’étude qui vise à fédérer les chercheurs en sciences humaines et sociales intéressés par l’analyse de réseaux.

Le programme (anglais, français) est en ligne, et les inscriptions se font avec ce formulaire, ou auprès de moi par email, comme indiqué dans l’affiche. Attention, les places sont limitées, donc inscrivez-vous vite si vous souhaitez venir !

La journée est co-financée par le Groupement de recherche Analyse de réseaux en sciences humaines et sociales (GDR AR-SHS), à qui nous enverrons un compte-rendu de la journée pour publication sur son blog.

L’un des objectifs à moyen terme de cette journée est de monter un collectif de recherche en analyse de réseaux sur Lille, puis de connecter ce collectif à des équipes de recherche idoines dans la région, à Paris ou en Belgique.

Si le projet vous intéresse, idem, écrivez-moi !

La même annonce est disponible sur le site Internet d’ESPOL, qui co-finance et co-organise l’événement avec quelques autres unités de recherche basées à Lille – l’Anthropo-Lab, la FGES et le CLERSÉ.

Notes de travail sur les réseaux de collaboration législative

J’ai eu la chance d’intervenir, il y a dix jours, dans le séminaire interne du CEVIPOL, le laboratoire de science politique de l’Université Libre de Bruxelles. J’étais invité par Émilien Paulis, que je remercie au passage pour l’invitation, pour la logistique et pour l’accueil sur place.

Mon intervention portait sur l’étude des réseaux de collaboration législative. Les slides que j’ai utilisées sont proches de celles que j’avais présentées en juin 2016 dans une conférence d’utilisateurs de R, et que j’ai présentées à nouveau cette même année dans une conférence « quanti » à Lille et dans le séminaire du Médialab de Sciences Po.

Quelques extraits ci-dessous, à cliquer pour obtenir les slides au complet :

Women Also Know Stuff, édition personnelle 2017/02

La suite de ce billet. Édition précédente : 2017/01. Les règles de cette série de billets se précisent : tous les liens pointent vers des textes ou des morceaux de musique composés par des femmes (ou co-composés par au moins une femme, dans le cas des compositions multi-auteurs). Chaque billet de la série est publié à la fin du mois et contient 10 items, plus une « mention spéciale » (spéciale en quoi ? je ne sais toujours pas). Les domaines couverts sont variés, mais vu ce que je lis et j’écoute, attendez-vous à de la science politique (évidemment), de l’analyse de données1, et de la musique bizarre.

  1. Emily Barry, « Applying Data Science to the Supreme Court: Topic Modeling Over Time with NMF (and a D3.js bonus) » :

    barry-scotus-topics

  2. Jenny Andersson et Egle Rindzeviciute, « The Political Life of Prediction. The Future as a Space of Scientific World Governance in the Cold War Era » :

    This working paper explores the role of the future as a space of scientific exchange and dialogue in the Cold War period. We argue that in East and West the governance of the future were understood as both intellectual and technical problem that, importantly, challenged existing notions of the nature of liberal democratic and communist political regimes. Casting the future as a governable sphere led to the development of new forms of scientific governance which sought explicitly to depoliticize the future and turn it into a new transnational domain of technocratic politics. The paper focuses on the parallels and exchanges among American and Soviet futurologists. East-West collaboration was essential to the invention of the future as a governable technoscientific space, situated beyond political dispute.

  3. Daphne Oram2, Andrea Parker3 et Daz Quayle, « Are You There? » (Live from the Roundhouse), tiré de Private Dreams And Public Nightmares (2011) :

  4. Valerie J. Bunce et Mark R. Beissinger, « Taking Democracy for Granted » (sur l’excellent blog collectif Duck of Minerva, qui devrait plaire à tous les lecteurs de Crooked Timber et de The Monkey Cage) :

    … The costs of nationalist tropes for democracy are many. They give candidates a license to avoid talking about policy. They silence the opposition, since it cannot possibly come out against the nation. They sow divisions among the public. But perhaps their greatest danger is that they give rise to the demand for strong leadership—leaders who will do anything to defend the nation from its enemies.

    To those who view American politics as exceptional, Trump is an anomaly that is difficult to explain. To us, his politics are disconcertingly familiar.

  5. Katharina A. Zweig, Network Analysis Literacy. A Practical Approach to the Analysis of Networks (Springer, 2016) — un bouquin qui clarifie l’analyse de réseaux par le biais des modélisations complexes parues ces dernières années. Fort utile.

  6. Elisabeth S. Clemens : What is Political Sociology? (Wiley, 2016). Ayant lu quelques-uns des articles de l’auteur, je m’attends à une excellente synthèse couvrant un énorme spectre spatio-temporel, à la Sewell.

    Note : j’ai reçu, depuis la rédaction de ce billet, ma copie de l’ouvrage, et je ne suis pas déçu. Comme prévu, c’est une vaste mais brève synthèse de la sous-discipline.

  7. DJ Mutamassik (et Spit), « Complicity (M28 Mix)« , remix déjanté d’une chanson d’Arto Lindsay, sur l’excellent album d’illbient Hyper Civilizado (1996) :

    L’album de Mutamassik Symbols Follow (2015), où celle-ci joue tous les instruments, vaut aussi le détour si vous aimez l’ambient expérimental façon Nobukazu Takemura, qui reste le maître absolu, inégalé et inégalable du genre.

  8. Amelia Tait : « The Movie That Doesn’t Exist and the Redditors Who Think It Does » – sur un phénomène qui peut paraître invraisemblable, mais qui est bien connu des chercheurs faisant des entretiens sur des faits distants : le cerveau humain fabrique de très intéressants souvenirs de faits n’ayant jamais existé.

  9. Lucie Beraud-Sudreau et Hugo Meijer, « Enjeux stratégiques et économiques des politiques d’exportation d’armement. Une comparaison franco-américaine » (Revue internationale de politique comparée, 2016) :

    […] Cet article propose un schéma explicatif [montrant] que le poids relatif des considérations stratégiques et économiques dans l’élaboration des politiques d’exportation d’armes dépend, sur le plan international, du positionnement de l’État dans la hiérarchie mondiale des producteurs d’armement et, sur le plan national, du degré de dépendance à l’exportation de son industrie de défense. Cette typologie est ensuite testée à travers une comparaison des politiques américaine et française d’exportation d’armement, à partir d’entretiens réalisés à Washington D.C. et à Paris et de câbles diplomatiques fuités par Wikileaks. […]

  10. Anoushka Shankar, « Red Sun« , de l’album Rise (2005) :

Mention spéciale : Fernanda Martins, l’une des rares femmes dans le sous-genre hard techno/schranz, qui est quasi-exclusivement dominé par des hommes (Kvitta, Liebing, Natus, Ranieri, Rush). Le mix ci-dessous a été réalisé avec Sheefit, a.k.a Gabriela Mariano, la moitié féminine du duo de hard techno Motormorfoses.

  1. Généralement avec R, parfois avec Python. []
  2. Une pionnière du genre (synthétiseurs et musique concrète). Mon billet de 2016 en cite d’autres. []
  3. Oui, c’est la même que dans l’édition 2017/01. []

Encart publicitaire : encore plus de cartographies réticulaires

Si vous avez aimé l’exemple de « cartographie réticulaire » publié il y a un mois au sujet des théories du complot, vous en trouverez naturellement plein d’autres sur ce blog, mais aussi dans mes notes sur R, en anglais (voir l’encart publicitaire précédent).

L’une de mes dernières notes sur R porte sur la construction d’un petit réseau de co-occurrences de mots-clés, dont voici le premier résultat :

réseau de co-occurrences

Les mots-clés que vous voyez ci-dessus m’ont été fournis par une classe de cobayes gentils étudiants du Master Governing the Large Metropolis, qui est objectivement le Master le plus chouette de la planète1. Les (17) étudiants étaient tenus de lister leurs centres d’intérêt intellectuels, ce qui a donné ce petit réseau de co-occurrences.

Ce graphe repose, à peu de choses près, sur la même méthodologie que celle utilisée pour cartographier les théories du complot, à ceci près que la note qui l’accompagne contient plus de détails techniques, notamment sur la pondération des liens dans les réseaux de co-occurrence2.

À ce stade, je n’ai pas eu recours à la détection de communautés pour classer les mots-clés en fonction de leurs co-occurrences : une lecture rapide du graphe m’a suffi. En revanche, dans une seconde note utilisant les mêmes données, je me suis amusé à reprendre le réseau bipartite initial des étudiants et de leurs mots-clés :

réseau bipartite

Or, si l’on réduit ce graphe à des liens entre étudiants plutôt qu’entre mots-clés, alors la détection de communautés devient assez intéressante, puisque l’on va pouvoir s’en servir pour repérer les clusters d’étudiants partageant les mêmes centres d’intérêt, en utilisant le même algorithme de détection de communautés que dans ma cartographie des théories du complot :

réseau unipartite avec clusters

Remarquez que j’ai la composition réelle des groupes de travail qu’ont formé les étudiants suivant mon cours, et qu’elle ne correspond pas du tout, mais alors pas du tout, à celle qui apparaît ci-dessus… Autrement dit, dans l’immense majorité des cas, les étudiants ont formé leurs groupes de travail en se fondant sur d’autres critères que leurs centres d’intérêt communs.

  1. J’aime vraiment beaucoup enseigner dans ce Master où l’on trouve, dès la deuxième semaine de cours, un exemplaire de Seeing Like A State dans les sacs des étudiants. []
  2. Voir aussi cette autre note sur la pondération des liens dans des réseaux de co-auteurs. []

Début de reprise

Ce n’est vraiment encore la reprise, mais un peu quand même, alors on s’y remet.

Deux comptes-rendus de conférences, et un projet à suivre :

Et une photo de voyage, histoire de répéter ce que j’ai déjà dit sur Facebook : le “Bourdieu” de Fabiani est un excellent livre qui accompagne très bien les heures chaudes.

Tanger, juillet 2016

Photo prise à la terrasse du Café Menara, Tanger, Petit Socco, Maroc.

Collecte et visualisation de données législatives avec R

Le groupe d’utilisateurs R du Muséum national d’Histoire naturelle de Paris (le groupe “Sémin-R”) organise une conférence R demain. Cliquez sur l’image ci-dessous pour le programme complet :

JourneeR-2016-Programme

J’y présenterai les slides résumées ci-dessous (cliquez sur n’importe quelle image pour la version PDF complète, ou utilisez la version en ligne), et si tout se passe bien, j’aurai un court papier technique à partager sur le sujet dans moins d’un mois :

Briatte_R_MNHN_2016-2

Briatte_R_MNHN_2016-3

Briatte_R_MNHN_2016-4

La présentation reprend, en substance, une brève note que j’ai récemment publiée dans Network Science. Cliquez sur l’image ci-dessous pour accéder au preprint ou lisez directement son annexe pour le détail des données :

Briatte_NWS_published

Comme d’habitude, le code et les données sont en ligne — j’en ai déjà parlé à plusieurs occasions cette année, et vous risquez d’en entendre encore parler dans les années qui arrivent (plus de détails quand il y en aura à partager).

Affaire à suivre, donc, mais bon, c’est pas comme si je ne vous avais pas déjà un peu cassé les pieds avec R et la visualisation de réseaux de collaborations législatives depuis quelques temps déjà.

J’en profite pour saluer amicalement les collègues suisses, et Marion Deville en particulier, qui participent à la Semaine de la démocratie de Genève, et qui ont prévu d’utiliser certains de mes graphiques dans une présentation de leurs travaux lors d’un hackathon organisé le 23 septembre. Je n’ai pas beaucoup plus d’informations là-dessus, mais vous pouvez écrire à Marion si vous êtes intéressés.

En attendant, il reste quelques places pour la conférence de demain : écrivez aux gentils organisateurs (leurs coordonnées sont sur le site du Sémin-R), ou faîtes-moi très vite signe, et je ferai suivre. À demain !

Mise à jour, le jour même : malgré un léger gros problème qui m’a fait rater la matinée, je peux confirmer que la journée R du MNHN était, comme prévu, hyper-chouette, le cadre du Muséum d’Histoire Naturelle étant très agréable par ailleurs.

À noter dans les présentations, qui seront bientôt en ligne sur le site du RUG MNHN :

  • les dernières améliorations du package FactoMineR – et Factoshiny
  • l’utilisation de scripts R sur un serveur Apache
  • la visualisation de cartes auto-organisatrices
  • un exemple d’interfaçage R + Java
  • la sonification (!) de graphiques R/ggplot2

La dernière présentation, par Jérôme Sueur (l’un des deux organisateurs de la journée, avec Amandine Blin) était très divertissante. Pour comprendre pourquoi, jetez un coup d’oeil au package playitbyr.

Notes sur R et l’analyse de réseaux

Comme promis la semaine dernière, nouvelle annonce qui consacre mes deux obsessions pour la programmation statistique avec R et l’analyse de réseaux, toujours avec R :

r-notes

Le blog est syndiqué sur R-Bloggers, qui agrège plein de blogs sur R. Vous pouvez aussi vous y abonner par son flux Atom ou par son flux RSS.

Le moteur du blog est une version bidouillée de Dropplets.

Quelques notes déjà rédigées

J’ai commencé ce nouveau blog pour stocker des notes dont je suis le premier utilisateur, notamment sur les sujets suivants :

Je me suis aussi servi du blog pour documenter des résultats bizarres, faire des suggestions sur l’enseignement avec RStudio, et tenter des petites expériences avec jQuery, telles que celle-ci avec l’API Pinboard.

Il s’agit vraiment de notes plus que d’un blog : tout est rédigé dans un jargon pas très amusant, et il n’y a pas de commentaires, ni même de lien évident pour me contacter — d’où cette nouvelle publication en dehors du ‘bistro.

Dernière petite chose, vous pouvez désormais apercevoir les derniers billets du Polit’bistro et de R / Notes sur ma homepage universitaire, encore une fois grâce à jQuery, et plus précisément grâce au plugin FeedEk, qui permet de récupérer des contenus de fils RSS :

blogs-rss-feedek

Pour les fans, il y a aussi un peu de jQuery (avec beaucoup de JavaScript et un peu d’animations CSS3) sur la page où j’héberge ma frimousse.

Bonne(s) lecture(s) !

Une liste de ressources sur l’analyse de réseaux

Mon obsession pour les structures relationnelles a difficilement pu échapper aux lecteurs de ce blog. Bonne nouvelle : cette obsession est désormais sous la forme d’une liste de plus de 200 300 ressources en ligne.

awesome-network-analysis

La liste recense les ouvrages, conférences, cours, jeux de données, revues scientifiques, collectifs de recherche, articles de synthèse, logiciels et tutoriels qui me paraissent, ainsi qu’à quelques autres, très recommandables sur le sujet.

La liste étant collaborative, vous êtes bien sûr invités à y contribuer, en y rajoutant vos ressources recommandées, ou même en proposant d’en retrancher certaines, afin de s’en tenir à une liste de ressources strictly awesome.

La liste fait pleinement usage des fonctionnalités de GitHub : sa feuille de route (des idées sur sa future diffusion) se trouve sur son wiki, et les améliorations déjà prévues sont listées à cette adresse. Voici les améliorations déjà prévues :

awesome-network-analysis-issues

Cette liste est donc aussi peut-être aussi l’occasion de vous mettre à Git, un logiciel de gestion de versions concurrentes, et surtout, à GitHub, qui simplifie énormément son apprentissage.

Annonce préliminaire en supplément : une description un peu plus technique de la liste présentée ci-dessus se trouve à cette adresse, sur un blog (en anglais) dont je reviendrai faire la publicité ici dans une semaine.

Mise à jour : la liste mentionnée ci-dessus a rejoint la liste des Awesome Lists, ainsi que la liste Awesome R et son très joli site Internet, qui contient plein de ressources utiles sur R. À explorer sans modération :

awesome-R-website

Hypothesosphère : le réseau des blogs d’Hypothèses, (presque) cinq ans plus tard

Il y a quelques années (en décembre 2010, pour être précis), Josquin Debaz avait rédigé un billet sur le réseau des blogs de la plateforme Hypothèses, “Hypothesosphère”, où il reconstituait le réseau des blogs indexés par la plateforme à partir des hyperliens entre les articles de ces blogs. Je me suis demandé si ça ne valait pas le coup d’actualiser son analyse, en récoltant des données permettant d’assembler ce réseau à différents points temporels, puis d’identifier les thèmes traités par les communautés qui forment ce réseau.

Le résultat montre qu’environ un tiers des blogs de la plateforme Hypothèses a, au moins une fois, renvoyé ses lecteurs vers un autre blog de la plateforme. Au cours des années 2009 à 2015, la plateforme s’est enrichie de nombreux blogs, ce qui donne, même lorsque l’on se concentre sur un échantillon de ces blogs, comme ci-dessous, un réseau qui contient de nombreuses “sous-communautés” (linguistiques, notamment), et quelques blogs (dont Polit’bistro !) nettement plus centraux que les autres :

hyponet

Cliquer le graphe ci-dessus pour la version PDF plus lisible, où l’on aperçoit clairement le blog des concepteurs de la plateforme (en plein milieu), ainsi que la partie germanophone d’Hypothèses (au sud). Ci-dessous, une longue notice technique, avec une visualisation temporelle du réseau à chaque année d’existence de la plateforme, et une modélisation des thématiques abordées dans les billets de chacune des communautés au fil du temps.

Échantillonnage des données

Depuis le billet de Josquin Debaz, l’index d’Hypothèses s’est beaucoup enrichi, et a aussi certainement changé au niveau du code, car les “vieux” billets (ceux de la page 300, par exemple) n’y sont pas indexés comme les nouveaux. Du coup, pour actualiser l’Hypothesosphère, mieux vaut peut-être passer par le catalogue OpenEdition, qui recense actuellement 1 071 blogs dont on peut ensuite récupérer les articles :

openedition-catalogue

Pour effectuer cette dernière opération, j’ai simplement essayé de lire chaque “page” de chaque blog, de la première à la dernière. Certains blogs, comme celui-ci par exemple, n’utilisent pas de pagination (ce que l’on peut raisonnablement considérer comme un événement survenant de manière aléatoire parmi les blogs de la plateforme), et sont en conséquence exclus de l’échantillon que l’on va constituer1.

Dans un premier temps, il faut donc lister les blogs et essayer de lister tous leurs articles. En une demi-heure d’essais-erreurs avec le code HTML des blogs, qui tournent tous sur WordPress mais pas avec les mêmes gabarits et donc avec des balises HTML différentes, j’en suis arrivé à ce script, qui est certainement plus lent que celui qu’a rédigé Josquin Debaz (en Python), mais qui fonctionne suffisamment bien sur la plateforme Hypothèses actuelle.

Le résultat est un échantillon qui contient 622 blogs, soit 60 % du catalogue total d’OpenEdition, et un total de 77 608 articles, soit 124 articles par blog en moyenne2. Si l’on compare les années de création des blogs du catalogue OpenEdition à celles des blogs contenus dans l’échantillon, les différences de proportion de chaque année à l’intérieur de chaque groupe sont minimes et aléatoires, ce qui est plutôt bon signe pour la qualité de l’échantillon.

Année Catalogue % Échantillon %
2009 76 7 65 10
2010 81 8 61 10
2011 138 13 78 13
2012 282 26 149 24
2013 233 22 118 19
2014 126 12 61 10
2015 133 12 88 14

Construction des réseaux temporels

Dans un second temps, il faut ensuite scanner le contenu des articles des blogs sélectionnés, et en extraire les liens vers des adresses de blogs hébergés sur Hypothèses. Alors que l’opération précédente n’a pas demandé plus de quelques heures, celle-ci risquait de prendre beaucoup plus longtemps, étant donné la quantité de données à parcourir. Du coup, j’ai à nouveau échantillonné dans les données, en ne téléchargeant que 25% des 77 608 articles, soit 19 402 articles3.

Vu que l’on va vouloir observer la manière dont l’Hypothesesosphère a changé au cours du temps, on va ensuite scanner ces articles pour y trouver les inter-citations entre blogs, en notant également la date de parution des articles et le nombre d’inter-citations par article, qui pourra faire office de coefficient de pondération si besoin. Je ne vais pas jusqu’à sous-échantillonner pour limiter le nombre d’articles par blog, mais c’est envisageable4.

Enfin, on va écrire le code de visualisation de l’Hypothesesosphère de chaque année, en mettant des couleurs sur les huit “communautés” de blogs les plus larges, que l’on identifie grâce à un algorithme qui maximise la modularité (le degré de ségrégation) du réseau. Le code ressemble fortement à ce que j’ai déjà décrit dans plusieurs billets précédents, et notamment dans ce petit tutoriel, qui couvre aussi la récupération des données.

Ci-dessous, un exemple de visualisation produit par ce code. Je dis “exemple” car le placement des blogs est en partie aléatoire, comme l’exige n’importe quel algorithme de placement à force dirigée. À noter aussi : la visualisation ne montre pas que le réseau est dirigé, mais il suffit de faire attention à la couleur des liens pour la deviner (lorsque les liens sont plus foncés, c’est qu’ils sont réciproques : les blogs se font mutuellement référence).

hyponet

Pour obtenir un résultat plus exhaustif, il suffit d’augmenter le seuil précité de 25%, ce qui permettra de scanner un plus grand nombre d’articles, et donc potentiellement de rendre l’Hypothesesosphère de chaque année un peu plus dense. Le seuil que j’ai choisi devrait toutefois suffire pour se faire une première idée de ce à quoi ressemble le réseau complet des inter-citations entre les blogs de la plateforme.

Modélisation des communautés

Les réseaux présentés ci-dessus contiennent des blogs, liés entre eux par des articles. Chacun de ces articles contient des mots-clés, ou a minima une catégorie qui correspond, elle-même, à un mot-clé. La plupart des mots-clés sont en français, sauf dans les sous-communautés linguistiques d’Hypothèses, qui utilisent des mots-clés, en allemand, en anglais, en espagnol.

De plus, on a segmenté chaque réseau de manière algorithmique, en communautés optimales. Par conséquent, il est facile de créer des groupes de mots-clés correspondant à une communauté de blogs connectés par leurs inter-citations, ce qui est ici une manière de passer de la forme “réseau” à la forme textuelle en intégrant l’information structurelle du réseau dans la constitution du corpus textuel.

On va donc représenter les données de nos réseaux temporels sous la forme d’un corpus, où chaque document correspond aux mots-clés d’une communauté. Le corpus produit par cette opération contient autant de documents que n’apparaissent de communautés au fil des sept années d’existence de la plateforme, soit un corpus de 127 documents : 3 pour 2009, 7 pour 2010, jusqu’à 29 documents pour 2015.

On peut nettoyer des documents de manière approximative, en nettoyant les termes comme s’ils étaient tous français—ce qui n’est pas très grave : la langue va, quoique l’on fasse, fortement discriminer les communautés de blogs non francophones. Et enfin, on envoie ces documents à un topic model structurel, qui, un peu comme dans cet exemple, prend en compte l’année et la communauté de chaque document5.

Le résultat de cette opération sera un certain nombre de “thèmes” traités par les sous-communautés d’Hypothèses, identifiés à partir de quelque chose qui se rapproche d’un modèle multi-niveaux quant au type d’information qu’on fournit à l’estimateur. Le nombre de thèmes identifiés est arbitraire : j’ai choisi d’en identifier 20, un chiffre proche du nombre moyen de communautés identifiées dans chacun des réseaux (18)6.

Résultats : les thèmes de l’Hypothesesosphère

Dans les résultats ci-dessous, chaque ligne correspond à un regroupement thématique, ordonné du plus au moins fréquent dans le corpus, et représenté par ses trois premiers mots-clés (sans les suffixes, qui ont sauté au nettoyage). On aperçoit les thèmes constitués autour des billets en langue allemande, ou ceux créés autour de zones géographiques (“chin” ou “arab”) :

hypotopics

On aperçoit aussi, dans les thèmes, certains sujets bien précis : “polit” et “scienc”, par exemple, dans le thème n°2, correspond au séminaire “Politique des Sciences” de l’EHESS. Ce dernier constat est un peu embêtant : concrètement, le modèle que l’on a utilisé a “sur-identifié” certains sujets, plutôt que d’identifier des thèmes réellement transverses au corpus.

Le modèle fournit une probabilité d’occurrence de chaque thème dans chaque document, ce qui permet de connecter les thèmes entre eux en corrélant ces probabilités. On obtient ainsi, pour terminer, le réseau de thèmes suivants, où les couleurs correspondent à nouveau aux communautés optimales, et où l’on aperçoit distinctement l’espace thématique germanophone de la plateforme Hypothèses, de même que les thèmes les plus génériques (“actualités”, “lectures”, “colloques”, …) :

hyponet_topics

Pour améliorer cette visualisation, il faudrait déjà envisager d’augmenter l’échantillon des articles au-delà des 25% précités. Ensuite, il faudrait réfléchir à un découpage temporel plus intelligent que celui proposé ici. En effet, segmenter l’Hypothesesosphère par année civile n’est probablement pas très pertinent : on pourrait essayer d’utiliser plutôt les années universitaires, ou même un découpage plus fin se rapprochant des semestres.

Enfin, et surtout, une modélisation plus robuste des thèmes de l’Hypothesesosphère nécessiterait d’affiner trois des paramètres de la modélisation proposée ci-dessus : (1) le nettoyage des mots-clés en fonction de leur langue, (2) le nombre de thèmes à identifier, et (3) l’identification des thèmes, de manière à jouer à la fois sur la prévalence et le contenu des termes du corpus, comme l’explique la documentation du package stm :

stm-metadata

Ces améliorations demanderaient de passer plus de temps sur la collecte des données et sur le calibrage du modèle. Avis aux intéressé(e)s !

Pour aller plus loin

Ce billet explique comment actualiser les données initialement imaginées par Josquin Debaz, et suggère de modéliser ces données à mi-chemin entre l’analyse de réseaux et l’analyse textuelle. Ce croisement méthodologique est assez fréquent : voir, par exemple, ce papier récemment présenté au Congrès de l’AFSP, qui étudie la “web-sphère” créée autour du hashtag #CharlieHebdo sur Twitter.

Quelques liens, donc, pour terminer.

Pour reproduire l’analyse, allez voir ce dossier, qui inclut la liste des blogs à partir de laquelle on a constitué l’échantillon, et l’exemple de corpus sur lequel on a travaillé pour ce billet. Le code n’est pas particulièrement compliqué, et il est facilement amendable (on pourrait, par exemple, étudier le réseau bipartite des blogs d’Hypothèses citant des articles publiés sur revues.org).

Pour analyser du texte, la méthode que j’ai employée (et que j’avais déjà évoquée ici et , notamment) n’est pas la plus simple, ni même la plus conclusive. Pour des alternatives aux topic models, cf. notamment les méthodes de classification hiérarchiques implémentées par Iramuteq, ainsi que ce billet d’Étienne, qui explique clairement ce qu’est un topic model et qui recense d’autres autres méthodes disponibles.

Pour visualiser des réseaux, je passe systématiquement par la fonction ggnet (voir le billet de présentation et d’autres exemples), mais vous voudrez peut-être passer par igraph (qui vient de passer en version 1.0.0 ! et le bouquin a l’air génial), ou par une librairie permettant de visualiser le réseau par périodes. Dans ces deux cas, jetez un coup d’oeil à cet excellent tutoriel de visualisation réseau, par Katherine Ognyanova.

Pour illustrer ce que l’on peut apprendre en lisant le tutoriel ci-dessus, voici un dernier graphe, qui montre la croissance cumulée de l’Hypothesesosphère, de janvier 2009 à juin 2015. Si vous utilisez Google Chrome, vous pouvez également jouer avec la version interactive, réalisée avec le package (encore très expérimental) ndtv, que j’ai découvert grâce au tutoriel.

hypodyn

Contrairement aux autres graphes du billet, ces deux animations utilisent un échantillon beaucoup plus large de presque 85 000 billets publiés sur la plateforme, au fil desquels 340 blogs ont renvoyé leurs lecteurs vers 484 blogs, pour un total de 605 blogs différents actuellement présents dans l’Hypothesesosphère.

  1. Le meilleur moyen de travailler sur l’intégralité de la base serait bien sûr de l’obtenir auprès de la plateforme (à laquelle je contribue très épisodiquement), mais le texte intégral pèse certainement trop lourd pour pouvoir être facilement transféré. De plus, la base intégrale doit contenir les brouillons des articles des blogs, ou ceux publiés de manière privée. Pour ne pas rentrer dans ces problèmes, je n’ai accédé qu’aux données publiques de la plateforme. []
  2. En relançant le script plusieurs fois pour pallier aux erreurs réseau, je suis arrivé jusqu’à 885 blogs et 104 844 articles, soit 118 articles par blog en moyenne. []
  3. Il est fortement recommandé, à ce stade, de laisser une seconde entre chaque téléchargement, pour ne pas stresser la plateforme. []
  4. Cette étape serait nécessaire si l’on souhaitait contrôler (éliminer) les différences de volume de publication d’une année sur l’autre, de manière comparer des probabilités d’occurrence (ou plutôt, des écarts par rapport à une hypothèse d’équiprobabilité, qui peut s’estimer de différentes manières) dans chacun des réseaux temporels. []
  5. Très grossièrement, un topic model structurel est un topic model (soit une technique de regroupement de termes discriminants en thèmes, ou topics) qui peut prendre en compte de l’information supplémentaire sur les documents (des “méta-données”, comme ici l’année de “parution” du document formé par les mots-clés, et la communauté qui a “produit” ce document cette année-là, au fil de ses billets de blogs). Pour des exemples de topic models, cf. cette synthèse, cet article, et ce projet, sur le même thème que ce billet. []
  6. À noter : il y a de plusieurs manières d’identifier le nombre de thèmes à rechercher dans un corpus. Certaines d’entre elles sont expliquées dans les documents cités dans la note précédente. []

Les réseaux de cosignatures législatives de quinze pays européens

Mise à jour, janvier 2017 : la recherche présentée ci-dessous est désormais publiée dans un ouvrage collectif. Le manuscrit est en ligne depuis belle lurette.

Mise à jour, juin 2016 : les données présentées dans ce billet ont évolué, et vont continuer d’évoluer. Pour une présentation plus récente, voir ce billet de juin 2016.

Si la série de billets “Charlie Hebdo” vous a plu, voici quelques réseaux en plus. Add. Et si ce billet vous a plu, la base de données et les visualisations interactives comptent désormais 24 chambres parlementaires de 18 pays européens (les trois nouveaux pays sont l’Irlande, le Portugal et la Slovakie).

Vous vous souvenez peut-être de ce premier travail, dont j’avais parlé courant 2014, sur les réseaux des cosignatures de propositions de loi et d’amendements à l’Assemblée nationale. L’idée venait de Baptiste Coulmont.

La présentation de ce travail en conférence était plutôt bien passée. À cette époque, j’avais déjà rajouté les réseaux de cosignatures du Sénat, très faciles à construire grâce à son portail open data.

À l’occasion d’une summer school avec piscine et sauna (si si), j’ai ensuite élargi l’assiette empirique à six pays européens. Puis j’ai fait le tour de tous les pays membres de l’Union européenne et de l’AELE1.

Ce qui m’amène à la base de données actuelle : j’ai fini par assembler 100 réseaux de cosignatures législatives dans 19 chambres parlementaires de 15 pays européens. Voici un texte qui les présente rapidement2.

Les réseaux sont limités aux propositions de loi, mais cette limite permet de remonter plus loin dans le temps, sur une base plus comparable. Le code est aussi beaucoup moins dégueulasse que le code initial pour la France.

Voici par exemple l’exemple l’Islande actuelle :

net_is2013-2017

Ou encore l’Italie actuelle (chambre basse) :

net_it_ca17

Ou encore la République tchèque actuelle :

net_cz7

Et enfin, voici un tableau récapitulatif des pays et des chambres parlementaires couvertes. Les liens “plots” amènent aux représentations graphiques statiques, les liens “viz” aux visualisations interactives. Amusez-vous bien.

Pays / Chambre
Autriche (chambre basse) code plots viz
Belgique (deux chambres) code plots viz
Bulgarie code plots viz
République tchèque (chambre basse) code plots viz
Danemark code plots viz
Finlande code plots viz
France (deux chambres) code plots viz
Hongrie code plots viz
Islande code plots viz
Italie (deux chambres) code plots viz
Lithuanie code plots viz
Norvège code plots viz
Roumanie (deux chambres) code plots viz
Suède code plots viz
Suisse (chambre basse) code plots viz

Le code contient des fonctions facilement réutilisables pour construire d’autres réseaux, et certains pays peuvent encore être rajoutés, à condition de trouver un moyen de récupérer les données (ce qui est parfois assez compliqué).

Si vous vous demandez à quoi peuvent servir ces réseaux, jetez un coup d’oeil au texte précité, ou au papier de Justin H. Kirkland sur la structure collaborative des chambres parlementaires, ou à ce papier sur la segmentation partisane.

Si vous souhaitez participer à l’amélioration, l’élargissement ou l’analyse de la base, je suis preneur : il y a beaucoup, beaucoup de données dans ces graphes (environ 195 000 propositions de loi et 13 000 parlementaires).

Dernier truc : j’ai publié un billet similaire à celui-ci sur la plateforme OpeningParliament.org, qui rassemble des organisations mobilisées autour de la thématique de l’open data dans le domaine législatif.

  1. À l’exception des micro-États, comme Andorre. []
  2. Le texte contient aussi un modèle très simple de la segmentation partisane des réseaux. []