Document Actions
03/29/2005
[GramOOo] [tagging] petit test
J'ai testé notre tagger avec le petit texte suivant :

Voici une blague de Toto qui fait du surf. Seulement, sur la piste, la neige est mauvaise, elle a fondu. Et Toto qui ne sait pas surfer se casse la figure. Alors il hurle:
"Dorénavant je ne ferai plus de surf le week-end de Pâques !"
Les personnes qui ont skié ce week-end comprendront. Je sais, ce texte ne fait pas trop rigoler. Je voulais voir la façon dont il était désambiguïsé. Il est désambiguïsé !


Voici la sortie du tagger sans qu'aucune règle ne soit appliquée:
Les mots ambigus sont entre balises <B></B>

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE teacs SYSTEM "/dtds/gramadoir.dtd">
<teacs>
<line> <B><Z><A/><P/></Z> Voici</B> <B><Z><D f s/><J f s/><N f s/></Z>une</B> <B><Z><N f s/><V imp pres 2 s/><V ind pres 1 s/><V ind pres 3 s/><V sub pres 1 s/><V sub pres 3 s/></Z>blague</B> <P>de</P> <N m s>Toto</N> <R rel e sp>qui</R> <B><Z><J m s/><N m s/><V ind pres 3 s/><V ppa m s/></Z>fait</B> <D m s>du</D> <N m s>surf</N>. </line>
<line> <A>Seulement</A>, <B><Z><J m s/><P/></Z>sur</B> <B><Z><D f s/><N m sp/><R pers obj 3 f s/></Z>la</B> <N f s>piste</N>, <B><Z><D f s/><N m sp/><R pers obj 3 f s/></Z>la</B> <B><Z><N f s/><V ind pres 3 s/><V sub pres 3 s/></Z>neige</B> <B><Z><J e p/><J e s/><N m s/><V etre ind pres 3 s/></Z>est</B> <B><Z><J f s/><N f s/></Z>mauvaise</B>, <R pers suj 3 f s>elle</R> <B><Z><N m sp/><V avoir ind pres 3 s/></Z>a</B> <B><Z><J m s/><N m s/><V ppa m s/></Z>fondu</B>. </line>
<line> <C coor>Et</C> <N m s>Toto</N> <R rel e sp>qui</R> <A>ne</A> <V ind pres 3 s>sait</V> <B><Z><A/><N m sp/></Z>pas</B> <V inf>surfer</V> <R pers obj 3 sp>se</R> <B><Z><N f s/><N m s/><V imp pres 2 s/><V ind pres 1 s/><V ind pres 3 s/><V sub pres 1 s/><V sub pres 3 s/></Z>casse</B> <B><Z><D f s/><N m sp/><R pers obj 3 f s/></Z>la</B> <B><Z><N f s/><V imp pres 2 s/><V ind pres 1 s/><V ind pres 3 s/><V sub pres 1 s/><V sub pres 3 s/></Z>figure</B>. </line>
<line> <A>Alors</A> <R pers suj 3 m s>il</R> <B><Z><V imp pres 2 s/><V ind pres 1 s/><V ind pres 3 s/><V sub pres 1 s/><V sub pres 3 s/></Z>hurle</B>: &quot;<A>Dorénavant</A> <R pers suj 1 s>je</R> <A>ne</A> <V ind futu 1 s>ferai</V> <B><Z><A/><D e p/><D e s/><N m sp/><V ind psim 1 s/><V ind psim 2 s/><V ppa m p/></Z>plus</B> <P>de</P> <N m s>surf</N> <B><Z><D m s/><R pers obj 3 m s/></Z>le</B> <N m s>week-end</N> <P>de</P> <N f p>Pâques</N> !&quot; </line>
<line> <R pers suj 1 s>Je</R> <B><Z><V ind pres 1 s/><V ind pres 2 s/></Z>sais</B>, <B><Z><D m s/><R dem e s/></Z>ce</B> <N m s>texte</N> <A>ne</A> <B><Z><J m s/><N m s/><V ind pres 3 s/><V ppa m s/></Z>fait</B> <B><Z><A/><N m sp/></Z>pas</B> <A>trop</A> <V inf>rigoler</V>. </line>
<line> <B><Z><D e p/><R pers obj 3 p/></Z>Les</B> <N f p>personnes</N> <R rel e sp>qui</R> <V avoir ind pres 3 p>ont</V> <V ppa m s>skié</V> <B><Z><D m s/><R dem e s/></Z>ce</B> <N m s>week-end</N> <V ind futu 3 p>comprendront</V>. </line>
<line> <R pers suj 1 s>Je</R> <B><Z><V ind impa 1 s/><V ind impa 2 s/></Z>voulais</B> <V inf>voir</V> <B><Z><D f s/><N m sp/><R pers obj 3 f s/></Z>la</B> <N f s>façon</N> <R rel e sp>dont</R> <R pers suj 3 m s>il</R> <V etre ind impa 3 s>était</V> <B><Z><J m s/><V ppa m s/></Z>désambiguïsé</B>. </line>
</teacs>

