Tutoriel – Suivre et modéliser une conversation sur Twitter en temps-réel avec Gephi

Untitled2

Le suivi d’une conversation en temps-réel sur les réseaux sociaux est une pratique courante dans les directions marketing et communication, afin de recueillir des retours de la part des consommateurs, détecter des tendances ou d’inscrire le discours de la marque dans l’instant. Ce tutoriel propose un modèle opératoire simple pour comprendre l’évolution d’une conversation sur Twitter, en temps-réel.

Pour cela, nous allons accéder à l’API Streaming de Twitter, qui nous permettra de récupérer des messages dès leur publication (pas de données historiques comme dans un moteur de recherche). Et, nous allons immédiatement visualiser ces données au sein d’un logiciel de modélisation de réseaux. Nous identifierons les sujets les plus importants cités dans la conversation. Enfin, nous exporterons ce graphe sous format d’un site web interactif.

1/ Création d’une application Twitter et récupération d’identifiants.
Pour collecter des tweets, nous avons besoin d’obtenir des identifiants. De nombreux tutoriels en ligne expliquent comment créer une application ; une recherche Google vous fournira toutes les réponses nécessaires si vous rencontrez des difficultés lors de la configuration. Je ne m’attache qu’à décrire les étapes essentielles :
– Rendez-vous sur https://apps.twitter.com/
– Cliquez sur « Create new app » pour démarrer la configuration d’une application
– Donnez un nom à cette application et remplissez les champs essentiels
– Rendez-vous dans le 3e onglet, « Keys and access tokens »
– En bas de page, cliquez sur « Create my access token »
Désormais, vous disposez de quatre paramètres essentiels, présentés sur ce tableau de bord : une clé d’accès à l’API et un jeton d’accès. Il s’agit respectivement des champs consumer key / consumer secret et access token / access token secret.

2/ Installer et configurer Gephi
Gephi est un logiciel open source qui permet de visualiser des graphes de réseaux (sociogrammes) et surtout d’effectuer différents types de modélisation et calculs statistiques que l’on pourra appliquer à ces visualisations. Gephi compte une forte communauté d’utilisateurs qui produisent et maintiennent des fonctionnalités étendues, qui peuvent être facilement ajoutées à la plateforme logicielle. Nous allons utiliser deux plugins : Twitter Streaming Importer pour collecter les tweets, et SigmaExporter pour créer en quelques clics un site web interactif.

Rendez-vous sur https://gephi.org/ pour télécharger et installer la nouvelle version du logiciel. Puis, lors de l’ouverture du logiciel, naviguez dans la section « Outils » > « Modules d’extension ».

  • Dans le premier onglet, « Mises à jour », sélectionnez l’ensemble des modules disponibles et procédez à l’installation afin de travailler sur une plateforme stable.
  • Dans le deuxième onglet « Module d’extension disponibles », sélectionnez a minima les modules Twitter Streaming Importer et SigmaExporter. Procédez à l’installation.

gephi

 

Pour plus d’informations sur le logiciel, vous pouvez consulter les différents tutoriels listés sur le site de la communauté ou rejoindre le groupe d’usagers sur Facebook.

3/ Collecter les tweets

Nous allons maintenant paramétrer le module Twitter Streaming Importer et débuter une collecte de tweets. Allez dans le menu « Fichier » pour créer un nouveau projet, puis ouvrez le module depuis le menu « Fenêtres ».

gephi2

En premier lieu, nous allons copier/coller les identifiants Twitter créés à l’étape 1 dans la fenêtre « Credentials ». En l’occurence, la consumer key, le consumer secret, l’access token et l’access token secret. Sans ces codes, Gephi ne pourra se connecter à Twitter et récupérer les messages.

gephi3

Ensuite, nous allons définir notre requête. La version actuelle de ce plugin ne permet pas de construire des requêtes complexes pour filtrer le bruit ou se concentrer sur un aspect de la conversation précis, comme la plupart des outils de social media listening permettent habituellement l’usage d’opérateurs booléens (OR, AND, NOT, etc.). Néanmoins, le plugin permet de définir une requête à partir de mots-clés (ou mention, hashtags, urls, …) ou d’une liste de comptes utilisateurs à suivre.

Exemple, si l’on souhaite observer la conversation autour des principaux constructeurs de téléphones mobiles, on pourra ajouter les mots-clés « iphone », « samsung », « sony », « huawei », etc.

gephi4

Et, suivre les comptes Twitter officiels de ces marques, en les ajoutant dans l’onglet « Users to follow ».

gephi5

Il est possible de sauvegarder sa requête sous forme d’un fichier .json ou de charger une requête. Cela peut être très utile lorsque l’on souhaite suivre une très longue liste de comptes utilisateurs ou de mots-clés. Le fichier .json se présente sous forme de paires clé -> valeur. En reprenant l’exemple ci-dessus, le fichier .json aura pour contenu :

{« wordTracking »:[« iphone », »samsung », »huawei », »htc », »sony »], »userTracking »:{« samsungmobile »:297169759, »huawei »:98047213, »sony »:34442404, »htc »:15818391}}

La dernière étape de configuration du plugin Twitter Streaming Importer consiste à choisir un modèle de graphe, vous permettant de visualiser :

  • Full Smart Network: une représentation complète des noeuds incluant les utilisateurs, les tweets, les hashtags, les URLs, les médias (photo/video), et les symboles collectés
  • User Network: un réseau égocentré et pondéré avec des liens parallèles pour les RT et les mentions entre users (quel user à cité quel autre user ?)
  • Hashtag Network : Un réseau de citations pondéré sur la base de hashtags (à quel hashtag est associé tel autre hashtag ?)

gephi6

Il ne reste plus qu’à lancer la collecte en cliquant sur Connect. Dès lors, la représentation des tweets se fera en temps-réel sous forme de graphe. Si rien n’apparait, soit aucun message n’a été publié depuis que vous vous êtes connecté, auquel cas vous devrez attendre ; soit, vous avez fait une erreur lors du paramétrage de l’authentification (vérifiez vos consumer key, secret, etc.).

4/ Modélisation du graphe.

Une fois la collecte effectuée, ou en même temps que les tweets viennent enrichir votre base de données, vous pouvez choisir une modélisation de graphe. Pour cela, commencez par vous rendre dans la fenêtre « Spatialisation ». Choisissez le layout « Force Atlas 2 », généralement le plus adapté pour des graphes qui peuvent contenir de nombreux points. Jouez avec paramètres pour obtenir une première représentation :

  • cochez « dissuader les hubs » pour éclater les agrégats de noeuds
  • cochez « Empêcher le recouvrement » pour éviter que deux noeuds se chevauchent
  • Vous pouvez éventuellement abaissez ou élever la valeur de l’influence du poids des liens pour renforcer ou détendre l’attraction entre les noeuds du graphe.
  • Une fois votre graphe spatialisé, cochez « Mode LinLog » pour étendre le graphe

gephi7

Pour mettre en forme les noeuds et les liens, penchez-vous sur la fenêtre « Aspects ». Elle vous permettra de colorer les noeuds, les liens, de définir leur taille, etc. Si vous avez choisi comme modèle de visualisation, le « Full Smart Network ». Choisissez comme attribut de couleur « Twitter Type », pour distinguer les entités des messages de leurs émetteurs.

gephi8

Si vous avez choisi de visualiser un réseau d’utilisateurs, alors vous pouvez avoir un intérêt à identifier des groupes (communautés). Auquel cas, rendez-vous dans la fenêtre « Statistiques » et sélectionnez le traitement intitulé « Modularité ». Cet algorithme va calculer la différence entre la proportion des liens dans la communauté moins la valeur qu’aurait été cette même proportion si les liens étaient disposés au hasard entre les nœuds du graphe pour en déduire différents groupes. Appliquez ensuite le résultat des calculs depuis la fenêtre « Aspect » à l’ensemble de vos noeuds en sélectionnant comme attribut « Modularity class ».

A noter qu’il existe parfois un bug avec la version 0.9.1 de Gephi. Si le résultat du calcul est égal à 0. Exporter votre graphe en vous rendant dans « Fichier » > « Export » > « Fichier de graphe ». Puis, ouvrez un nouveau projet en lançant ce fichier. 

gephi9

 

