Chapitre 5 : Un système de gestion de grammaires locales
5.3 Normalisation des grammaires locales
5.3.2 Normalisation des grammaires en pratique
Les grammaires locales susceptibles d’être stockées dans la bibliothèque sont construites à
l’aide des éditeurs de graphes d’Intex et d’Unitex. Les deux formats sont très proches mais
leur système de codage des caractères est différent : Unitex utilise le codage Unicode 3.0
standard UTF-16 Little Indian (1 caractère = 2 octets) et Intex utilise un codage ASCII (1
caractère = 1 octet). On peut aussi imaginer que l’on veuille utiliser des grammaires d’un
autre type telles que les grammaires algébriques (dans un format de fichier particulier).
Afin d’avoir des procédures de traitement les plus efficaces possibles, nous décidons de
représenter les grammaires de manière standard dans notre système. Nous gardons une copie
de chaque grammaire dans sa version d’origine pour que cette dernière puisse être utilisée
dans le logiciel pour lequel elle a été construite. Cela étant dit, il est nécessaire de normaliser
les grammaires en se ramenant à une représentation la plus proche possible de la théorie et en
supprimant les informations inutiles. Les formats choisis sont les plus puissants. Ainsi, nous
décidons de coder les caractères en Unicode afin de pouvoir traiter toutes les langues. Le
processus de conversion d’une grammaire ASCII en une grammaire Unicode ne pose pas de
problème majeur car il existe des procédures établies. Les grammaires sont représentées sous
la forme de RTN118. Dans le cas où l’on veuille utiliser des grammaires algébriques, il
conviendra de convertir ces dernières dans le bon formalisme : par exemple, au moyen de
l’algorithme de Nederhof (2000).
La normalisation des grammaires dépend entièrement de ce que nous voulons en faire. Notre
système doit contenir des outils de recherche d’information dans ces grammaires et plus
exactement sur leur contenu linguistique. La représentation graphique n’a aucune utilité pour
ces outils. Elle peut donc être supprimée. Par ailleurs, les grammaires que nous traitons sont
des grammaires d’analyse linguistique dont les automates n’ont pas de sortie. Ainsi, nous
décidons d’enlever toutes les informations de sortie des grammaires qui en contiendraient.
L’information de l’existence de telles sorties est extraite automatiquement à partir de
l’analyse automatique des grammaires à insérer et placées dans des champs spéciaux de la
table contenant les informations sur les grammaires.
Les éditeurs d’automates offrent une grande liberté aux auteurs des automates. Par exemple,
les auteurs peuvent construire des transitions dont l’étiquette comprend plusieurs symboles
consécutivement. Pour faciliter les traitements informatiques, chaque transition comprenant
une séquence de n symboles simples est découpée en n transitions d’éléments simples. Il
existe de multiples opérations de normalisation des transitions. Certaines étiquettes apportent
peu d’informations par rapport à la complexité qu’elles génèrent dans les opérations. Elles
sont alors modifiées. Par exemple, l’étiquette # qui interdit l’espace entre deux symboles est
118
Théoriquement, il existe des représentations formelles plus puissantes pour décrire le langage naturel. Mais
nous nous plaçons dans le cadre théorique du lexique-grammaire qui représente les faits linguistiques de manière
très simple.
remplacée par l’étiquette vide119. On perd dans ce cas des informations mais elles ne sont pas
indispensables.
Des procédures classiques de synchronisation des automates permettent de supprimer les
transitions étiquetées par le mot vide des règles-automates. L’émondation supprime les états
inutiles et la minimisation rend notre représentation optimale (cf. T. Sudkamp, 1997).
Pour se rapprocher de la représentation théorique, il convient d’extraire des automates les
deux alphabets. La distinction entre les symboles non terminaux et les symboles terminaux est
immédiate : le symbole « : » sert de préfixe à chaque symbole non terminal (c’est-à-dire une
chaîne de caractère qui désigne le nom d’un sous-automate).
Un point cependant pose problème. L’alphabet des éléments terminaux ne comporte pas que
des symboles élémentaires. En effet, si l’on se place au niveau linguistique, on constate que la
grande majorité des étiquettes employées ne sont pas atomiques, c’est-à-dire qu’elles
représentent un ensemble de symboles élémentaires. Nous examinons chaque type
d’étiquettes au cas par cas.
- les chiffres et les caractères non-alphabétiques
Ces symboles sont par définition minimaux, donc ils ne posent pas de problèmes. Exemples :
« 1 », « 2 », …, « + », « - ».
- les séquences de lettres :
Une séquence de lettres délimitée par deux séparateurs forme un mot graphique. D’un point
de vue non linguistique, une telle séquence peut former une unité atomique. Cependant, d’un
point de vue linguistique, un mot sous sa forme graphique peut être considéré comme un
ensemble de mots (ou d’étiquettes lexicales) ayant la même forme graphique (fléchie) dans les
dictionnaires. Par exemple, si l’on prend le mot donne, il y a deux analyses possibles : soit
c’est un nom qui a pour forme canonique donne, soit c’est un verbe qui a pour forme
canonique donner. Le nombre d’éléments (ou cardinal) de cet ensemble dépend de la finesse
de codage du dictionnaire. Dans un dictionnaire où chaque entrée n’est associée qu’à une
catégorie grammaticale, le cardinal du mot danse [noté card(danse)] serait égal à 2. Dans un
dictionnaire contenant aussi des informations flexionnelles comme le DELAF, card(donne)
est plus élevé et est égal à 7 comme le montre le petit échantillon de dictionnaire ci-dessous :
donne,.N+z1:fs
donne,donna.N+z3:fp120
donne,donner.V+z1:P1s:P3s:S1s:S3s:Y2s
Dans cet échantillon, chaque ligne désigne une entrée lexicale. La première séquence de
caractères délimitée à droite par une virgule est la forme fléchie. La deuxième délimitée à
gauche par la virgule et à droite par un point est la forme canonique. Quand cette séquence est
vide, cela signifie que la forme canonique est la même que la forme fléchie. Le code juste
après le point est le code grammatical associé à l’entrée lexicale (ex : N pour nom, V pour
verbe). Les séquences de lettres et de chiffres après un « + » sont des traits de diverses
valeurs (ici, +z1 indique que l’entrée lexicale fait partie du langage courant). Les séquences
de lettres et de chiffres après un « : » sont des informations flexionnelles (par exemple, :P1s
signifie que l’entrée est à la première personne du singulier du présent de l’indicatif). Notons
119
Un travail différent mais proche a été réalisé dans M.Constant (2001) pour construire le compilateur du
logiciel AGLAE (S. Paumier, 2000).
120
que plusieurs entrées lexicales peuvent être codées sur une seule ligne si le seul champ qui les
distingue est le code flexionnel comme c’est le cas pour la dernière ligne de l’exemple
ci-dessus. Dorénavant, nous utilisons comme dictionnaires de référence les dictionnaires de type
DELAF.
- les unités linguistiques non ambiguës
Dans Intex et Unitex, il est possible de définir des étiquettes non ambiguës. Ce sont des
séquences entre accolades qui définissent avec précision une entrée lexicale comme dans un
dictionnaire. Par exemple, l’étiquette {danse,danse.N:fs} indique clairement que l’on a la
forme graphique danse qui provient de la forme canonique danse et qui est un nom au féminin
singulier121.
- les étiquettes ensemblistes (lexico-syntaxiques)
Certaines étiquettes sont des abréviations d’ensembles d’unités linguistiques élémentaires.
Elles sont écrites dans Intex et Unitex entre angles. On distingue parmi celles-ci, les étiquettes
ensemblistes lexicales et grammaticales. Les étiquettes lexicales doivent obligatoirement
contenir une forme canonique. Par exemple,
<tendre> désigne tous les mots dont la forme canonique est tendre
<bleu.N> désigne tous les noms (N) dont la forme canonique est bleu
Les étiquettes grammaticales désignent des ensembles à partir de codes grammaticaux, de
codes flexionnels et de traits syntaxiques et sémantiques. Par exemple,
<A:fp> désigne tous les adjectifs (A) au féminin pluriel (fp)
<N+Hum>122 désigne tous les noms qui ont le trait sémantique humain +Hum
- les méta-étiquettes :
Les métas désignent également des ensembles de mots. Les caractéristiques sont plutôt
graphiques : <MOT> désigne tous les mots (chaîne de caractères entre deux séparateurs) ;
<PRE> désigne tous les mots commençant par une majuscule. A noter, cependant, qu’il
existe une méta-étiquette qui utilise des informations linguistiques : <DIC> qui désigne tous
les mots qui se trouvent dans le (ou les) dictionnaire(s) courant(s).
L’étude de ces différents cas montre clairement que les symboles terminaux utilisées dans les
grammaires ne sont pas élémentaires. Théoriquement, il est toujours possible de se ramener à
des symboles atomiques en remplaçant explicitement chaque symbole ensembliste par
l’ensemble des unités linguistiques qu’il désigne. Les symboles ensemblistes lexicaux (qui
contiennent un élément lexical dans leur définition : par exemple, <maison>) ne représentent
qu’un ensemble restreints d’unités lexicales (au maximum, une quarantaine d’éléments [les
verbes]). La procédure proposée consiste juste à supprimer la transition contenant ce symbole
et à la remplacer par autant de transitions qu’il y a d’éléments dans l’ensemble. Les symboles
ensemblistes grammaticaux posent des problèmes d’ordre pratique. En effet, prenons le
symbole <N> qui désigne tous les noms. L’application de la précédente procédure
121
Le format est le même que celui d’une entrée lexicale au format DELA (B. Courtois et al., 1990).
122
Dans Unitex, l’étiquette <N-Hum> qui désigne tous les noms qui n’ont pas le trait humain est autorisée. Notre
système ne traite pas ce type d’étiquettes pour l’instant.
consisterait à remplacer cette étiquette par l’ensemble de tous les noms. Le cardinal de cet
ensemble étant d’une centaine de milliers, la normalisation proposée est clairement coûteuse
en espace mémoire. Le phénomène est amplifié avec les méta-étiquettes. En effet, l’ensemble
des mots est gigantesque à cause de la production (infinie) de nouveaux mots comme les
noms propres. La procédure est alors impossible à mettre en œuvre123. Nous décidons donc de
laisser en l’état les symboles ensemblistes non lexicaux. Ainsi, les symboles terminaux de nos
grammaires normalisées ne sont pas tous élémentaires, ce qui pose des problèmes pour la
comparaison entre les étiquettes des automates.
Dans le document
Grammaires locales pour l'analyse automatique de textes : méthodes de construction et outils de gestion
(Page 188-191)