Text mining
Cet article est une ébauche à compléter. Une ébauche est une entrée ayant un contenu (très) maigre et qui a donc besoin d'un auteur.
Voir aussi:
Introduction
Selon Dominic Forest, consulté le 20/10/14), «La fouille de textes est la découverte (à l’aide d’outils informatiques) de nouvelles informations en extrayant différentes données provenant de plusieurs documents textuels. Un élément fondamental de ce processus réside dans les relations identifiées entre les informations extraites afin d’identifier de nouveaux faits ou de nouvelles hypothèses à explorer.» (Hearst, 2003, notre traduction)»
Le text mining est né d'une combinaison du "data mining", de l'analyse quantiative de textes et du traitement automatique du langage.
Les applications principales sont (inspiré par Tellier):
- La recherche d'information (RI)
- Sert à identifier un sous-ensemble d'une collection de documents en fonction d'une requête. La recherche propose des documents potentiellement pertinents.
- Exemples:
- Moteurs de recherche de type Google
- Détection de plagiat.
- La classification de documents.
- Sert à classer des documents similaires
- Exemples:
- Tri de email (détection de SPAM)
- Fouille d'opinions (évaluations positives ou négatives d'un produit, service, etc.)
- Surveillance et détection de menaces (espionnage, etc.)
- Organisation de l'information (typologies, ontologies)
- Veille (nouveaux thèmes)
- L'annotation
- L'annotation en elle-même sert à préparer des analyses. Notamment l'annotation de type "part of speech" qui identifie la nature morpho-syntaxique de chaque élément (token).
- Exemples:
- Traduction automatique
- Identification de zone thématiques (souvent basés sur la phrase comme unité de texte)
- Extraction d'Information (EI)
- Sert à extraire l'information pertinente à partir d'un corpus connu. Notamment, extraire automatiquement des informations factuelles servant à remplir les champs d’un formulaire prédéfini. La recherche propose des faits potentiellement pertinents.
- Exemples:
- Veille d'information basée par exemple sur les ”who did what, where and when, and why”
- Bibliométrie (réseaux de citations)
Notions de base
Les données textuelles
On peut distinguer 3 grands types de textes:
- (1) Tableaux composés de de lignes et colonnes
- Il existe plusieurs types formats: texte où les champs (colonnes) sont séparés par un symbole spécifique (TAB, virgule, etc.), formats propriétaires comme Excel, structuration par balises XML, JSON, etc.
- (2) Textes libres
- Il s'agit d'un text brut sans formattage, souvent obtenu après un filtrage d'un document Web, Word, PDF, etc.
- (3) Documents semi-structurés
- Il existe tout une variété: pages web structurés (ou éléments de pages web comme tableaux, microformats), formats de syndication comme RSS, formats emails et similaire.
La fouille de texte s'intéresse principalement aux textes libres. Ces derniers peuvent aussi être annotés par des métadonnées.
Un texte libre peut être analysé de façons divers, par exemple en tant que séquence (nettoyée) de mots, séquence de mots étiquetés (lemmes, catégories sémantiques, etc.), phrases, etc.
Préparation d'un corpus pour des analyses statistiques "directes"
Avant de pouvoir utiliser des méthodes purement quantitatives de fouille de textes, il faut préparer les documents. En règle générale, on passe à travers les étapes suivantes (pas forcément dans cet ordre précis):
- On constitue le corpus
- On filtre des informations inutiles
- On transforme les documents
- On effectue des analyses et on interprète les résultats.
Voici les étapes et filtres les plus importants qu'on utilise pour préparer un ensemble de documents non-structurés. Selon le type d'analyse, on peut ignorer une étape pour des raisons pratiques (opérations pas nécessaires dans un contexte précis) ou théoriques (on ne veut pas filtrer cette information). Par exemple la racinisation n'est pas compatible avec la lemmatisation. Bien entendu, on peut ou doit adapter l'ordre de ces opérations.
Etape | Exemple de tâches | Commentaires |
---|---|---|
Extraire le corps du document |
|
* Cette tâche n'est pas simple, il existe des outils et algorithmes pour les pages web. |
Traduire en format texte brut (si nécessaire) |
|
La plupart des outils fournissent des procédures. Toutefois, le résultat n'est pas toujours optimal, notamment pour le PDF et certains types de pages HTML. |
Mettre tous les mots en minuscules |
| |
Enlever Les ponctuations |
|
|
Enlever les nombres |
|
|
Enlever les blancs en trop |
|
|
Remplacer des caractères |
|
|
Remplacer des mots |
|
|
Enlever les "stop words" |
|
|
Racinisation (Angl. Stemming) |
|
|
Enlever d'autres mots |
|
Préparation d'un texte en passant par une analyse linguistique
Le processus de fouille de textes avec une méthode plus linguistique est assez similaire. Le nettoyage aura moins d'étapes mais à partir d'un texte brut propre, on a deux étapes qui sont techniquement plus difficiles.
Lemmatisation |
|
|
---|---|---|
Extraction de termes |
| |
Classification de termes |
|
|
La racinisation et la lemmatisation
Lire
- Racinisateur de Paice/Husk
- Lemmatisation et Racinisation en Français : Flexion, Lemme et Racine d’un mot par Benoît TROUVILLIEZ, 2010.
La racinisation (ou stemming) et la lemmatisation consistent à réduire une liste de mots à une liste plus courte qui ne contient qu'une variante du même mot. Le premier algorithme connu et toujours populaire est le Porter Stemming Algorithm (1979). Les librairies de R, utilisent l'implémentation Snowball qui a adapté l'algorithme Porter à d'autres langues, dont le français.
La racine correspond à la partie du mot qui reste, une fois qu'on a tué son préfixe et son suffixe. Contrairement à un lemme, il ne s'agit pas forcément d'un "vrai" mot.
Exemples:
- recherche, chercher, cherches, cherchions, cherchait -> cherch
Il existe un indice de compression IC:
- IC = (M - R) / M
- M = nombre de mots uniques avant racinisation
- R = nombre de racines uniques après racinisation
La lemmatisation cherche une forme canonique d'un mot. Le lemme est un mot de base, comme:
- un verbe à l'infinitif
- un adjectif, etc. au singulier masculin.
Exemples:
- cherches, cherchions -> chercher
- ai, as, a, eussions -> avoir
- belles, bel, beaux, beau -> beau
Fréquence et poids de termes
- La fréquence de termes (term frequency, tf)
- la fréquence d'un terme iest basée sur l'importance proportionnelle d'un terme dans un document.
- Donc pour un termei dans un documentj: la "term frequency" tfi,j = fonction de (ti, dj)
- Plus précisément, on peut calculer tfi,j = frequencei,j / maxe freqj.
- Autrement dit frequence de termei = nombre d’occurrences du terme ti dans le documentj / nombre d’occurrences du terme le plus fréquent dans le document dj
- La fréquence inverse (Inverse of document frequency, idf)
- Mesure la discrimination d'un terme dans le corpus
- Un terme qui apparaît souvent dans le corpus est moins important (pour la discrimination) qu'un terme moins fréquent (TP, Approche basée sur tf*idf
- idfi = log 10 (N / dfi)
- N = nombre de documents dans le corpus
- dfi = nombre de documents contnant le terme ti
- Le poids d'un terme (termes pondérés)
- Le "poids" d'un terme peut être calculé de façon différente.
- Une méthode simple est TfIdf' (Salton). Il s'agit de la combinaison de term frequency et inverse of document frequency, autrement dit: la fréquence du terme dans un document pondéré par la fréquence du terme dans le corpus
- fi,j = tfi,j X idfj
Les Matrices termes-documents
Les matrices termes-documents et documents termes résument les mots que l'on retrouve dans divers document d'un corpus.
- Matrices documents-termes (Angl.
- Document Term Matrix, DTM)
- Chaque ligne d'une matrice DT représente un document, chaque colonne un terme (mot)
Alpha Beta Creux
doc1 2 1 ....
doc2 1
doc3 2
- Matrice termes-documents (Angl.
- Term Document Matrix, TDM)
- Chaque ligne d'une matrice TD représente un terme (mot), chaque colonne un document
doc1 doc2 doc3
Alpha 2 1 2
Beta 1 0 3
Creux 0 1 0
A partir de ce type de matrice on peut effectuer plusieurs analyses.
Le part-of-speech tagging
Selon ([http://fr.wikipedia.org/wiki/%C3%89tiquetage_morpho-syntaxique Wikipédia, oct 20, 2014), nn linguistique, l'étiquetage morpho-syntaxique (aussi appelé étiquetage grammatical, POS tagging (part-of-speech tagging) en anglais) est le processus qui consiste à associer aux mots d'un texte les informations grammaticales correspondantes comme la partie du discours, le genre, le nombre, etc. à l'aide d'un outil informatique.
Certains types d'analyses du text mining utilisent des techniques de la linguistique. Ils utilisent comme input non pas une liste de mots ou de termes, mais un texte annoté. Ces annotations comprennent:
- Informations "part-of-speech", c'est à dire la position d'un élément dans une phrase selon une convention linguistique.
- Informations "lemma
Un outil populaire multi-langues et gratuit est le TreeTagger.
Similarité
Approche classique
L'approche classique simple définit deux documents comme similaires si les deux partagent des termes. Dans modèle, inventé par Salton (1971) (selon Clément Grimal et Gilles Bisson):
- Deux documents sont similaires s'ils contiennent des termes similaires
- Deux termes sont similaires s'ils apparaissent dans des documents similaires
On utilise le poids des termes organisés dans les matrices documents-termes.
Cette méthode souffre du fait que les gens n'utilisent pas toujours les mêmes mots pour parler de la même chose. Ce problème est accentué lorsqu'on a des petites textes.
Exemple:
- Cette application est facile à utiliser.
- Ce logiciel est facile à utiliser.
On constate:
- Une relation de premier ordre entre application, facile et utiliser (ou entre logiciel, facile, utiliser)
- Une relation de 2ème ordre (détectable facilement par les humains) entre "application" et "logiciel". Détecter ce type de relation est nettement plus difficile et peut se faire avec des algorithmes comme LSA, X-SIM, et CTK.
Survol d'autres approches
Grimal et Bisson distinguent entre 5 mesures de similarité:
- Le cosinus
- X-Sim (avec ou sans k et p) [Hussain et al.(2010)]
- LSA (Latent Semantic Analysis) [Deerwester et al.(1990)]
- SNOS (Similarity in Non-Orthogonal Space) [Liu et al.(2004)]
- CTK (Commute Time Kernel) [Yen et al.(2009)
+Classification Ascendante Hiérarchique, avec l'indice de Ward
Le modèle LSI
Voir aussi Latent semantic analysis and indexing
Ce modèle part de l'idée que deux termes différents qui apparaissent dans des documents qui sont similaires (ont beaucoup de termes en commun) sont également similaires. Dans l'exemple ci-dessus, application est similaire à logiciel car les deux ont une co-occurence avec facile et utiliser.
Ce modèle était développé pour des corpus larges (par exemple des engins de recherche).
L'utilisation de LSI comprend plusieurs étapes:
- On commence par une matrice documents-termes (DTM)
- ... (à suivre)
La classification de documents
La classification sert à regrouper des documents dans un certain nombre de classes selon des critères de similarité.
Il existe (probablement) quatre grandes familles de méthodes
- la classification avec des techniques linguistiques
- La classification supervisée
- La classification non supervisée (automatique)
- La classification manuelle ou semi-manuelle (pas traitée ici)
La classification supervisée
Ce type de méthodes compare un document à classer à un échantillon de documents représentatifs d'une classe de documents. Un premier travail consiste donc à classer manuellement des documents d'un corpus d'apprentissage, par exemple en définissant des termes discriminants qui peuvent identifier une catégorie. Le 2ème à tester la robustesse de la classification et le 3ème à l'utiliser. Ce principe peut se complexifier. Par exemple, on peut aussi calibrer le modèle d'apprentissage.
Les méthodes les plus simples sont "linéaires". A partir d'un corpus d'apprentissage, on crée une matrice de poids "termes par catégorie" à laquelle on compare le vecteur qui résume le nouveau document. Le vecteur de termes représentant le nouveau document est comparé à l'ensemble des vecteurs "catégorie" de la matrice de poids et le nouveau document est alors assigné à la classe la plus proche.
La classification non-supervisée
La classification automatique aussi appelée non-supervisée sert par exemple à obtenir une vue d'ensemble sur les sujets traités dans un corpus. Comme pour la classification supervisée, il faut choisir le corpus, définir une mesure de similarité entre documents et identifier un algorithme de classification (Grivel: 7)
Liens
Général
- Fouille de textes (Wikipédia, ébauche en oct 2014)
Tutoriels
- Tellier (non daté), I. Introduction à la fouille de textes, Policopié, Université de Paris 3, Sorbonne Nouvelle.
- Utilisation de la fouille de textes et de l'extraction d’informations en Génomique et Bioinformatique. Transparents par Bernard Jacq, utiles pour comprendre qqs. concepts importants en recherche et extraction d'informations.
Exemples
- Le traitement des TICE dans les discours politiques et dans la presse par Lucie Loubère
- Utilise la méthode Reinert et le logiciel Iarmuteq.
Liens en Anglais
(à bouger un jour ...)
General
(websites, blogs, etc.)
- Quantifying memory. Includes tutorials for course about web scraping through R:
- Blog Onyme. Blog d'une société qui vend des solutions. Contient des articles d'intérêt général.
Machine learning
- Webcast: How to Develop Language Annotations for Machine Learning Algorithms
- MATTER Annotation Development Process: Model, Annotate, Train, Test, Evaluate, and Revise your training corpus. ** James Pustejovsky, Amber Stubbs (2012). Natural Language Annotation for Machine Learning A Guide to Corpus-Building for Applications, O'Reilly, http://shop.oreilly.com/product/0636920020578.do
Topic modeling
- David Blaye's home page Includes an introduction to topic modelling.
Summarization of microblogs
Bibliographie
- Gilles Bisson et Clément Grimal, Apprentissage multi-vue de co-similarités pour la classification, CAp, 2012. Paper, Slides
- Forest, D. et Grouin, C. (éditeurs) (2012). Expérimentations et évaluations en fouille de textes. Paris : Hermès.
- Clément Grimal et Gilles Bisson, Amélioration de la co-similarité pour la classification de documents, CAP 2011, Paper, Slides
- S. F. Hussain, C. Grimal, and G. Bisson. An improved co-similarity measure for document clustering. In Proceedings of the 9th ICMLA, 2010.
- S. Deerwester, S. T. Dumais, G. W. Furnas, Thomas, and R. Harshman. Indexing by latent semantic analysis. Journal of the American Society for Information Science, 41:391-407, 1990.
- Grivel, Luc. (2006). Outils de classification et de catégorisation pour la fouille de textes, Actes de SdC 2006 - Semaine de la Connaissance, http://www.irit.fr/SDC2006/cdrom/contributions/Grivel-isko-sdc.pdf
- Fidelia Ibekwe-Sanjuan, Fouille de textes: méthodes, outils et applications , Carnets de lecture n.13, 14, 0
- N. Liu, B. Zhang, J. Yan, Q. Yang, S. Yan, Z. Chen, F. Bai, and W. ying Ma. Learning similarity measures in non-orthogonal space. In Proceedings of the 13th ACM CIKM, pages 334-341. ACM Press, 2004.
- L. Yen, F. Fouss, C. Decaestecker, P. Francq, and M. Saerens. Graph nodes clustering with the sigmoid commute-time kernel: A comparative study. Data Knowl. Eng., 68(3):338-361, 2009