Normalisation des tokens connus altérés et désambiguïsation contextuelle
Normalisation des altérations existantes
Les altérations produisant des tokens connus de nos lexiques peuvent être réalisées volontairement ou non. Dans le premier cas, elles peuvent par exemple être créées dans le but de faire un jeu de mots (« pour respirer un peu d’air vrai » — Gilbert Cesbron) comme évoqué à la section 3.1. Dans le second, il s’agira de fautes grammaticales (« envoyer un colis a une adresse » ou « c es pour quant ? »). Dans notre contexte, c’est principalement ce dernier cas qui nous intéresse.
La création volontaire d’altérations est plus rare et peu représentée dans nos corpus. Elle sera par conséquent ignorée dans ce travail. Rappelons, par ailleurs, que notre but est de proposer une normalisation à la flexion près. Par conséquent, nous ne nous intéressons pas aux erreurs grammaticales flexionnelles (« vous avais donner le mauvais numéro. »).
Afin de mieux cibler les erreurs grammaticales à traiter, nous avons tout d’abord réalisé une rapide étude de corpus nous permettant ainsi de relever les différentes fautes grammaticales 1 attestées dans nos données (section 6.1.1). Nous avons ensuite cherché à détecter automatiquement ces erreurs (section 6.1.2) avant de mettre en place un système de génération de candidats de normalisation (section 6.1.3).
Étude en corpus des fautes grammaticales
L’étude de corpus présentée ci-dessous a été décrite dans (Baranes, 2011). Elle porte uniquement sur les fautes grammaticales et prend en compte notre volonté de travailler sur plusieurs canaux différents (e-mails, forums, réseaux sociaux…). Le corpus étudié a donc été constitué en fonction de l’importance que l’on attribuait à un canal à ce moment et du degré de bruit contenu dans chacun de ces messages. Il est ainsi constitué de :
• 75 e-mails (environ 7500 tokens), • 120 conversations avec un agent virtuel (environ 10000 tokens) 2 , 1. Les termes de fautes et d’erreurs grammaticales seront utilisés sans distinction dans ce chapitre. 2. Corpus composé des questions de l’utilisateur et des réponses de l’agent virtuel horodatées. 152 6. Norm. des tokens connus altérés et désambiguïsation contextuelle • 120 messages provenant de réseaux sociaux (environ 2000 tokens), • 55 messages provenant de sites d’avis (environ 3500 tokens), • 90 messages de forum (environ 5500 tokens).
En moyenne, nous avons trouvé près d’une faute grammaticale tous les deux messages dans les réseaux sociaux et les forums, tous les trois messages dans les e-mails et les avis de satisfaction et tous les cinq messages dans les messages provenant de conversations avec des agents conversationnels. En tout, 148 fautes ont ainsi été annotées. La répartition de ces fautes et de leur type en fonction des différents canaux figure dans le tableau 6.1.
Détection des altérations existantes en contexte
De même que pour les tokens inconnus altérés, nous voulons procéder en trois étapes pour normaliser les fautes grammaticales. Cela suppose de détecter dans un premier temps les tokens qui ont subi une altération en nous appuyant sur leur contexte puis, dans un second temps de générer des candidats de normalisation.
Une des manières de procéder à cette généralisation est par exemple de réappliquer notre système de correction par analogie sur ces tokens possiblement altérés, ce qui permettrait l’induction de candidats de normalisation pour les erreurs grammaticales de proximité clavier, et de rechercher en parallèle les homophones de ce même token pour couvrir aussi les erreurs de proximité clavier.
Enfin, dans un dernier temps, il est nécessaire de sélectionner le ou les candidats plus pertinents en nous appuyant sur leur contexte. Afin de répondre à la première de ces trois étapes, nous voulions mettre en place un système capable de détecter ce type d’altérations automatiquement en s’appuyant sur le contexte. Notre intuition est la suivante : si un token connu est altéré, alors la probabilité qu’il se trouve à cette position dans une séquence avec ce contexte est faible. Dès lors, nous avons supposé possible sa détection par exemple à l’aide d’un modèle de langage.
Pour ce faire, nous avons tenté d’utiliser notre système contextuel qui s’appuie sur des modèles de langue (décrit ci-dessous en section 6.2) afin de repérer, à l’aide de leur pondération, les fautes grammaticales. Cette expérience ne s’est toutefois pas révélée concluante. En effet, les scores proposés par notre système n’étaient pas constants. Bien que ce système parvienne généralement à mieux pondérer une analyse valide plutôt qu’une erronée, les scores qu’il propose ne semblent pas significatifs de la qualité orthographique de la phrase traitée.
Un token bien orthographié pouvait ainsi être doté d’un même score qu’un autre altéré. Cela peut s’expliquer par le fait que nous n’avons pu trouver de corpus d’entraînement assez proche des données que nous voulons traiter. Cette technique n’étant pas concluante, nous avons abandonné cette première étape afin de nous concentrer sur la seconde, la génération de candidats de normalisation.
Toutefois en mettant de côté cette première étape, nous sommes dans l’obligation de considérer tous les tokens connus de notre lexique de référence comme potentiellement altérés. Or, si nous tentons de normaliser toutes les erreurs grammaticales possibles, cette opération peut se révéler très coûteuse . C’est pourquoi nous nous sommes concentrée dans la suite de ce travail sur les fautes grammaticales les plus fréquentes