GASPAR, UN DISPOSITIF EXPERIMENTAL POUR LE TRAITEMENT AUTOMATIQUE DU LANGAGE NATUREL AVEC LA PROGRAMMATION A PROTOTYPES

REPRESENTATION ET CLASSIFICATION EVOLUTIVES DES CONNAISSANCES POUR LE LANGAGE NATUREL

 

Serge Fleury

 

ELI (Equipe Linguistique et Informatique)

Ecole Normale Supérieure de Fontenay-St Cloud

31 avenue Lombart

F-92260 Fontenay aux Roses

e-mail : fleury@ens-fcl.fr

http://www.ens-fcl.fr/~fleury/

 

 

GASPAR : présentation

 

Un analyseur à mots implémenté avec Self-4.0

 

Nous présentons ici les outils mis en place pour l'implémentation de GASPAR , l'analyseur chargé de construire les représentations des mots puis leur classement. L'implémentation s'inscrit dans le cadre défini par la version 4.0 du langage à prototypes Self. GASPAR est un objet défini dans l'objet Self globals (un parent du lobby (la "racine" du monde Self)), il est donc accessible directement à partir du lobby. Les différents outils définis ou à construire sont accessibles à partir de ce point d'entrée que constitue l'objet GASPAR. Tous les prototypes définis sous GASPAR sont donc des attributs définis dans cet objet ou dans ces sous-catégories. L'organisation des objets construits est présentée dans la figure qui suit.

 

 

Figure 20. GASPAR, un prototype complexe

 

Chaque prototype dépendant de GASPAR est catégorisé suivant son rôle dans l'"environnement" de ce dispositif. Les objets traits définis pour les objets associés à GASPAR sont définis dans l'objet Self traits qui porte tous les comportements partagés. Pour accéder à GASPAR et aux outils associés, des interfaces sont disponibles via les attributs menus définis par GASPAR. On peut atteindre les outils cherchés en sélectionnant une option parmi celles présentées. Le dispositif GASPAR est composé de plusieurs modules :

 

  1. Un module de calcul sémantique des séquences du type moulin à N2 avec intervention éventuelle de l'utilisateur pour affiner les résultats [FLE 97].
  2. Un module pour la génération automatique de prototypes de mot et de prototypes d'arbre à partir de savoirs extraits sur corpus.
  3. Un module de classement des prototypes construits ou disponibles.
  4. Un module d'analyse syntaxique [FLE 97].
  5. Un module méta.
  6. Un module d'interprétation pour analyser les résultats construits.
  7. Un browser pour visualiser les données et le résultats.

 

 

Le module méta regroupe différents processus qui sont utilisés par les différents modules mis en place. Il permet d'activer des méta-regards sur les savoirs représentés : il intègre notamment les processus de traçage que l'utilisateur peut activer sur toutes les opérations disponibles dans chaque module. Ces processus de traçage décrivent les différentes étapes des opérations déclenchées. L'utilisateur a aussi la possibilité d'intégrer automatiquement une présentation des résultats construits dans l'interface graphique de Self. Il peut ainsi avoir une présentation complète des représentations manipulées ou construites. Ces objets sont alors manipulables et modifiables à volonté et de manière dynamique. Ce méta-module peut aussi activer des actions de modification dynamique des représentations construites : ces processus peuvent agir de manière transparente pour l'utilisateur. On revient infra sur la présentation de ce module fondamental pour l'interprétation des résultats produits par GASPAR ainsi que sur celle du browser GASPAR. La figure suivante propose une vision synthétique des activités du dispositif GASPAR.

 

 

Figure 21. GASPAR et ses modules.

 

Ce schéma ne rend évidemment pas bien compte du fait que de cette hétérarchie enchevêtrée naît de la représentation. Il met simplement en avant la complexité des mécanismes mis en place et de leurs connexions. La myriade de prototypes qui résultent du travail de génération automatique de prototypes de mots et d'arbres est en effet difficilement réductible à une présentation schématique.

 

Interface graphique

 

