« Parlementweets », le bot Twitter qui dévoile cinq années de tweets des députés

Wedodata
Wedodata
Published in
8 min readMay 9, 2022

Près de 2 millions de tweets, c’est la base de données que Wedodata a constitué ces cinq dernières années en aspirant chaque mois les tweets des 588 députés qui ont exercé pendant le mandat d’Emmanuel Macron. Depuis l’arrivée au pouvoir de la République en Marche et l’intronisation de la nouvelle Assemblée nationale en juin 2017, rien ne nous a échappé dans cette arène politique virtuelle qu’est devenue Twitter. À vous de jouer avec cette masse de tweets. 👇

Le logo de Parlementweets
Un Parlement, des tweets, Parlementweets

Nous vous donnons en effet l’occasion d’explorer ces innombrables prises de paroles d’une manière inédite : en interrogeant un bot Twitter — de son petit nom Parlementweets — qui vous répondra de manière personnalisée… et en dataviz. Un format en totale adéquation avec l’ADN de Wedodata et qui s’impose dans cette nouvelle génération de bots s’exprimant sur le réseau social.

Ce projet s’inscrit dans notre R&D permanente. Chaque année, nous nous lançons dans une série de défis technologiques au service de la narration de données. Vous avez peut-être lu « À data sur la politique », notre série d’articles en format stories sur « Les Jours », ou flashé une affiche présidentielle avec ExtraPol, notre appli de réalité augmentée ?

À quoi répond Parlementweets ?

Notre bot a la capacité de vous répondre instantanément en se plongeant dans les 2 millions de tweets de députés recueillis. Et ceci sur la base de trois questions essentielles ⬇️

  • Quel groupe politique a-t-il le plus parlé de tel ou tel sujet ?
    Ici, le cas du pass sanitaire
Exemple de résultat : total du terme “pass sanitaire” par groupe politique
  • Comment les groupes politiques se sont-ils emparés de tel ou tel sujet durant ce mandat ? Toujours le pass sanitaire ci-dessous
Exemple de résultat : évolution du terme “pass sanitaire”
  • Entre tel sujet et tel sujet, quel est celui qui a dominé la prise de parole dans chacun des groupes politiques ? Ici, on compare le « pass sanitaire » et le « vaccin »
Exemple de résultat : comparaison des termes “pass sanitaire” et “vaccin”

Concrètement, comment cela se passe ?

Pour interroger notre bot et le faire plonger dans ces 2 millions de tweets de députés, rien de plus simple : vous l’interpellez via son petit nom @Parlementweets.

Puis il y a 3 formules-clés à connaître :

  • 📈 Pour retracer l’évolution du terme « covid », dites : @parlementweets évolution covid
  • 📊 Pour connaître le nombre de mentions du terme « climat », dites : @parlementweets total climat
  • 🆚 Pour comparer le nombre de mentions des termes « start up » et « pognon de dingue », dites : @parlementweets comparaison start up et pognon de dingue

Pour info, quand vous faites la recherche Benalla, cela recherche Benalla ET #Benalla, donc le mot inséré dans le texte d’un tweet, mais également toutes les fois où il a été utilisé en hashtag.

En revanche, si vous souhaitez faire une recherche spécifique sur un hashtag comme #Benalla, alors précisez-le dans votre formule-clé et Parlementweets ne vous présentera que les tweets concernés par ce hashtag (voir le détail des coulisses du bot ci-dessous).

Ce format innovant peut s’adapter à toutes les bases de données

L’association entre un bot Twitter et une réponse personnalisée en dataviz est inédite. Nous l’avons conçue à l’occasion des législatives 2022, car nous bénéficions de cette base de tweets constituée dans le cadre de notre opération ScreenGov.

Mais ce dispositif a bien entendu été pensé et développé de manière générique, comme un nouveau format permettant l’interaction du lecteur avec de l’information chiffrée. Il peut donc être déployé dans de nombreux autres contextes où vous souhaitez offrir de l’information en dataviz à vos publics :

  • le classement des meilleurs joueurs d’un championnat (selon différents critères : buts, passes, arrêts, penaltys…)
  • les grands chiffres socio-économiques des régions dans le monde
  • le top des gestes écologiques par émission de CO2
  • les résultats d’élections
  • etc.

Vous souhaitez décliner ce format innovant sur vos données ? Parlons-en.

Comment fonctionne ce bot ? Quelques coulisses techniques

Parlementweets constitue un beau défi technologique puisqu’il combine scraping de données, bot Twitter, analyse sémantique d’un corpus volumineux et génération de dataviz à la volée.

Dès le début du mandat d’Emmanuel Macron, nous avons mis en place un scraping mensuel de l’ensemble des tweets des députés listés sur la liste de l’Assemblée Nationale.

Chaque compte Twitter a été rapproché d’un groupe politique grâce à des scrapings réguliers des sites de référence : celui de l’Assemblée, et des députés.

Près de 5 ans après, nous disposons d’une base de données forte de 1 950 000 tweets et retweets.

De nombreuses briques composent Parlementweets…

schéma du fonctionnement derrière Parlementweets

