• Aucun résultat trouvé

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.