Enfin, si vous avez choisi le réseau des citations de hashtags, il peut être pertinent d’identifier les hashtags les plus « centraux » dans la conversation. C’est à dire ceux qui sont les plus important au regard de leurs citations. Pour cela, utilisez le traitement statistiques « Centralité Eigenvector » pour capturer les noeuds les plus significatifs. Le graphe de citations étant non dirigé (liens symétriques entre les hashtags), choisissez cette option.

gephi10

Depuis la fenêtre « Aspect », appliquez le résultat de ce traitement à la taille des noeuds. Les noeuds les plus volumineux seront les plus significatifs.

gephi11

Vous pouvez effectuer d’autres traitements « cosmétiques » depuis la fenêtre « Aspect » pour modifier l’apparence des noeuds et des liens. Ce n’est pas l’objectif de ce tutoriel, mais voici quelques conseils pratiques :

  • Vous allez collecter un grand volume de données, ce qui signifie potentiellement que vous aurez besoin d’une palette de couleurs très variées. L’outil « I Want Hue » du Media Lab de Sciences Po vous sera d’une grande utilité.
  • Depuis la fenêtre « Aspect », la fonction spline vous permettra d’ajuster la taille des noeuds avec plus de précision.
  • Un graphe compréhensible contient des informations homogènes. N’appliquez pas trop de paramètres différents à un même graphe (mauvaise pratique : la couleur représente le nombre de degrés, la taille du noeud la centralité, la couleur du label la modularité, etc…). Restez simple.
  • De même, utilisez la fenêtre « Filtre » pour éliminer les noeuds les moins significatifs. Par exemple, en appliquant le traitement « Composante géante », vous éliminerez tous les noeuds solitaires, et le traitement « plage de degrés » masquera les noeuds les moins connectés au sein du réseau.

gephi12

5/ Exportation du graphe

SigmaJS Export est un plugin qui produit en quelques clics un template de site web avec un graphe de réseau interactif basé sur la librairie JavaScript Sigma.js. La manipulation est très simple : une fois satisfait de la préparation de votre graphe, procédez à son exportation depuis « Fichier » > « Export » > « Sigma JS template ».

gephi13

Choisissez un répertoire de destination, remplissez éventuellement les autres champs. Exécutez depuis Firefox le fichier index.html généré. En cliquant sur les noeuds, un panneau s’ouvre pour vous indiquer quelles sont les liaisons, vous disposez aussi d’un moteur de recherche pour trouver un noeud spécifique. Très pratique pour partager et interpréter son travail en dehors de Gephi ! Voici à quoi peut ressembler le graphe de co-mentions entre les différents députés de l’Assemblée Nationale présents sur Twitter (lire l’étude complète sur Barometre.Social)

Si le graphe généré ne vous convient pas, vous pouvez le configurer en ouvrant dans un éditeur de texte le fichier config.json. Quelques paramètres utiles à modifier :

  • labelThreshold : abaissez la valeur pour faire apparaitre les labels des noeuds
  • maxEdgeSize / minEdgeSize : pour ajuster la taille des liens
  • minNodeSize / maxNodeSize : pour ajuster la taille des noeuds

gephi14

Bravo vous avez complété le tutoriel ! N’hésitez pas à partager vos astuces en commentaires !

 

7 thoughts on “Tutoriel – Suivre et modéliser une conversation sur Twitter en temps-réel avec Gephi

  1. la boîte « connect » reste grise et rien ne se passe. J’ai fait et refait les keys et tokens… Est-ce censé fonctionner sur Win10? (gephi 0.9.1)

  2. OK, MAJ: ça fonctionne. J’ai simplement laisser le tout durant une semaine. Peut-être faut-il attendre quelques jours quand on vient de créer l’appli twitter? Enfin.

    1. Ok, j’avais mal compris votre problème. Cela fonctionne instantanément. En revanche, l’outil ne fonctionne pas comme un moteur de recherche : vous ne récupérer des tweets publiés par le passé (données historiques), mais les messages qui sont postés à partir du moment où vous débutez la collecte. Vous avez probablement effectué une requête très restrictive, et aucun tweet n’avait été publié durant la période de vos premières collectes. Si vous essayez avec des termes très larges, qui génèrent beaucoup de messages au quotidien (ex : orange ou iphone) vous verrez apparaitre un réseau au bout de quelques secondes/minutes…

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *