vendredi 27 février 2009

FASTER : Reconnaissance des termes et de leurs variantes

Description

FASTER est un analyseur syntaxique robuste pour la reconnaissance de termes appartenant à une liste contrôlée développé par Christian Jacquemin. Il permet de:
• Détecter les variantes des termes en corpus (formes linguistiques differentes)
• Capturer les variations par des métarègles opérant à differents niveaux :
  • Morpho-syntaxique : flux de sève mesurés est une variation de mesure de flux s’appuyant sur le lien morphologique entre le verbe mesurer et le nom mesure.
  • Syntaxique : mesure de volume et de flux est une variante de mesure de flux obtenue par coordination
  • Syntaxico-sémantique : évaluation de flux est une variante de mesure de flux s’appuyant sur le lien sémantique existant entre les noms évaluation et mesure.
• Reconnaître des variantes terminologiques à trois niveaux :
  • Premier niveau : mots simples et liens morphologiques et sémantiques
  • Deuxième niveau : termes construits sur les mots simples
  • Troisieme niveau : variations qui transforment les règles et termes en règles de variantes
      *Dimension syntagmatique : transformations structurales
      *Dimension paradigmatique : liens morphologiques etsémantiques.FASTER est disponible en Anglais et en Français.

Installation sous Linux

Pour installer FASTER, il faut commencer par le télécharger, ensuite:
1-Créer un répertoire de travail
2-Décompresser l'archive fastr-2.04.tar.gz dans le répertoire crée
3-Compiler FASTR en tapant les commandes:
* ./configure
* make
* make install
4-Installer TreeTagger.

Utilisation

Fastr peut être utilisé en deux modes:
* Indexation contrôlée : l'outil prend en entrée un corpus et une liste de termes.
* Indexation libre : l'outil prend en entrée uniquement un corpus, la liste des termes étant automatiquement acquise à partir du corpus.
Le corpus et la liste des termes sont étiquetés par TreeTagger.

Pour le Français, la syntaxe générale est:
* En Indexation contrôlée :
fastr-controlled-indexing-fr [options] <texte_fr> <liste_termes_fr>
* En Indexation libre :
fastr-free-indexing-fr [options] <corpus_fr>
Pour l'Anglais, la syntaxe générale est:
* En Indexation contrôlée :
fastr-controlled-indexing-en [options] <texte_en> <liste_termes_en>
* En Indexation libre :
fastr-free-indexing-en [options] <corpus_en>

Si on veut essayer FASTR sur le fichier text-fr.txt en utilisant le fichier de termes terms-fr.txt en mode indexation contrôlée, on tape la commande:
fastr-controlled-indexing-fr -c etc/fastr.conf-fr data/text-fr.txt data/terms-fr.txt >résultat.txt
(fastr.conf-fr est le fichier de configuration)

Le contenu de text-fr.txt est: (Le contenu peut être simplement un texte et pas forcément des termes ou des phrases chacune dans une ligne)

catégorie grammaticale.
catégorie des mots grammaticaux.
catégorisation des mots.
étiquette grammaticale.
classe d'un mot de la grammaire.
familles des mots grammaticaux.

Le contenu de terms-fr.txt est:

catégorie grammaticale.
catégories des mots.
catégorisation des mots.

Et voici le contenu du fichier résultat:

catégorie grammaticale .
000001 catégorie grammatical catégorie grammaticale 0
catégorie des mots grammaticaux .
000002 catégorie du mot catégorie des mots 0
000002 catégorie grammatical catégorie des mots grammaticaux XX,4,Modif
000002 catégorisation du mot catégorie des mots XXX,23,NtoN
catégorisation des mots .
000003 catégorisation du mot catégorisation des mots 0
000003 catégorie du mot catégorisation des mots XXX,23,NtoN
étiquette grammaticale .
classe d un mot de la grammaire .
000005 catégorie du mot classe d un mot XXX,26,NtoNSHead
familles des mots grammaticaux .
000006 catégorie du mot familles des mots XXX,26,NtoNSHead

