Bases de données lexicales Guy Perrier
Sommaire Lexiques et TAL Structure informatique générale Les bases de données relationnelles Les automates et les bases de données morphologiques Les lexiques fondés sur les structures de traits Sémantique lexicale
1 - Lexiques et TAL Le lexique d’une langue associe aux mots de cette langue une information phonologique, morphologique, syntaxique et sémantique. On peut s’attacher à un niveau particulier de la langue et considérer un lexique partiel qui ne prenne en compte que ce niveau (lexique morphologique, lexique syntaxique …). Le traitement automatique des langues nécessite des lexiques complètement formalisés. La formalisation du lexique doit répondre à deux exigences : linguistique - les régularités de la langue doivent être exprimées de la façon la plus transparente et la plus directe. informatique - l’implémentation doit être la plus compacte et elle doit permettre toutes les requêtes utiles en un temps le plus court possible.
1 - Lexiques et TAL Un lexique est un ensemble d’entrées lexicales. Une entrée lexicale est une unité linguistique élémentaire qui, en première approximation, s’apparente à la notion de mot. Le lexique associe pour chaque entrée une clé d’accès à un ensemble d'informations linguistiques décrivant cette entrée. Les clés d'accès aux entrées lexicales sont des entités linguistiques qui peuvent varier selon le type de lexique considéré (mots-formes, lemmes, lexèmes, lexies...) et qui seront toutes appelées mots. Un mot sera représenté comme une suite de caractères. Un lexique sous forme électronique doit permettre un certain nombre de fonctions : L'accès aux informations associées à un mot donné, La recherche de toutes les entrées vérifiant une propriété donnée, L'ajout, la suppression d’entrées, La mise à jour d’entrées individuellement ou collectivement, La modification de la structure des entrées. Exemple de mot-forme, lemme, lexie : Mot-forme = Prise, Lemme = prendre, Lexème = prendre (pour la gelée), prendre (saisir) Lexie = prendre son pied Exemple de lexique syntaxique : Désir : N,m Désirable : Adj Désirer : V, trans Prendre1 : V, intrans Prendre2 : V, trans Pris: Adj Prise : N, f Priser: V, trans Prisé : Adj prisé
1 - Lexiques et TAL La structure informatique d'un lexique doit viser à la fois de réduire au maximum sa taille et à assurer de façon efficace les différentes fonctions associées. Dans cette structure, on peut distinguer deux aspects : La structure générale qui réalise l'accès aux entrées lexicales à partir des mots, La représentation de chaque entrée lexicale qui doit viser à prendre en compte au maximum les généralisations linguistiques. Contrairement à la structure générale, la représentation de chaque entrée lexicale dépend du type d'information qu’elle contient.
1 - Lexiques et TAL Dans les entrées ci-jointes du Trésor de la Langue Française Informatisé : Repérer les différents types d’information linguistique présents (phonologiques, morphologiques, syntaxiques et sémantiques) avec leurs liens entre eux, Apprécier si elles peuvent être exprimées facilement de façon formelle. Imaginer la manière dont elles pourraient être extraites automatiquement des entrées du TLFI. Indiquer si certaines informations sont manquantes.
2 – Structure informatique générale : tables Une des façons les plus simples d'implémenter un lexique est d'utiliser une table ordonnée. Les entrées lexicales y sont rangés selon un ordre choisi sur les mots (en principe l’ordre lexicographique). Si le lexique a n entrées, l'espace nécessaire est de n fois la taille d’une entrée. Si le lexique a n entrées, le temps d'accès à une entrée est de l'ordre de log n , car on peut profiter du caractère ordonné de la table en utilisant un accès dichotomique.
2 – Structure informatique générale : tables Pour accélérer l'accès aux entrées lexicales à partir des mots, on peut utiliser des tables de hachage mais avec le problème d'avoir à gérer les collisions. Pour éviter les collisions, on peut organiser chaque entrée comme une sous-table de hachage et on peut répéter cette organisation pour former un arbre de hachage. Une façon commode de choisir une fonction de hachage est de considérer le début des mots (on peut hacher sur la première lettre par exemple).
2 – Structure informatique générale : arbres préfixes (tries) Un arbre préfixe sur un ensemble de symboles est un arbre fini tel que tout lien père- fils est étiqueté par un symbole de . Certains nœuds, parmi lesquels toutes les feuilles, sont distingués comme nœuds terminaux et on peut y attacher de l'information spécifique. Un arbre préfixe, on peut associer un ensemble de mots de * qui représentent les chemins dans l'arbre de la racine aux nœuds terminaux. Inversement, un ensemble de mots de * peut être structuré sous forme d'un arbre préfixe.
2 – Structure informatique générale : arbres préfixes (tries) On peut ainsi structurer l'ensemble des mots d'un lexique sous forme d'un arbre préfixe en attachant l'information linguistique contenue dans les entrées lexicales aux nœuds terminaux. Le temps d'accès à une entrée est alors relativement indépendant de la taille du lexique. Il ne dépend que de la hauteur de l'arbre, c'est-à-dire la longueur des mots. Il est facile d'insérer ou d'enlever une entrée dans un lexique structuré sous forme d'arbre préfixe.
2 – Structure informatique générale : automates d’états finis acycliques Un automate d'états finis acyclique est un automate d'états finis qui ne possède pas de cycle, c’est-à-dire de chemin passant deux fois par le même état. On peut ainsi structurer un lexique sous forme d'un automate acyclique en considérant comme alphabet de l'automate l'alphabet des mots du lexique et en attachant l'information linguistique contenue dans les entrées aux états acceptants reconnaissant les mots correspondants. Le temps d'accès à une entrée ne dépend pas de la taille du lexique mais seulement de la longueur maximum des chemins, c’est-à-dire des mots. Un arbre préfixe est un cas particulier d'automate acyclique. L'avantage d'un automate acyclique sur un arbre préfixe est qu’il permet de partager l'information entre entrées et de réduire la taille du lexique.
2 – Structure générale informatique : exercices On considère un lexique de 100000 entrées. Les mots ont une longueur moyenne de 10 et maximum de 20 caractères. Ils sont formés à l’aide des 26 lettres de l'alphabet plus le trait d'union et 8 lettres accentuées. Il faut en moyenne 100 octets pour stocker le contenu linguistique d’une entrée et il y a seulement 500 contenus différents. Pour les 5 types de structures, tables non ordonnées, tables ordonnées, tables ordonnées avec hachage sur la première lettre des mots, arbres préfixes, automates, répondre aux questions suivantes : Un mot étant donné, quel est le temps d'accès maximum à l’entrée correspondante ? Quelle est la taille occupée par le lexique ? Pour un contenu d’entrée lexicale donné, quel temps faut-il en moyenne pour retrouver tous les mots correspondants ?
2 – Structure générale informatique : exercices Décrire les algorithmes qui permettent d’insérer et de supprimer une entrée donnée dans un lexique selon les différentes façons de le structurer : Table non ordonnée. Table ordonnée. Table ordonnée avec hachage. Arbre préfixe. Automate d’états finis acyclique.