Ce bot repose sur un ensemble d’outils techniques, accessibles en open source :

  • Scraper les tweets : Python pour scraper les tweets, Tweepy et BeautifulSoup
  • Enrichir la base : scraper les groupes politiques avec la librairie BeautifulSoup sur Python, organiser la base avec Pandas sur Python
  • Écouter les demandes : script node sur Heroku pour « écouter » les mentions faites au bot
  • Stocker les données : PostgreSQL
  • Optimiser les requêtes : chaque requête passe par un petit algorithme de fuzzy matching portant sur les mots de la requête (et non le terme) pour augmenter les chances que l’instruction soit comprise. Une fois la requête lancée, elle génère une dataviz qui est ensuite stockée sur le serveur avec sa requête associée
  • Générer des images : une solution maison créée par nos amis de GoToAndBuzz
  • Générer des pages de tweets en aléatoire : le bot génère une URL à la volée contenant 10 embeds de tweets en lien avec la requête
illustration avec les images de profil des députés
Des députés, des téléphones, des tweets

Sans pour autant négliger certaines de ses limites…

La recherche sémantique de termes
Lorsque vous questionnez le bot sur le terme « gilets jaunes », deux requêtes parallèles sont lancées : « gilets jaunes » et « giletsjaunes ». En clair, une requête sans caractère « espace » est également lancée pour optimiser les chances de repérer des hashtags.
Le bot recherche donc les deux termes parmi le corpus de mots de chaque tweet préalablement identifié dans la base PostgreSQL.

Les évolutions de Twitter
En novembre 2017, soit quelques mois après avoir fixé notre algorithme de récupération, Twitter annonce le passage de 140 à 280 signes pour un tweet. Ce changement s’est accompagné d’une modification d’API, ne renvoyant que 140 caractères accompagnés de points de suspensions lorsque le tweet dépassait la limite initialement établie.
Nous nous en sommes rendus compte qu’en… juillet 2020. Pour récupérer l’entièreté des textes, la correction de l’algorithme s’est accompagnée d’un « rescrap » de l’ensemble des tweets tronqués.

Les tweets supprimés
Que ce soit un tweet ou un compte entier, du contenu peut disparaître sur Twitter car chacun a la main sur ce qu’il souhaite publier ou retirer. Parlementweets effectue sa recherche au sein de la base quasi complète de ces tweets (puisque stockée mois par mois). Cependant, pour respecter le droit à l’oubli, les tweets que nous vous permettons de lire vous sont présentés de manière aléatoire et ce ne sont que des tweets disponibles sur le réseau social au moment de votre requête.

Les changements de comptes de députés
Comme le souligne Benjamin Ooghe-Tabanou ici, Administrateur de @RegardsCitoyens et #NosDéputésFr, les députés changent de compte en cours de mandat. Dans ces cas, la liste de l’Assemblée n’est la plupart du temps pas mise à jour. Mais les bénévoles de NosDéputés le font sur ce Github :
https://github.com/regardscitoyens/twitter-parlementaires
Dans la base qui est derrière @Parlementweets existent plusieurs ID Twitter pour un même député. Donc certains changements de compte ont donc bien été pris en compte, même s’ils n’ont pas pu être vérifiés un par un durant les 5 dernières années.

Un ratio de tweets pour comparer les groupes politiques
Les dataviz créées par Parlementweets se basent sur un ratio de tweets contenant le terme demandé sur l’ensemble des tweets du groupe politique (pourcentage pour 1000 tweets de députés). Nous avons choisi ce ratio, car il permet de s’affranchir des tailles très hétérogènes des groupes politiques.
Pour éviter les effets de bord d’un tel ratio, nous avons choisi de ne pas divulguer le résultat d’un groupe si le nombre de tweets concerné est inférieur à 10 — vous verrez dans ce cas une mention « Non significatif ».

Il est très important de noter que ce ratio n’est qu’un indicateur de fréquence. Par exemple, il ne permet pas de déterminer les soutiens au mouvement des « antivax », mais de visualiser les groupes politiques qui mentionnent le plus souvent ce terme.

L’évolution des groupes politiques
Pendant ce quinquennat, certains groupes politiques (à ne pas confondre avec les partis) ont changé de nom, d’autres ont été créés. Certains députés ont aussi pu faire leur entrée en cours de route, ont claqué la porte ou ont changé de groupe.

Les groupes politiques sont les suivants :

  • La République en Marche
  • Les Républicains
  • Mouvement Démocrate (MoDem) et Démocrates apparentés
  • UDI et Indépendants
  • Socialistes et apparentés
  • La France insoumise
  • Non inscrits
  • Écologie Démocratie Solidarité
  • Agir ensemble
  • Libertés et Territoires
  • Gauche démocrate et républicaine

À noter qu’en fin de quinquennat, le « Mouvement Démocrate et apparentés » se renomme « Mouvement Démocrate (MoDem) et Démocrates apparentés ». Tout comme les « UDI et Indépendants », anciennement regroupés sous les bannières « Les Constructifs : républicains, UDI, indépendants » ou encore « UDI, Agir et Indépendants ».

La liste des députés ayant changé de groupe politique ou de statut (démission ou nomination comme ministre) est longue. Elle n’est pas retranscrite ici, mais nous nous sommes basés sur le registre mensuel des appartenances politiques des députés.

Pour tester le bot, c’est ici : https://twitter.com/parlementweets

Vous souhaitez décliner ce format innovant sur vos données ? Parlons-en.

--

--

Wedodata
Wedodata

Studio de datajournalisme et datavisualisations : trouver et raconter des histoires en partant de bases de données structurées ou à créer / wedodata.fr