Le dispositif construit a permis la mise en place d'une série d'outils qui ont accompagné les évolutions de l'implémentation en cours de Self. Les différents outils présentés supra sont accessibles via l'interface graphique de Self pour manipuler ou visualiser les différents objets construits. Les outils d'interface construits constituent des raccourcis pour exécuter les différentes actions définies. Il est bien sûr plus facile de manipuler les objets individuellement via l'interface graphique. Dans la figure qui suit, on présente l'environnement de travail mis en place pour travailler avec GASPAR via l'interface graphique de Self.

 

 

Figure 22. Environnement de travail avec GASPAR.

 

On dispose dans cet environnement de travail :

 

d'une fenêtre shell (non présente dans cette figure) dans laquelle on peut activer les différents menus définis par GASPAR ;

de l'interface graphique de Self.

 

La multiplication des objets dans le monde Self est un problème crucial si l'on veut pouvoir évaluer l'état global du système représenté. En particulier dans notre cadre de classification évolutive où l'on peut produire un myriade de prototypes de mots (ou d'arbres) et de pôles de comportements partagés par des sous-ensembles de prototypes de mots (ou d'arbres). L'interface graphique permet ainsi d'atténuer cette impression de dispersion complète des savoirs représentés. Un objet zoom est disponible dans les objets graphiques prédéfinis, il permet de scruter une zone particulière du monde Self (comprenant un nombre limité de prototypes) tout en maintenant une présentation globale du monde Self. On peut ainsi avoir simultanément une vision locale de certains prototypes et la position de cette zone particulière dans l'état global du système. Dans la figure précédente, l'objet radarView permet une présentation du monde Self en zoomant sur une région particulière contenant GASPAR et certains de ses modules. Cette figure présente en fait une représentation graphique associée à l'objet GASPAR qui masque l'implémentation écrite pour définir cet objet et c'est cet objet graphique qui porte l'objet GASPAR. Tous les objets insérés dans la fenêtre graphique (par l'utilisateur ou par les processus construits) sont portés par des objets graphiques (morph). De plus, suivant le type du savoir associé aux objets inclus, un certain nombre de boutons (activables par la souris) ont été définis. Ils permettent d'interroger les objets et de produire une présentation graphique des actions associées. Par exemple, le bouton Comment disponible sur le masque graphique associé à l'objet GASPAR permet la création d'un morph portant un commentaire associé à l'objet GASPAR ; le bouton Display/Edit object permet d'inclure l'objet GASPAR dans la fenêtre graphique.

 

Pour les prototypes représentant des mots, nous avons définis les boutons suivants :

 

Comment

création d'un morph portant le commentaire associé à l'objet représentant ce mot

Arbres associes

création d'un morph pour chaque arbre élémentaire associé à l'objet représentant ce mot

Parent

création d'un morph pour chaque parent associé à l'objet représentant ce mot

Semantique

création d'un ou plusieurs morph décrivant la sémantique associée à l'objet représentant ce mot

Morphologie 

création d'un morph décrivant la morphologie associée à l'objet représentant ce mot

Display/Edit Object

insertion de l'objet dans le monde Self

 

La figure qui suit donne une illustration générale de la présentation graphique d'un prototype de mot.

 

 

Figure 23. Objet GASPAR.

 

Pour les objets traits, nous avons définis les boutons suivants :

 

Shared trees

création d'un morph pour chaque arbre partagé par une ensemble de prototypes et porté par cet objet

Children

création d'un morph pour chaque prototype déléguant un comportement (au moins) à cet objet

Display/Edit Object

insertion de l'objet dans le monde Self

Word List

création d'un morph associé à une étiquette décrivant la liste des mots déléguant un comportement à cet objet

Tree List

création d'un morph associé à une étiquette décrivant la liste des arbres partagés portés par cet objet

 

Pour un prototype d'arbre, nous avons défini les boutons suivants :

 

Comment

création d'un morph portant le commentaire associé à l'objet représentant cet arbre

Arbres associes

création d'un morph pour chaque arbre d'analyse associé à l'objet représentant un arbre élémentaire

Parent