Le fichier de sortie est sous forme tabulaire, il est composé de 4 colonnes séparées par des tabulations sauf la deuxième et la troisième qui sont séparées par un espace et une tabulation. La première colonne représente le numéro de la phrase analysée, la deuxième représente le terme utilisé de la liste des termes, la troisième représente la variante repérée et enfin la dernière représente le type de la variante.

Une étiquette 0 sur le lien signifie qu'il s'agit d'une occurence, éventuellement fléchie, d'un terme donné. Toutes les autres étiquettes dénotent des variantes obtenues à partir de métarègles sachant qu'on dispose de variantes syntaxiques (coordination, modification, permutation), de variantes morpho-syntaxiques (NtoV, ...), de variantes terminologiques (synonymie, antonymie, hyponymie, méronymie) ...

Maintenant, si on veut essayer FASTR sur le fichier corpus-fr.txt en mode indexation libre, on tape la commande:
fastr-free-indexing-en -c etc/fastr.conf-fr data/corpus-fr.txt >résultat.txt
Le contenu de corpus-fr.txt est:

Le REN est la détection d'une zone textuelle correspondant à une entité nommée et l'attribution d'un type à cette entité (nom de personne, nom de lieu, nom d'organisation, et entité numérique (date, pourcentage ou montant financier)). Le REN est une tâche à mi-chemin entre l'analyse linguistique et la consultation lexicale.

Voici le contenu du fichier résultat:

Le REN est la détection d une zone textuelle correspondant à une entité nommée et l' attribution d un type à cette entité ( nom de personne nom de lieu
nom d organisation et entité numérique ( date pourcentage ou montant financier ) ) .

000001 zone textuel zone textuelle 0
000001 entité numérique entité numérique 0
000001 entité nommé entité nommée 0
000001 nom de personne nom de personne 0
000001 nom de organisation nom d organisation 0
000001 nom de lieu nom de lieu 0
000001 montant financier montant financier 0
Le REN est une tâche à mi-chemin entre l' analyse linguistique et la consultation lexicale .
000002 analyse linguistique analyse linguistique 0
000002 consultation lexical consultation lexicale 0

La plupart des travaux en TALN pour la recherche d’information sont appliqués en indexation libre (Schwarz, 1990; Sheridan & Smeaton, 1992; Strzalkowski, 1996). Ces analyseurs à large couverture décomposent des structures syntaxiques en dépendances élémentaires qui constituent les index du texte. Au contraire, la finalité de FASTER est l’indexation contrôlée: il s’agit de retrouver, au moyen d’une base de termes et d’une métagrammaire de variations locales, les occurrences de ces termes et de leurs variantes.

Licence

Licence GPL

Références

Jacquemin, C. (1997) Variation terminologique : reconnaissance et acquisition automatiques de termes et de leurs variantes en corpus, Memoire d’habilitation a diriger des recherches en informatique fondamentale, Universite de Nantes.

JACQUEMIN C., K LAVANS J. L. & T ZOUKERMANN E. (1997). Expansion of multi-word terms for indexing and retrieval using morphology and syntax. In Proceedings, 35th Annual Meeting of the Association for Computational Linguistics and 8th Conference of the European Chapter of the Association for Computational Linguistics (ACL - EACL’97), Madrid

http://www.limsi.fr/Individu/jacquemi/FASTR/

vendredi 13 février 2009

Link Grammar Parser : Analyse syntaxique

L’analyse syntaxique vise à produire, pour chaque phrase du texte, un graphe reflétant les dépendances entre mots au sein de la phrase.

Description

Link grammar parser est un parseur syntaxique développé pour l'Anglais à l'université de Carnegie Mellon par John Lafferty , Daniel Sleator et Davy Temperley. Il est basé sur une grammaire de dépendances. Etant donné une phrase, le système lui attribue une structure syntaxique à partir de tous les liens crées localement pour des paires de mots. Chaque lien entre deux mots (dépendance) est étiqueté et répond à des contraintes décrites dans le dictionnaire.

Installation sous Linux

Pour installer Link Grammar Parser, il faut commencer par le télécharger, puis:

1-Décompresser l'archive link-4.1b.tar.gz à l'endroit de son choix
2-Vérifier la configuration du Makefile
3-Taper la commande make
4-Appliquer des patches additionnels par la commande : patch -p0

