Table des matières
À la lumière de ce qui a été introduit dans les deux chapitres précédents sur la catégorisation automatique de textes, on se rend compte que plusieurs éléments sont impliqués dans le processus, que ce soit le mode de représentation des documents, la méthode de sélection d’attributs ou l’algorithme d’apprentissage mis en place. Indépendamment de ces facteurs, une chose ne change pourtant pas : un corpus d’entraînement est essentiel. Et comme il en a déjà été question, une des difficultés rencontrées lors de la création d’un classificateur automatique de textes est la cueillette d’un grand nombre de documents déjà classés pour constituer ce corpus d’entraînement. Il se trouve que plus ils sont entraînés sur des corpus de textes imposants, plus les classificateurs ont l’opportunité de bien performer lors de la classification de nouveaux documents, c’est-à-dire de produire une classification qui ressemble à celle qu’aurait produite un humain. Parallèlement à ce besoin de documents libellés qui sont pourtant coûteux à obtenir, les textes non étiquetés, non classés, sont disponibles en beaucoup plus grand nombre. Alors, pourquoi ne pas essayer d’utiliser ces derniers pour améliorer la performance des classificateurs ? Car on sait que, même si ces textes non étiquetés ne permettent pas directement de retracer les liens entre les mots et les catégories, ils contiennent de l’information pertinente sur les liens qu’entretiennent les mots entre eux. Dans la même optique, à défaut d’utiliser des documents non libellés, une autre option envisageable est de fournir à un classificateur des connaissances extraites d’un lexique. Bref, ce chapitre apportera d’abord une réflexion sur le coût d’étiquetage des documents pour ensuite discuter de quelques propositions faites dans le passé pour qu’un classificateur puisse tirer profit de connaissances extérieures à son ensemble d’entraînement, soit à partir d’un lexique ou directement à partir de textes non libellés.
Dans un monde idéal, il serait à coup sûr très intéressant de pouvoir déterminer avec précision le coût d’étiquetage des documents d’entraînement, le coût de la constitution du corpus d’entraînement. De combien de temps a besoin un humain pour associer un texte à une catégorie ? En pratique, il s’agit d’une question difficile à répondre. Assurément, plusieurs variables influencent le phénomène et les lignes qui suivent porteront sur certaines d’entre elles.
Sans doute qu’une grande partie du temps consommé pour catégoriser un texte est consacré à sa lecture, puis possiblement à sa relecture. On peut aussi imaginer que la longueur des textes à catégoriser est assez déterminante du temps qui va être requis pour cette activité, et que la vitesse de lecture varie d’une personne à une autre. Une fois cette étape accomplie, il faut déterminer à quelle(s) catégorie(s) ce texte appartient. Au temps de réflexion qui s’impose s’ajoute, si nécessaire, le temps de se référer à la description des catégories et éventuellement de consulter d’autres textes préalablement associés à certaines classes, pour valider la décision. D’autres facteurs interviennent également comme, entre autres, l’homogénéité des textes appartenant à une même catégorie. En effet, si tous les textes portant une étiquette donnée se ressemblent beaucoup (du point de vue de la forme ou du vocabulaire par exemple), il devient plus facile de les reconnaître rapidement. Également, on peut supposer que le style littéraire des textes influence à un certain niveau le temps requis pour en saisir le sens et en déterminer la catégorie. Il faut finalement remarquer que l’ensemble de catégories possibles fait une différence : plus il y a de classes différentes, autrement dit plus il y a d’étiquettes possibles pour un texte donné, plus il est difficile de faire un choix parmi celles-ci. Aussi, plus la sémantique des catégories est précise, fine, détaillée, plus il faut faire attention avant d’y associer un document. À cet égard, pensons à une situation où il faudrait différencier des textes appartenant soit à la catégorie «sciences naturelles» , soit à la catégorie «sciences humaines» . Cette tâche est probablement plus aisée que celle de distinguer des textes appartenant à l’une ou l’autre des catégories «biochimie» , «biologie» et «médecine» .
Une fois qu’un premier étiquetage a été effectué, il peut arriver, dépendamment de l’importance et de l’aspect critique de l’application, qu’une étape de révision soit mise en place, menant éventuellement lieu à des corrections. Pour être plus pertinente, la révision implique vraisemblablement un nouvel intervenant. Voilà une étape dont le temps s’additionne aux temps précédents. Mentionnons pour terminer cette discussion un autre facteur influençant le temps requis pour étiqueter des documents : le degré d’expertise de l’humain impliqué. Effectivement, les premiers textes qu’une personne classe vont probablement lui prendre plus de temps, demanderont une plus grande attention lors de la révision et contiendront potentiellement plus d’erreurs.
Il ne faut pas oublier non plus que lors de la création d’un corpus pour une nouvelle application, à partir de zéro, il est nécessaire de consacrer du temps à l’élaboration de la liste de catégories possibles pour les documents. Il s’agit d’une étape assez importante qui s’apparente à l’ingénierie d’une ontologie[6]. Le tout se doit d’être cohérent, de couvrir tous les cas possibles, de se situer à un niveau de détail adéquat par rapport à l’application visée. Bref, cette tâche consistant à choisir l’ensemble de catégories consomme un temps qui vient s’ajouter à celui de l’étiquetage en tant que tel.
En somme, on voit qu’un grand nombre de variables influencent le coût d’étiquetage. Il apparaît donc difficile de l’évaluer a priori, analytiquement. Par contre, après coup, une fois qu’un corpus a été mis au point, il est possible de regarder en arrière pour constater le coût effectif qui a été engendré. À ce sujet, les données publiées sont rares. L’agence de presse Reuters, qui classe les nouvelles qu’elle diffuse, a rendu disponible pour la recherche des collections de textes catégorisés. Plusieurs versions de ces collections ont été utilisées par un grand nombre de chercheurs dans le domaine de la catégorisation automatique de textes. Certains chiffres intéressants ont été obtenus de l’organisation et sont présentés dans [LYRL04]. Dans les années 1996-1997, Reuters a produit un peu plus de 800 000 nouvelles en anglais par année. Si l’on ajoute aux articles écrits par les journalistes de l’agence ceux provenant d’autres sources, on arrive à un total de 5.5 millions de textes anglais par année à catégoriser. À un moment, l’organisation employait 90 personnes dédiées à l’étiquetage de ces documents. Pour le corpus RCV1[7], qui comprend les 800 000 documents de l’agence, l’estimation du coût de l’étiquetage est de 12 années-personnes.
La discussion qui précède permet de constater qu’il est en effet coûteux de construire un corpus d’entraînement. Force est aussi d’admettre qu’il y a un besoin pour ceux-ci. En effet, les collections de textes qui existent déjà comportent certaines faiblesses, comme le manque de documents, des assignations de catégories incomplètes ou incohérentes et une disponibilité limitée. De toute façon, même si les corpus étaient parfaits, il y aurait toujours un intérêt pour en avoir des nouveaux. Le phénomène de sur-apprentissage qui se produit quand un algorithme d’apprentissage modifie ses paramètres en fonction des propriétés accidentelles d’un ensemble d’entraînement peut se produire aussi à une autre échelle. Une communauté de chercheurs peut sur-apprendre en raffinant les algorithmes en les roulant constamment sur les mêmes ensembles de données existants. La vérification qu’un véritable progrès est acquis ne peut être vraiment faite qu’en effectuant des tests sur de nouvelles collections de test [LYRL04].
Ces remarques font plutôt référence à des considérations relatives à la recherche dans le domaine : des corpus de textes libellés sont nécessaires pour mettre au point et pour tester de nouveaux algorithmes d’apprentissage. C’est un premier aspect, mais le problème se fait peut-être encore plus sentir lorsque vient le temps d’appliquer dans une situation concrète ces algorithmes. Il est alors nécessaire de soumettre au classificateur des exemples d’entraînement représentatifs de l’application concernée. Un corpus est encore une fois nécessaire. Dépendamment des circonstances, les ressources ne sont pas toujours disponibles pour permettre la création d’un corpus suffisamment consistant pour conférer au classificateur la capacité d’accomplir sa tâche de façon satisfaisante.
Donc, pour toutes les raisons mentionnées précédemment, une question importante mérite d’être étudiée : quelles autres sources d’information pourraient réduire le besoin de textes libellés ? Plusieurs travaux ont porté sur des tentatives d’intégrer des connaissances linguistiques ou lexicales à des classificateurs automatiques de textes. Des techniques de résumé automatique ont été appliquées pour évaluer l’importance des phrases [KPS02]. Aussi, des techniques de lissage, développées dans le cadre des modèles de langue n-grammes, ont été employées pour calculer la pondération d’attributs [Aiz01]. Par ailleurs, [BMP01] ont profité de l’étiquetage lexical, produisant de l’information concernant les parties du discours, pour caractériser les attributs des textes. Il s’agit là de quelques exemples parmi une multitude de tentatives qui, en général, n’ont pas obtenu le succès escompté. Certains travaux ont permis de hausser légèrement la performance d’un classificateur sur une tâche donnée, mais, globalement, aucune approche réellement concluante ne s’est démarquée.
Dans cette lignée, un certain nombre de chercheurs se sont penchés sur le lexique WordNet[8] et ont cherché une façon efficace de l’exploiter pour améliorer les performances de classificateurs de textes. WordNet est une ontologie d’héritages lexicaux en ligne dans laquelle les mots sont regroupés au sein de groupes de synonymes appelés «synsets» . Chacun de ces groupes représente un concept lexical sous-jacent. Ces groupes sont reliés entre eux par différents types de liens (hyperonymie[9], méronymie[10], etc.), le tout formant un graphe. Cet outil, ayant pour objectif de représenter des aspects sémantiques d’un lexique, a vu le jour il y a plusieurs années et a été développé petit à petit, en partie manuellement, en partie de façon automatisée. Comme il contient beaucoup d’informations et différents types d’informations (près de 150 000 mots à l’heure actuelle), on peut imaginer plusieurs façons de mettre à profit WordNet en catégorisation automatique de textes. À la base, l’idée est que plus un système est informé, mieux il devrait performer.
Une des propositions qui a été faite pour intégrer les connaissances lexicales de WordNet est la suivante : construire deux classificateurs indépendants, l’un d’eux étant tout simplement un classificateur linéaire bâti à partir de l’information puisée dans WordNet et l’autre étant appris à partir d’un ensemble d’entraînement et d’un algorithme d’apprentissage classique. Un classificateur final est entraîné sur un autre ensemble d’entraînement, recevant en entrée les sorties des deux précédents classificateurs. Il s’agit en fait d’une adaptation d’un schéma de méta-apprentissage appelé «Stacked Generalization» [GRLVV02]. Dans ce cadre, le classificateur basé sur WordNet fonctionne de la manière suivante. D’abord, les documents sont représentés par des vecteurs de poids TFIDF. Ensuite, pour chaque nom (ou étiquette) de catégorie dans l’ensemble d’entraînement, une série de synonymes est extraite de WordNet manuellement. Le classificateur assigne un document à une catégorie si la similarité cosinusoïdale[11] entre les deux (entre la représentation du document et la liste de synonymes du nom de la catégorie) dépasse un certain seuil, appris par validation croisée sur l’ensemble d’entraînement. La logique derrière la «Stacked Generalization» est que différents algorithmes d’apprentissage fournissent des explications différentes, mais complémentaires à propos des données. Avec cette approche, la combinaison des prédictions des classificateurs est faite selon le degré de confiance envers chacun. En d’autres mots, le classificateur de second niveau apprend à quel degré il peut faire confiance à tel ou tel classificateur de premier niveau, selon les entrées reçues. Les expérimentations pour tester cette approche n’ont pas permis de démontrer clairement son efficacité. Des hausses de quelques points en termes de mesure F1 ont été obtenus suite à l’intégration de Wordnet à certains types de classificateurs, mais, pour d’autres, rien de positif n’est ressorti. Une observation qui a été faite : les informations provenant de WordNet ont été particulièrement utiles dans les situations où une catégorie présentait peu de documents d’entraînement.
Plusieurs autres façons d’utiliser l’information contenue dans le lexique Wordnet pour assister la classification automatique de textes ont été imaginées. Par exemple, on a appliqué l’ «apprentisseur» de règles RIPPER sur des textes représentés par une liste de «synsets» construite de la façon suivante. Pour chaque nom ou verbe du texte, on fait une requête dans Wordnet pour obtenir une liste globale des «synsets» correspondants et de leurs hyperonymes. Une fois la liste constituée, on conserve seulement les «synsets» les plus fréquents dans le corpus. Finalement, on associe une valeur numérique à ces «synsets» calculée à partir de leur densité, c’est-à-dire leur nombre d’occurrences dans un document par rapport à la taille du document. L’algorithme RIPPER tente ensuite d’apprendre des règles de classification à partir de cette représentation. Un paramètre problématique dans cette méthode est la hauteur jusqu’à laquelle on doit remonter dans la chaîne d’hyperonymes, jusqu’à quel niveau de généralisation on doit se rendre. Cette valeur semble être difficile à fixer puisque dépendamment des domaines, la pertinence d’hyperonymes très généraux varie [Cha01].
Une autre approche, qui s’éloigne un peu de l’apprentissage automatique, ne comporte pas de phase d’entraînement et se base encore davantage sur le lexique Wordnet. Dans le même sens que la précédente, elle commence par générer toutes les chaînes d’hyperonymes possibles pour chaque nom du texte. Ensuite, toutes les chaînes qui partagent un ou plusieurs «synsets» communs sont fusionnées. Celles restantes sont enfin évaluées selon leur fréquence dans le document et leur degré de généralité (leur profondeur dans la chaîne). Les catégories associées au texte sont finalement choisies parmi les concepts ayant obtenu les plus hauts scores [Cha01].
Les deux dernières stratégies présentées et mettant à profit le lexique Wordnet ont, selon leurs créateurs, donné de bons résultats, mais il semble que les expériences menées n’étaient pas à très grande échelle [Cha01]. De plus, ces méthodes n’ont pas été évaluées de façon à pouvoir les comparer clairement et facilement à d’autres. Malgré cela, elles prouvent que l’utilisation des connaissances extérieures aux documents à classer peut être bénéfique pour la classification automatique de textes. Elles donnent également des pistes pour intégrer le lexique Wordnet à ce processus.
Wordnet représente une source possible d’information extérieure aux documents d’entraînement. Mais une autre source potentielle de connaissances utiles à la classification réside dans les textes non libellés. Il est certain que ces documents ne fournissent pas d’indices au classificateur lui permettant de généraliser encore mieux les liens existants entre les mots et la catégorie d’un texte. De toute façon, l’idée n’est pas de passer en mode d’apprentissage non supervisé ou de faire du regroupement ( «clustering» ) de textes en ne tenant plus du tout compte des documents libellés. La proposition est plutôt de mettre à profit le nombre limité de textes d’entraînement disponibles, mais d’ajouter à ces documents les textes non classés pour obtenir de l’information supplémentaire. Ce supplément de connaissances est de nature différente. Un texte non associé à une étiquette de catégorie contient tout de même des mots agencés d’une façon semblable à ceux contenus dans les textes libellés. On peut donc y recueillir de l’information sur la distribution de probabilité jointe des mots [NMTM00].
Dans la plupart des cas, recueillir des textes non libellés constitue une tâche très peu coûteuse à réaliser. On sait que de façon générale, le nombre de documents électroniques à notre disposition augmente sans cesse. Il ne suffit que de les rassembler pour les présenter à un classificateur. Notamment, le Web peut constituer facilement une source de tels documents. Par la suite, il suffit de trouver une façon utile d’en tirer profit.
L’approche de co-apprentissage ( «co-training» ) présentée dans [BM98b] classe les documents non libellés à l’aide d’une version préliminaire du classificateur et les ajoute à l’ensemble d’entraînement qui sera exploité pour sa phase finale d’apprentissage. La particularité du co-apprentissage est qu’il est conçu pour s’appliquer quand les données peuvent être représentées sous différents angles. Dans le cas des pages Web par exemple, elles peuvent être décrites par les mots qu’elles contiennent, mais aussi par les hyperliens pointant vers elles. L’idée est donc de créer au départ deux hypothèses apprises respectivement avec l’une et l’autre des représentations des documents, de classer les textes non libellés avec ces hypothèses et d’ajouter les nouveaux exemples à l’ensemble d’entraînement de l’autre hypothèse.
Une autre expérience intéressante a été menée par [NMTM00] pour tenter d’exploiter les documents non libellés. On a entraîné un classificateur bayésien naïf sur des textes étiquetés et non étiquetés, à l’aide de l’algorithme itératif EM ( «Expectation-Maximization» ). Cet algorithme d’estimation de maximum de vraisemblance par itération successive de deux étapes a été introduit par [DLR78]. Il est particulièrement adapté pour les problèmes avec des données incomplètes, ce qui est précisément le cas dans la situation à laquelle on s’intéresse, puisque les textes non libellés sont dépourvus d’étiquettes de classe. De la même façon, un classificateur de type bayésien naïf se prête bien à l’application de l’algorithme EM, étant donné que la tâche d’apprentissage avec ce classificateur devient une estimation des paramètres de la distribution de probabilités ayant généré les données. Sommairement, voici comment se déroule la création de ce classificateur, qui s’effectue en deux temps. La figure 3.1 illustre ce processus. Une première phase d’estimation ( «expectation» ) consiste à générer un classificateur bayésien naïf habituel à partir des documents libellés disponibles. Par la suite, lors de la phase de maximisation ( «maximization» ), on assigne une classe aux documents non libellés en utilisant ce dernier. Puis, on entraîne un nouveau classificateur en utilisant cette fois les deux ensembles de documents. On répète les deux dernières étapes selon le principe de l’escalade ( «hill-climbing» ), jusqu’à ce que le classificateur cesse de s’améliorer. Les résultats obtenus sont positifs : cette méthode a réduit de beaucoup le nombre de documents libellés requis pour obtenir une précision donnée [NMTM00].
Figure 3.1 - Algorithme EM
Un exemple simple va illustrer plus concrètement cette idée. Prenons comme point de départ le fait que les documents d’entraînement d’un classificateur lui ont permis d’associer la présence du mot «guitare» à la catégorie «musique» . Par la suite, l’estimation de la classe d’un grand nombre de documents non libellés permet de constater la présence du mot «mandoline» dans cette même catégorie. Un nouveau classificateur peut alors être considéré, et va dorénavant utiliser ces deux mots comme indicateurs de la catégorie «musique» . Même si le mot «mandoline» , plus rare, n’apparaissait pas dans les documents d’entraînement (ou pas assez significativement), une grande banque de textes non libellés a permis de le relier à une catégorie.
Une autre proposition visant à tirer profit de connaissances extérieures aux documents d’entraînement est d’utiliser la technique qu’est l’indexation sémantique latente. Celle-ci se base sur l’idée qu’il existe une structure sémantique sous-jacente aux données textuelles et que les relations entre les termes et les documents d’un corpus peuvent être décrites dans cette forme de structure sémantique. La figure 3.2 illustre ce phénomène. À la base, on considère une matrice deux dimensions terme/document où chaque entrée correspond à l’absence ou la présence d’un mot dans un document. L’absence d’un mot est représentée par un 0 et la présence d’un mot par une valeur positive correspondant au poids du mot. Cette valeur peut être calculée par diverses méthodes de pondération, semblables à celles utilisées pour la représentation vectorielle[12]. L’objectif de l’indexation sémantique latente est de réduire cette matrice de grande dimension en une matrice qui capturerait mieux les relations entre les documents. La première étape est de calculer la décomposition en valeurs singulières[13] de cette matrice pour obtenir un produit de trois autres matrices TSDT, où la matrice S est diagonale. On ordonne les éléments de la diagonale en ordre croissant et on élimine ensuite les k plus petites valeurs. Les colonnes de T et D correspondantes sont aussi éliminées. Le produit de ces trois nouvelles matrices nous donne une nouvelle matrice représentant les liens entre les termes et les documents, mais dans une dimension moindre. Cette représentation modifiée des documents peut être la base d’un algorithme de classification. Cette matrice concerne les documents d’entraînement, mais il suffit de transposer les nouveaux documents à classer dans cet espace vectoriel en les multipliant par T et S-1. On peut ensuite comparer leur similarité avec les textes d’entraînement pour procéder à la classification. L’indexation sémantique latente a été d’abord développée pour pallier les problèmes de synonymie et de polysémie souvent rencontrés lors du traitement de la langue naturelle. Elle a permis d’obtenir de bons résultats en classification automatique de textes. Cependant, l’inconvénient principal est que la nouvelle représentation des documents devient difficile à interpréter par un humain par la suite [ZH01].
Figure 3.2 - Concepts latents
Cette technique peut facilement être étendue pour tirer profit de documents non classés. La stratégie proposée par [ZH01] (et illustrée à la figure 3.3) est de se servir de l’indexation sémantique latente pour créer un modèle du domaine à l’aide des textes non libellés. En fait, ceux-ci sont utilisés pour construire la matrice réduite, cette étape étant complètement indépendante des étiquettes de catégories. Ensuite, on classe les nouveaux documents en les représentant dans ce nouvel espace vectoriel enrichi puis en les comparant aux documents d’entraînement. L’expérience a donné des résultats supérieurs à l’utilisation de l’indexation sémantique latente classique et une observation intéressante est que les connaissances extérieures se sont avérées plus utiles quand l’ensemble d’entraînement était réduit.
Figure 3.3 - Indexation sémantique latente et catégorisation automatique de textes
Enfin, voici une façon supplémentaire de profiter de documents non libellés. Au chapitre 2, on a vu comment fonctionnait l’algorithme des k-voisins les plus proches : il compare un texte à classer avec les documents d’entraînement, calcule leur similarité et prend en considération les voisins les plus semblables. Dans un tel contexte, [ZH02] ont proposé d’utiliser les textes non étiquetés en tant qu’intermédiaires entre les textes d’entraînement et les nouveaux textes à classer (voir figure 3.4). Autrement dit, un exemple d’entraînement va être placé parmi les voisins les plus proches d’un texte à classer si ce dernier est jugé similaire à un texte non libellé et que ce texte non libellé est jugé similaire à l’exemple d’entraînement. C’est une approche dite de second ordre : on procède en quelque sorte par transitivité, car les documents ne sont pas comparés directement, mais en passant par des intermédiaires.
Figure 3.4 - Utilisation de documents non libellés avec l'algorithme kNN
Ce chapitre a donc mis en évidence le coût élevé associé à la construction d’un ensemble d’entraînement ainsi que la nécessité d’un tel ensemble. Il en résulte que des projets de développement d’applications de catégorisation automatique de textes peuvent voir leur faisabilité compromise. On a pu voir que face au problème, diverses solutions ont été proposées en vue de tirer profit de connaissances extérieures à cet ensemble d’entraînement. Deux principales sources de connaissances ont été exposées : les lexiques et les documents non libellés. Nos travaux se sont penchés sur la deuxième option, avec l’intention d’étudier dans ces textes non étiquetés une forme d’association entre les mots : la cooccurrence. Le chapitre suivant se consacre à la présentation de ce concept.
[6] Une ontologie permet de modéliser un domaine en fournissant un vocabulaire de termes et de relations caractéristiques qui peut être partagé par différents systèmes. C’est un concept très important en ingénierie des connaissances.
[7] Des détails sur ce corpus seront ajoutés au chapitre 6.
[8] Accessible à l’adresse : http://www.cogsci.princeton.edu/~wn/
[9] Hyperonymie : un hyperonyme est un synonyme d’un niveau de généralité immédiatement supérieur (exemple : «animal » est un hyperonyme de «chat» )
[10] Méronymie : relation hiérarchique existant entre deux concepts ou deux signes linguistiques, dans laquelle le premier est une partie d'un tout que constitue le second [Office de la langue française, 2002] (exemple : «doigt» et «main» )
[11] Telle que présentée au chapitre 2.
[12] Voir la section 1.2 à ce sujet.
[13] Technique bien connue en algèbre linéaire permettant de résoudre certains problèmes et d’exposer des propriétés intéressantes de la matrice originale. Autres applications intéressantes : compression d’images, réduction de bruit dans les signaux sonores, etc.