equipes:rcln:ancien_wiki:outils:lorg

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
equipes:rcln:ancien_wiki:outils:lorg [2019/04/03 13:33]
rosse créée
equipes:rcln:ancien_wiki:outils:lorg [2020/11/23 18:42] (Version actuelle)
garciaflores ↷ Liens modifiés en raison d'un déplacement.
Ligne 1: Ligne 1:
 +====== LORG ======
 +
 Parseur syntaxique développé au NLCT de la Dublin City University. Au LIPN on travaille avec [[http://github.com/jihelhere/LORG-Release|la variante de LORG maintenue par Joseph Le Roux]]. Parseur syntaxique développé au NLCT de la Dublin City University. Au LIPN on travaille avec [[http://github.com/jihelhere/LORG-Release|la variante de LORG maintenue par Joseph Le Roux]].
  
Ligne 13: Ligne 15:
   *  **boost (version supérieure où égale à 1.56)**   *  **boost (version supérieure où égale à 1.56)**
 Sur ubuntu: Sur ubuntu:
- sudo apt-get install libboost-all-dev+<code> sudo apt-get install libboost-all-dev </code>
 Sur mageia (64-bit): Sur mageia (64-bit):
- sudo urpmi lib64boost-devel+<code> sudo urpmi lib64boost-devel </code>
  
   *  **tbb** //(Intel Threading Building Blocks)//   *  **tbb** //(Intel Threading Building Blocks)//
 Sur ubuntu: Sur ubuntu:
- sudo apt-get install libtbb-dev+<code> sudo apt-get install libtbb-dev </code>
 Sur mageia: Sur mageia:
- sudo urpmi tbb tbb-devel+<code> sudo urpmi tbb tbb-devel</code>
  
   *  **Google malloc** (installation conseillée pour améliorer la performance, mais non obligatoire)   *  **Google malloc** (installation conseillée pour améliorer la performance, mais non obligatoire)
Ligne 27: Ligne 29:
  
 ====  Compilation des sources  ==== ====  Compilation des sources  ====
-Voici les commandes la suite de commandes pour compiler les sources de LORG avec **<tt>cmake</tt>**:+Voici les commandes la suite de commandes pour compiler les sources de LORG avec **cmake**:
 <code> <code>
 $ cd LORG_Release $ cd LORG_Release
Ligne 35: Ligne 37:
 </code> </code>
  
-Et si vous voulez changer le répertoire cible pour l'installation des binaires (normalement installés sur <tt>/usr/bin</tt>): +Et si vous voulez changer le répertoire cible pour l'installation des binaires (normalement installés sur ''/usr/bin''): 
- $ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/lorg/LORG-Release/ ..+<code> $ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/lorg/LORG-Release/ .. </code>
  
 La réponse doit ressembler à: La réponse doit ressembler à:
Ligne 69: Ligne 71:
  
 Maintenant on peut complier: Maintenant on peut complier:
- $ make+<code> $ make </code>
  
 Et si tout va bien, installer... Et si tout va bien, installer...
- $ make install+<code> $ make install </code>
  
 Pour vérifier que tout s'est bien passé, on affiche l'aide de <tt>tb2gram</tt> et <tt>twostage_lorgparser</tt> Pour vérifier que tout s'est bien passé, on affiche l'aide de <tt>tb2gram</tt> et <tt>twostage_lorgparser</tt>
 +<code>
  $ cd ..  $ cd ..
  $ ./bin/tb2gram --help  $ ./bin/tb2gram --help
  $ ./bin/twostage_lorgparser --help  $ ./bin/twostage_lorgparser --help
 +</code>
 =====  Utilisation sur le serveur lipn-rcln  ===== =====  Utilisation sur le serveur lipn-rcln  =====
  
 ====  Entraînement   ==== ====  Entraînement   ====
-Le programme **tb2gram** lit un corpus annoté en format [[http://stp.lingfil.uu.se/~nivre/master/penn00.trees|//Penn Treebank//]] (.ptb) pour produire une grammaire hors contexte probabiliste (PCFG). Cette grammaire sera utilisée par le parseur syntaxique <tt>twostage_lorgparser</tt>.+Le programme **tb2gram** lit un corpus annoté en format [[http://stp.lingfil.uu.se/~nivre/master/penn00.trees|Penn Treebank]] (.ptb) pour produire une grammaire hors contexte probabiliste (PCFG). Cette grammaire sera utilisée par le parseur syntaxique ''twostage_lorgparser''.
  
   *  **Anglais**   *  **Anglais**
  
-Pour l'anglais, on va entraîner le parseur avec les sections [[2-21]] du Penn Treebank, qui se trouve sur <tt> /home/corpus/Treebank-3/parsed/mrg/wsj/</tt> dans le serveur lipn-rcln. Avant de lancer l'entraînement, il faut créer un répertoire sur lipn-rcl où écrire la grammaire de sortie.  À partir du répertoire racine de LORG (//LORG-Resease//), on envoie: +Pour l'anglais, on va entraîner le parseur avec les sections [[2-21]] du Penn Treebank, qui se trouve sur ''/home/corpus/Treebank-3/parsed/mrg/wsj/'' dans le serveur lipn-rcln. Avant de lancer l'entraînement, il faut créer un répertoire sur lipn-rcl où écrire la grammaire de sortie.  À partir du répertoire racine de LORG (//LORG-Resease//), on envoie: 
- $ mkdir data/training/english/english_grammar.utilisateur.date+<code> $ mkdir data/training/english/english_grammar.utilisateur.date</code>
  
 Maintenant on peut commencer l'entrainement, qui peut prendre quelques heures. La commande qui suit entraine avec les sections 2 à 21 du //Penn Treebank// avec l'option des messages explicites (-v) et elle produira six étapes de division/melange/lissage (option par défaut) avec 8 fils d'exécution (--nbthreads), tout en remplaçant les //tokens// qui avec occurrence=1 par les signatures ordonnées d'après son gain d'information en anglais (-w EnglishIG). Maintenant on peut commencer l'entrainement, qui peut prendre quelques heures. La commande qui suit entraine avec les sections 2 à 21 du //Penn Treebank// avec l'option des messages explicites (-v) et elle produira six étapes de division/melange/lissage (option par défaut) avec 8 fils d'exécution (--nbthreads), tout en remplaçant les //tokens// qui avec occurrence=1 par les signatures ordonnées d'après son gain d'information en anglais (-w EnglishIG).
Ligne 96: Ligne 99:
 </code> </code>
  
-Pour voir le détail des options de <tt>tb2gram</tt>, voir l'option <tt>--help</tt> où le [[https://github.com/jihelhere/LORG-Release/blob/master/README|README]] du code source.+Pour voir le détail des options de ''tb2gram'', voir l'option ''-%%-%%help'' où le [[https://github.com/jihelhere/LORG-Release/blob/master/README|README]] du code source.
  
-Si tout s'est bien passé, le contenu du répertoire <tt>$TB2OUTPUT/english_grammar</tt> doit contenir les fichiers de la grammaire:+Si tout s'est bien passé, le contenu du répertoire ''$TB2OUTPUT/english_grammar'' doit contenir les fichiers de la grammaire:
 <code> <code>
 $ ll $TB2OUTPUT $ ll $TB2OUTPUT
Ligne 116: Ligne 119:
 ====  Parsing  ==== ====  Parsing  ====
 ===  Préconditions  === ===  Préconditions  ===
-Le fichier d'entrée doit être déjà segmenté en phrase, une phase par ligne. Pour le présent exemple, on donnera en entrée les premières phrases d'un discours de Martin Luther King (sur lipn-rcln, on peut le trouver dans <tt>/home/lorg/LORG-Release/data/parsing/input/dream.txt</tt>).+Le fichier d'entrée doit être déjà segmenté en phrase, une phase par ligne. Pour le présent exemple, on donnera en entrée les premières phrases d'un discours de Martin Luther King (sur lipn-rcln, on peut le trouver dans ''/home/lorg/LORG-Release/data/parsing/input/dream.txt'').
 <code> <code>
 I say to you today, my friends, so even though we face the difficulties of today and tomorrow, I still have a dream. I say to you today, my friends, so even though we face the difficulties of today and tomorrow, I still have a dream.
Ligne 122: Ligne 125:
 I have a dream that one day this nation will rise up and live out the true meaning of its creed: I have a dream that one day this nation will rise up and live out the true meaning of its creed:
 "We hold these truths to be self-evident: that all men are created equal." "We hold these truths to be self-evident: that all men are created equal."
-[[...]]+[[..:..:outils]]
 </code> </code>
  
-===  Segmentation en unités lexicales (//Tokenisation//)  ===+===  Segmentation en unités lexicales (Tokenisation)  ===
 Le fichier d'entrée du parseur doit être segmenté en accord avec le corpus avec lequel le parseur a été entrainé. C'est à dire, si on a entrainé avec un //Penn Treebank// le texte à analyser devra être tokenisé de la même façon que le //Penn Treebank//. Le fichier d'entrée du parseur doit être segmenté en accord avec le corpus avec lequel le parseur a été entrainé. C'est à dire, si on a entrainé avec un //Penn Treebank// le texte à analyser devra être tokenisé de la même façon que le //Penn Treebank//.
  
-Dans l'installation de lipn-rcln, le script <tt>ptb.tokenizer.sed</tt> (répertoire <tt>scripts</tt>) permet de segmenter avec les mêmes critères que le //Penn Treebank//. La commande suivante segmente le texte <tt>dream.txt</tt> en unité lexicales distinctes séparées par un espace et écrir la sortie sur <tt>dream.ptb.txt</tt> +Dans l'installation de lipn-rcln, le script ''ptb.tokenizer.sed'' (répertoire ''scripts'') permet de segmenter avec les mêmes critères que le //Penn Treebank//. La commande suivante segmente le texte ''dream.txt'' en unité lexicales distinctes séparées par un espace et écrire la sortie sur ''dream.ptb.txt'' 
 +<code>
  [[lorg@lipn-rcln|LORG-Release]]$ ./scripts/ptb.tokenizer.sed data/parsing/input/dream.txt > data/parsing/input/dream.ptb.txt  [[lorg@lipn-rcln|LORG-Release]]$ ./scripts/ptb.tokenizer.sed data/parsing/input/dream.txt > data/parsing/input/dream.ptb.txt
- +</code> 
-L'étape de tokenisation peut être évité en passant l'option <tt>--input-mode raw</tt> à <tt>twostage_lorgparser</tt>, mais elle ne marche que pour l'anglais.+L'étape de tokenisation peut être évité en passant l'option ''-%%-%%input-mode raw'' à ''twostage_lorgparser'', mais elle ne marche que pour l'anglais.
  
 ===  Analyse syntaxique  === ===  Analyse syntaxique  ===
Ligne 144: Ligne 147:
 </code> </code>
  
-Cette commande appel <tt>twostage_lorg</tt> avec les options suivantes:</tt>+Cette commande appel ''twostage_lorg'' avec les options suivantes:
   *  **-g** indique la grammaire PCFG-LA précedemment généré dans la phase d'entraînement   *  **-g** indique la grammaire PCFG-LA précedemment généré dans la phase d'entraînement
   *  **-o** indique le fichier de sortie de l'analyse syntaxique   *  **-o** indique le fichier de sortie de l'analyse syntaxique
   *  **-w EnglishIG** indique le remplacement des occurrences uniques par ses signatures ordonnées d'après son gain d'information en langue anglaise   *  **-w EnglishIG** indique le remplacement des occurrences uniques par ses signatures ordonnées d'après son gain d'information en langue anglaise
-  *  **--input mode tok** indique que le texte à analyser a été segmenté en unité lexicales +  *  **-%%-%%input mode tok** indique que le texte à analyser a été segmenté en unité lexicales 
-  *  **--parser-type kmax --k 1** indique que l'analyse sera effectué avec Maxrule, qui produit une liste de k solutions (k=1 ici) +  *  **-%%-%%parser-type kmax -%%-%%k 1** indique que l'analyse sera effectué avec Maxrule, qui produit une liste de k solutions (k=1 ici) 
-  *  **--verbose** pour imprime les scores des solutions et d'autres messages complémentaires+  *  **-%%-%%verbose** pour imprime les scores des solutions et d'autres messages complémentaires
  
 Le résultat de la commande: Le résultat de la commande:
Ligne 172: Ligne 175:
 overall time: 6.51949s overall time: 6.51949s
 </code> </code>
-Et le résultat de l'analyse sur le fichier <tt>dream.txt.tok.parsed</tt>+Et le résultat de l'analyse sur le fichier ''dream.txt.tok.parsed''
 <code> <code>
     -  ID: 1     -  ID: 1
  • Dernière modification: il y a 5 ans