Utilisation

Link Grammar Parser prend en entrée un fichier texte qui contient une phrase par ligne.

Pour utiliser Link Grammar Parser, la syntaxe générale est:
./parse [dictionary] [-pp post-process file] [-c constituent-knowledge file] [-a affix-file]
où:
  • Post-process file est un fichier qui permet la gestion en post-traitement de l'analyse.
  • Constituent-knowledge file est un fichier qui permet la gestion en post-traitement de la construction des constituents syntaxiques (arbres de constituents)
  • Affix file est un fichier qui permet la gestion de la ponctuation et des symboles.
Il est à noter que ces fichiers sont optionnels. Le système utilise par défaut les fichiers 4.0.*

Certaines options peuvent être utilisées dans Link Grammar parser permettant de spécifier des modes de traitements et un format de sortie en définissant des valeurs pour certaines variables. Les commandes pour régler ces options commencent par "!". Lorsqu'on utilise l'analyseyur en mode commande, on le lance avec la commande ./parse, ensuite on peut spécifier les options au prompt. Lorsqu'on utilise un fichier d'entrée, la liste des commandes doit apparaître en en-tête du fichier. Certaines variables sont de type booléen (on ou off), on les modifie en tapant leur nom et d'autres peuvent être paramétrées en changeant la valeur de l'entier.

Les options ayant un effet sur le format de sortie sont essentiellement: !graphics, !links et !postscript.

