Le système EnCor

Le système EnCor

L’analyseur

L’analyseur est hybride dans le sens où les règles qu’il applique peuvent être manuellement créées par un utilisateur ou induites automatiquement à partir de corpus. Les règles (et leurs lexiques associés) sont externalisées (dans des fichiers) et représentées dans un format spécifique. Elles sont exploitées comme paramètres par l’analyseur qui les traduit en opérations de parcours et de modification d’arbre. Nous avons défini deux scénarios principaux dans lequel intervient cet analyseur. L’extraction de relation et la correction. Ces deux scénarios sont illustrés figure (10.1). L’analyseur est utilisé plusieurs fois dans chaque scénario. Il est employé pour la présegmentation, la post-segmentation, l’analyse syntaxique et la correction. C’est pour l’appliquer à une telle diversité de tâches que nous l’avons conçu aussi générique que possible. Les scénarios partagent en commun un prétraitement en deux étapes : la pré-segmentation, qui a pour fonction de préparer le texte à l’application de la segmentation. Le modèle que nous avons choisi pour représenter les règles sont des machines à état fini (MEF) que l’analyseur décompose état par état. Si la majorité des MEF suivent l’ordre de lecture, nous avons incorporé un mécanisme pour décider du bond (parcours dans l’arbre) à effectuer pour parvenir à l’état suivant : l’ordre de lecture est indépendant de l’ordre des états.  FIG 10.1 – Scénarios et modules de la chaîne de traitement L’analyseur ne parcourt pas l’arbre en profondeur ni en largeur : comme l’arbre est fortement structuré, il se positionne directement sur les nœuds qui relèvent d’une classe donnée (Mot, EntitéR, Chunk, Segment), détectés à partir d’un index construit lors de l’extraction de l’arbre (pour les mots, entités-R, chunks) et de la segmentation (pour les segments). L’ordre par défaut d’application des règles est fonction de la complexité des nœuds : Mot >Entité-R >Chunk >Segment. L’analyseur teste chaque règle sur l’ensemble des nœuds appropriés. Il réalise trois fonctions primordiales : 238 Grammaire de pré-segmentation Présegmentation Segmentation Extraction de patrons Sélection de patrons Génération de règles Étapes Modules Grammaires Segmenteur Analyseur Analyseur Analyseur Postsegmentation Grammaire de segments Analyse syntaxique Grammaire syntaxique Légende Présegmentation Analyseur Grammaire de pré-segmentation Segmentation Segmenteur Correcteur Analyseur Grammaire de correction Correction

Le système EnCor

La validation d’un état consiste à traduire une expression (la règle) en un ensemble de contraintes minimales : la valeur d’un trait d’un nœud rencontré est comparée à la valeur attendue par une contrainte. La structure de ces contraintes est décrite en (10.1.3). (b) La recherche du nœud suivant dépend de la classe de la contrainte du (ou des) prochain(s) état(s) de l’automate d’une règle ainsi que du bond à effectuer. L’algorithme de recherche du prochain nœud est décomposé en fonction des combinaisons possibles entre le nœud courant et le nœud du prochain état : soit ils sont identiques (Entité-R/Entité-R, etc.) soit ils sont différents (Entité-R/Mot, etc.). Le bond indique le nombre de fois que l’opération doit être répétée et le parcours s’arrête en fin de segment. (c) L’application des actions d’une règle consiste essentiellement à appeler des méthodes sur des nœuds en fonction de paramètres. Certaines actions sont très simples, comme la modification d’un trait à un nœud donné ; d’autres, comme l’ajout de segment, supposent l’analyse du contexte du nœud pour décider du mode de rattachement à effectuer.

Structure des lexiques

