jeudi 5 mars 2009

ACABIT : Acquisition de termes à partir de corpus

Description

ACABIT est un programme développé par Béatrice Daille qui permet une acquisition terminologique sur un corpus pré-étiquete et desambiguisé. Cette aquisition de termes s'effectue en deux étapes:

1-Analyse linguistique et regroupement de variantes : analyse du corpus par des transducteurs et production de candidats termes binaires
Nom Adj : connaissances informatiques
Nom1 à (Det) Nom2 : aide à domicile
Nom1 Prep Nom2 : vente par téléphone ...
Décomposition : réseau de transit à satellite → réseau de transit et réseau à satellite

2-Filtrage statistique : tri des candidats termes à partir d’un corpus de référence et de termes valides.
Comparaison de mesures statistiques en fonction de leur capacité à distinguer les termes des séquences ne correspondant pas à des termes.

Des transformations syntaxiques permettent d’associer une forme de base à plusieurs variantes
• Coordination de termes
Assemblage et désassemblage de paquets → assemblage de paquets, désassamblage de paquets
• Surcomposition de termes
Réseau de transit à satellites → réseau de transit, réseau à satellites
• Modification adjectivale de termes
Liaisons multiples par satellites → liaison par satellites

ACABIT existe en verion française et anglaise.

Installation sous Linux

Pour installer ACABIT, il faut commencer par le télécharger:

* ACABIT français version v4.3 tar gz
* ACABIT anglais version v4.3 tgz

ACABIT utilise les programmes suivants :

* Perl
* Pour le français :
    o Étiqueteur grammatical de Brill distribué par l' ATILF ou TreeTagger
    o Le lemmatiseur FLEMM (ATTENTION : le format de sortie de FLEMM a été récemment modifié. Il faut utiliser la version FLEMM-v2.0 (1999))
    o Mise au format XML. Ce script PERL peut vous être utile brill2xml.pl
* Pour l'anglais :
    o Étiqueteur grammatical d'Eric BRILL
    o lemmatiseur : utilisation de la base lexicale CELEX
Utilisation de la version française

ACABIT prend en entrée un texte annoté linguistiquement et retourne une liste ordonnée de candidats termes.

La syntaxe générale d'utilisation est :
perl -C fr_stat.pl <nom_du_fichier_entree>
perl -C fr_tri.pl <nom_du_fichier_sortie> (Fichier de sortie par défault : out.xml)
Le fichier d'entrée doit être balisé comme suit:

<record>
<an> ...</an>
<ti> ... </ti>
<ab>
<ph_nb=xxx> ... <ph>
....
<ph_nb=xxx> ... <ph>
</ab>
</record>
<record>
...
</record>

*Balise <record> : marquage des différents textes
*Balise <an> : information concernant le texte
*Balise <ti> : titre
*Balise <ab> : corps du texte
*Balise <ph_nb=xxx>: phrase numero xxx

Si, par exemple, on veut appliquer ACABIT sur le fichier d'entrée exemple_fr.txt et mettre le résultat dans le fichier résultat, on tape les commandes:
perl -C fr_stat.pl exemple_fr.txt
perl -C fr_tri.pl résultat
Ceci est un extrait du fichier d'entrée:

