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échargement de Flemmv3.1Pour tester Flemmv3.1Changements par rapport à la version précédenteFormat d'entréeDescriptionExemples de programmes de testAutres fonctionnalitésContenu de la distribution

Télécharger Flemm

Pour télécharger : Flemmv31.zip

( Ce programme a été développé avec Perl5.6.1.)

Pour tester Flemmv3.1

  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
  2. 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

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 :

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 "<?xml version='1.0' encoding='ISO-8859-1'?>\n\n"; print "<FlemmResults>\n"; while (<>) { chomp; my $res=$lemm->lemmatize($_); print $res->asXML."\n"; } print "</FlemmResults>\n";

echo 'généralisent VER:pres généraliser' | perl exple.pl --> <FlemmResult> <InflectedForm>généralisent</InflectedForm> <Category original-tagger='VER:pres'>VER(pres)</Category> <Analyses> <!-- généralisent VER(pres):Vmip3p--1 généraliser || généralisent VER(pres):Vmsp3p--1 généraliser --> <Analyse> <Lemme>généraliser</Lemme> <Features> <Feature name='catmultext' value='V'/> <Feature name='type' value='m'/> <Feature name='mood' value='i'/> <Feature name='tense' value='p'/> <Feature name='pers' value='3'/> <Feature name='gend' value='-'/> <Feature name='nb' value='p'/> <Feature name='clitic' value='-'/> <Feature name='vclass' value='1'/> </Features> </Analyse> <Analyse> <Lemme>généraliser</Lemme> <Features> <Feature name='catmultext' value='V'/> <Feature name='type' value='m'/> <Feature name='mood' value='s'/> <Feature name='tense' value='p'/> <Feature name='pers' value='3'/> <Feature name='gend' value='-'/> <Feature name='nb' value='p'/> <Feature name='clitic' value='-'/> <Feature name='vclass' value='1'/> </Features> </Analyse> </Analyses> </FlemmResult>

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:

  1. Fichier log d'étiquetage: phytoplancton / VNCFF ==> phytoplancton/SBC phytoplanctivores / ADJ2PAR ==> phytoplanctivores/ADJ
  2. 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 Flemmv3.1To test Flemmv3.1Changes wrt the previous versionInput FormatDescriptionExamples and test programsOther functionalitiesDistribution Content

Downloading Flemm

To download : Flemmv31.zip

( This program has been developed with Perl5.6.1.)

To test Flemmv3.1

  1. be sure to add the Flemmv3.1 directory address to the PERL5LIB environment variable, e.g. export PERL5LIB=~/Flemmv31
  2. 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

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 :

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 "<?xml version='1.0' encoding='ISO-8859-1'?>\n\n"; print "<FlemmResults>\n"; while (<>) { chomp; my $res=$lemm->lemmatize($_); print $res->asXML."\n"; } print "</FlemmResults>\n";

echo 'généralisent VER:pres généraliser' | perl exple.pl --> <FlemmResult> <InflectedForm>généralisent</InflectedForm> <Category original-tagger='VER:pres'>VER(pres)</Category> <Analyses> <!-- généralisent VER(pres):Vmip3p--1 généraliser || généralisent VER(pres):Vmsp3p--1 généraliser --> <Analyse> <Lemme>généraliser</Lemme> <Features> <Feature name='catmultext' value='V'/> <Feature name='type' value='m'/> <Feature name='mood' value='i'/> <Feature name='tense' value='p'/> <Feature name='pers' value='3'/> <Feature name='gend' value='-'/> <Feature name='nb' value='p'/> <Feature name='clitic' value='-'/> <Feature name='vclass' value='1'/> </Features> </Analyse> <Analyse> <Lemme>généraliser</Lemme> <Features> <Feature name='catmultext' value='V'/> <Feature name='type' value='m'/> <Feature name='mood' value='s'/> <Feature name='tense' value='p'/> <Feature name='pers' value='3'/> <Feature name='gend' value='-'/> <Feature name='nb' value='p'/> <Feature name='clitic' value='-'/> <Feature name='vclass' value='1'/> </Features> </Analyse> </Analyses> </FlemmResult>

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 :

  1. Tagging log file phytoplancton / VNCFF ==> phytoplancton/SBC phytoplanctivores / ADJ2PAR ==> phytoplanctivores/ADJ
  2. 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

   

présentation enseignements recherche centres de ressources relations extérieures
informations pratiques enseignements en ligne actualités outils annuaires intranet