Qu'est-ce que la normalisation de textes ?
Sommaire
Quand est-il nécessaire de normaliser des textes ?
La normalisation de textes consiste à préparer les textes pour effectuer un traitement automatique du contenu de plus haut niveau.
Cette étape est nécessaire lorsque les texte fournis aux outils de traitement du langage proviennent de sources peu fiables quant à la forme du texte, par exemple dans le cas d’enquêtes d’opinions, de documents acquis par reconnaissance optique de caractères ou bien d’environnements logiciels tiers.
Différents traitements de normalisation des textes peuvent être envisagés :
- la mise en cohérence des jeux de caractères
- la correction des fautes d’orthographes et des coquilles
- la reconnaissance de certaines entités nommées
- la segmentation en mots et, éventuellement, en phrases.
Comment traiter les différents jeux de caractères ?
Outre le fait qu’il existe un large éventail d’alphabets, et de familles d’alphabets différents – arabe, cyrillique, latin, idéogrammatiques…, les jeux de caractères peuvent être codés de plusieurs façons différentes au niveau informatique. Les premiers jeux de caractères – ASCII -, ne permettaient de représenter qu’un nombre limité de caractères. Ces 128 caractères se sont révélés insuffisants pour représenter toute la gamme de caractères disponibles. Il a donc été nécessaire d’étendre ces premiers jeux de caractères.
Cependant, ces extensions, en fonction des besoins, et malgré la normalisation au niveau international, ne couvrent pas toutes les mêmes caractères. Cela nuit à la compatibilité entre jeux de caractères, en particulier dans le cas de documents multilingues.
Le cas des caractères en html
Par ailleurs, certains modes de représentation de textes en machine possèdent leurs propres jeux de caractères. C’est le cas du langage HTML – HyperText Markup Language – utilisé pour représenter et transporté les pages sur le Web (cette page, par exemple).
Ainsi, le caractère è est codé par la chaîne de caractères è mais peut également être codé dans le jeu de caractères de la page elle-même.
Comment normaliser les jeux de caractères ?
On le voit, la normalisation des jeux de caractères est un préalable nécessaire à de nombreux traitements informatiques et ne doit pas être négligée lors de la mise en place d’une solution.
choisir un jeu de caractères pour le traitement linguistique
La première chose à faire est de choisir le jeu de caractères à utiliser pour le traitement linguistique, qui doit prendre en compte d’une part les sources de documents disponibles et, d’autre part, les plateformes logicielles sur lesquelles ces traitements seront effectués.
faire converger les sources
Autant que possible, il est souhaitable que l’ensemble de la chaîne de traitements utilise le même jeu de caractères et donc, autant que possible, faire en sorte que les textes soient produits dans le même jeux de caractères que celui utilisé pour le traitement.
convertir les jeux de caractères des documents sources
Il existe un certain nombres d’utilitaires qui effectuent la conversion d’un jeu de caractères à un autre, utilisables dans des petits programmes de traitements. Un programme pourra, par exemple, dans un premier temps, identifier le jeu de caractères dans lequel est écrit le document, puis convertir d’un jeu à l’autre. Comme on l’a vu, il peut y avoir perte d’information en fonction des jeux de caractères utilisés, par exemple lorsque le jeu de caractères cible contient moins de caractères que le jeu source.
cas particulier d’Unicode
Le standard Unicode vise à représenter tous les systèmes d’écriture. Par son universalisme, il tend à s’imposer dans les échanges informatiques modernes. En revanche, il présente au moins deux difficultés:
- il existe trois jeux de caractères pour l’Unicode : UTF‑8, UTF-16 et UTF-32. Ce dernier représente un caractère Unicode sur un entier de 32 bits. Les deux autres sont des jeux de caractères à taille variable, c’est-à-dire qu’un caractère peut occuper 32, 16 ou (dans le cas d’UTF‑8) 8 bits suivant sa « position » dans Unicode;
- l’encodage Unicode permet de coder le même caractère de différentes façons : par exemple, le caractère è peut être encodé comme un seul caractère (de code U+00E8) ou deux caractères : e (U+0065) suivi de accent grave (U+0300)
Des outils dédiés à Unicode permettent la normalisation de ces variantes d’encodage.
Comment corriger l’orthographe et les coquilles d’un texte ?
La correction des textes couvre une large gamme de questions, par exemple :
- la correction des erreurs de frappe
- la correction de certains codes typographiques, tels que les césures
- la correction des erreurs de reconnaissance de caractères lors de l’utilisation d’un logiciel d’OCR
- la correction des erreurs de syntaxe
- la reconnaissances de mots inconnus
Qu’est-ce que la distance d’édition ?
Les erreurs de frappe et les erreurs de reconnaissance peuvent être corrigées par des mesures de distance d’édition par rapport à des termes connus dans l’environnement applicatif. Cette distance d’édition est évaluée en comptant le nombre d’opérations (ajout, suppression ou substitution) nécessaires et suffisantes pour passer du terme présent dans le texte au terme connu.
Ainsi, par exemple, la distance d’édition entre les termes caratcères et caractères est de 2, car 2 opérations sont nécessaires pour passer de l’un à l’autre :
- substituer c à t
- substituer t à c
Comment corriger les erreurs de syntaxe dans une phrase ?
Certains textes, par exemple lorsqu’ils sont collectés en ligne, comme dans le cas des réseaux sociaux, d’enquêtes d’opinions ou d’avis client, peuvent contenir des licences de syntaxe : accord d’un adjectif, participe passé hasardeux voire expression idiomatique. Ce type de licences nécessite, pour être corrigées, d’effectuer une analyse linguistique de haut niveau, qui doit donc être effectuée en fin de chaîne de traitement de normalisation de texte.
Qu’est-ce que la reconnaissance de segments remarquables ?
La reconnaissance de segments remarquables consiste à identifier des segments textes particuliers, qu’il est préférable de normaliser : suites de caractères spécifiques, adresses mails, dates, adresses postales, numéros de téléphones, références produits, acronymes, points médians de l’écriture inclusive…
Ces segments remarquables sont généralement identifiables, et identifiés, au moyen de grammaires locales qui reconnaissent la structure de ces segments.
Par exemple, une adresse de courriel est constituée des éléments ordonnés suivants :
- une suite de caractères : lettres, chiffres et certains caractères spéciaux
- une arobase (@)
- une suite de caractères alpha-numériques
- un point
- une suite de caractères alphabétiques
Des grammaires locales, souvent plus complexes, sont nécessaires pour identifier les autres segments remarquables.
L’application de ces grammaires locales sur le texte d’entrée va permettre d’identifier les segments remarquables et, soit de les transformer en une forme normale, soit d’ajouter une étiquette (par exemple, ajouter une balise XML).