<record>
<an>
92/CAR/92 -/- 0014602/CAR/0014602
</an>
<ab>
<ph_nb=1>On/PRV:3p:_:s:n/on examine/VCJ:{{1|3}p:s:pst:{ind|subj}|2p:s:pst:imper}/examiner:1g les/DTN:_:p/le alternatives/SBC:_:p/alternative d'/PREP/d' une/DTN:m:s/un production/SBC:_:s/production économique/ADJ:_:s/économique de/PREP/de vapeur/SBC:_:s/vapeur et/COO/et de/PREP/de courant/SBC:_:s/courant pour/PREP/pour la/DTN:f:s/le sucrerie/SBC:_:_/sucrerie ./. </ph>
<ph_nb=2>On/PRV:3p:_:s:n/on énumère/VCJ:{{1|3}p:s:pst:{ind|subj}|2p:s:pst:imper}/énumérer:1g et/COO/et on/PRV:3p:_:s:n/on évalue/VCJ:{{1|3}p:s:pst:{ind|subj}|2p:s:pst:imper}/évaluer:1g les/DTN:_:p/le possibilités/SBC:_:p/possibilité d'/PREP/d' optimisation/SBC:_:s/optimisation en/PREP/en vue/SBC:f:s/vue d'/PREP/d' une/DTN:m:s/un réduction/SBC:_:s/réduction des/DTC:_:p/du besoins/SBC:_:p/besoin spécifiques/ADJ:_:p/spécifique en/PREP/en vapeur/SBC:_:s/vapeur pour/PREP/pour la/DTN:f:s/le production/SBC:_:s/production du/DTC:m:s/du courant/ADJ:m:s/courant </ph>
</ab>
</record>
.
.
.

Et voila un extrait du fichier résultat (fichier XML)

<listcand>
<setcand new_ident="356" loglike="1096.055" freq="5">
<cand old_ident="358">
<na freq="5">
<base>
<term> alcool supérieur </term>
</base>
</na>
</cand>
</setcand>
<setcand new_ident="80" loglike="1071.797" freq="4">
<cand old_ident="81">
<npn freq="4">
<base>
<term> qualité du produit </term>
</base>
</npn>
</cand>
</setcand>
.
.
.

Ce fichier contient des informations sur les termes trouvés (représentés ici par leurs identifiants) telles que le lemme, le nombre d'occurences, le coefficient de vraisemblance (loglike)...
Ces termes sont triés selon le loglike qui est une mesure statistique permettant de classifier les candidats termes extraits à l'aide de filtres linguistiques du plus au moins représentatif du domaine.

D'autres fichiers de sortie temporaires sont également générés (prefixe.txt, relationnel.txt, res.txt, tri.txt...). Les plus importants sont temp.txt, temp2.txt, res.txt et tri.txt.

Le fichier temp.txt contient la liste des termes avec leurs statistiques. Chaque ligne correspond à un couple (premier lemme/ dernier lemme).
Voila un extrait de ce fichier représentant un seul terme (une ligne):

42 1 3 1 forme minéral 1 * forme minéral

Les informations pour chaque couple sont, dans l'ordre :
- son identifiant unique
- le nombre de termes commencant par ce premier lemme
- le nombre de termes finissant par ce dernier lemme
- le premier lemme
- le dernier lemme
- le type de structure
- la suite de lemmes de chaque terme simplifié trouvé comportant ce premier et ce dernier lemme

Le fichier temp2.txt est le fichier où apparait chaque terme trouvé (autant de fois que d'occurences dans le texte).
Voila un extrait de ce fichier représentant un seul terme (une ligne):

extension sucrerie 8 --- extension d' une sucrerie --- SBC PREP DTN SBC --- extension d' un sucrerie --- npn --- BASE --- 92 --- 0014603 --- 1 --- 0

Chaque ligne correspond à un terme trouvé, a ses caractéristiques et a ses références :
- le premier lemme
- le dernier lemme
- l'identifiant unique du couple (premier lemme/ dernier lemme)
- la suite de flexions de chaque terme
- la suite d'étiquettes de chaque terme
- la suite de lemmes de chaque terme
- la structure du terme (NA, NPN, ...)
- le type du terme (BASE, MODIF, COORD, ...)
- l'année
- le numéro de texte
- le numéro de phrase
- un booléen pour dire si le terme a été trouvé dans un titre (1) ou dans le corps du texte (0).

Le fichier res.txt contient les couples de termes listés dans temp.txt triés selon le loglike. Il tient compte des regroupements morphologiques.
Voila un extrait de ce fichier représentant un seul terme:

356 1096.055 5 7 6
alcool supérieur (5) * alcool supérieur


Le fichier tri.txt contient les occurrences des termes listées dans temp2.txt regroupées (sans prise en compte des regroupements morphologiques). Il est composé d'une alternance de lignes de 2 formes différentes :
- "Mot Mot :" pour presenter les mots des termes
- "* Infos sur le terme" qui fournit des renseignements sur les occurrences de ce terme.
Voila un extrait de ce fichier:

forme minéral :
* 42 --- formes minérales --- SBC ADJ --- forme minéral --- na --- BASE 1 ( 92 --- 0020263 --- 1 --- 0 )


Chaque ligne correspondant aux renseignements sur les occurrences du terme a la forme suivante :
- l'identifiant unique du couple (premier lemme/ dernier lemme)
- le premier lemme
- le dernier lemme
- la suite de flexions de chaque terme
- la suite d'étiquettes de chaque terme
- la suite de lemmes de chaque terme
- la structure du terme (NA, NPN, ...)
- le type du terme (BASE, MODIF, COORD, ...)
- une suite non nulle de références entre parenthèses :
* l'année
* le numéro de texte
* le numéro de phrase
* un booléen pour dire si le terme a été trouvé dans un titre (1) ou dans un resume (0)

Licence

Licence GPL

Références

B. DAILLE, "Conceptual structuring through term variations". In F. Bond, A. Korhonen, D. MacCarthy and A. Villacicencio (eds.), Proceedings ACL 2003 Workshop on Multiword Expressions: Analysis, Acquisition and Treatment, 9-16, 2003

Y. TOUSSAINT, F. NAMER, B. DAILLE , C. JACQUEMIN, J. ROYAUTÉ and N. HATHOUT. Une approche linguistique et statistique pour l'analyse de l'information en corpus (full paper)(in French), TALN'98, ATALA, Paris, France, 1998.

Daille, B. (1994) Approche mixte pour l’extraction de terminologie : statistique lexicale et filtres linguistiques, Thèse en informatique fondamentale, Universite Paris 7

mardi 3 mars 2009

SYNTEX : Analyse syntaxique

Description

SYNTEX est un analyseur syntaxique de corpus (Bourigault et Fabre, 1999) qui permet d'extraire d'un corpus une liste de noms et syntagmes nominaux, structurée par des relations de dépendance syntaxique. La fonction de cet analyseur est d'identifier des relations de dépendances entre mots et d'extraire d'un corpus des syntagmes (verbaux, nominaux, adjectivaux).
Le résultat de l'analyse se présente sous la forme d'un réseau de dépendance, dans lequel chaque syntagme extrait est relié à sa tête et à son expansion syntaxique.

Ces relations de dépendance permettent d'effectuer automatiquement des regroupements distributionnels : par exemple la liste de tous les compléments de tel verbe ou la liste des adjectifs modifieurs de tel nom, qui constituent des amorces de classes sémantiques.

Par rapport aux analyseurs développés classiquement dans le domaine du traitement automatique des langues (Abeillé 1992), l’analyseur SYNTEX présente cette différence fondamentale d’être un analyseur de corpus, et non pas de phrases. C’est un analyseur de corpus parce que le résultat de l’analyse est un réseau de dépendance global construit pour l’ensemble du corpus, le réseau de dépendance construit constitue un mode d’accès au corpus pour l’analyste en charge de l’interprétation et le corpus est source d’information pour l’analyseur.

SYNTEX possède une version pour le Français et une autre pour l'Anglais.

Utilisation

SYNTEX prend en entrée un corpus étiqueté : il est découpé en mots (token) et à chaque mot est associé une catégorie grammaticale (nom, verbe, adjectif…). Cette tâche peut être réalisée par TreeTagger.

Cet analyseur produit en sortie:

1- Un corpus analysé syntaxiquement : Dans chaque phrase, Syntex pose des relations de dépendance syntaxique (sujet, complément d’objet, épithète, …) entre les mots
2- Un réseau de syntagmes
    * De chaque phrase, Syntex extrait des syntagmes (verbaux, nominaux, adjectivaux)
    * Pour l’ensemble du corpus, Syntex construit un réseau de syntagmes structuré par les relations Tête et Expansion
Voila le déroulement de la procédure d'analyse syntaxique par SYNTEX sur quelques phrases:

1- Analyse syntaxique en dépendance: la phrase traitée est: Le chat de Marie mange une petite souris.



























2- Construction d’un réseau de syntagmes: la phrase traitée est: L'érosion attaque un plan de faille.

























SYNTEX est utilisé essentiellement pour deux objectifs:

1- Construction de ressources termino-ontologiques: Le réseau de syntagmes est utilisé par un analyste (terminologue, expert, ingénieur, …) pour construire une ressource terminologique (thesaurus, terminologie, ontologie, …) sur un domaine spécialisé (métier, pratique) pour une application cible (traduction automatique, recherche d’information, …)

2- Etudes syntaxiques sur corpus

Licence

Logiciel non gratuit

Références

Bourigault D., Fabre C. (2000), Approche linguistique pour l'analyse syntaxique de corpus,. Cahiers de Grammaire, 25, Université Toulouse le Mirail, pp.131-151

lundi 2 mars 2009

YaTeA : Extraction des termes

Description

L’extracteur de termes YaTeA (Yet another Term ExtrActor ) a été développé au LIPN par Thierry Hamon et Sophie Aubin pour aider le processus d’identification des termes en corpus. Il offre également la possibilité de redéfinir ou de modifier le processus d’extraction à travers plusieurs fichiers de configuration exploitant des jeux d'étiquettes grammaticales.

YaTeA travaille sur le Français et l'Anglais. Cet outil permet d'analyser des termes candidats en se basant sur une désambiguisation endogène. Une désambiguisation exogène est également possible pour l'identification et l'analyse des termes candidats en utilisant des ressources externes.

Installation sous Linux

Pour installer YaTeA, il faut commencer par le télécharger, puis:

1-Décompresser l'archive Lingua-YaTeA-0.5.tar.gz à l'endroit de son choix
2-Installer quelques modules manquants et dont dépend YaTeA (Module::Build, Config::General, Parse::Yapp, ...)en mode administrateur
3-Si on possède le programme make, alors:
    * Taper la commande perl Makefile.PL
    * Taper la commande make
    * Taper la commande make test
    * Taper la commande make install
sinon
    * Taper la commande perl Build.PL
    * Taper la commande Build
    * Taper la commande Build test
    * Taper la commande Build install
Utilisation

L'extracteur de termes YaTeA exige en entrée un corpus segmenté en mots et en phrases, lemmatisé et étiqueté avec des informations sur les parties de discours (Part-of-speech) et fournit plusieurs sorties aux formats XML, texte et HTML.

La syntaxe générale d'utilistation de YaTeA est la suivante:
yatea [options] <corpus>

Par exemple, si on applique YaTeA au fichier sampleEN.ttg écrit en Anglais, on tape la commande:
yatea -rcfile etc/yatea/yatea.rc share/YaTeA/samples/sampleEN.ttg

Voila un extrait du fichier sampleEN.ttg :

Combined VBN Combine
action NN action
of IN of
two CD two
transcription NN transcription
factors NNS factor
regulates VBZ regulate
genes NNS gene
encoding VBG encode
spore NN spore
coat NN coat
proteins NNS protein
of IN of
Bacillus NN Bacillus
subtilis NN subtilis
.
.
.
by IN by
B. FW B.
subtilis FW subtilis
sigma SYM sigma
28 CD 28
RNA NN RNA
polymerase NN polymerase

En tapant la commande citée précédamment, On voit défiler sur le terminal ces messages:

1) Loading corpus
corpus :share/YaTeA/samples/sampleEN.ttg
2) Chunking the corpus into MNPs
MAX_LENGTH: 12
    Total number of phrases: 52
    -multi-word phrases: 38
    -monolexical phrases: 14