Et voici la sortie après application des règles :

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE teacs SYSTEM "/dtds/gramadoir.dtd">
<teacs>
<line> <P>Voici</P> <D f s>une</D> <N f s>blague</N> <P>de</P> <N m s>Toto</N> <R rel e sp>qui</R> <V ind pres 3 s>fait</V> <D m s>du</D> <N m s>surf</N>. </line>
<line> <A>Seulement</A>, <P>sur</P> <D f s>la</D> <N f s>piste</N>, <D f s>la</D> <N f s>neige</N> <V etre ind pres 3 s>est</V> <J f s>mauvaise</J>, <R pers suj 3 f s>elle</R> <V avoir ind pres 3 s>a</V> <V ppa m s>fondu</V>. </line>
<line> <C coor>Et</C> <N m s>Toto</N> <R rel e sp>qui</R> <A>ne</A> <V ind pres 3 s>sait</V> <A>pas</A> <V inf>surfer</V> <R pers obj 3 sp>se</R> <V ind pres 1 s>casse</V> <D f s>la</D> <N f s>figure</N>. </line>
<line> <A>Alors</A> <R pers suj 3 m s>il</R> <V ind pres 1 s>hurle</V>: &quot;<A>Dorénavant</A> <R pers suj 1 s>je</R> <A>ne</A> <V ind futu 1 s>ferai</V> <A>plus</A> <P>de</P> <N m s>surf</N> <D m s>le</D> <N m s>week-end</N> <P>de</P> <N f p>Pâques</N> !&quot; </line>
<line> <D e s>Les</D> <N f p>personnes</N> <R rel e sp>qui</R> <V avoir ind pres 3 p>ont</V> <V ppa m s>skié</V> <D m s>ce</D> <N m s>week-end</N> <V ind futu 3 p>comprendront</V>. </line>
<line> <R pers suj 1 s>Je</R> <V ind pres 1 s>sais</V>, <D m s>ce</D> <N m s>texte</N> <A>ne</A> <V ind pres 3 s>fait</V> <A>pas</A> <A>trop</A> <V inf>rigoler</V>. </line>
<line> <R pers suj 1 s>Je</R> <V ind impa 1 s>voulais</V> <V inf>voir</V> <D f s>la</D> <N f s>façon</N> <R rel e sp>dont</R> <R pers suj 3 m s>il</R> <V etre ind impa 3 s>était</V> <V ppa m s>désambiguïsé</V>. </line>
<line> <R pers suj 3 m s>Il</R> <V etre ind pres 3 s>est</V> <V ppa m s>désambiguïsé</V> ! </line>
</teacs>
Posted by Myriam Lechelt @ 03/29/2005 07:40 PM. - Categories: openoffice -  0 comments
[GramOOo] [tagging] ordre des règles et plusieurs passages
L'ordre des règles est très important dans Gramadoir. La première que trouve le programme est appliquée. Il faut donc mettre les plus générales à la fin.
Si le contexte qui sert à désambiguïser est lui même ambigu, la règle ne s'applique pas.
Prenons les trois mots suivants:

<line> <R pers suj 3 f s>elle</R> <V etre ind pres 3 s>est</V> <V ppa f s>prise</V> </line>

"Elle" n'est pas ambigu. Il permet de désambiguïser "est" qui peut être un nom, un adjectif ou le verbe être. S'il est précédé d'un pronom personnel, alors c'est un verbe. Ensuite, il faut que la règle qui concerne la désambiguïsation du participe passé soit placée après, sinon, elle ne va pas s'appliquer si "est" n'est pas encore desambiguïsé. Mais par contre, il faut qu'elle soit placé avant les règles sur l'indicatif sinon prise sera étiqueté :

