Haruspex est un outil heuristique pour l’analyse et l’exploration visuelle de corpus.
Il vise l’émergence de nouvelles connaissances dans l’interaction d’analyses qualitatives / quantitatives, et la valorisation de celles-ci.
Objectif
Calculer des proximités entre les textes d’un corpus:
- sans modèle pré-défini
- sans vocabulaire de référence
- sans corpus d’entraînement
Haruspex se prête bien à l’analyse de textes contenant du vocabulaire spécialisé.
Il préfère les textes en français, même si l’anglais lui convient aussi.
Méthode
Créer un multi graphe pondéré de co-occurrences d’expression clés entre les textes d’un corpus. Cette phrase est décortiquée ci-après:
- expressions-clés: un algorithme extrait les expression clés du corpus. Ces expressions sont nombreuses et précises. Il ne s’agit pas d’indexation avec des termes génériques, mais au contraire de terme spécifiques et discriminant au sein du corpus, c’est-à-dire utiles pour l’analyse. Néanmoins, il est possible de regrouper automatiquement certaines expression-clés par catégorie.
- co-occurrence: si une expression-clé apparaît dans 2 textes du corpus, alors ces 2 textes sont liés par cette expression-clé partagée. Il s’agit d’un graphe de co-occurrences
- multi-graphe: car 2 textes d’un corpus peuvent partager plusieurs expression clés co-occurrentes (l’inverse est même très rare)
- pondéré: car chaque lien (c’est-à-dire chaque partage de co-occurrence) est pondéré suivant:
- le pouvoir discriminant de l’expression-clé dans le corpus
- le volume de co-occurrence partagé par les deux textes en question
De nombreuses opérations sont possibles, Haruspex insiste sur la dimension analyse de corpus et se détache des problématiques de partage de données ou de formalisation de données.
Résultats, exemple
Sur un réseau d’entretiens de chercheurs en chimie du solide, exemple de graphe (vue) obtenu par requête. Les liens en bleus sont relatifs à la physique, les rouges à la chimie, les gris sont de science indifférenciée. Les nœuds bleus sont des physiciens, les rouges des chimistes, les jaunes des industriels. Le diamètre d’un nœud correspond à son degré de connectivité.
On remarque que chaque lien est correspond à une expression-clé écrite sur l’arc. Ici, ce sont des sujets de recherche partagés, par exemple structure électronique, oxyde de terres rares, champs des ligands ou encore des noms propres comme Institut Laue-Langevin.
Le graphe total comporte 100k liens dans ce cas. Il s’agit donc d’un graphe construit sur une requête particulière: uniquement les liens qui concernent la science et qui ont une pondération suffisantes. Les mots trop commun comme laboratoire ou CNRS ne sont donc pas présents.
Limites
- Les corpus trop volumineux sont lourds à analyser autant du point de vue de la machine que du point de vue des résultats. Au delà de 600k mots, il faut segmenter en sous-corpus (cf point suivant)
- Les corpus très hétérogènes empêchent l’extraction d’expression-clé intéressantes, l’analyse est pauvre. Il faut segmenter en sous-corpus.
- Le manque d’information qualitative extérieure (connaissance, lecture préalable) peut entraîner des contre-sens d’interprétation des graphes.
Dépendances
- Python 3.4
- Neo4j > 2.x
- py2neo v3
Optionnel mais recommandé:
Treetagger
- treetagger développé par le département de Computational Linguistics de University of Stuttgart
- wrapper python pour treetagger développé par Laurent Pointal du CNRS LMSIPermet d’obtenir des résultats sur la nature des mots de l’expression-clé. Augmente légèrement la précision.
Wikipédia
(Requiert une connexion internet et de la patience!)
Permet de requêter (http API) Wikipédia sur les expressions clés extraites afin de:
- normaliser la forme des expressions extraites
- supprimer quelques doublons (homonymes)
- classer automatique les expression par catégories (portails Wikipédia)