OpenRefine est simple à installer, il suffit de télécharger le programme correspondant à votre système d’exploitation et de suivre les instructions.
Pour télécharger le programme :
2. Importation d’un corpus de tweet dans OpenRefine
OpenRefine s’ouvre à travers une fenêtre de votre navigateur par défaut. Ici, nous sommes sur Google Chrome. Pour commencer, nous allons importer un corpus de tweets, cliquez sur create a project (1), Choose Files (2), choisissez votre fichier puis cliquez sur Next (3).
Pour ce tutoriel, nous devons vous laisser importer votre propre corpus pour des raisons de protection des données et ainsi, dans nos exemples, les zones de texte seront caviardées.
Une fois votre corpus importé, cliquez sur Create Project (1)
Ainsi vous ouvrez l’interface de travail avec vos données. Le volet de gauche a deux onglets :
Le volet Facet/Filter : permettant de classer et de grouper vos données par sous-groupe
Le volet Undo/Redo : fait une liste de toutes vos actions, permettant de pouvoir facilement tester des options et revenir en arrière exactement où vous le souhaitez
Les colonnes de votre tableau
Ici les informations sur vos tweets
Ces petits triangles permettent de dérouler un menu avec différentes actions sur lesquels nous reviendrons au fil du tutoriel
3. Nettoyer les données à l’aides des expressions régulières
3.1. Enlever la ponctuation
Pour commencer à nettoyer les données nous allons créer une nouvelle colonne, pour cela cliquez sur le triangle en haut de la colonne ou se trouvent le contenu des tweets (1), puis Edit column (2), Add column based on this column (3).
Dans new column name, entrez le nom de la colonne, ici texte sans ponctuation (1). Entrez la formule suivante dans expression (2) : replace(value,/[\,\;\:\.\?\/\!\=\+\”\’\-\(\)\[\]]/,” “)
3.2. Isoler la cible des tweets
Répétez l’opération précédente pour ajouter une colonne, cette fois basée sur celle sans ponctuation, cliquez sur le triangle en haut de la colonne ou se trouvent le contenu des tweets (1), puis Edit column (2), Add column based on this column (3).
Dans new column name, entrez le nom de la colonne, ici Cible (1). Entrez la formule suivante dans expression (2) : replace(value,/(\s|^)([^\@]+)/,’ ‘)
3.3. Enlever les “#”
Répétez la même opération mais cette fois nous allons enlever les “#”. Ainsi, dans new column name, entrez le nom de la colonne, ici hastags (1). Entrez la formule suivante dans expression (2) : replace(value,/(\s|^)([^\#]+)/,’ ‘)
3.4. Enlever les “@”
Répétez la même opération mais cette fois nous allons enlever les “@” des noms d’utilisateurs. Ainsi, dans new column name, entrez le nom de la colonne, ici Source (1). Entrez la formule suivante dans expression (2) : replace(value,/[\@]/,” “)
Exporter les données
Vous pouvez maintenant exporter les colonnes qui vous intéressent pour faire un travail sur le réseau par exemple. Ici nous allons utiliser les cibles et les sources pour voir les liens entre les utilisateurs de Twitter.
Pour exporter, cliquez en haut à gauche sur Export (1), puis Custom Tabular exporter… (2)
Dans le volet qui s’ouvre sélectionner les données que vous souhaitez voir apparaître dans votre tableau, ici source et cible.
Puis dans l’onglet Download (1), choisissez comma-separated value (CSV) (2), puis Download (3)
Vos données sont prêtes à être importer dans Gephi par exemple (suivez le lien pour accéder au tutoriel de Gephi) !
Voyant-tools est un environnement d’analyse et de visualisation de données textuelles. Simple d’utilisation, il permet une analyse de texte en ligne sans installation de logiciels sur son ordinateur.
Développé par l’équipe de digital-methods, DMI-TCAT (Digital Methods Initiative Twitter Capture and Analysis Toolset) permet de capturer des tweets via l’interface de programmation dite de streaming de Twitter. La collecte peut se fonder sur des mots-clefs, sur une géolocalisation, sur un échantillon aléatoire de 1% du flux des tweets ou sur le suivi de comptes Twitter.
Hyphe est un logiciel libre développé par le mediaLab de sciencesPo. Il autorise la création et le nettoyage de corpus de pages web à destination de la recherche. Les utilisateurs sont accompagnés par une méthodologie pour construire leur corpus web de manière à la fois granulaire et flexible avec des principes de curation simples.
Docteur en histoire contemporaine, Frédéric Clavert a étudié les sciences politiques et l’histoire contemporaine à Strasbourg et à Leeds. Ses recherches s’orientent aujourd’hui vers les relations entre les banquiers centraux et la construction européenne d’une part, sur les sources de l’historien.ne à l’ère numérique d’autre part. Il a été titulaire d’une bourse du DAAD et a obtenu l’aide à la publication du Prix Pierre Grappin. Après cinq ans comme chercheur (Histoire de l’intégration européenne et Humanités numériques) au Centre virtuel de la connaissance sur l’Europe (Luxembourg), il est désormais ingénieur de recherche pour le LabEx “Ecrire une Histoire Nouvelle de l’Europe”.
Les expressions régulières (ou expression rationnelle) sont un moyen pratique de nettoyer un texte de données superflues. Il s’agit de formule qui vont saisir des segments de textes, des motifs, qu’il va être possible de modifier, un système de type rechercher et remplacer en plus complexifiable…
Par exemple :
<?xml version="1.0" encoding="UTF-8"?><monthEntity issue="GDL" year="1914" month="02"><name>A propos de François Coillard</name><publication>GDL</publication><issue_date>01/02/1914</issue_date>A propos de François Coillard Lausanne, le 1 février M. Edouard Favre a donc publié le troisième et dernier volume de son François Coillard.
Pour enlever les balises de code comme
<name>A propos de François Coillard</name><publication>GDL</publication><issue_date>01/02/1914</issue_date>
pour n’avoir plus que
A propos de François Coillard, GDL, 01/02/1914
on va pouvoir utiliser des expressions régulières1. Si l’on imagine qu’un corpus comporte des centaines de fois le même type de balise que l’on souhaite simplifier, la technique prend tout son sens.
Il existe plusieurs type d’expression régulièrement dépendamment du logiciel utilisé. De façon générale, on va pouvoir chercher des chaînes de caractères :
expression régulière : chat
trouvera chat dans le texte. Exemple : le petit chat est roux
les mots en gras correspondent à ce qui va être sélectionné.
expression régulière : ar
trouvera tout les ar dans le texte. Exemple : l’arbre sera marron
expression régulière : meme
trouvera tout les meme dans le texte, et pas moins. Exemple : C’est le même meme que mes memes
Il y aussi les symboles permettant de définir la position des mots dans le texte :
expression régulière : ^
trouvera toutes les chaînes de caractère en début de ligne. Exemple : si on cherche pour ^22, trouvera : 22 elle est ici, mais travaille t’elle 22 elle mange 22
la jeune fille travaille, 22 elle
expression régulière : $
trouvera toutes les chaînes de caractère en début de ligne. Exemple : si on cherche pour elle$, trouvera :
elle est ici, mais travaille t’elle
elle mange
la jeune fille travaille, elle
Expression régulière : . (un point)
permettra de sélectionner n’importe quel caractère. Exemple : m.r, trouvera : mer, mort, mare, amer
Expression régulière : \d
permettra de sélectionner n’importe quel chiffre. Exemple : \d\d, trouvera : 45 32 45 mais pas 4em (car avec deux fois \d on implique une chaine de deux nombres à la suite)
Expression régulière : \w
permettra de sélectionner n’importe quel chiffre ou lettre. Exemple : \w\w, trouvera : 45 3e 4a le la
Nous allons faire quelques exercices avec SublimeText, pour commencer, il va falloir installer SublimeText, une interface pour coder qui vous permettra de travailler facilement sur votre corpus. Nous utilisons SublimeText car ce programme est utilisable sur mac / windows / linux.
Une fois le logiciel installé, l’outil important se trouve en maintenant cmd + alt + F. Un onglet s’ouvre. Dans “Find What” il faut entrer les expressions régulières, dans “Replace With” ce qu’on souhaite mettre à la place des morceaux de texte sélectionnés. Vérifier que les symboles “Case Sensitive” (1) – Sensible à la casse (la casse signifie si une lettre est en minuscule ou en majuscule) et “Regular Expression” (2) sont bien sélectionnés.
Pour retirer un nom d’utilisateur twitter
dans votre texte : @Utilisateur
dans “Find What :” @\w*
dans “Replace With :” laisser vide effacera tous les noms d’utilisateur
Pour retirer un hashtag
dans votre texte : #Hashtag
dans “Find What :” #\w*
dans “Replace With :” laisser vide effacera tous les hashtags
Pour réduire des dates
dans votre texte : 22/07/15
dans “Find What :” (\d*)(/)(\d*)(/)(\d*)
dans “Replace With :” $1$3$5 (le $1 sélectionne ce qui se trouve dans la première parenthèse et le conserve, le $2 correspondant à la seconde parenthèse n’est pas sélectionné et ne sera pas remplacé)
Donnera : 220715
BONUS | Des jeux sur les expressions régulières (merci à Aris Xanthos pour ce lien!) :
Si vous utilisez Voyant Tools, par exemple, enlever les balises XML comme dans cet exemple n’a pas de sens. Si vous utilisez, en revanche, IRaMuTeQ, alors les balises XML sont superflues et doivent être remplacées par des variables étoilées. [↩]
RAPPEL: il faut avoir un **vrai** ordinateur (ie processeur type Intel ou AMD et non ARM) pour que ce logiciel fonctionne. Il peut tourner sous Mac OS X (Sierra inclus), Windows ou linux (testé sous ubuntu par son développeur).
XQuartz
Sous Mac OS X pour qu’Iramuteq fonctionne, il faut installer XQuartz, permettant de faire fonctionner des applications spécifiquement Unix sous mac.
Une fois l’installation terminée, il faut redémarrer l’ordinateur.
r-project
Il faut ensuite installer R, sans lequel Iramuteq ne peut pas fonctionner :
1.2. Téléchargement d’Iramuteq
Installer ensuite Iramuteq en suivant les instructions:
(il existe une version source dans un dépôt git, mais sa compilation peut être complexe)
Lancer Iramuteq.
Iramuteq devrait vérifier puis installer les bibliothèques R dont il a besoin (ca, rgl, ape, proxy, gee, igraph, wordcloud, irlba, textometry).
Vérifier si l’installation est complète
Pour Windows :
Dans Iramuteq, aller dans Edition puis Préférences
Pour Mac : Préférences
Puis cliquez sur « Vérifier l’installation des librairies de R » (1)
2. Formatage du corpus
Le format doit être en texte brut (.txt), il doit aussi être enregistré au format UTF-8 (conseillé).
Les textes sont introduits par quatre étoiles (****) ils sont suivis d’une série de variables étoilées (*variable), dans notre exemple il s’agit de cela :
Pour formater le texte plus rapidement, voir les expressions régulières.
3. Statistiques
3.1. Téléchargement du corpus de l’exemple
Pour notre exemple, nous allons utiliser un corpus, celui de Frederic Clavert par rapport à sa thèse “Hjalmar Schacht, financier et diplomate (1930-1950)”, plus d’infos sur son site ici.
Il faut les enregistrer en faisant un clic droit sur le lien et “Enregistrer sous” ou “Save as” et entrer les titres avec la terminaison .txt (exemple : “corpus.txt”).
Au démarrage d’Iramuteq cliquez sur “Fichier” (1), ouvrir un corpus texte (2).
Définir ensuite, comme dans l’exemple ci-dessous, les paramètres d’importation. Bien vérifier qu’il s’agit de l’UTF-8 pour l’encodage de la langue (1), ici le texte est en français (2), la taille des segments de texte à 40 est une bonne segmentation car une phrase en français fait environ 35 mots (3).
Puis vérifier les informations de nettoyage comme ci-dessous :
Vous devriez obtenir une page avec les informations comme ci-dessous.
le dossier créé où Iramuteq mettra toutes les sorties logiciels, les feuilles de calculs.
le nombre de texte, ici correspondant aux 7 chapitres de la thèse, l’introduction et la conclusion
les segments de texte
le nombre d’occurrences
le nombre de formes
le nombre d’hapax (les mots n’apparaissant qu’une seule fois dans le texte)
3.3. Statistiques
Pour calculer les premières statistiques cliquez sur le logo statistique (1).
Iramuteq va modifier le corpus pour plus de lisibilité et avec vos instructions. Avec la lemmatisation (1), il va réduire les verbes à leurs formes infinitives. Ensuite vous pouvez cliquer sur propriétés (2) où il vous sera possible de gérer toutes les formes actives et supplémentaires.
C’est vous qui gérez ce que sont les mots qui sont des formes actives (1) et des formes supplémentaires (2).
Nous allons ici choisir de conserver les paramètres par défaut et ainsi lancer l’analyse en cliquant sur ok, jusqu’à l’obtention de ce schéma ci-dessous :
Dans l’onglet Formes actives (1), en cliquant sur un mot (2) celui ci, apparait dans son contexte, ce qui permet de conforter une interprétation.
4.1. Analyse Factorielle des Correspondances (AFC)
Ce type d’analyse peut être effectué sur des classes de la classification hiérarchique descendantes, soit sur une variable ou sur certaines modalités de variables.
Elle va transformer statistiquement les données et les organiser sous forme de graphique à deux dimensions, montrant les relations lexicales entre elles. Elle va permettre de voir la différence entre les classes ou les groupes de mots. On va voir ainsi les classes qui se regroupent ou qui s’opposent. Cela va nous permettre de lier et de hiérarchiser les informations des textes.
Dans Iramuteq il faut cliquer sur Spécialités et AFC, puis cliquez sur ok lorsque le premier volet de paramètres s’ouvre.
Dans le choix des variables, nous allons utiliser les formes actives (1), sélectionner les modalités (2) qui nous permettrons d’étudier les correspondances entre les premiers chapitres et les derniers, donc il faut sélectionner les chapitres en maintenant la touche de contrôle enfoncée (3), nous étudions avec l’indice du chi2 (4) et choisissons comme fréquence minimale 60 (5) pour ne pas avoir trop d’informations dans notre graphe.
Pour colorer le graphe, cliquer sur le logo en haut à gauche (1).
Définissez les paramètres comme ci-dessus et relativement à ce que vous voulez voir.
4.2. La classification hiérarchique descendante : La méthode Reinert (CHD)
Cette méthode se présente sous forme de dendrogramme. L’objectif est de regrouper des “mondes lexicaux” et de mettre en évidence les thématiques générales du corpus.
Cette méthode a été mis au point par Max Reinert, elle cherche à rendre compte de l’ordre interne d’un discours, à mettre en évidence ses mondes lexicaux. Elle découle de l’analyse factorielle des correspondances.
La méthode Reinert va découper le texte en segment, puis observer la distribution des formes pleines dans chaque segment. Elle va ensuite regrouper les segments en classes en fonction des mots qui les composent par un processus d’itération.
Il faut cliquer sur le logo en haut (1), confirmer les paramètres par défaut.
Dans le volet des paramètres nous choisissons, la classification simple sur segment de texte et les paramètres comme ci-dessous.
Dans les différents onglets, il y a différentes visualisations, en dendrogrammes, nuages de mots liés à des dendrogrammes.
Aussi des visualisations liés à l’Analyse Factorielle de correspondance.
4.3. Analyse de similitudes (ADS)
En cliquant sur (1), cette analyse va calculer sur un indice, par exemple la co-occurrence (combien de fois les éléments vont apparaitre en même temps). C’est une théorie qui émane de la théorie des graphes.
Dans le premier menu de paramètres, cliquer sur OK pour conserver les paramètres par défaut. Un second volet s’ouvre avec plus de choix dans les paramètres. On y trouve la liste des formes où par défaut elles sont toutes sélectionnées (1) et leurs fréquences (2). Pour notre étude, nous allons réduire le champ pour obtenir un graphe lisible. Nous conservons les cinquante premières formes, “schacht” exclue car elle centraliserai toute l’étude. Faire clic gauche sur “allemand” puis descendre jusqu’à “réforme” et en maintenant la touche majuscule enfoncée, cliquer sur la ligne de “réforme”.
Nous choisissons ensuite de conserver l’indice de cooccurrences où la taille des mots est proportionnelle à la fréquence et où la taille des arêtes et proportionnelle à la force (3). Pour la présentation nous allons utiliser fruchterman reingold (4), un algorithme de force qui va calculer la distance entre les nœuds par des mécanismes d’attraction/répulsion suivant la force des liens et le poids des nœuds, puis cliquez sur ok (5).
Il est très utile d’exporter le graphe sur gephi pour faire d’autres études et améliorer la visualisation, cliquer sur “export” (1). Pour relancer une nouvelle étude de similitudes, cliquer sur le graphe (2).
Nous allons faire une seconde étude avec l’indice de Mountford (1).
Cette indice de similarité note la force des affinités de zéro à un. La comparaison est de type présence/absence, c’est une analyse qualitative. Nous allons utiliser comme auparavant un échantillon réduit de termes, ici depuis le premier “schacht” jusqu’à 20 occurrences (2), puis cliquez sur OK (3).
L’indice de Mountford centralise moins les points que dans l’indice de cooccurrences, on retrouve donc “schacht” de façon moins centrale et on peu le choisir dans cette étude (1).
4.4. Nuage de mot
Cette fonctionnalité travaille sur la fréquence des mots. Pour commencer il faut cliquer sur le symbole nuage de mot (1) puis sélectionner les options comme dans l’exemple ci-dessous (2).
Puis vérifier les informations comme ci-dessous. Nous avons choisi de ne conserver que les formes actives (1) pour plus de lisibilité et de pertinence.
Vous devriez obtenir le nuage de mot comme ici :
On peut aussi choisir de réduire le nombre de formes entrant dans l’échantillon dans le troisième volet, ci-dessous, en sélectionnant comme dans l’autre exemple avec un clic gauche puis en cliquant sur le dernier élément de 50 occurrences en cliquant tout en maintenant la touche majuscule enfoncée. Puis cliquer sur ok.
Cette analyse semble plutôt illustrative, manquant de précision et n’apportant pas une plus value forcément pertinente vis à vis d’une liste du nombre d’occurence dans un tableau, à utiliser donc avec modération en la complétant avec une analyse de similitude 🙂 . (A ce propos lire, Grandjean Martin, “Introduction à la visualisation de données : l’analyse de réseau en histoire”, Geschichte und Informatik, 18/19, p.113, Ferrara Mélanie, Cours sur Iramuteq par Mme Mélanie Ferrara, Partie 2 : Les types d’analyses (iramuteq), 15’20”, 2017, vidéo youtube, dernière consultation, 24.04.2017, Marchand Pascal, Ratinaud Pierre, “Faut-il faire des nuages de mots ?”, site d’Iramuteq, dernière consultation, 24.04.2017)
Erreurs courantes :
Si vous travaillez sur Windows avec Notepad, il faut prendre garde à laisser une ligne vide avant les annotations
Vérifier bien les annotations dans votre document, comme signifié ici
Sources
Cours de Frédéric Clavert, “la mise en données de l’histoire”, bachelor, Université de Lausanne, 2016/2017
Grandjean Martin, “Introduction à la visualisation de données : l’analyse de réseau en histoire”, Geschichte und Informatik, 18/19, pp.109-128
Reinert Max, “Les “mondes lexicaux” et leur “logique” à travers l’analyse statistique d’un corpus de récits de cauchemars”, Langage et Société, 66, 1993, pp. 5-39
Reinert Max, “Une méthode de classification descendante hiérarchique : application à l’analyse lexicale par contexte”, Les cahiers de l’analyse de données, 8/2, 1983, pp. 187-198
Degenne Alain, Vergés Pierre, “Introduction à l’analyse de similitude”, Revue française de sociologie, 14-4, 1973, pp.471-511
Iramuteq est un logiciel libre permettant de faire des analyses statistiques – classification hiérarchique descendante, analyse factorielle de correspondances, analyse de similitudes – sur des corpus de texte et sur des tableaux individus/caractères. Il est notamment fondé sur les travaux de Max Reinert (Reinert Max, « Une méthode de classification descendante hiérarchique: application à l’analyse lexicale par contexte », Les cahiers de l’analyse des données, 8 (2), 1983, pp. 187‑198.).
Iramuteq offre différents outils pour l’analyse de corpus textuels(1) :
Mise en forme du texte (Nettoyage du texte, lemmatisation, clé d’analyse…)
Analyse statistique textuel
Spécificité et AFC
Classification méthode de Reinert
Analyse de similitude
Nuage de mots
Réédition de graphiques
IRaMuTeQ s’appuie sur le logiciel de statistique R et sur le langage python, c’est l’acronyme pour « Interface de R pour les Analyses Multidimensionnelles de Textes et de Questionnaires ».
Le tutoriel qui suit est la traduction et adaptation à la dernière version de Gephi, du tutoriel de Martin Grandjean, disponible ici :
INTRODUCTION A LA VISUALISATION DE DONNEES
Un réseau est constitué de deux composantes: une liste des acteurs composant le réseau et une liste des relations entre ces acteurs. Dans le cadre d’un objet mathématique, les acteurs seront alors appelés nœuds et les relations seront désignées par des arêtes.
Dans ce graphe social dirigé simple (1), deux listes sont explicitées. Deux types d’informations sont attachées aux noeuds: des étiquettes (leurs “noms”) et un attribut numérique (ici, une distinction entre les garçons et les filles). Dans la liste des arêtes, les entrées “Source” et “Cible” se réfèrent aux identifiants des nœuds (Id).
(1)
Dans notre exemple, l’attribut détermine la couleur des nœuds. La taille d’un nœud dépend de la valeur de son “degré de centralité” (son nombre de connexions). Les mesures de centralité sont des mesures essentielles pour analyser la position d’un acteur dans un réseau. Ils font partis de nombreuses variables, comme montré ci-dessous (1) (A = degré de centralité, nombre de connexions; B = centralité de proximité, proximité de l’ensemble du réseau; C = centralité de l’interférence, noeuds ponts; D = centralité du vecteur autonome, connexion aux noeuds bien connectés).
(1)
Pour voir différents exemples de visualisations possibles avec Gephi, cliquer ci-dessous :
1. Installation du logiciel
1.1. Téléchargement
Le logiciel peut être téléchargé librement ici :
1.2. Plugins
Afin d’aller au delà des fonctionnalités basiques du programme, nous allons installer quelques plugins supplémentaires. Pour aller dans le menu des Plugins, suivre (1) “Tools” puis “Plugins” puis (2) choisir les plugins “GeoLayout” et “MultimodeNetworkTransformation” dans “Available PLugins” :
(1)
(2)
Enfin cliquer sur “Install”, confirmer et attendre que Gephi redémarre.
1.3.Changer la langue
Vous pouvez changer la langue de Gephi en cliquant sur “Tools” (1), “Language” (2) puis en sélectionnant la langue de votre choix. Pour ce tutoriel nous avons choisi le français (3).
1.4.Jeu de données
Nous allons utiliser deux jeux de données, tous deux différents pour explorer des fonctionnalités diverses :
Il faut les enregistrer en faisant un clic droit sur le lien et “Enregistrer sous” ou “Save as” et entrer les titres avec la terminaison .csv (exemples : “edges1.csv”, “nodes1.csv”…).
Au démarrage de Gephi, cliquer sur “Nouveau projet” puis dans “Laboratoire de données” (1) cliquer sur “Importer feuille de calcul”(2).
Nodes 1
Dans “Choisissez un fichier CSV à importer:”, sélectionnez le fichier contenant les nœuds que nous avons nommé “nodes1.csv”.
Dans les options générales d’importation, choisir que la séparation entre les colonnes soit exprimée en “point-virgule” (1) et que le fichier soit importé en tant que “Table des nœuds” (2) puis cliquer sur “Suivant >” (3).
Enfin vérifier les informations comme dans l’exemple ci-dessous, puis cliquer sur “Terminer”.
L’étape « Paramètres d’importation » est très importante : Gephi va reconnaitre certaines des colonnes en raison de leurs titres, mais vous aurez toujours à vérifier que le logiciel sera en mesure de comprendre la nature de vos données. Dans notre exemple, assurez-vous d’informer Gephi que les latitudes et les longitudes sont importées comme variable « Double » (et non pas en « Integer »).
Edges 1
Pour les arêtes (edges), suivez la même procédure, mais avec le document téléchargé “edges1.csv”.
Dans les options générales d’importation, choisir que la séparation entre les colonnes soit exprimée en “point-virgule” (1) et que le fichier soit importé en tant que “Table des liens” (2) puis cliquer sur “Suivant >” (3).
Puis vérifier les informations comme dans l’exemple ci-dessous, décocher la case “Créer les nœuds manquant” (1) – nous les avons déjà importés – puis cliquer sur “Terminer”.
Si à un moment du tutoriel des onglets vous manquent, aller voir dans le menu en haut sous “Fenêtre”, choisissez l’onglet à afficher ou “réinitialiser les fenêtres”
2.2. Visualisation graphique mono-modal
Nous allons maintenant travailler dans l’onglet “Vue d’ensemble”. Le programme va produire une vue d’ensemble du graphique, avec une spatialisation aléatoire illisible.
Taille des nœuds
Donnons aux noeuds une taille proportionnelle à leurs degrés (nombre de connexions). Dans le panneau “Aspect” de la colonne de gauche (en haut), sélectionnez “Nœuds” (1) et les cercles enchâssés (2), puis sélectionnez “Attribut” (3). Dans le menu roulant (4), sélectionnez “Degré” et entrez la valeur minimale et maximale (nous proposons 10-100). Enfin cliquez sur “Appliquer” (5).
Vous verrez que la répartition des degrés dans le corpus est comprise entre 3 et 209 : ce qui signifie qu’au moins un noeud est connecté à plus de 200 autres (et que le nœud le moins connecté, est connecté à 3 autres).
Soyez conscient que si vous voulez un résultat visuellement correct, vous devrez utiliser le lien bleue “Spline” pour éditer la forme de la spline: le doublement linéaire du rayon d’un nœud est plus du double de la zone en raison de la fonction d’alimentation.
Spatialisation
C’est la partie principale !
Nous allons commencer par une spacialisation qui donne plus d’espace au graphique mais qui le maintient dans une aire définie : Nous allons utiliser la visualisation de Fruchterman Reingold (1), avec les mêmes valeurs que dans l’exemple, 20.000 – 10 – 10 (2). Cliquez à la fin sur “exécuter”. Cette visualisation dispose les noeuds de manière gravitationnelle (attraction-répulsion, comme si c’était des aimants).
Vous êtes déjà en mesure de distinguer des groupes (les parties les plus densément connectées du réseau). Laissez la fonction se développer jusqu’à ce que le graphique soit stabilisé. Utilisez la petite loupe bleue (en bas à gauche du panneau graphique) pour réajuster le zoom (3).
Ensuite, nous proposons d’utiliser le “Force Atlas 2” (1), un autre algorithme de mise en page, pour disperser les groupes et laisser de l’espace autour des noeuds les plus importants. Attention, les paramètres que vous entrez modifient considérablement l’apparence finale. Nous proposons de cocher “Empêcher le Recouvrement” (1) et modifiez “Tolérance (vitesse)” sur 50.0. Laissez la fonction se développer en cliquant sur “Exécuter” (4), jusqu’à ce que le graphique soit stabilisé, puis cliquez sur “Arrêter”.
Nous pouvons appliquer Force Atlas 2 directement sans appliquer Fruchterman Reingold avant, mais comme la “disposition aléatoire” à partir du début est une … mise en page aléatoire, il est préférable de modifier le réseau avant de le transmettre à un puissant algorithme de force.
2.3. Techniques de rendu final et de centralisation
Degré pondéré – Weighted Degree
Ajoutons de nouvelles informations à notre graphique en donnant de nouveaux attributs aux nœuds, ce qui influencera leur couleur. Dans le Laboratoire de données, sélectionnez les liens (2), et trier les par “Weight” – poids (1). Certains liens ont un degré de 3, certains 2 et certains 1. Cela signifie qu’il faut prendre ces différences en compte pour calculer le degré pondéré de certains liens. On peut aussi constater que ce graphique est dirigé: les liens ont une source et une cible. Ces directions sont caractérisées par des flèches dans l’onglet “Vue d’ensemble”.
Dans l’onglet “Statistiques” (1), cliquez sur “Degré pondéré” et “Exécuter” (2) pour calculer les valeurs de chaque nœud. On obtient un rapport montrant la distribution de ces mesures.
Maintenant que ces valeurs sont calculées, de nouveaux attributs sont disponibles dans le tableau de classement. Sélectionnez l’icône “couleur” (1) et choisissez “Degré pondéré” (2) pour colorer les noeuds en fonction du nombre de liens entrants. Petit conseil visuel : utilisez une couleur foncée pour de petites valeurs et une couleur claire pour les noeuds fortement connectés, afin de rendre les petits noeuds plus visibles sur le graphique final (les noeuds fortement connectés sont généralement plus visibles d’emblée).
Résultat : les plus grands noeuds (= avec un degré élevé) ne sont pas toujours ceux avec le plus haut degré pondéré. Ainsi, si l’on considère un lien comme une lettre écrite entre 2 personnes, ceux qui écrivent beaucoup ne sont pas nécessairement ceux qui reçoivent beaucoup. Il est intéressant de donner différents attributs à la taille et à la couleur des nœuds, pour les comparer. Bien sûr, vous pouvez exporter ces données pour effectuer une analyse statistique complète, des diagrammes de dispersion, etc. (les mesures que vous faites sont automatiquement ajoutées à votre table de noeuds). Notez que si vous avez utilisé le “spline” pour ajuster la taille des nœuds avant, ce paramètre est toujours utilisé par défaut ici et devrait être modifié (sans interférer avec votre choix précédent pour la taille).
Mettre des étiquettes aux nœuds
Nous reviendrons à des mesures et fonctionnalités supplémentaires plus tard. Essayons maintenant de finaliser notre création en donnant une étiquette aux noeuds. En bas à droite de l’affichage graphique, vous trouverez un petit panneau qui vous permet de développer un nouveau panneau (1).
Dans “Labels” (1), choisissez “Noeud” (2) pour leurs ajouter des étiquettes puis en définir la police, la couleur et la taille.
Si nécessaire, par exemple si vos données n’ont pas de colonne “Label”, cliquez sur le symbole de configuration (3) pour définir le contenu de la colonne que vous souhaitez afficher.
Finaliser le graphique
Passez dans le menu “Prévisualisation” pour arranger les détails finaux. Contrairement aux étapes précédentes, la modification des paramètres dans ce menu est réversible et n’affecte pas la structure du graphique.
Dans les captures d’écran ci-dessous, vous trouverez une suggestion de paramètres pour un bon rendu (comme le réglage de l’opacité des liens à 70% pour un meilleur contraste avec les noeuds). Soyez conscient qu’en raison de sa grande taille, le graphique peut prendre quelques secondes pour se mettre à jour après chaque changement (cliquez sur “Rafraîchir” pour appliquer les modifications). À propos des liens courbes: en tant que convention graphique, nous utilisons des lignes courbes pour montrer la direction du lien, toujours tourné dans le sens des aiguilles d’une montre. Les lignes non courbes sont généralement des graphiques non dirigés.
Au bas de cette colonne d’aperçu, vous trouvez un lien d’exportation (3). Notez que l’exportation dans .png produit une figure avec une résolution médiocre. Vous voudrez peut-être opter pour .svg ou .pdf, qui ont l’avantage d’être modifiables par votre propre logiciel de traitement d’image (je recommande le programme open source inkscape pour manipuler des fichiers .svg).
Modularité
La visualisation n’est qu’une étape, l’analyse de réseau nécessite souvent d’autres moyens mathématiques pour fournir au chercheur un résultat satisfaisant. N’hésitez pas à explorer le menu “Statistiques”, par exemple en jouant avec les mesures de degré, la densité, la modularité.
Un réseau contient des subdivisions internes appelées “communautés”. Il existe des méthodes qui permettent de mettre en évidence ces communautés, elles fonctionnent par la comparaison entre la densité des liens dans un groupe et entre le groupe et le reste du réseau (plus ici – en anglais). Dans la colonne de droite de la page “Vue d’ensemble” (1), cliquez sur “Statistiques” (2) “Modularité” “Exécuter” (3) pour afficher la fenêtre de modularité. Choisissez une résolution entre 0,1 et 2 (4), cliquez sur OK et fermez la fenêtre qui s’ouvre.
La prochaine étape se déroule dans le menu “Aspect”(1) situé dans la colonne de gauche. Sélectionnez “Nœuds”(2) puis la palette de peinture (3), “Attribut” (4) et enfin “Modularity Class” (5) (dans le menu déroulant). Vous pourrez alors modifier les couleurs attribuées aux communautés détectées en cliquant dessus (6). N’hésitez pas à répéter cette opération avec beaucoup de résolutions ! N’oubliez pas qu’il faut à chaque changement cliquer sur “Actualiser”.
Centralité intermédiaire
La centralité intermédiaire mesure tous les chemins les plus courts entre chaque paire de noeuds du réseau puis compte combien de fois un noeud se trouve sur le chemin le plus court entre deux autres. C’est une mesure très intéressante dans le cas d’un réseau de lettres envoyées et reçues car il permet au chercheur de détecter des personnes qui occupent une position intermédiaire entre deux autres personnes ou groupes. Dans le panneau de statistiques, cliquez sur “Diamètre”, “Exécuter”(1). Puis dans “Aspect”, “Noeuds”, “Attribut”, dans le menu déroulant choisir “Betweeness Centrality” (2).
Comme vu avec “Weighted In-Degree”(Degré pondéré), trouvez un moyen coloré de mettre en évidence les nœuds qui possèdent une centralité élevée. Il apparaît rapidement que les noeuds à degré élevé / pondéré n’ont pas toujours une grande interférence.
2.4. Agencement géographique
Pendant l’importation, vous avez remarqué que chaque nœud a reçu une latitude et une longitude. Le plugin Geo Layout vous aidera à afficher les nœuds de manière géographique. Dans le panneau Prévisualisation, sélectionnez Geo Layout (1) et donnez-lui une échelle de 20 000. Assurez-vous que le plugin comprend correctement ce «Latitude» comme «Latitude» et «Longitude» en tant que «Longitude» et définissez la projection sur «Mercator» (3) (cette projection devrait être adaptée à la carte que vous utiliserez après).
Comme les nœuds sont maintenant regroupés sur des données géographiques, vous devrez leurs donner un peu d’espace : utilisez le plugin de mise en page “Noverlap” ou “Déchevauchement” (1) pour éviter leur chevauchement (une marge de 5.0 est suffisante avec l’échelle de carte choisie).
Dans le panneau Prévisualisation, vérifiez l’apparence finale de votre création et exportez-la en .svg. Vous pourrez ensuite l’importer sur une carte de fond. Si vous êtes familier avec Inkscape, téléchargez la carte fournie ici (créée pour correspondre à l’échelle choisie et à la projection de Mercator). Ouvrez-la et, après avoir importé votre réseau, sélectionnez le calque des noms de villes et mettez le au premier plan pour qu’il soit lisible.
Pour télécharger la carte, faire clic droit sur le lien puis “Enregistrer sous” et la nommer “mapbase.svg” Lien vers la carte
3. Les communautés et leurs membres
3.1 Importer les données dans Gephi
Créer un “Nouveau projet” dans la fenêtre de démarrage. Nous allons travailler avec un type de données différent : un réseau bi-modal (2 types de nœuds, communautés et individus). Dans le Laboratoire de données, cliquer sur Importer feuille de calcul pour ouvrir la fenêtre et importer votre premier fichier.
Nodes 2
Indiquez que la séparation entre vos colonnes est exprimée par un point-virgule (1) et n’oubliez pas d’informer Gephi que le fichier que vous importez contient des nœuds (2). Ensuite, appuyez sur “suivant >”.
Remplissez le formulaire de configuration d’importation tel que proposé. Informer Gephi que notre variable “Cat” est une “Chaîne” (1) (cette variable sera utile pour séparer “membres” et “institutions” dans une autre étape).
Edges 2
Suivez la même procédure, mais avec le fichier “edges 2” téléchargé auparavant. Remplissez les formulaires de la manière suivante : spécifiez le point-virgule (1) et informez Gephi que vous importez des liens (2).
Remplissez les champs comme ci-dessous et décochez “Créer les nœuds manquants” (1), car vous les avez déjà importés.
3.2 Visualisation bi-modale
Taille des nœuds
Dans l’onglet “Vue d’ensemble” (1), Aspect (2), Nœuds (3), le symbole des cercles enchâssés (4) est sous “attribut” (5), donnez une taille à vos nœuds (ici, selon leur degré entre 10-50) (6). Dans un réseau bi-modal, le degré de centralité peut ne pas être une valeur très intéressante en raison du biais structurel apporté par les deux catégories différentes de noeuds : dans notre cas, les “institutions” seront naturellement beaucoup plus connectés que les “membres”. Mais dans cette première étape, nous essayons simplement de distinguer visuellement les deux catégories.
Couleur des nœuds
Dans le même onglet, cliquer sur la palette (1). Donnez une couleur très différente aux deux catégories et appliquez-les sur votre réseau.
Définir une mise en page
Déployez le réseau à l’aide de l’algorithme Force Atlas 2 (Empêchez le chevauchement du noeud et l’ajout à 50). Votre graphique est maintenant lisible visuellement et ressemble très bien à de nombreux réseaux d’organisations.
Pour de nombreux chercheurs, cette visualisation sera déjà suffisante pour effectuer leur analyse. N’oubliez pas d’afficher l’étiquette des nœuds si nécessaire.
3.3 Projection en graphique mono-modal
Utilisez l’onglet de projection MultiMode Networks (disponible via le plugin que vous avez téléchargé à l’étape 1.2) et cliquer sur “Load attributes” (1). Vous allez maintenant «projeter» les “Institutions” sur les “Membres”: si deux membres ont un lien avec la même institution, il y aura maintenant un lien direct entre eux (et l’institution sera évacué).
Sélectionnez le type d’attribut approprié (“Cat”) et définissez la matrice telle que proposée ici (Member-Institution / Institution-Member) (2). Ils doivent être symétriques avec le type de nœud que vous souhaitez conserver au début et à la fin.
Vérifiez les boutons “Remove Edges” et “Remove Nodes”, afin de nettoyer le graphique des anciens noeuds et arêtes “Comités”. Et enfin cliquez sur “Run” (3).
Notez que vous pouvez également projeter les Membres sur les Institutions, avec le résultat présenté ci-dessous (les bords deviendrait plus importants si de nombreux membres étaient connectés dans les mêmes comités).
3.4 Mesure de centralité et mise en page
Taille des nœuds
Calculez la nouvelle centralité en degré des nœuds en cliquant, dans l’onglet statistique (1) sur “Degré pondéré” (2).
Dans le tableau de classement, appliquez cette nouvelle mesure aux nœuds, comme proposé ici (1). Le nouveau degré peut être très différent du degré dans le réseau bi-modal original: une projection augmente beaucoup d’arêtes (en particulier lorsque beaucoup de noeuds sont connectés à quelques nœuds très centraux de l’autre type).
Couleur des nœuds
Dans le panneau statistique (1), cliquez sur «Diamètre» (2) pour calculer la centralité entre vos noeuds – Betweenness Centrality.
Ensuite, utilisez cette mesure pour colorer les nœuds. Dans un tel réseau de personnes travaillant dans différents comités/institutions/entreprises, savoir qui est à l’intersection de deux groupes peut être très important pour les agents des RH, i.e..
Couleur des arêtes
Afin de mettre en évidence les arêtes pondérés, on va leur donner une couleur qui rendra les bords plus forts et plus visibles dans l’affichage final (suggéré ici: noir pour toutes les arêtes supérieures à 1).
Disposition
Disposons le graphique une fois de plus car il a conservé les positions des nœuds avant la projection de bi-modale à mono-modale. Mettons le en place avec Force Atlas 2 (1) et les paramètres ci-dessous (2).
3.5 Mise en valeur des entités voisines
Ce type de réseau est bien adapté à une analyse “Linkedin”: Qui est dans mon réseau? Qui sont les gens que je pourrai atteindre à travers eux (quelles sont leurs propres connexions)?
Cliquez sur l’icône “couleur” (1), en haut de la zone “Graphe”, et jouez avec les outils de ce menu. Préparez d’abord les «voisins des voisins» (2) (après avoir donné une couleur neutre à tous les noeuds), puis les «voisins» (2) d’un noeud sélectionné (3). Dans notre exemple, le noeud rouge, membre d’un seul comité, est directement connecté à 12 collègues, qui sont eux-mêmes connectés à 63 autres personnes.
Gephi est un logiciel libre de visualisation de données et d’analyse de réseaux. Simple d’utilisation, il permet néanmoins une grande diversité de visualisation. De nombreux tutoriels sont disponibles en ligne pour vos débuts. Les premiers pas de ce premier billet sont largement inspirés de ceux développés par Martin Grandjean et Clement Levallois sur leurs sites respectifs.
Le tutoriel qui suit est basé sur celui de Martin Grandjean mais adapté à la dernière version de Gephi, la 0.9.1.
Entre le web, les réseaux sociaux en ligne ou encore les différentes initiatives de numérisation massive de livres ou d’archives, nous vivons dans un monde de données. Ces données sont les sources primaires présentes et futures des sciences historiques et, plus généralement, des sciences humaines et sociales. Toutefois, l’enseignement, notamment en histoire, n’a pas encore pris pleinement mesure des nouvelles méthodes à introduire auprès des étudiant.e.s. L’accès à la matière première des chercheurs – mais c’est également le cas pour de nombreux métiers ouverts aux étudiant.e.s en sciences humaines et sociales – se fait de plus en plus via une interface informatique, de la recherche à l’analyse et l’interprétation d’une documentation. Il devient ainsi de plus en plus nécessaire de faire appel à des méthodologies dites de « lecture distante », permettant de collecter et d’interpréter, via l’ordinateur, des données massives.
Ce projet a pour but d’implanter à l’université de Lausanne une méthode issue de mon expérience de recherche, méthode d’enseignement de l’histoire numérique qui ne sépare pas la démarche historique des outils numériques d’une part et qui prend en compte certains éléments mis en avant dans la littérature spécialisée, notamment l’organisation du travail des étudiant.e.s par projet, le recours au travail collaboratif et en groupe et le recours à l’interdisciplinarité.
Cette méthode d’enseignement permettra de répondre à la difficulté majeure rencontrée classiquement au cours des enseignements « numériques » en Lettres. Mon expérience d’enseignement montre que beaucoup d’étudiant.e.s, en histoire notamment, pensent que les méthodologies issues des humanités digitales soit sont techniquement hors de leur portée, soit ne les concernent pas.
En mettant la démarche historienne au coeur de ce projet, en poussant les étudiant.e.s à élaborer, sur un mode collaboratif, leur projet à partir d’une question de recherche qui les intéresse et qui nécessite de collecter des données importantes en ligne, cette méthode démontrera aux étudiant.e.s qu’il est nécessaire d’embrasser ces outils d’une part ; que l’usage de certains de ces outils est à leur portée d’autre part.
Ce projet est soutenu par le FIP (Fond d’Innovation Pédagogique) de l’Université de Lausanne. Plus d’infos : https://www.unil.ch/fip/fr/home.html
L'histoire par les données : approche pédagogique – soutenu par le fond d'innovation pédagogique de l'UNIL