0% ont trouvé ce document utile (0 vote)
53 vues5 pages

Classification Automatique de Texte

Classification automatique de texte

Transféré par

aya bouremana
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
53 vues5 pages

Classification Automatique de Texte

Classification automatique de texte

Transféré par

aya bouremana
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 5

Introduction au Text mining : Classification automatique de

Texte
Une petite introduction au text mining (un module est consacré au sujet aux WIC en S3)

Le text mining (fouille de texte) est l’application des techniques de data mining au texte.
Le Text Mining, ou extraction de connaissances à partir de textes, est un ensemble de
méthodes, de techniques et d'outils pour exploiter les documents non structurés que sont
les textes écrits, comme les fichiers word, les emails, les documents PowerPoint...etc.
Le Text Mining est utilisé pour classer des documents, réaliser des résumés de synthèse
automatique
ou encore pour assister la veille stratégique ou technologique selon des pistes de recherches
prédéfinies.
Le texte contient beaucoup d’information, mais de manière non structuré (Pas de matrice).
Ce qui rend une analyse automatique très difficile. L’application des algorithmes
d’apprentissage automatique est impossible dans l’état actuel.
Une étape est donc essentielle pour passer du texte libre à un vecteur représentatif du
texte.
L’ensemble des vecteurs (l’ensemble des textes) constituera notre matrice.
Les applications de classification automatique de texte qui constitueront votre TP sont
nombreuses :
1. Déterminer la langue d’un texte court (arabe, anglais, français,…).
2. Déterminer le sujet (domaine) d’un texte (sport, économique, culturel,...)
3. Déterminer l’auteur d’un texte (auteur1, auteur2, auteur3)
4. Déterminer le sentiment exprimé dans le texte (positif, neutre, négatif)
5. …
Les attributs considérés jusqu’à maintenant, étaient soit de type numérique ou de type
nominal.
Un attribut contenant du texte est de type string (ressemble à du nominal mais avec un
nombre non spécifié de valeurs possibles).
Avec une matrice contenant un attribut de type string, et un attribut spécifiant sa classe (2
attributs en tout, vous ne pouvez pas faire grand-chose.
Donc, nous allons formaliser les textes pour les rendre compréhensible par la machine ( ?) et
utilisables par les algorithmes d’apprentissage automatique.
On imaginera la décomposition du texte en paragraphes, phrases, suite de caractères ou
même caractères tout simplement.

1
Mais, c’est généralement le mot ou la séquence de caractères qui est l’unité fondamentale
(le terme, l’attribut) utilisé pour la représentation vectorielle du texte.
Chaque texte est représenté par les mots qu’il contient sans tenir de leur ordre d’apparition
( ?).
Car, ils expriment en quelque sorte son contenu, bien sur l’ordre perdu est important.
On a une représentation de type sac de mots (Bag of Words) avec ces avantages et ces
inconvénients.
Cette représentation exclue toute analyse grammaticale et toute notion de distance entre
les mots.
Elle nécessite cependant la délimitation des mots, ce qui n’est pas évident surtout pour
certaine langue (Allemand, Arabe ( ?))
Cette phase (Tokenisation) retiendra les suites de caracteres alphanumérique contigüe
délimitées par des blancs ou ponctuation comme terme. Le point peut être difficile à gérer.
Pour n’importe laquelle des applications mentionnées plus haut, chaque ligne de la matrice
originale ou de la matrice qu’on cherche à obtenir contiendra une instance, un exemple du
concept traité.
Pour la représentation sac de mots, chaque attribut correspond à un terme.
On aura autant d’attributs qu’il y’a de mots dans l’ensemble des instances (des textes).
Un document (texte) devient un vecteur (terme, fréquence).
Face au risque, d’avoir une matrice gigantesque nuisible pour les algorithmes
d’apprentissages automatiques et donc la qualité de leur classification, une réduction de
cette matrice s’impose.
Des prétraitements sont effectués sur le texte pour éliminer les mots sans grands apport
informationnel (?), et pour réduire le nombre de termes représentatifs pour les textes.
On commencera par réécrire le document en minuscule tout simplement.
On éliminera aussi : _ Les caractères de séparations _ les signes de ponctuations _les mots
vides
Les mots vides (Stop words) sont les articles, les prépositions, les mots de liaisons, les
déterminants, , les conjonctions, les pronoms et les verbes auxiliaires etc..
Ils constituent une grande partie des mots d’un texte, mais sont faiblement informatifs, sur
le sens d’un texte. Présent sur l’ensemble des textes, ils sont généralement non
discriminatoires en comparaison avec d’autres termes.
Pour la langue Française, nous avons par exemple les articles « le », « la », «les », les mots de
liaison « ainsi », « toutefois » etc.

2
Ces termes très fréquents peuvent être écartés du corpus (l’ensemble des textes,
documents) pour en réduire la dimension de la matrice (nombre d’attributs).
D’autres traitements de type morphologique sur les mots sont nécessaires pour réduire
encore plus la dimensionnalité la matrice représentative et améliorer les performances des
algorithmes de classification.
Inutile d’avoir un attribut associé à chaque variation d’un mot (singulier, pluriel, féminin,
masculin pour un nom par exemple, différentes conjugaisons d’un verbe).
Le traitement morphologique consiste à effectuer un traitement au niveau de chacun des
mots en fonction de leurs variations morphologiques : flexion, dérivation, composition afin
de rassembler les mots de sens identiques.
Donc, le but est de regrouper par exemple les termes «manger», «mangent», mangées,…
Ou les termes fort, forts, forte, fortes car ils disent la même chose.

Ces traitements morphologiques sont :


La lemmatisation remplace les mots par leur lemme. Ce principe permet de prendre en
compte les variations flexionnelles (singulier/pluriel, conjugaisons,…) ou dérivationnelles
(substantifs, verbes, adjectifs,…) en regroupant sous le même terme tous les mots de la
même famille.
La lemmatisation est donc une tâche compliquée à mettre en œuvre. Elle s’appuie sur des
outils de TALN (traitement automatique du langage naturel).
Elle nécessite beaucoup de ressources linguistiques (dictionnaires, règles de dérivation,
etc..).
Souvent, les résultats de cette opération contiennent des erreurs à cause des problèmes de
polysémie (ambiguïté) et d’autres.

Le stemming ou la désuffixation remplace les mots par leur stem ; les mots qui ont la même
racine seront représentés par leur racine.
L’extraction des stems se fait par la technique de racinisation (ou stemming) qui utilise
algorithmes basées sur des règles de remplacement de chaînes de caractères pour
supprimer les suffixes les plus utilisés.
Par exemple, le mot “chercher” a pour radical ou stemme “cherch” tout comme le mot
chercheur. Pour l’exemple de “frontal“, le radical ou stemme est “front” tout comme
frontière.
Néanmoins, sa précision et sa qualité sont naturellement faibles, du fait qu’elle ne gère pas
les nombreuses exceptions des règles de dérivations.
La Conceptualisation consiste à représenter le document sous forme d’un ensemble de
concepts, ces concepts peuvent être capturés en utilisant les Ontologies. Cette méthode a

3
comme avantage de réduire l’espace de travail car les mots qui sont synonymes partagent
au moins un concept qui les représentera. Cependant, l’inconvénient majeur de cette
représentation est qu’il n’existe pas des bases lexicales fiables pour toutes les langues

Donc, on passe d’une représentation (matrice) à deux attributs (le texte de type string et sa
classe de type symbolique) à une représentation (matrice) avec autant d’attribut (de type
numérique) qu’il y’ a de termes différents dans l’ensemble des textes (corpus).
Comment pondérer ces termes (dans la matrice) ?
L’idée sous-jacente est : Les termes importants doivent avoir un poids forts.
La pondération des termes permet de mesurer l’importance d’un terme dans un document.
Cette importance est souvent calculée à partir de considérations et interprétations
statistiques. L’objectif est de trouver les termes qui représentent le mieux le contenu d’un
document.
Un choix plus simple, dit « binaire », est de mettre 1 si le terme apparaît dans le document
et 0 sinon.
Les méthodes les plus populaires sont :
Le TF (terme frequency) : prenons compte de combien de fois apparait le terme dans le
texte.
L’idée sous-jacente est que plus un terme est fréquent dans un document plus il est
important dans la description (représentation de ce document.
Exemple de TF :
- freq(t,d) (nbre d’occurrence du terme t dans le document d
- 1+log(freq(t,d))
- …
On normalisera logarithmiquement la fréquence brute pour amortir les écarts. Une
normalisation courante pour prendre en compte la longueur du document est de normaliser
par la fréquence brute maximale du document.

Une mesure de pondération plus fréquente est le TF-IDF qui logiquement tiendra compte de
la fréquence du document dans l’ensemble des documents.

IDF (Inverse Document Frequency) la fréquence du terme dans la collection (corpus).


La fréquence inverse de document (inverse document frequency) est une mesure de
l'importance du terme dans l'ensemble du corpus.

Dans le schéma TF-IDF, elle vise à donner un poids plus important aux termes les moins
fréquents, considérés comme plus discriminants.

Exemple de IDF :

4
- log(N/nt)
- log((N-nt)/nt)
N : le nombre de documents de la collection
nt : le nombre de document contenant t
Ce qui donne pour TF-IDF par exemple : freq(t,d)* log(N/nt)

IMPORTANT :
Le TP 4 « Classification de texte » permettra de revenir sur l’ensemble
de ces notions et de les clarifier. Notre outil WEKA avec la
fonctionnalité “StringToWordVector” vous permettra d’expérimenter
tous ces notions et concepts.

Vous aimerez peut-être aussi