Retour à la page
d'accueil de F. Namer
Flemm 
In English, see below
Analyseur Flexionnel du français pour des
corpus étiquetés - Version 3.1
FLEMMv3.1 est un ensemble de modules Perl5 qui effectue l'analyse
flexionnelle de textes en français qui ont été au préallable été
étiqueté, au moyen de l'un des deux catégorisateurs : Brill ou
TreeTagger. C'est un petit programme (60kb au format zippé, à
l'exclusion des programmes et corpus test), principalement basé sur
l'usage de règles (un lexique de 3000 mots seulement est utilisé pour
prendre en compte les exceptions). Il fonctionne sur PC ou station de
travail, sous Unix, Linux ou Windows9x/NT/XP.
Les objets résultat renvoyés par Flemm sont susceptibles d'être
affichés en tant que structures XML.
Télécharger Flemm
Pour télécharger : Flemmv31.zip
( Ce programme a été développé avec Perl5.6.1.)
Pour tester Flemmv3.1
- S'assurer que l'adresse du répertoire d'installation de Flemmv3.1
est ajoutée à la variable d'environnement PER5LIB, e.g.:
export PERL5LIB=~/Flemmv31
- Exécuter :
perl flemm.pl --entree ~/Flemmv31/tests/agatha.input --log --logname test_bll_1 --progress --format normal --tagger brill
perl flemm.pl --entree ~/Flemmv31/tests/test_tt_1.input --sortie ~/Flemmv31/tests/test_tt_1.xml --format xml --tagger treetagger
Changements par rapport à la version précédente
- mise à jour par rapport au nouveau jeu d'étiquettes de TreeTagger
(3.1)
- résultats conçus sous forme d'APIs en Perl
- modules entièrement documentés (voir fonction perldoc)
- traits flexionnels formatés selon les recommandations de Multext
- les deux modes d'affichage possibles des résultats sont le mode
linéaire, et le format XML.
Voir détails ci-dessous
Format d'entrée
Il faut fournir à Flemm en entrée une forme fléchie munie d'une
catégorie grammaticale. A ce jour, les deux seuls étiqueteurs acceptés
par Flemm sont Brill entraîné pour le français
et
Treetagger.
Description
Flemm calcule le lemme de chaque mot fléchie (en fonction de
l'étiquette) et fournit également les traits flexionnels principaux :
- genre et nombre pour les adjectifs, déterminants, participes
- nombre pour les noms
- genre, nombre, personne et cas pour les pronoms
- nombre, personne, temps, mode and groupe de conjugaison pour les verbes
Les traits sont codés en fonction des spécifications lexicales
recommandées pour le français par le consortium
Multext, sous leur forme compacte.
En plus des traits standards, un champ a été ajouté pour les verbes,
de manière à coder leur famille flexionnelle (1er, 2e ou 3e groupe).
Le tableau ci-dessous résume les tables attribut-valeur pour les
partie du discours fléchissables. Voir le site Multext pour une
information détaillée à propos de la signification des codes de
valeur, ainsi que leur correspondance.
| Noms |
cat |
type |
gend |
nb |
case |
semtype |
| |
N |
c,p |
m,f |
s,p |
- |
- |
| Verbes |
cat |
type |
mood |
tns |
pers |
nb |
gend |
clitics |
group |
| |
V |
m,a |
i,s,m,n,p |
p,i,f,s |
1,2,3 |
s,p |
m,f |
- |
1,2,3 |
| Adjs |
cat |
type |
dgr |
gend |
nb |
case |
| |
A |
f,o,i,s |
- |
m,f |
s,p |
- |
| Pros |
cat |
type |
pers |
gend |
nb |
case |
poss |
| |
P |
p,d,i,s,t,r,x |
1,2,3 |
m,f |
s,p |
n,j,o |
s,p |
| Dets |
cat |
type |
pers |
gend |
nb |
case |
poss |
quant |
| |
D |
a,d,i,s,t |
1,2,3 |
m,f |
s,p |
- |
s,p |
d,i |
| PrepDets |
cat |
type |
pers |
gend |
nb |
case |
poss |
quant |
| |
Sp+D |
a |
- |
m,f |
s,p |
- |
- |
d |
De plus, Flemm vérifie et corrige un certain nombre d'erreurs de
segmentation ou d'étiquetage.
Quand cela est demandé par l'utilisateur, les erreurs détectées, ainsi
que leurs corrections correspondantes sont reportées dans des fichiers spéciaux.
Quel que soit le résultat de la vérification de l'étiquetage, Flemm
renvoie l'étiquette d'origine, telle qu'elle avait été produite par l'étiqueteur.
Exemples
1) L'exemple ci-dessous produit en sortie un résultat linéaire à
partir d'une forme d'entrée étiquetée par Brill:
exple.pl
use Flemm;
use Flemm::Result;
my $lemm=new Flemm("Tagger" => "brill");
while (<>) {
chomp;
my $res = $lemm->lemmatize($_);
print $res->getResult."\n";
}
echo 'fabrique/VCJ:sg' | perl exple.pl
-->
fabrique/VCJ:Vmip1s--1 fabriquer ||
fabrique/VCJ:Vmip3s--1 fabriquer ||
fabrique/VCJ:Vmmp2s--1 fabriquer ||
fabrique/VCJ:Vmsp1s--1 fabriquer ||
fabrique/VCJ:Vmsp3s--1 fabriquer
2) L'exemple ci-dessous produit un résultat formaté en XML à partir
d'un input étiqueté par TreeTagger :
exple.pl
use Flemm;
use Flemm::Result;
my $lemm=new Flemm( );
print "\n\n";
print "\n";
while (<>) {
chomp;
my $res=$lemm->lemmatize($_);
print $res->asXML."\n";
}
print "\n";
echo 'généralisent VER:pres généraliser' | perl exple.pl
-->
généralisent
VER(pres)
généraliser
généraliser
3) Dans la distribution, plusieurs programmes de test sont fournis
avec les corpus d'entrée pertinents :
| Nom du Pgme |
Etiqueteur requis sur l'entrée |
Format de sortie |
Fichiers log |
| flemm_ex1.pl |
brill |
structures plates, 1 par ligne |
oui |
Ex:
perl flem_ex1.pl < tests/test_bll_1.input
> tests/test_bll_1_1.plat
perl flem_ex1.pl < tests/agatha.bll > tests/agatha_bll_1.plat
| Nom du Pgme |
Etiqueteur requis sur l'entrée |
Format de sortie |
Fichiers log |
| flem_ex2.pl |
tt |
structures xml |
non |
Ex:
perl flem_ex2.pl < tests/test_tt_1.input > tests/test_tt_12.xml
perl flem_ex2.pl < tests/pls.tt > tests/pls_2.xml
| Nom du Pgme |
Etiqueteur requis sur l'entrée |
Format de sortie |
Fichiers log |
| flem_ex3.pl |
brill |
structures plates, 1 paragraphe par ligne |
non |
Ex:
perl flem_ex3.pl < tests/agatha.bll > tests/agatha_bll_3.plat
| Nom du Pgme |
Etiqueteur requis sur l'entrée |
Format de sortie |
Fichiers log |
| flem_ex4.pl |
brill |
structures xml |
non |
Ex:
perl flem_ex4.pl < tests/test_bll_1.input
> tests/test_bll_1_4.xml
perl flem_ex4.pl < tests/agatha.bll > tests/agatha_bll_4.xml
| Nom du Pgme |
Etiqueteur requis sur l'entrée |
Format de sortie |
Fichiers log |
| flem_ex5.pl |
tt |
structures plates, 1 par ligne |
oui |
Ex:
perl flem_ex5.pl < tests/test_tt_1.input > tests/test_tt_15.plat
perl flem_ex5.pl < tests/pls.tt > tests/pls_5.plat
4) flemm.pl est un programme de test plus complet. Il s'accompagne de
plusieurs options:
Usage: perl flemm.pl --entree adresse_fichier_d_entree
[--sortie adresse_fichier_de_sortie]
[--log]
[--logname prefixe_fichiers_log]
[--progess]
[--format (normal|xml)]
[--tagger (brill|treetagger)]
Les arguments entre [] sont optionelles.
Quand --progress est choisi, une marque est affichée sur la sortie
standard, qui indique la progression de l'analyse.
Par défaut :
- Quand --sortie n'est pas fourni, le résultat est affiché dans le
fichier adresse_fichier_d_entree.lemm
- Quand --log n'est pas mentionné, il n'y a pas de fichier log pour le
stockage de la correction des erreurs de segmentation/étiquetage
(quand il y en a). Quand --log est fourni, les noms des fichiers log
sont préfixés par adresse_fichier_d_entree, sauf si un préfixe est
fourni, comme valeur de --logname.
- Quand --tagger est omis, l'étiqueteur par défaut est Treetagger
Autres fonctionnalités
Flemm vérifie et corrige les erreurs de segmentation et étiquetage
Quand cela est demandé par l'utilisateur, les erreurs détectées, ainsi
que les corrections correspondantes, sont reportées dans des fichiers spéciaux.
Exemples:
- Fichier log d'étiquetage:
phytoplancton / VNCFF ==> phytoplancton/SBC
phytoplanctivores / ADJ2PAR ==> phytoplanctivores/ADJ
- Fichier log de segmentation:
,inhibiteurs est réduit à inhibiteurs (SBC)
Contenu de la distribution
Les modules et sous-répertoires suivants sont inclus dans
l'arborescence Flemmv3.1
Flemmv31: /Modules principaux,
========= et programmes de test/
Flemm.pm LICENCE.txt README.txt flemm.pl
flem_ex1.pl flem_ex2.pl flem_ex3.pl flem_ex4.pl
flem_ex5.pl
Flemmv31/Flemm: /packages requis pour
=============== exécuter Flemm.pm/
Analyse.pm Analyses.pm Brill.pm Exceptions.pm
Feature.pm Features.pm Lemmatizer.pm Result.pm
TreeTagger.pm
Flemmv31/Flemm/Utils: /packages utilitaires/
=====================
List.pm
Flemmv31/tests: /échantillons de
=============== fichiers d'input, a éxécuter
avec les programmes test :
test_bll_1.input et
agatha.bll sont étiquetés
par Brill, test_tt_1.input
et pls.tt sont étiquetés par
Treetagger/
test_bll_1.input test_tt_1.input
agatha.bll pls.tt
Flemmv31/EXCEP: /L'ensemble des listes
=============== d'exception/
adjectifs_finissant_par_CCe adjectifs_finissant_par_Ve
adjectifs_finissant_par_aOUos adjectifs_finissant_par_an_e
adjectifs_finissant_par_ane adjectifs_finissant_par_ere
adjectifs_finissant_par_ine adjectifs_finissant_par_is
adjectifs_finissant_par_man_e adjectifs_finissant_par_oOUil
adjectifs_finissant_par_ol adjectifs_finissant_par_sOUte
adjectifs_finissant_par_sse_s adjectifs_finissant_par_ure
adjectifs_finissant_par_us noms_finissant_par_AEus
noms_finissant_par_Cs noms_finissant_par_ail_x
noms_finissant_par_as noms_finissant_par_au_x
noms_finissant_par_aux noms_finissant_par_e_ee
noms_finissant_par_euse noms_finissant_par_eux
noms_finissant_par_i_s noms_finissant_par_ier_e
noms_finissant_par_os noms_finissant_par_ou_x
noms_finissant_par_ous noms_finissant_par_u_s
noms_finissant_par_ys verbes_finissant_par_ERer
verbes_finissant_par_FPHer verbes_finissant_par_ayer
verbes_finissant_par_ier verbes_finissant_par_eCer_naccent
verbes_finissant_par_eLer_aigu verbes_finissant_par_eNTer_aigu
verbes_finissant_par_igner verbes_finissant_par_eMer_naccent
verbes_finissant_par_irer verbes_finissant_par_eRer_naccent
verbes_finissant_par_ller verbes_finissant_par_eSer_naccent
verbes_finissant_par_eVer_aigu verbes_finissant_par_ePer_naccent
verbes_finissant_par_isser verbes_finissant_par_tter
(English version)
Inflectional Analyzer for French for
tagged corpora - Version 3.1
FLEMMv3.1 is a Perl5 set of modules that performs
inflectional analysis on French texts which have previously
been tagged (i.e. by either the TreeTagger or the Brill tagger). This
is a small program, (60kb in a zipped format, excluded the test
programs and corpora) mainly rule-based (i.e. only a 3000 words
lexicon is used in order to deal with exceptions). It runs on PCs or
Workstation, under Unix, Linux or Windows9x/NT/XP OS.
The returned Flemm result objects are likely to be displayed as
XML structures.
Downloading Flemm
To download : Flemmv31.zip
( This program has been developed with Perl5.6.1.)
To test Flemmv3.1
- be sure to add the Flemmv3.1 directory address to the PERL5LIB environment variable, e.g.
export PERL5LIB=~/Flemmv31
- run :
perl flemm.pl --entree ~/Flemmv31/tests/agatha.input --log --logname test_bll_1 --progress --format normal --tagger brill
perl flemm.pl --entree ~/Flemmv31/tests/test_tt_1.input --sortie ~/Flemmv31/tests/test_tt_1.xml --format xml --tagger treetagger
Changes wrt previous version
- updating according to the new Treetagger tagset (3.1)
- results designed as perl APIs
- fully documented modules (see perldoc function)
- inflectional features formatted according to the Multext norm.
- two possible displays of the results : either linear or xml formats.
See below for more details.
Input Format
FLEMM has to be provided
with a tagged inflected form as input. At the time being, the only recognized
tagset are Brill's
and Treetagger's.
Description
FLEMM computes the lemma of each inflected word (according
to the tag) and also provided its main morphological features :
- gender and number for adjectives, determiners, participles
- number for nouns
- gender, number, person and case for pronouns
- number, person, tense, mood and conjugation group for verbs
The features are encoded according to lexical specifications
recommended for French by the MulText
group, displaying them in
their compact format. In addition to the standard features, one field
has been added for verbs, in order to encode their inflectional family
(1st, 2nd or 3d conjugation group). The array below sums up the
attribute-value tables for the inflected part-of-speech. Please
consult the Multext Website for detailed information about value
meanings and correspondances.
| Nouns |
cat |
type |
gend |
nb |
case |
semtype |
| |
N |
c,p |
m,f |
s,p |
- |
- |
| Verbs |
cat |
type |
mood |
tns |
pers |
nb |
gend |
clitics |
group |
| |
V |
m,a |
i,s,m,n,p |
p,i,f,s |
1,2,3 |
s,p |
m,f |
- |
1,2,3 |
| Adjs |
cat |
type |
dgr |
gend |
nb |
case |
| |
A |
f,o,i,s |
- |
m,f |
s,p |
- |
| Pros |
cat |
type |
pers |
gend |
nb |
case |
poss |
| |
P |
p,d,i,s,t,r,x |
1,2,3 |
m,f |
s,p |
n,j,o |
s,p |
| Dets |
cat |
type |
pers |
gend |
nb |
case |
poss |
quant |
| |
D |
a,d,i,s,t |
1,2,3 |
m,f |
s,p |
- |
s,p |
d,i |
| PrepDets |
cat |
type |
pers |
gend |
nb |
case |
poss |
quant |
| |
Sp+D |
a |
- |
m,f |
s,p |
- |
- |
d |
Moreover, FLEMM checks and fixes some segmentation or tagging
errors. When asked by the user, the detected errors, together
with the corresponding corrections, are reported in special
files.
Whatever the result of its tagging checking Flemm also returns
the original tag provided by the tagger,
Examples
1) The example below produces a linear output result from a Brill
tagged input:
exple.pl
use Flemm;
use Flemm::Result;
my $lemm=new Flemm("Tagger" => "brill");
while (<>) {
chomp;
my $res = $lemm->lemmatize($_);
print $res->getResult."\n";
}
echo 'fabrique/VCJ:sg' | perl exple.pl
-->
fabrique/VCJ:Vmip1s--1 fabriquer ||
fabrique/VCJ:Vmip3s--1 fabriquer ||
fabrique/VCJ:Vmmp2s--1 fabriquer ||
fabrique/VCJ:Vmsp1s--1 fabriquer ||
fabrique/VCJ:Vmsp3s--1 fabriquer
2) The example below produces an xml formatted result from a TreeTagger tagged
input:
exple.pl
use Flemm;
use Flemm::Result;
my $lemm=new Flemm( );
print "\n\n";
print "\n";
while (<>) {
chomp;
my $res=$lemm->lemmatize($_);
print $res->asXML."\n";
}
print "\n";
echo 'généralisent VER:pres généraliser' | perl exple.pl
-->
généralisent
VER(pres)
généraliser
généraliser
3) In the distribution, several testing programs are provided with
relevant input samples :
| Program Name |
Requested Tagger on the Input |
Output Format |
LogFiles |
| flemm_ex1.pl |
brill |
flat structures, 1 per line |
yes |
Ex:
perl flem_ex1.pl < tests/test_bll_1.input
> tests/test_bll_1_1.plat
perl flem_ex1.pl < tests/agatha.bll > tests/agatha_bll_1.plat
| Program Name |
Requested Tagger on the Input |
Output Format |
Logfiles |
| flem_ex2.pl |
tt |
Xml structures |
no |
Ex:
perl flem_ex2.pl < tests/test_tt_1.input > tests/test_tt_12.xml
perl flem_ex2.pl < tests/pls.tt > tests/pls_2.xml
| Program Name |
Requested Tagger on the Input |
Output Format |
Logfiles |
| flem_ex3.pl |
brill |
flat structures, 1 paragraph per line |
no |
Ex:
perl flem_ex3.pl < tests/agatha.bll > tests/agatha_bll_3.plat
| Program Name |
Requested Tagger on the Input |
Output Format |
Logfiles |
| flem_ex4.pl |
brill |
Xml structures |
no |
Ex:
perl flem_ex4.pl < tests/test_bll_1.input
> tests/test_bll_1_4.xml
perl flem_ex4.pl < tests/agatha.bll > tests/agatha_bll_4.xml
| Program Name |
Requested Tagger on the Input |
Output Format |
Logfile |
| flem_ex5.pl |
tt |
Flat structures, 1 per line |
yes |
Ex:
perl flem_ex5.pl < tests/test_tt_1.input > tests/test_tt_15.plat
perl flem_ex5.pl < tests/pls.tt > tests/pls_5.plat
4) flemm.pl is a more complete test program. It is provided with several options :
Usage: perl flemm.pl --entree input_file_address
[--sortie output_file_address]
[--log]
[--logname logfile_prefixes]
[--progess]
[--format (normal|xml)]
[--tagger (brill|treetagger)]
Arguments between [] are optional.
When --progress is chosen, a mark is displayed on the standard output,
that indicates the parsing progression
By default :
- when no --sortie is provided, the result is displayed in the
input_file_address.lemm file
- when --log is not mentioned, there is no file storing the correction
of tagging and segmentation errors (if any). When --log is on, the
logfile names are prefixed by the input_file_address, unless a
prefix is provided as --logname value.
- when --tagger is omitted, the default tagger is Treetagger
Other functionalities
FLEMM checks and fixes some segmentation or tagging
errors. When requested by the user, the detected errors, together
with the corresponding corrections, are reported in special
files.
Examples :
- Tagging log file
phytoplancton / VNCFF ==> phytoplancton/SBC
phytoplanctivores / ADJ2PAR ==> phytoplanctivores/ADJ
- Segmentation logfile:
,inhibiteurs est réduit à inhibiteurs (SBC)
Distribution Content
The following modules and subdirectories are included in the Flemmv31 tree:
Flemmv31: /Main module, and
========= testing programs/
Flemm.pm LICENCE.txt README.txt flemm.pl
flem_ex1.pl flem_ex2.pl flem_ex3.pl flem_ex4.pl
flem_ex5.pl
Flemmv31/Flemm: /packages required
=============== to run Flemm.pm/
Analyse.pm Analyses.pm Brill.pm Exceptions.pm
Feature.pm Features.pm Lemmatizer.pm Result.pm
TreeTagger.pm
Flemmv31/Flemm/Utils: /utils packages/
=====================
List.pm
Flemmv31/tests: /sample input files, to
=============== be runned with the testing programs :
test_bll_1.input and agatha.bll
are tagged with Brill, test_tt_1.input
and pls.tt are tagged with
Treetagger/
test_bll_1.input test_tt_1.input
agatha.bll pls.tt
Flemmv31/EXCEP: /the set of exception lists/
===============
adjectifs_finissant_par_CCe adjectifs_finissant_par_Ve
adjectifs_finissant_par_aOUos adjectifs_finissant_par_an_e
adjectifs_finissant_par_ane adjectifs_finissant_par_ere
adjectifs_finissant_par_ine adjectifs_finissant_par_is
adjectifs_finissant_par_man_e adjectifs_finissant_par_oOUil
adjectifs_finissant_par_ol adjectifs_finissant_par_sOUte
adjectifs_finissant_par_sse_s adjectifs_finissant_par_ure
adjectifs_finissant_par_us noms_finissant_par_AEus
noms_finissant_par_Cs noms_finissant_par_ail_x
noms_finissant_par_as noms_finissant_par_au_x
noms_finissant_par_aux noms_finissant_par_e_ee
noms_finissant_par_euse noms_finissant_par_eux
noms_finissant_par_i_s noms_finissant_par_ier_e
noms_finissant_par_os noms_finissant_par_ou_x
noms_finissant_par_ous noms_finissant_par_u_s
noms_finissant_par_ys verbes_finissant_par_ERer
verbes_finissant_par_FPHer verbes_finissant_par_ayer
verbes_finissant_par_ier verbes_finissant_par_eCer_naccent
verbes_finissant_par_eLer_aigu verbes_finissant_par_eNTer_aigu
verbes_finissant_par_igner verbes_finissant_par_eMer_naccent
verbes_finissant_par_irer verbes_finissant_par_eRer_naccent
verbes_finissant_par_ller verbes_finissant_par_eSer_naccent
verbes_finissant_par_eVer_aigu verbes_finissant_par_ePer_naccent
verbes_finissant_par_isser verbes_finissant_par_tter
Retour à
la page d'accueil de F. Namer

Retour à la page
d'accueil de Nancy 2