création d'un morph pour chaque parent associé à l'objet représentant cet arbre

Display Down >

création d'un morph pour chaque composant de cet arbre quand celui-ci est issue d'une analyse réalisée via le parser GASPAR [FLE 97]

Display/Edit Object

insertion de l'objet dans le monde Self

 

 

Ce qui est construit

 

Nous passons maintenant à une présentation des premiers résultats construit avec le dispositif GASPAR. Celui-ci est constitué de différents modules [FLE 97] : un module de représentation à partir d'informations extraites sur corpus, un module de classement des prototypes construits, un module d'analyse automatique, un méta-niveau d'analyse. D'une part, le dispositif GASPAR créé des représentations informatiques de manière automatique. D'autre part, il permet à l'utilisateur d'intervenir à tout moment sur les résultats construits ou sur les données traitées pour les ajuster ou pour les modifier. Il en va ainsi pour le module de représentation automatique des mots. Ce module est constitué d'une chaîne de traitements capable de construire des objets à partir d'informations linguistiques extraites sur corpus. Il permet parallèlement à l'utilisateur d'ajuster les représentations construites si de nouvelles informations sont disponibles.

 

Un dispositif expérimental

 

La génération automatique des prototypes est largement conditionnée par la somme d'informations issue du travail d'extraction réalisé en amont. Les informations utilisées, à ce stade de notre travail, sont nettement insuffisantes pour produire des résultats significatifs. Le classement opéré prend appui sur des caractéristiques grossières à la fois en raison de contraintes matérielles et de la difficulté à récupérer et organiser les informations à représenter.

 

Travail sur corpus de test

 

Le mini-corpus de test utilisé pour mettre en uvre les processus de représentation des mots contient une cinquantaine de mots et une centaine d'arbres. On présente ici quelques résultats obtenus avec ce corpus et via l'interface graphique de Self. Les figures qui suivent présentent des traces graphiques des prototypes générés lors du processus de génération et des pôles de comportements partagés construits. Dans la figure suivante, on trouve les prototypes construits pour représenter le mot pontage et les deux prototypes d'arbre élémentaire associés : il s'agit des prototypes représentant l'arbre NAdj et l'arbre N1PrepNPivot.

 

 

Figure 27. Génération des prototypes.

 

La figure qui suit donne une trace graphique de pôles de comportements partagés construits sur notre corpus. Elle présente en particulier la classe de mots regroupant les adjectifs marginale, circonflexe, coronaire et carotide. Dans cet exemple, ces adjectifs partagent un arbre élémentaire porté par l'objet traits construit. Il est à noter que la classe produite ici est sémantiquement homogène.

 

 

 

Figure 30. Classes de mots sur corpus de test.

 

Travail sur de "gros corpus"

 

Pour le travail réalisé sur les gros corpus nous avons restreint le nombre de contraintes syntaxiques associées aux mots. Dans un premier temps nous avons travaillé sur des séquences NAdj extraites via LEXTER. À partir de 8754 séquences comportant des groupes nominaux, nous avons extraits 586 mots (des noms) auxquels sont attachés 1413 arbres élémentaires de type : Sn1 -> Nom Adj, Sn2 -> Adj Nom, Sn3 -> Adj XX, Sn4 -> XX Adj. Cette première sélection a donc consisté à ne garder que les arbres binaires portant les feuilles Nom/XX et Adj. De même, à partir de 7766 séquences extraites via AlethIP comportant des groupes nominaux, nous avons extrait 718 mots (des noms) auxquels sont attachés 1680 arbres élémentaires de même type que précédemment.

 

Sur le corpus LEXTER, le processus de génération conduit à la création des prototypes pour représenter les catégories syntaxiques Nom, Adj, XX, Sn1, Sn2, Sn3, Sn4, des objets traits associés et de plus de 2000 prototypes par copie et ajustement. Avec les prototypes créés, le dispositif GASPAR a cherché à repérer ceux qui partageaient exactement les mêmes comportements. Ce processus de classement conduit à la création automatique de 54 pôles de comportements partagés.

 