Le modèle que nous avons choisi pour représenter les lexiques est une structure de traits. Les lexiques, comme les règles, sont structurés en quatre classes. Une unité lexicale correspond à un noyau de traits exprimés sous forme de contraintes. Ce n’est pas nécessairement un mot ou une catégorie. Chaque contrainte est un triplet de la forme . Le type d’opérateur possible est P (positif, par défaut) ou N (négation de la contrainte). C’est une information que peut indiquer l’utilisateur pour définir des unités par exclusion (par exemple tout chunk qui ne soit pas de type GNP). Toutes les entrées possèdent un trait commun, le type, permettant de distinguer leurs classes Mot, Entité-R, Chunk et Segment. Le tableau (10.1) illustre la contrainte servant à déterminer la classe d’un chunk. Tableau 10.1 – Exemple de contrainte exprimée en 3-uple Dans l’exemple, les attributs et les valeurs sont des constantes, mais elles peuvent être exprimées au moyen d’expressions régulières qui sont interprétées par le moteur lors de l’unification. Ceci permet de créer des ensembles lexicaux (listes de verbes, de signes de ponctuation, de conjonctions, etc.) pour les mots par exemple, ou des ensembles de catégories pour les entités-R, qui sont séparément définis comme variables pour être réutilisables dans plusieurs contraintes. Par exemple, la variable identifiant les catégories de personne peut être employée comme valeur d’une contrainte sur le trait HEAD (tête) d’un nœud de type Entité-R (tableau 10.2). Tableau 10.2 – Exemple de contrainte sur les entités-R Personne, où $_personne='(_pers|_pers_bof|_fp|_ap|_fap)’ 239 Attribut Valeur Opérateur Type Chunk P(ositif) Attribut Valeur Opérateur Type Entité HEAD $_personne P(ositif) P(ositif) 10.1.L’analyseur Cette méthode permet d’ajouter autant de traits que nécessaire. Les traits que nous avons définis pour chaque classe sont alignés sur les informations fournies à l’analyseur. Pour la classe Mot, il s’agit de la forme et des catégories morphosyntaxiques, qui sont récupérées par l’analyseur lors de l’analyse de l’arbre d’entrée. En corpus, les mots se présentent sous la forme d’une liste d’information dont la première est la forme, comme illustré en (237). (237)Baudelaire|_~N|_~ms|_~Hum|~Npropr Pour la classe Entité-R, les traits sont la tête et la forme de la tête, comme illustré en (238) (238) <_pers> <_nom> Baudelaire|_~N|_~ms|_~Hum|~Npropr La tête correspond à l’entité-R de plus haut niveau. Lorsque, comme dans cet exemple, il existe des filles uniques (l’entité-R _nom), elle est stockée à part comme alternative. Pour la classe Chunk, il s’agit des mêmes informations, auxquelles sont ajoutées celles qui sont fournies par LoRit, le sous-type de chunk (GN, GNP, etc.), et d’autres propres à ce sous-type comme la préposition d’un GNP ou la polarité d’un verbe, comme on peut le voir en (239). (239)<_prep> de <_pers> <_nom> Baudelaire|_~N|_~ms|_~Hum| ~Npropr Dans l’exemple, la tête est indiquée sous forme de numéro de fille, qui est identifiée lors de l’analyse du corpus. Enfin, concernant la classe Segment, il s’agit des informations construites par le segmenteur : la taille, la nature des frontières, comme illustré en (240). (240)<_prep> de <_pers> <_nom> Baudelaire|_~N| _~ms|_~Hum|~Npropr Les séquences de formes, d’entités-R et de chunks qu’ils contiennent sont également stockées comme attributs pour permettre de définir des expressions régulières comme contrainte d’une unité lexicale (recherche de segment contenant un verbe). Ces quatre exemples d’unités lexicale sont reproduits sous forme d’objets dans la figure (10.2). FIG 10.2 – Exemples d’objets des classes de lexiques Mot, Entité-R, Chunk et Segment 240 Mot Forme : Baudelaire Catégories : [_~N, _~ms, _~Hum, _~Npropr] GNP _pers Baudelaire de Chunk Type : Chunk SousType : HEAD : HEADFORM : PREP : Segment Segment , , 1 de Baudelaire _pers GNP_de Type : FG : FD : Taille : SEQ_MOT : SEQ_ENTITÉ : SEQ_CHUNK : Entité Entité _pers Baudelaire Type : HEAD : HEADFORM : 10. Le système EnCor Chaque unité lexicale est un objet que l’utilisateur peut créer en manipulant des méthodes de classe Lexique. Les méthodes sont utilisées pour la création de l’unité et pour son utilisation et héritées par les classes Mot, Entité-R, Chunk et Segment. Pour définir certaines listes de mots, nous avons utilisé les lexiques Morphalou et Delac : ceci nous a permis d’obtenir des listes de verbes, de participes ou encore de gérondif, extraites puis normalisées pour être employées dans les lexiques. C’est dans les lexiques que sont définies les frontières, ce qui signifie que l’on peut modifier leur nature sans que le fonctionnement du système soit affecté. La conception d’unités lexicales suppose évidemment une certaine familiarité avec la forme que peuvent prendre les mots ou catégories que l’on cherche à définir.

Structure des grammaires

Le forte structuration des lexiques permet d’alléger la définition des règles des grammaires. Les grammaires sont externalisées et déclaratives, définissent à la fois les conditions et les actions. Les conditions correspondent à une liste ordonnée de contraintes invoquant des unités lexicales. Ces contraintes constituent les états d’un automate de règle évalué par l’analyseur et sont représentés sous la forme d’un quadruplé . L’attribut définit la classe de lexique, la valeur définit l’unité lexicale et la position définit le bond à effectuer pour parvenir à l’état. Les sous-règles agissent comme des contraintes supplémentaires que ne permet pas d’exprimer une unité lexicale à elle-seule. Il s’agit principalement de contraindre l’environnement du nœud courant en évaluant les propriétés des nœuds adjacents. Elles permettent également de vérifier des contraintes sur des nœuds précédemment validés par la règle (comme pour une liste d’EN). Les actions correspondent à des opérations génériques sur les nœuds. Elles sont de deux types : elles modifient la structure de l’arbre en déplaçant des nœuds ou modifient certaines valeurs de nœuds. Une règle formée de deux états, dont le premier est une initiale de la forme M., et le second, un mot inconnu à capitale, pourra modifier l’étiquette en Personne (_pers) par exemple. Les actions de rattachement sont distinguées en fonction des classes de nœuds à déplacer. Certains, comme les segments, supposent une analyse fine du contexte, épargnée au concepteur de règle. Comme les lexiques, chaque classe de règle fait partie d’une classe Règle, qui définit des méthodes permettant de créer ou d »utiliser les objets de classe règle. Nous avons déjà décrit les applications de ces grammaires pour l’analyse des relations intersegment. Une grammaire a été également créée en prétraitement à la pré-segmentation, pour limiter les erreurs du segmenteur. Par exemple, certains règles de classe Mot associent des nombres décimaux complexes, certaines abréviations spécifiques au corpus de presse trop fréquentes pour être ignorées (div. pour divers gauche par exemple dans le cas de partis politiques). Enfin, le segmenteur utilise certaines règles pour détecter les frontières.

Formation et coursTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *