Objectif
A partir d'un corpus de documents issus du programme scolaire français, extraire les liens entre les documents,
leurs similarités et les notions qui en ressortent. Le premier but de ce traitement est d'avoir une analyse statistique des mots dans un contexte (ici le corpus de documents défini autour du programme scolaire français)
Dans un second temps, l'objectif est d'extraire de cette masse de mots, sans véritable sens pour une machine, des informations pertinentes et éventuellement de les relier à des sources d'informations externes (Wikipédia...).
On utilise aussi des ontologies (comme l'ontologie de Bloom) qui permettent de dégager des concepts d'un corpus.
Il s'agit donc de donner aux textes bruts, un sens, repérable par une machine (grâce à des métatags).
Outils et technologies utilisés
- Eclipse (traitement des textes en java):
- Extraction des textes bruts des pages HTML et des PDF constituant le corpus;
- Taggage des mots avec Lia_Tagg pour repérer leur type et lemme (sémantique des mots);
- Filtrage des mots inutiles sémantiquement (bruit);
- Comptage des occurences des mots distincts du corpus;
- Comptage des occurences des lemmes différents du corpus;
- Calcul des distances entre les documents pour pouvoir effectuer des rapprochements entre eux;
- Taggage des mots pour recréer un fichier métataggé de sortie (verbes de l'ontologie de Bloom, mots de TF-IDF supérieure à un seuil);
- Création du Json pour la visualisation;
- Ontologie de Bloom: pour classer les verbes selon les concepts qu'ils reprennent;
- Lia_Tagg: étiqueteur/sémantiseur pour obtenir le type et le lemme de chaque mot du corpus et permettre par la suite de filtrer les mots bruitant (déterminants, auxiliaires, conjonctions...) et de regrouper les mots proches sémantiquement (de même lemme);
- Requêtes SPARQL en Javascript: pour interroger les plateformes comme DBPedia et ainsi lier des mots du corpus avec des ressources extérieures (lien wikipédia, photos, position géographique...);
- Javascript, JQuery, HTML, CSS, PHP : pour la réalisation du site et une visualisation plus parlante des résultats du traitement préalable du corpus;
- D3.js: visualisation des verbes de chaque document(présents dans l'ontologie de bloom) sous forme d'un graphe (SVG);
- JOWL-lib: visualisation sous forme de graphe d'une ontologie OWL
Notions abordées
- TF-IDF (= Term Frequency-Inverse Document Frequency):
C'est une mesure statistique qui permet d'évaluer l'importance d'un terme contenu dans un document, par rapport à un corpus.
Sa valeur par terme et par document est proportionnelle au nombre d'occurrences du terme dans le document.
Elle dépend aussi de sa fréquence d'apparition dans le corpus.
On obtient ainsi une pondération des mots en relation avec un corpus et non plus cantonnée à un document, ce qui permet de mieux les comparer.
Cependant, cette mesure ne tient pas compte de la longueur respective des documents, ce qui peut limiter sa pertinence.
- Distance cosine entre documents:
Elle indique dans quelle mesure deux documents utilisent un lexique similaire.
Elle s'exprime par la formule ci-jointe, où on compare le document 'a' et le document 'b' et où pt(a) et pt(b) représentent respectivement les fréquences d'apparition du mot t dans les documents a et b.
Traitement des données
- Taggage final pour la relecture en javascript
- filtrage
- Extraction des lemmes
- Ontologie (OWL et RDF)
Visualisation des données
- Nuage de mot de l'ensemble des mots du corpus (réalisé avec D3.js), filtrage préalable des mots parasites grâce à l'étiquetteur Lia_Tagg;
- Graphe des verbes de l'ontologie de Bloom pour chaque document du corpus (réalisé avec D3.js pour le graphe et JOWL-lib pour visualiser l'ontologie);
- Taggage de documents source pour mettre en avant: les verbes du corpus (et/ou de l'ontologie de Bloom), les mots de forte TF-IDF, les noms propres;
- Lien entre noms propres et ressources externes pour récupérer des informations grâce à des requêtes SPARQL en Javascript;
Vocabulaire
- Ontologie:
Une ontologie représente un ensemble structuré de termes et de concepts présents dans un ensemble de données textuelles. Cet ensemble encadre ces données pour les relier entre elles ou du moins leur apporter un sens individuel.
Les champs d'informations ajoutés sont appelés des métadonnées.
L'ontologie constitue un modèle représentant l'ensemble des concepts abordés dans un domaine (programme scolaire par exemple) ainsi que les relations existantes entre eux.
- Lemme:
C'est la forme de référence d'un mot, c'est-à-dire sans les modifications qu'il subit lorsqu'il est utilisé dans le discours.
Par exemple: la forme infinitive d'un verbe, le masculin singulier pour un adjectif, le singulier d'un nom...
les entrées des dictionnaires sont des lemmes. On parle aussi de forme canonique.
Dans ce projet, on effectue la lemmatisation des mots du corpus (avec Lia_Tagg) afin de faire ressortir les notions abordées en regroupant les différentes déclinaisons possibles d'un même lemme. Cela nous a permis par exemple de compter le nombre d'utilisation d'un verbe présent dans l'ontologie de Bloom.
- Etiqueteur morpho-syntaxique:
(Ou encore POS tagging (part-of-speech tagging)
Nous avons utilisé l'étiqueteur Lia_Tagg pour lemmatiser et typer les mots du corpus.
Un étiqueteur est un outils utilisé en linguistique pour associer à chaque mot sa nature (type: verbe infinitif, nom propre féminin, adjectif masculin pluriel...)
- TF-IDF
- Distance cosine