pôles de mots partageant

un arbre sn -> nom adj

adj

(1) occipital bras aisselle epaule

gauche

(2) exces surcharge

ponderal

(3) octobre juillet juin mai mars avril

dernier

(4) besoin tableau

clinique

(5) staff discussion reunion exerese geste reparation resection revascularisation

medico-chirurgical

(6) equipe solution oedeme parenchyme plage coeur tuberculose vascularisation

chirurgical

(7) sommet base

pulmonaire

(8) bloc sillon

auriculo-ventriculaire

(9) expression positivite seringue

electrique

(10) oreillette ventricule retard

droit, gauche

(11) fait amaigrissement etude

recent

(12) sujet individu

asymptomatique

(13) calcification algie

diffus

(14) ouverture prolapsus

mitral

(15) capture fonction conduction

ventriculaire

(16) fistule frere circulation atherosclerose

coronarien

(18) fourche etage

carotidien

(19) foyer fuite

aortique, mitral

(20) edieux dominance nodule

droit

(21) perforation rupture

septale

(22) frottement reaction epanchement

pericardique

(23) centre soir

meme

(24) gastrectomie alopecie

partiel

gazometrie ponction hypertension coudure

arteriel

(25) cholesterolemie hysterectomie obliteration

total

(26) genou machoire membre siege

inferieur

(27) greffon heterogreffe monopontage

veineux

(29) hematome asthenie

important

(30) triglyceride anatomie ascension

normal

(31) praticien administration milieu

hospitalier

(32) horaire difficulte

particulier

(34) prevention epilepsie epreuve

secondaire

(35) usage decours defibrillation

immediat

(36) vasodilatateur arterite

peripherique

(37) prurit dyspnee

intense

(38) crosse sigmoide

aortique

(39) impasse implication escalade nouvelle

therapeutique

(40) radiographie radio

pulmonaire, thoracique

(41) vitesse marche

rapide

(42) impossibilite raison

technique

(43) acrocyanose nausee

transitoire

(44) reanimation muscle

cardiaque

(45) agregant anti-agregant

plaquettaire

(46) relation lien

etroit

(47) remontee dosage

enzymatique

(48) interpretation interrogatoire analyse

difficile

(49) lacune medecin

present

(51) entrainement sedation medication

adequat

(52) apparition augmentation

brutal

(54) fibrillation sonde pancreatite phase

aigu

 

pôles de mots partageant

un arbre sn -> adj nom

adj

(17) majorite variabilite

grand

(28) ballon extension

petit

(33) intention symptome

premier

(50) accord repermeabilisation suivi

bon

(53) moyenne natif

circonflexe

 

On note tout d'abord dans ces résultats restreints que les noms sont majoritairement plus modifiés à droite qu'à gauche. Les classes produites sont, dans l'ensemble, cohérentes mais ne produisent pas encore des résultats pertinents sur le domaine étudié : certaines classes évidentes ou prévisibles sont mises au jour. La classe de mot associée au pôle n3 est homogène dans sa relation avec l'adjectif dernier, de même pour la classe n2 dans sa relation avec l'adjectif ponderal. La classe n1, où la relation de localisation qualifie un membre ou une région du corps, est homogène ; pour cette classe, on note que les régions qualifiées ne le sont que pour l'adjectif localisant gauche ; à la différence de la classe n10, celle-ci étant moins homogène. Les classes n5, 6, 9, par exemple, regroupent quant à elles des noms sémantiquement plus éloignés.

 

Sur le corpus AlethIP, le processus de génération conduit à la création des prototypes pour représenter les catégories syntaxiques Nom, Adj, XX, Sn1, Sn2, Sn3, Sn4, des objets traits associés et de plus de 2500 prototypes par copie et ajustement. Avec les prototypes créés, le dispositif a là aussi cherché à repérer ceux qui partageaient exactement les mêmes comportements. Ce processus de classement conduit à la création automatique de 57 pôles de comportements partagés.

 

pôles de mots partageant

un arbre sn -> nom adj

adj

(1) fonction arteriographie

