Sélectionner une page

Avez-vous déjà tenté de qualifier votre audience Twitter? Plusieurs outils existent, mais j’étais curieuse de le faire avec les outils qui sont à ma disposition à savoir :

  • R pour l’extraction des données et l’analyse de réseaux sociaux,
  • et Gephi pour la visualisation des communautés que forment mes followers.

Dans cette série d’articles, je vous propose d’explorer votre audience sur Twitter: de l’extraction de données avec R à l’identification de leurs centres d’intérêts. Nous manipulerons des méthodes d’analyse exploratoires: analyse de réseaux sociaux (SNA) et Natural Language Processing (NLP). Ce premier post sera consacré à l’extraction de vos données sur Twitter et à la détection de communautés parmi nos followers.

Processus d’authentification sur Twitter

Ce petit paragraphe s’adresse aux novices de l’extraction de données sur Twitter. Vous pourrez trouver plein de ressources sur Internet, du coup je vais faire court:

Pour extraire des données sur Twitter, vous devez enregistrer votre application avec votre compte Twitter ici: https://apps.twitter.com/

Après avoir créé votre application, vous allez avoir accès à vos codes d’identification dans l’onglet « Keys and access tokens » de votre appli. Les codes qui nous intéressent sont:

  • Consumer Key (API Key)
  • Consumer Secret (API Secret)
  • Access Token
  • Access Token Secret

Copiez-collez dans votre éditeur de texte vos codes, vous allez devoir les réutiliser pour authentifier votre session Twitter dans R.

Authentifiez-vous dans R

Vous devriez maintenant être identifiés sur Twitter…

Qu’est-ce qu’on extrait?

Ce que je vous propose ici est d’identifier vos communautés de followers. Qui sont-ils? et comment interagissent-ils? Nous devons tout d’abord délimiter les données que nous souhaitons extraire: ce seront nos followers et leurs liens friendship et follows avec nos autres followers. Ces affinités nous permettrons par la suite d’identifier des communautés de followers.

Extraction des données Twitter avec R

Dans cette partie, j’ai directement adapté un code de Jörg Steinkamp qui a eu la curiosité de visualiser l’origine des informations qu’il lisait sur Twitter et d’identifier des bulles twitter, bulles twitter qui sont devenues tristement populaires depuis l’élection présidentielle américaine de 2016. Son code original et son article sont à lire ici: https://joergsteinkamp.wordpress.com/2016/04/20/my-twitter-bubble-r-analysis/

J’ai adapté ce code pour extraire non pas l’origine des informations que je lis sur Twitter, mais pour tenter de comprendre mon audience. C’est-à-dire que je me suis intéressée à mes followers et aux liens (friendship+follow) entre eux.

Attention, l’extraction peut-être chronophage, cela m’a pris plus de 2h avec (seulement) 250 followers

Détecter des communautés avec Igraph

Afin de détecter des communautés parmi mes followers, j’ai utilisé l’algorithme Spinglass, présent dans le package Igraph de R (Reichardt et Bornholdt, 2008 ; Traag et Bruggeman, 2009). L’originalité de ce clustering consiste en sa prise en compte du réseau comme un système énergétique, prenant en compte les liens présents entre les followers comme des forces d’attraction, et considérant les liens manquants comme des forces de répulsion. Des corrélations entre ces forces sont appliquées followers à followers, puis ils sont regroupés en fonction de leur force d’attraction. Les groupes sont déterminés à partir du découpage de groupes produisant le moins d’énergie dans le système (attraction-répulsion). L’énergie restante dans le système après découpage peut être définie comme un indice de qualité de clustering, ou modularité (Reichardt et Bornholdt, 2008).

Après avoir essayé plusieurs algorithmes de clustering sur des réseaux plus ou moins gros, c’est le Spinglass que je préfère: les individus les plus périphériques ou isolés ne sont pas négligés dans la classification. La raison est simple: les liens manquants comptent tout autant que les liens existants.

 

Optimiser le clustering

Tout comme un algorithme classique de classification de type Knn, l’algorithme Spinglass nécessite de définir le nombre de groupes a priori, par défaut ce nombre de groupes (appelés spin) est de 25 dans l’implémentation d’Igraph, ce nombre de groupes de départ ne va pas définir exactement le nombre de communautés en sortie.

Dans un premier temps, c’est ce nombre de groupes de départ ou spins, que je vais tenter d’optimiser pour avoir le meilleur clustering possible entre 5 et 25 spins. De ces 20 clusterings, je choisis le meilleur, c’est-à-dire celui qui maximise la modularité du réseau.

 

Le résultat: pour mon réseau de 215 followers (2074 liens) c’est un clustering avec 11 spins initiaux qui fonctionne le mieux:

social network analysis, spinglass, network, clustering, optimisation, modularity, igraph, spinglass clutering

Vérifier rapidement que les communautés sont équilibrées:

Exporter les données pour la visualisation sur Gephi

Voici la dernière partie du code sur R, qui va nous permettre d’exporter nos données pour une visualisation sur Gephi. Nous devons ici préparer 2 fichiers:

  • une edgelist ou liste d’arêtes qui décrit les liens de follow et de friendships sur Twitter
  • un fichier décrivant les noeuds: identifiant, Label (screenName), Weight (nombre de followers) et communauté (le résultat de l’algo de clustering)

Ce bout de code n’est pas super élégant, mais il fait le boulot 🙂

Visualisation sur Gephi

Je ne rentrerai pas dans le détail de la visualisation de réseaux sur Gephi. Vous trouverez une super bonne documentation sur le site de Gephi: https://gephi.org/users/ ou sur le site de Martin Grandjean (en anglais): http://www.martingrandjean.ch/gephi-introduction/

 

Voici ici le résultat avec mon réseau de followers:

data visualisation, twitter followers network, gephi, twitter audience, community detection