Par exemple si on veut appliquer Link Grammar Parser au fichier test.txt, on tape la commande:
./parse <test.txt >resultat.txt    (les options étant spécifiées à l'en-tête du fichier test.txt)

* Avec !graphics

En effet, le mode graphique est activé par défaut pour faciliter la lecture à l'utilisateur. Le résultat obtenu a cette forme:

Opening ./data/4.0.dict
Opening ./data/words/words.n.p
.
.
.
Opening ./data/4.0.affix
linkparser> ++++Time 0.00 seconds (-0.00 total)
Found 2 linkages (2 had no P.P. violations)
Linkage 1, cost vector = (UNUSED=0 DIS=0 AND=0 LEN=18)

+----------------------------------Xp----------------------------------+
+------------Wd---------------+ +---------Ost--------+ |
| +--------DG--------+ | +--------Ds-------+ |
| | +--G--+---G---+--Ss-+ | +-----A----+--Mp-+--Jp-+ |
| | | | | | | | | | | |
LEFT-WALL the Link Grammar Parser is.v a syntactic.a parser.n of English.n .

Press RETURN for the next linkage.
linkparser>

Donc en tapant !graphics à l'en-tête du fichier, on désactive le mode graphique et le résultat sera simplement:

Opening ./data/4.0.dict
Opening ./data/words/words.n.p
.
.
.
Opening ./data/4.0.affix
linkparser> Graphical display of linkage turned off.
linkparser> ++++Time 0.00 seconds (0.00 total)
Found 2 linkages (2 had no P.P. violations)
Linkage 1, cost vector = (UNUSED=0 DIS=0 AND=0 LEN=18)
Press RETURN for the next linkage.
linkparser>

* Avec !links

On obtient plus de détails sur les relations entre deux mots et une indication sur le niveau syntaxique (m).
Ce format peut être traité par une machine mais présente de nombreuses difficultés lors de la récupérartion des données.
Le résultat a donc cette forme:

Opening ./data/4.0.dict
Opening ./data/words/words.n.p
.
.
.
Opening ./data/4.0.affix
linkparser> Graphical display of linkage turned off.
linkparser> Showing of complete link data turned on.
linkparser> ++++Time 0.00 seconds (0.00 total)
Found 2 linkages (2 had no P.P. violations)
Linkage 1, cost vector = (UNUSED=0 DIS=0 AND=0 LEN=18)

| LEFT-WALL Xp <---Xp----> Xp .
(m) LEFT-WALL Wd <---Wd----> Wd Parser
(m) the DG <---DG----> DG Parser
(m) Grammar G <---G-----> G Parser
(m) Link G <---G-----> G Grammar
(m) Parser Ss <---Ss----> Ss is.v
(m) is.v O*t <---Ost---> Os parser.n
(m) a Ds <---Ds----> Ds parser.n
(m) syntactic.a A <---A-----> A parser.n
(m) parser.n M <---Mp----> Mp of
(m) of J <---Jp----> Jp English.n
| . RW <---RW----> RW RIGHT-WALL

Press RETURN for the next linkage.
linkparser>

* Avec !postscript

Ce format est composé de deux parties. La première représente le découpage de la phrase en mots auxquels est attribuée une étiquette morphologique (.n pour nom, .v pour verbe, .a pour adjectif ...) et la deuxième décrit les relations binaires entre deux mots représentés par les deux premiers numéros correspondant à leurs places respectives dans la phrase. Entre parenthèses, on trouve l'étiquette de la relation.
Ce format est difficilement lisible pour un humain, mais permet un traitement informatique postérieur des résultats obtenus par Link Parser.
Le résultat a cette forme:

Opening ./data/4.0.dict
Opening ./data/words/words.n.p
.
.
.
Opening ./data/4.0.affix
linkparser> Graphical display of linkage turned off.
linkparser> Generate postscript output turned on.
linkparser> ++++Time 0.00 seconds (0.00 total)
Found 2 linkages (2 had no P.P. violations)
Linkage 1, cost vector = (UNUSED=0 DIS=0 AND=0 LEN=18)
[(LEFT-WALL)(the)(Link)(Grammar)(Parser)(is.v)(a)(syntactic.a)(parser.n)(of)
(English.n)(.)]
[[0 11 0 (Xp)][0 4 0 (Wd)][1 4 0 (DG)][3 4 0 (G)][2 3 0 (G)][4 5 0 (Ss)][5 8 0 (Ost)]
[6 8 0 (Ds)][7 8 0 (A)][8 9 0 (Mp)][9 10 0 (Jp)]]
[]
Press RETURN for the next linkage.
linkparser>

Licence

Compatible avec GPL

Références

S LEATOR D. D. & T EMPERLEY D. (1993). Parsing English with a link grammar. In Third International Workshop on Parsing Technologies.

http://www.link.cs.cmu.edu/link/

http://abiword.com/projects/link-grammar/dict/introduction.html

jeudi 12 février 2009

Tree Tagger : Etiquetage morpho-syntaxique et Lemmatisation

L'étiquetage morpho-syntaxique consiste à associer une étiquette morpho-syntaxique à chaque mot, il repose sur la segmentation en mots et en phrases effectuée préalablement.

La lemmatisation consiste à associer un lemme à chaque mot du texte. Si le mot ne peut pas être lemmatisé (nombre, mot étranger, mot inconnu), aucune information ne lui est associée. La lemmatisation suppose que l'analyse morpho-syntaxique a déjà été faite.

Description

TreeTagger est un outil qui permet d'annoter un texte avec des informations sur les parties du discours (genre de mots: noms, verbes, infinitifs et particules) et des informations de lemmatisation. Il a été développé par Helmut Schmid dans le cadre du projet « TC » dans le ICLUS (Institute for Computational Linguistics of the University of Stuttgart). TreeTagger permet l'étiquetage de l'Allemand, l'Anglais, le Français, l'Italien, le Deutch, l'Espagnol, le Bulgare, Le Russe, le Grec, le Portuguais, le chinois et les textes français anciens. Il est adaptable à d'autres langages si des lexiques et des corpus étiquetés manuellement sont disponibles.

TreeTagger peut également être utilisé comme un « chunker » pour l'Anglais, l'Allemand et le Français (étiquetage des parties du discours, délimitation des groupes syntaxiques, étiquetage des groupes).

Installation sous Linux

Pour installer TreeTagger, on peut consulter le site web

http://www.ims.uni-stuttgart.de/projekte/corplex/TreeTagger/DecisionTreeTagger.html

En résumé, il faut:

1-Créer un répertoire nommé TreeTagger
2-Télécharger les archives dans tools/TreeTagger
3-Dans le répertoire tools./TreeTagger, exécuter install-tagger

Utilisation

La commande d’étiquetage CLASSIQUE avec TreeTagger est la suivante :
tree-tagger [options] <parametres> <textein> <texteout>

● Le premier argument est le fichier paramètre (french.par dans le répertoire lib par exemple)
● Le deuxième argument est le texte à étiqueter (avec un mot par ligne)
● Le troisième argument est le nom du fichier de sortie

Si on utilise cette syntaxe, le fichier d'entrée doit être préalablement segmenté (un mot par ligne).

Des scripts shell sont disponibles dans le sous répertoire cmd pour différentes langues permettent la tokenisation, l'étiquetage et quelques corrections d'erreurs afin de simplifier l'utilisation de TreeTagger (font appel à la commande classique), et dans ce cas la segmentation préalable du texte en entrée n'est pas indispensable car ces scripts font également appel à un segmenteur (tokenizer) par défaut.

Par exemple, si on veut simplement étiqueter le fichier test.txt écrit en langue française, On tape la commande:
sh cmd/tree-tagger-french test.txt >resultat.txt
voici un extrait du fichier résultat produit:

TreeTagger NAM <unknown>
permet VER:pres permettre
d' PRP de
annoter VER:infi annoter
plusieurs PRO:IND plusieurs
langues NOM langue
. SENT .
avec

ABR : abréviation
ADJ : adjectif
VER : verbe
DET:ART :article
...

Ce fichier est sous forme tabulaire, il est composé de trois colonnes séparées par des tabulations. La présence de la première et de la dernière colonne est due à l'utilisation des options -token et -lemma qui affichent respectivement le mot et le lemme lors de l'appel du script treetagger (treetagger french.par -token -lemma test.txt). La deuxième colonne représente l'étiquette morpho-syntaxique attribuée par TreeTagger aux différents mots.

Si on veut appliquer le chunker(tokenisation, étiquetage et annotation avec les formes verbales et nominales) sur le fichier test.txt écrit en langue française, On tape la commande:
sh cmd/tagger-chunker-french test.txt >resultat.txt
voici un extrait du fichier résultat produit:

<s>
<np>
TreeTagger NAM
</np>
<vn>
permet VER:pres permettre
</vn>
<vpinf>
d' PRP de
</vpinf>
<vn>
annoter VER:infi annoter
</vn>
<np>
plusieurs PRO:IND plusieurs
langues NOM langue
</np>
. SENT .
</s>
On remarque la présence de balises en plus par comparaison avec le fichier de sortie précédent, avec

NP : groupe nominal
PP : groupe prépositionnel
...

Licence

Gratuit pour la recherche uniquement

Références

SCHMID H. (1997). Probabilistic part-of-speech tagging using decision trees. In D. J ONES &

H. SOMERS, Eds., New Methods in Language Processing Studies in Computational Linguistics.

WordSeg : Segmentation en mots et en phrases

La segmentation en mots et en phrases consiste à identifier les phrases et les mots dans un texte en exploitant un ensemble d’expressions régulières.

Description

WordSeg est un script awk écrit par Thierry Hamon and Julien Deriviere, au Laboratoire d'Informatique de Paris-Nord (LIPN) pour segmenter des textes français, en modifiant le script awk proposé par Gregory Grefenstette et désigné pour l'Anglais.

Installation sous Linux

Pour installer WordSeg, il faut commencer par le télécharger, puis décompresser l'archive WordSeg.tar.gz à l'endroit de son choix.

Utilisation

Pour utiliser WordSeg, il suffit d'exécuter la commande:
awk [options] <script_awk> <textein>

Par exemple, pour exécuter WordSeg sur le fichier test.txt, il faut saisir la commande :
awk -f words-fr.awk test.txt >seg.txt

Voici un extrait du fichier seg.txt produit:

La
segmentation
en
mots
et
en
phrases
consiste
à
identifier
les
phrases
et
les
mots
en
exploitant
un
ensemble
d'
expressions
régulières
.

Licence

Licence GPL

Références

G REFENSTETTE G. & TAPANAINEN P. (1994). What is a word, what is a sentence ? problems

of tokenization. In The 3rd International Conference on Computational Lexicography, p. 79–

87, Budapest.