3) Progressive parsing of the MNPs
Unparsed phrases... 0.0%
    Number of parsed multi-word phrases: 36
TC_MAX_LENGTH:12
4) Result display
    -Term candidates are displayed in XML format in './sampleEN/default/xml/candidates.xml'
    -Display of the list of term candidates and sub term candidates in text format in file './sampleEN/default/raw/termList.txt'
    -Display of the list of term candidates and sub term candidates in TreeTagger format in file './sampleEN/default/raw/termCandidates.ttg'
Un répertoire nommé sampleEN est donc crée dans le répertoire courant. Les termes candidats sont enregistrés sous le format XML dans le fichier: sampleEN/default/xml/candidates.xml, la liste des termes candidats et des sous-termes candidats est fournie sous le format texte dans le fichier: sampleEN/default/raw/termList.txt et la liste des termes candidats et des sous-termes candidats est fournie sous le format de sortie de TreeTagger dans le fichier: sampleEN/default/raw/termCandidates.ttg.

Ceci est un extrait du fichier candidates.xml

<TERM_EXTRACTION_RESULTS>
<list_term_candidates>
.
.
.
<term_candidate>
<id>term32</id>
<form>level of GerE</form>
<lemma>level of GerE</lemma>
<morphosyntactic_features>
<syntactic_category>NN of NN</syntactic_category>
</morphosyntactic_features>
<head>term33</head>
<number_occurrences>1</number_occurrences>
<list_occurrences>
<occurrence>
<id>occ29</id>
<mnp>1</mnp>
<doc>0</doc>
<sentence>6</sentence>
<start_position>47</start_position>
<end_position>60</end_position>
</occurrence>
</list_occurrences>
<term_confidence>0.5</term_confidence>
<log_information>YaTeA</log_information>
<syntactic_analysis>
<head>term33</head>
<modifier position="AFTER">term28</modifier>
<prep>of</prep>
</syntactic_analysis>
</term_candidate>
.
.
.
Cet extrait concerne un seul terme (Level of GerE). En effet, pour chaque terme, des informations comme le nombre d'occurences et pour chaque occurence le numéro de la phrase dans laquelle se trouve le terme, l'offset de début et de fin du terme permettent de retrouver facilement les termes dans le texte initial.