renal

(2) lobectomie epaule superieur coude galop aisselle bord interne

gauche

(5) lobe importance

moyen

(6) machoire membre genou

inferieur

(7) epilepsie raccordement

secondaire

(8) retard oreillette hanche

droit, gauche

(9) choix periode

prealable

(10) equipe exerese solution cure porte

chirurgical

(11) erreur impossibilite

technique

(13) cholesterol hysterectomie

total

(14) marche action

rapide

(15) role ordonnance palpitation

associe

(16) escalade attitude impasse implication

therapeutique

(17) cineangiocardiographie excitabilite conduction angiographique capture

ventriculaire

(18) rupture perforation grosse

septale

(19) cineique critique pericarde ascension ionogramme

normal

(20) etage fourche endarteriectomie

carotidien

(21) metaplasie fibroscopie ulcere

gastrique

(22) milieu praticien

hospitalier

(24) cliche oppression

thoracique

(25) seringue expression

electrique

(26) evolutivite fait amaigrissement decouverte reapparition

recent

(27) muscle stimulateur transplantation reanimation enzyme

cardiaque

(28) seuil dysfonctionnement

ischemique

(29) col trepied

femoral

(30) myocardiopathie style

dilate

(31) nodule cuisse pedieux jambe

droit

(32) fa angineux asthme psoriasis

ancien

(33) obstruction fistule atherosclerose reperfusion arbre instabilite

coronarien

(35) constriction brulure

precordial

(36) resistance champ coeur sommet parenchyme surinfection plage tuberculose vascularisation

pulmonaire

(37) stripping glaucome

bilateral

(38) ouverture insuffisance

mitral

(39) frottement decollement reaction

pericardique

(40) coudure gazometrie

arteriel

(41) sueur alteration hematome

important

(42) gastrectomie alopecie

partiel

(43) pancreatite pericardite phase

aigu

(44) analyse interrogatoire

difficile

(45) defibrillation usage

immediat

(46) depressif bronchite

chronique

(47) tableau argument besoin

clinique

(48) difficulte horaire

particulier

(51) dosage elevation remontee

enzymatique

(53) proteinurie leuconeutropenie

modere

(54) radiographie radio

pulmonaire, thoracique

(56) realisation cardiologie

moderne

 

pôles de mots partageant

un arbre sn -> adj nom

adj

(3) pronostic fonctionnement suivi fraction

bon

(4) reduction recommandation molecule

nouveau

(12) mesure epreuve centimetre

premier

(23) monsieur confrere

cher

(34) mollet type cote morphologie an

deux

(49) variabilite majorite

grand

(52) cadre age

jeune

(55) sens observateur

meme

(57) dedoublement aggravation avantage

net

 

Là encore, les classes produites sont, dans l'ensemble, homogènes mais peu pertinentes sur le domaine des maladies coronariennes. La classe de mot associée au pôle n1 est, par exemple, peu significative, la relation avec l'adjectif renal étant marginale, notamment pour fonction. La classe n3 est moins homogène que la classe précédente (issue de LEXTER) dans sa relation avec le localisant relatif gauche. Par contre, la classe n6, où la relation de localisation avec inferieur qualifie là encore un membre ou une région du corps, est cohérente. Les classes n3, 5, 7, 10, par exemple, sont quant à elles peu homogènes.

 

L'examen de la simple relation binaire Nom Adj ne permet pas de décrire complètement le fonctionnement des mots. Pour le moment, à chaque prototype est associée une liste de prototype(s) d'arbre élémentaire ; chacun de ces prototypes décrivant une relation Nom Adj. Pour enrichir ce travail de description du comportement des mots, il convient évidemment de pouvoir examiner d'autres types de relation binaire puis les relations syntaxiques complexes (lien arbre élémentaire arbre d'analyse). Il convient aussi d'examiner en détail tous les types possibles de regroupements de mots : certains mots partagent individuellement plus de comportements avec d'autres mots. L'absence de critères numériques manque aussi pour comparer les fréquences de réalisation des proximités de cooccurrences rencontrées.