Cours le traitement morphologique (Codage des textes), tutoriel & guide de travaux pratiques en pdf.
Le texte
La numérisation est une opération qui s’est élargie pour atteindre toutes formes de documents et notamment les textes, et ce dans le but de leur exploitation sur les réseaux. Cet élargissement a entraîné derrière lui beaucoup de travaux qui ont un rapport surtout avec le formatage et la normalisation des textes qui ont été développés pour être à la fois rapide et efficace suite au développement de l’Internet.
Depuis les débuts de la numérisation des données textuelles, le texte a été considéré, et c’est encore vrai aujourd’hui dans la plupart des cas, comme tout simplement une séquence de caractères. Ces caractères peuvent être représentés dans différents espaces de codage, le plus courant étant le codage ASCII admettant 256 caractères différents, mais en dépit ce codage ne prenait pas en charge les langues comme l’arabe ou le chinois. Afin de pouvoir représenter ces langues, différentes normes de codages sont crées et plus largement utilisées aujourd’hui comme la norme UNICODE qui permet la représentation de 65536 caractères.
Pour la plupart des langues (occidentales et orientales font partie), l’espace de codage au niveau caractère n’est pas un espace très informatif car un caractère seul ne présente pas une information sémantique riche. Un texte est plutôt considéré comme une séquence de mots (un mot lui même étant une séquence de caractères) et représenté dans un espace de mots dont la dimension est plus grande que celle du caractère (Le nombre de caractères possibles est limité mais en revanche le nombre de mots qu’on peut avoir est énorme), mais dont chaque dimension est beaucoup plus informative.
Ainsi la représentation informatique de ces textes nécessite un traitement spécifique.
Mais Très vite, les méthodes de se sont heurtées au fait qu’un texte n’est pas un sac dans lequel seraient mélangées en vrac ses propres éléments. Le moins qu’on puisse dire sur un texte qu’il est une chaîne linéaire, donc un espace ordonné. (« Voile du bateau » et « Bateau à voile » ont des sens complètement différents).
Evoquer la composition d’un texte fait appel à deux définitions de la composition : il s’agit à la fois de déterminer les unités qui vont constituer le texte, tels les atomes qui composent les molécules, et de constituer un texte c’est-à-dire de distribuer, d’organiser ces unités afin d’atteindre certaines idées, comme une molécule qui possède certaines propriétés en raison de sa structure.
Plusieurs approches de représentation dans cet espace sont proposées dans la littérature. Nous détaillons par la suite ces différentes représentations.
Prétraitements
Nous allons aborder ultérieurement les différentes méthodes de représentation des documents. Ces représentations sont toutes effectuées à base de mots qui sont eux-mêmes une séquence de caractères. Il est donc nécessaire d’effectuer, au préalable du codage d’un document dans un espace de mots, une transformation permettant le passage de l’espace du caractère à un espace de mots.
Le prétraitement des textes est une phase capitale du processus de classification, puisque la connaissance imprécise de la population peut faire échouer l’opération.
Après la première opération que doit effectuer un système de classification à savoir la reconnaissance des termes utilisés, nous devons expurger le plus possible les informations inutiles des documents afin que les connaissances gardées soient aussi pertinentes qu’il se peut. En effet dans les documents textuels de nombreux mots apportent peu (voir aucune) d’informations sur le document concerné. Les algorithmes dits de ”Stop Words” s’occupent de les éliminer. Un autre traitement nommé ”Stemming” permet également de simplifier les textes tout en augmentant leurs caractères informatifs comme d’autres méthodes qui proposent de supprimer des mots de faible importance.
Toutes ces transformations et méthodes font partie de ce qu’on appelle le prétraitement. Plusieurs d’entre elles sont spécifiques à la langue des documents (on ne fait pas le même type de prétraitement pour des documents écrits en anglais qu’en français ou encore en arabe).
Le prétraitement est généralement effectué en six étapes séquentielles :
1. La segmentation
2. Suppression des mots fréquents
3. Suppression des mots rares
4. Le traitement morphologique
5. Le traitement syntaxique
6. Le traitement sémantique
La segmentation
La première opération que doit effectuer un système de classification est la reconnaissance des termes utilisés. La segmentation consiste à découper la séquence des caractères afin de regrouper les caractères formant un même mot.
Habituellement, cette étape permet d’isoler les ponctuations (reconnaissance des fins de phrase ou de paragraphe), ensuite découper les séquences de caractères en fonction de la présence ou l’absence de caractères de séparation (de type « espace », « tabulation » ou « retour à la ligne »), puis regrouper les chiffres pour former des nombres (reconnaissance éventuelle des dates), de reconnaitre les mots composés.
Eventuellement, nous pouvons unifier les écritures en lettre majuscules ou en lettres minuscules avant ou après les opérations déjà indiquées.
C’est un traitement de surface assez simple dans le principe, mais particulièrement difficile à réaliser de manière exacte sur les documents ayant beaucoup de bruits et des représentations assez variées.
Notons que pour des corpus multilingues, une technique de segmentation moins intuitive a été proposée : la segmentation en n-grammes.
Suppression des mots fréquents ou ÉLIMINATION DES ”MOTS OUTILS”
Les mots qui apparaissent le plus souvent dans un corpus sont généralement les mots grammaticaux, mots vides (empty words) ou mots outils (stop words) : les articles, les prépositions, les mots de liaisons, les déterminants, les adverbes, les adjectifs indéfinis, les conjonctions, les pronoms et les verbes auxiliaires etc.., qui constituent une grande part des mots d’un texte, mais malheureusement sont faiblement informatifs, sur le sens d’un texte puisqu’ils sont présents sur l’ensemble des textes.
A titre d’exemple on peut citer en dans la langue Française, le cas des articles « le », « la », « les » ou de certains mots de liaison « ainsi », « toutefois » etc..
Ou en Anglais : Les prépositions (about, after,through.), les déterminants (the, no, one.), les conjonctions (though, and, or.), les adverbes (above,almost, yet.), les pronoms (who, another, few.) et certains verbes (are, can, have, may,will.).
Et en Arabe :
Ces termes très fréquents peuvent être écartés du corpus pour en réduire la dimension. Cette possibilité de réduire la taille des entrées de l’index en éliminant les mots vides s’explique par le fait que ces termes sont présents dans la quasitotalité des documents et ont donc un pouvoir discriminant faible en comparaison avec d’autres termes.
D’après la loi de Zipf (Voir Section 2.6.1.4). Leur élimination lors d’un pré-traitement du document permet par la suite de gagner beaucoup de temps lors de la modélisation et l’analyse du document.
Ces mots doivent être supprimés de la représentation des textes pour deux raisons :
• D’un point de vue linguistique, ces mots ne comportent que très peu d’informations. La présence ou l’absence de ces mots n’aident pas à deviner le sens d’un texte. Pour cette raison, ils sont communément appelés « mots vides ».
• d’un point de vue statistique, ces mots se retrouvent sur l’ensemble des textes sans aucune discrimination et ne sont d’aucune aide pour la classification.
Une répartition des mots outils par rapport les mots utiles dans un corpus est représentée dans la figure 2.1.
Figure 2.1 : Répartition des mots utiles et des mots vides dans un corpus
L’élimination systématique du corpus des mots vides peut se faire par l’intermédiaire d’une liste prédéfinie de mots pour chacune des langues étudiées.
Cependant, l’établissement d’une telle liste peut poser des problèmes. D’une part, il n’est pas facile de déterminer le nombre de mots exacts qu’il faut inclure dans cette liste. D’autre part, cette liste est intimement liée à la langue utilisée et n’est donc pas transposable directement à une autre langue.
Par exemple Sahami.M dans dans sa thése de PHD (Sahami, 1999) définit une liste de 570 mots courant en anglais, plus une liste de 100 mots très fréquents sur le web.
Comme on peut les écarter en fixant un seuil maximal de fréquence, pour ne pas sélectionner les mots présents dans une grande partie du corpus.
Une autre manière d’éliminer les mots vides d’un texte passe par l’utilisation d’un étiqueteur syntaxique (Part of Speech Tagger) – Les mots sont écartés en fonction de leur étiquette syntaxique sans avoir besoin de liste prédéfinie.
Enfin, un dernier point concernant les opérateurs de négation (ex : pas, ne, non) qui peuvent être supprimés sans gravité. Dans un contexte de classification de textes, une notion affectée par un opérateur de négation reste inchangée contrairement à une négation dans un contexte de recherche d’information qui peut être déterminante pour les résultats attendus. Dans le cadre d’une recherche documentaire, le but à atteindre pour l’utilisateur de rechercher
l’information en lien avec la requête. En revanche, dans le cade d’une classification de textes en plusieurs catégories, les opérateurs de négation ne vont guère influencer les résultats puisque l’on cherche à distinguer les thèmes les uns des autres. Par exemple les deux phrases suivantes : il est malade et il n’est pas malade traitent toutes les deux le même sujet de santé, et le terme malade, avec ou sans négation, est un terme décrivant cette notion de santé. En évidence, elles ont un sens opposé mais sont toutes liées au sujet de santé.
Suppression des mots rares
En général, les auteurs cherchent également à supprimer les mots rares, qui n’apparaissent qu’une ou deux fois sur un corpus, afin de réduire de façon appréciable la dimension des vecteurs utilisés pour représenter les textes, puisque, d’après la loi de Zipf (Voir Section 2.6.1.3), ces mots rares sont très nombreux.
D’un point de vue linguistique, la suppression de ces mots n’est pas nécessairement justifiée : certains mots peuvent être très rares, mais très informatifs. Néanmoins, ces mots ne peuvent pas être utilisés par des méthodes à bases d’apprentissage du fait de leur très faible fréquence ;
il n’est pas possible de construire de statistiques fiables à partir d’une ou deux occurrences ; Une des méthodes communément retenues pour supprimer ces mots consiste à ne considérer que les mots dont la fréquence totale est supérieure à un seuil fixé préalablement.
Notons enfin, que les mots ne contenant qu’une seule lettre sont généralement écartés pour les mêmes raisons précédentes, comme par exemple le mot « D » dans la « Vitamine D » ou le mot « C » dans le « langage C ».
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» et «mangent» ou les termes « cheval » et « chevaux » car ils ont la même signification. L’intérêt de cette opération est la réduction des dimensionnalités de l’espace de codage des textes afin d’améliorer davantage la performance du système de classification en matière d’espace mémoire et vitesse de traitement.
Plusieurs traitements morphologiques existent :
¬ Le stemming ou la désuffixation regroupe sous un même terme (stem) les mots qui ont la même racine. L’extraction des stems se fait par la technique de racinisation (ou stemming) qui utilise à la place des dictionnaires, des algorithmes simples basées sur des règles de remplacement de chaînes de caractères pour supprimer les suffixes les plus utilisés.
Le stemming est un traitement linguistique moins approfondie que la lemmatisation, ayant deux avantages : Plu rapide que la lemmatisation (algorithmes simples ne faisant pas référence aux dictionnaires et règles de dérivation) et la possibilité de traiter les mots inconnus sans traitement spécifique. (Clech, 2004)
Néanmoins, sa précision et sa qualité sont naturellement inférieures, du fait qu’elle ne gère que les règles principales et ne peut pas prendre en compte les nombreuses exceptions des règles de dérivations. Par exemple, en français l’une des règles préconise de supprimer le « e » final de chaque mot, le mot « fraise » est alors transformé en « frais » ce qui suppose une relation entre les deux mots qui n’existe pas. Qui fait de cette opération dépendante de la langue, nécessitant une adaptation pour chaque langue utilisée.
Plusieurs stemmers ont été développés pour déterminer les racines lexicales, l’algorithme le plus couramment utilisé pour la langue anglaise est celle de PORTER (Porter, 1980).
¬ La lemmatisation conserve, non pas les mots eux-mêmes, mais leur racine ou 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 et donc d’améliorer la classification.
La lemmatisation est donc une tâche plus compliquée à mettre en œuvre que la recherche de racines, puisqu’elle elle s’appuie sur des outils de TALN, ce qui nécessite beaucoup de ressources linguistiques (dictionnaires, règles de dérivation, etc..). De plus les résultats contiennent encore des erreurs à cause des problèmes de polysémie (ambiguïté) et d’incomplétude des dictionnaires.
Un algorithme efficace, nommé TreeTagger (Schmid, 1994) a été développé pour les langues anglaise, française, allemande et italienne. Cet algorithme utilise des arbres de décision pour effectuer l’analyse grammaticale, puis des fichiers de paramètres spécifiques à chaque langue.
Toutes les études montrent que les performances des systèmes de classification, après lemmatisation, sont plus nettement supérieures à celles avant lemmatisation.