Voila encore un extrait du fichier termCandidates.ttg:

level NN level
of IN of
GerE NN GerE
. SENT .
control NN control
of IN of
htpR NN htpR
. SENT .
cotX NN cotX
promoter NN promoter
. SENT .
.
.
.
Les termes qui ne sont pas reconnus en tant que termes candidats sont mis dans le fichier : sampleEN/default/raw/unparsed

Les formats de sortie ne permettent pas un enregistrement aisé des validations. De plus, la rédaction ou la modification des fichiers de configuration peut être complexe et fastidieuse.Pour remédier à ces deux limites, Thierry Hamon a proposé l'implémentation:

1.D’une interface de visualisation et de validation des résultats de l’extraction. Cette partie pourra être utilisée indépendamment de la plateforme et, dans ce cas, exploitera la sortie XML de l’extracteur de termes;

2.D’une interface de configuration de l’extracteur de termes. A partir d’un jeu d’étiquettes grammaticales connu, l’utilisateur pourra définir le processus d’extraction de termes de manière partielle ou totale. Dans le cas d’une sous-spécification du comportement de l’extracteur, une fonctionnalité de l’interface gèrera correctement la génération des fichiers de configuration. Une autre fonctionnalité pourra permettre de visualiser immédiatement les conséquences de ces choix de définition.

Ce travail a été réalisé par une équipe de projet formée par:BOURASSINE Majed, BOUBAKER Brahim, DEBAB Abdelkader, JARMOUD Mohamed Said et MBAE Said. L'architecture générale de l'application est la suivante:















Licence

Licence GPL

Références

Sophie Aubin and Thierry Hamon. Improving Term Extraction with Terminological Resources. In Advances in Natural Language Processing (5th International Conference on NLP, FinTAL 2006).

BOURASSINE Majed, BOUBAKER Brahim, DEBAB Abdelkader, JARMOUD Mohamed Said et MBAE Said. Manuels d'installation, Environnement graphique pour YaTeA.

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.