<V ind pres 1 s>prise</V>        (verbe priser)

Prenons maintenant le cas "il s'est tu". Mettons de côté le problème du pronom "se" car nous en l'avons pas encore traité. Si l'on place la règle des participes après celle qui dit que "tu" par défaut et un pronom personnel (de même que "il"), on aura:

<line> <R pers suj 3 m s>il</R> s' <V etre ind pres 3 s>est</V> <R pers suj 2 s>tu</R> </line>.

"Tu" est étiqueté comme un pronom personnel.
Ceci est problèmatique car la règle des pronoms personnels nécessite d'être placée avant la désambiguïsation de verbes sinon cette dernière ne peut pas se faire.

On pourrait donc avoir besoin de deux passages pour l'application des règles. Mais ceci serait-il vraiment nécessaire? Le mot n'attendra pas le deuxième passage pour se désambiguïser, il matchera la première règle qu'il trouvera.
Posted by Myriam Lechelt @ 03/29/2005 09:58 AM. - Categories: openoffice -  0 comments
03/22/2005
[GramOOo] [tagging] progression
Aujourd'hui nous avons atteint un taux de mots non ambigus de 77% (le taux sans aucune règle était de 54%). C'est un bon avancement au niveau de la quantité à désambiguïser. Mais cela ne veut pas dire que 77% de mots sont bien étiquetés, cela signifie que 77% des mots n'ont qu'un seul tag. D'où l'importance de taux tels que "précision" et "décision" qui mesurent à la fois le nombre de mots non ambigus et le nombre de mots correctement étiquetés.
Posted by Myriam Lechelt @ 03/22/2005 04:33 PM. - Categories: openoffice -  0 comments
03/21/2005
[GramOOo] [tagging] difficulté de désambiguïser ce qui n'est pas parfait
Nous devons garder à l'esprit que les règles vont servir à désambiguïser non seulement des phrases correctes, mais aussi et surtout des phrases fausses.
Comme la désambiguïsation se fait sur le contexte droit ou gauche, il faut tenir compte du fait qu'il puisse contenir des erreurs.
Imaginons que l'utilisateur écrive:
    Des chats noir

Et que l'on ait la règle suivante:

<N m s>ANYTHING</N> <B><Z>ANYJMS</Z>ANYTHING</B>:<J m s>

Cette règle ne va désambiguïser seulement les adjectifs maculins singuliers qui sont précédés de noms masculins singuliers. Elle ne désambiguïse que ce qui est correct grammaticalement et ne désambiguisera donc pas l'exemple ci-dessus car chats est pluriel et noir singulier. Par conséquent, on ne pourra pas corriger cette faute.
Ici la solution est de généraliser le nom qui précède:

<N>ANYTHING</N> <B><Z>ANYJMS</Z>ANYTHING</B>:<J m s>
(un adjectif masculin singulier ambigu précédé de n'importe quel nom est un adjectif masculin singulier).

Un autre exemple et celui de ne ... pas.
J'ai créé une règle qui dit que si le mot pas est précédé de ne, alors il n'est pas un nom mais un adverbe:

[Nn]e ANYTHING <B>pas</B>:<A>

Or, il nous arrive souvent d'oublier le ne pour la négation. Dans ce cas, ma règle ne pourra pas désambiguïser pas, et on ne pourra donc pas  corriger cette faute.

Les règles de désambiguïsation (qu'elles soient manuelles ou basées sur une méthode statistique) sont des règles contextuelles (se basent sur le contexte) et présupposent donc une cohérence morphosyntaxique. Or, le but d'un correcteur grammatical est justement de repérer des fautes de cohérence morphosyntaxique.
Il faut donc tenir compte de cela lors de la création des règles de desambiguïsation.

Posted by Myriam Lechelt @ 03/21/2005 04:03 PM. - Categories: openoffice -  0 comments
03/18/2005
[GramOOo] [tagging] évaluation de la progression
Nous avons sorti quelques chiffres afin de mesurer l'avancement de notre tagger.
Sans qu'aucune règle ne soit appliquée (ni aucune fréquence car elles n'entreront en jeu que s'il y a échec des règles), Gramadoir donne 60% de mots non ambigus, soit 6 mots sur 10.
Avec des règles désambiguïsant uniquement les detérminants "le" et "la", on gagne 2%. On passe à 65% de non ambigüs avec quelques règles sur les déterminants, les noms et les adjectifs.
Notons que ces dernières ne sont pas encore optimales et vont être améliorées. Le gain qu'elles apportent devrait être bien plus conséquent. En effet, les SN (= syntagmes nominaux, c'est-à-dire notament déterminant, nom, adjectif) sont nombreux dans la langue et les noms sont très souvent ambigüs.

Nous allons également utiliser les taux de précision et de décision définis par la campagne d'évaluation de GRACE (http://www.up.univ-mrs.fr/veronis/Atala/TALN/pdf/A76.pdf) et qui servent à évaluer des taggers et différents outils linguistiques. La précision mesure la capacité à donner un tag, la décision, la capacité à donner le bon.
Grâce à ces taux nous pourrons voir l'avancement de notre travail de manière précise.

Posted by Myriam Lechelt @ 03/18/2005 05:13 PM. - Categories: openoffice -  0 comments
03/16/2005
[gramOOo] [tagging] premières règles
Les choses avancent!
Voici un exemple de sortie avant qu'aucune règle de désambiguïsation ne soit appliquée.

<B><Z><D m s/><N m s/><R pers obj 3 m s/></Z>le</B> <B><Z><A/><J m s/><N m s/></Z>petit</B> <N m s>test</N>

Les tags <B> et <Z> servent à marquer les mots ambigus.
"Le" était donc étiqueté comme un déterminant, un nom et un pronom personnel objet .
"petit" était un adverbe (erreur dans le lexique probablement), un adjectif et un nom.

J'ai appliqué trois premières règles très simples selon la structure de Gramadoir:

<B>[Pp]etit</B> <N>ANYTHING</N>:<J m s>
<B>[Ll]e</B> <N>ANYTHING</N>:<D m s>
<B>[Ll]e</B> <J>ANYTHING</J>:<D m s>

La première signifie que si le mot ambigu "petit" (avec ou sans majuscule) est suivit par n'importe quel mot qui est un nom, alors il est un adjectif masculin singulier.
La deuxième et la troisième signifient : si le mot ambigu "le" est suivit par un nom ou un adjectif alors il est un déterminant masculin singulier.

Après application de ces règles la sortie est donc:

<D m s>le</D> <J m s>petit</J> <N m s>test</N>

Ces pemières règles appliquées, nous pourrons maintenant en construire de plus générales grâce à des expressions régulières.
Posted by Myriam Lechelt @ 03/16/2005 08:54 AM. - Categories: openoffice -  0 comments
[gramOOo] [tagging] Gramadoir, quelques fichiers importants
Quelques mots sur les principaux fichiers de Gramadoir.
- lexicon-fr.txt : contient toutes les formes fléchies du lexique avec le nombre qui correspond à leur tag.
- pos-fr.txt : liste tous les tags et le nombre qui leur correspond
- aonchiall-fr.in : répertorie les règles de désambiguïsation du tagging
- macra-fr.meta.pl : macro qui permet de définir des mots qui globalisent certains mots pour les règles, à l'aide d'expressions régulières (ex si l'on veut dire "n'importe quoi" ou "tous les adjectifs").
- unigram-fr-txt : liste les tags par fréquences.

Pour plus de détails : http://borel.slu.edu/gramadoir/manual/c409.html
Posted by Myriam Lechelt @ 03/16/2005 08:25 AM. - Categories: openoffice -  0 comments
03/15/2005
[gramOOo] [tagging] installation de Gramadoir
Quelques mots sur l'installation de Gramadoir-fr.
Vous devez avoir deux dossiers :
- engine 
- gramadoir-fr-0.01
Ensuite, il faut taper les lignes de commande suivantes:
$ cd engine
$ ./configure
$ cd ../gramadoir-fr-0.01
$ ./configure
$ make rebuildlex

Ensuite, il n'y a plus qu'à suivre les indications sur le site de Kevin P. Scannell (http://borel.slu.edu/gramadoir/manual/x378.html) :

$ make
(dans le dossier gramadoir-fr-0.01)
$ cd Lingua-FR-Gramadoir
$ perl Makefile.PL
$ make
$ make test
$ make install
Attention, pour cette dernière ligne, vous devez avoir les droits root.

Pour tester gramadoir, il suffit de faire
$ gram-fr.pl monfichier.txt
Pour tester uniquement la phase de tagging:
$ gram-fr.pl --no-unigram monfichier.txt

La désambiguïsation du tagging se fait en deux étapes. D'abord l'aplication des règles, puis si c'est règles après deux passages n'ont pas réussi à désambiguïser, on applique la fréquence la plus haute aux mots encore ambigüs. Gramadoir n'est pas un système probabiliste mais il se sert quand même de probabilités!
C'est pour cela que l'on utilise l'option --no-unigram pour tester l'application de nos règles, mais avant que les fréquences ne soient appliquées (elles le sont par défaut, pour les voir, on peut faire l'option --xml)

Lorsqu'on modifie un fichier, par exemple une règle dans le fichier aonchiall-fr.in (là où toutes les règles de désambiguïsation sont inscrites)
il faut refaire l'installation à partir du "make".
Posted by Myriam Lechelt @ 03/15/2005 05:48 PM. - Categories: openoffice -  0 comments
03/07/2005
[GramOOo] [tagging] avancement du projet
Nous avons maintenant une liste de tags et lexique taggé, les ressources pour démarrer le travail de tagging.
Nous les avons soumises à Kevin P. Scannell qui a adapté son programme pour le gaélique (qui contenait moins de 255 tags alors que nous en avons plus) pour que nous puissions faire une version française.
J'en profite pour remercier Kevin qui est très présent et nous aide beaucoup.
Il a donc vu que son programme pouvait prendre en compte le français et a sorti un premier résultat:

<line> <N f s>Une</N> <N f s>première</N> <N f s>version</N> <V ind pres 3 s>fonctionne</V> <A>parfaitement</A>. </line>

Nous voyons déjà dans cet exemple, qu'il y a deux mots ambigus qui ont plusieurs étiquettes dans le lexique:
Une a trois tags,  première en a deux :
une    <J f s>
une    <D f s>
une    <N f s>
première <N f s>
première <J f s>
Le tag D correspond à un déterminant, J à un adjectif et N à un nom.
Une autre version du tagging est donc par exemple:

<line> <D f s>Une</D> <J f s>première</J> <N f s>version</N> <V ind pres 3 s>fonctionne</V> <A>parfaitement</A>. </line>

Le programme de Gramadoir pose les tags sur les noms à l'aide du lexique. Notre travail va maintenant être de créer des règles françaises afin de désambiguïser pour arriver à la suite correcte par exemple ici : <D>+<J>+<N>. Les attributs "f" et "s" serviront entre autres pour les accords lors de l'étape de construction des règles grammaticales.

Posted by Myriam Lechelt @ 03/07/2005 03:11 PM. - Categories: openoffice -  0 comments
[GramOOo] la liste des tags
Nous avons dressé la liste de toutes les informations morphosyntaxiques qui nous seront nécessaires pour faire des règles de grammaires efficaces. Ces informations sont contenues dans les tags qui étiquettent chaque mot.
Outre la catégorie grammaticale (nom, verbe, pronoms etc.) il nous faut distinguer genre, nombre, personne, temps, mode mais aussi les pronoms relatifs des pronoms personnels, mais encore les pronoms personnels sujets des pronoms personnels objets etc.
Ceci permettra de corriger les fautes d'accord comme ils danse ou des fautes comme me lave, il y a un pronom personel objet mais cette phrase n'a pas de sujet.
Nous avons aussi spécialement taggué les auxiliaires être et avoir de manière à pouvoir gérer les temps composés et les accords de participes passés. Par exemple:
Elle est aimé
On a l'auxiliaire être + participe passé, donc il doit y avoir accord en genre et en nombre avec le pronom personnel sujet, donc il y a erreur.

Tout cela paraît être un détail, mais ce n'est pas le cas, plus nous aurons d'informations sur les mots, plus nous pourrons construire des règles grammaticales par la suite, et plus elles seront précises et efficaces.
Posted by Myriam Lechelt @ 03/07/2005 11:41 AM. - Categories: openoffice -  0 comments
Last modified: 02/13/2005 01:45 PM

Nuxeo Bloggers: Log in!
Nuxeo - Indesko - Nuxeo 5 Project
All content is copyrighted by their author.
CPSSkins is Copyright © 2003-2006 by Jean-Marc Orliaguet. | CPS is Copyright © 2002-2006 by Nuxeo SAS.