Skip to content
Snippets Groups Projects
Commit 0f7225a9 authored by Benoit Favre's avatar Benoit Favre
Browse files

translate README to English

parent f4c9e8ff
No related branches found
No related tags found
No related merge requests found
DESCRIPTIF DU SYSTÈME:
FASTSEM est une suite d'outils d'analyse sémantique selon le
modèle FrameNet. Il peut apprendre un modèle à partir d'un corpus
annoté en frames sous le format décrit plus bas et décoder un texte
annoté en lemmes, POS et syntaxe.
Le système repose sur la liblairie liblinear, qui implémente des
séparateurs linéaires. Pour chaque unité lexicale, nous avons un
séparateur linéaire décidant du frame associé à cette unité
lexicale. Une fois le frame décidé, nous avons un séparateur
linéaire par frame, décidant du rôle à donner à chaque frame
element.
SHORT DESCRIPTION :
Pour les classifieurs de triggers, nous utilisons des combinaisons
de différentes features:
- lemme du trigger;
- PoS du trigger;
- Chemins syntaxiques entre le trigger et les têtes syntaxiques des FE;
- Lemmes des FE;
- PoS des FE.
FASTSEM is a tool for semantic parsing. It produces frame semantic
representations using the conll format described below. FASTSEM can
learn and decode corpuses since they are annotated whith lemmas pos
and syntax.
Pour les classifieurs de FE, nous utiliserons:
- Chemin syntaxique entre le trigger et la tête syntaxique du FE;
- Lemme du FE;
- PoS du FE;
- Nom du Frame;
- Trigger du Frame.
The system uses the liblinear library, which implement linear
separators. For each lexical unit, there is a linear separator
deciding which frame associate to it. The second step uses one
separator for each frame that decide which role give to each frame
element.
Nous utilisons comme features les chemins syntaxiques entre un
trigger et la tête syntaxique de chacun de ses FE, les lemmes des
For triggers classifiers, we use combinations of several features:
- trigger's lemma;
- trigger's PoS;
- Syntactic pathes from trigger to FE's syntactic head;
- Lemma of every frame element;
- PoS of every frame element.
For each frame element classifiers, we use:
- Syntactic paths from trigger to the frame element syntactic head;
- frame element head's lemma;
- frame element head's PoS;
- frame's name;
- frame's trigger.
FORMAT CONLL:
Le format a un nombre variable de colonnes, ce nombre correspond à
7 colonnes de base auxquelles s'ajoutent n colonnes, n étant le
nombre de frames dans la phrase. La septième colonne correspond au
Frame si le mot est un trigger, la 7+n ième colonne correspond au
rôle que joue un mot dans le n-ième frame. De ce fait un mot ne
peut être trigger que d'un seul frame, mais peut jouer un rôle dans
plusieurs frames.
CONLL FILES :
Par soucis de simplicité, les frame elements composés de plusieurs
mots sont réduits à leur tête syntaxique.
This format is composed of 7+n columns, where n is the number of
frames in the sentence. The seventh column is the frame name if the
word is a trigger. The 7+i-th column is filled by a role name of
the i-th frame if the word is the syntactic head of the frame
element which plays this role. This format implies that each word
can at most be the trigger of one frame and each syntactic head can
play at most one role per frame.
Le format:
id Word Lemma PoS GovId labelSynt Frame Role_in_frame_1 Role_in_frame_2 Role_in_frame_3 ...
Exemple:
Example:
1 You you PRP 4 SBJ _ Agent _ _ Agent Partner_1
2 and and CC 1 COORD _ _ _ _ _ _
3 I i PRP 2 CONJ _ _ _ _ _ Partner_2
......@@ -61,11 +53,11 @@ FORMAT CONLL:
10 . . . 4 P _ _ _ _ _ _
FORMAT lexical-units:
LEXICAL-UNITS FILE FORMAT:
LU1 frame1 frame2
LU2 frame3
Pour l'anglais on a des LU avec partie de discours, ce qui donne quelquechose du genre:
For English, lexical Units are embedded with PoS, like this:
detain.v Detaining Inhibit_movement
verdict.n Verdict
......@@ -75,30 +67,30 @@ FORMAT lexical-units:
LIBRAIRIES UTILISÉES:
LIBRARIES:
- pickle
- glob
- getopt
- begins
- time
- zmq
INSTALLATION de liblinear:
Make dans utils/liblinear-1.96/ puis dans utils/liblinear-1.96/python
LIBLINEAR INSTALL :
In utils/liblinear-1.96/, do make then do make again in utils/liblinear-1.96/python
APPRENTISSAGE:
- agglutiner tous les fichiers conll enrichis de sémantique dans deux fichiers (un train et un test)
- on peut supprimer les lignes vides qui sont en trop avec la fonction removeEmptyLines de miniclean.py
- il vaut mieux aussi supprimer les phrases avec des cycles syntaxiques en utilisant removeSentencesWithLoops de miniclean.py
- pour l'apprentissage, on crée d'abord un fichier "premache" avec premacheCorpus.py pour le train et le test
- il est possible de réduire le corpus artificiellement en utilisant cutSomePathes.py
- on lance l'apprentissage avec fastsem.py train
LEARNING :
- Concatenante your conll files in two (or three) files : train, test (dev);
- you can delete empty lines using the removeEmptyLines function from miniclean.py;
- Two ways to learn:
* from an intermediate file with explicit syntactic paths : use premacheCorpus.py. This option can be usefull to prune files (PoS of the trigger, frequency of paths...);
* from the conll file;
- run the learning process with : fastsem.py train [options].
TEST:
- utiliser fastsem.py test
TESTING :
- run fastsem.py test [options]
DECODAGE:
- pour décoder un fichier conll on utilise decodeConll.py qui ressort un fichier conll enrichi de la syntaxe à partir d'un fichier conll avec lemmes, PoS et syntaxe annotés.
DECODING :
- Using decodeConll.py, wich outputs a conll file with semantic frames from a conll file with lemmas, PoS and syntactic annotations and a model;
- Using the SemanticDecoder class from fastSem.py (recommanded).
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment