Installation et fonctionnement de Constraint Grammar

From Apertium
Revision as of 23:58, 7 December 2011 by Bech (talk | contribs) (meilleure formulation intro)
Jump to navigation Jump to search

La partie installation d'Apertium et des paires de langues décrite ici se réfère à la distribution Ubuntu. Pour d'autres distributions Linux ou d'autres systèmes d'exploitation, voir la page d'installation générale.

Téléchargement

Apertium

Comment télécharger Apertium pour Ubuntu. D'abord ouvrez votre terminal et copiez/collez

   sudo apt-get install subversion build-essential g++ pkg-config libxml2 \
   libxml2-dev libxml2-utils xsltproc flex automake autoconf libtool libpcre3-dev

Le terminal vous demandera alors votre mot de passe comme ceci :

   [sudo] password for user

tapez le et appuyez sur la touche entrée.

Si vous avez déjà les pré requis, vous aurez des messages du genre X upgraded, X newly installed, X to remove and X not upgraded. Si vous ne les avez pas, vous devez attendre jusqu'à ce que le terminal affiche user@ubuntu:~$. Ça signifie que le processus est prêt et le terminal vous attend pour la prochaine étape, qui est de copier/coller ce code :

   svn co http://apertium.svn.sourceforge.net/svnroot/apertium/trunk apertium

Cela chargera Apertium depuis SVN. Le processus prendra quelques minutes. Lorsque le téléchargement se termine c'est prêt pour installer apertium.


Constraint grammar

Pour utiliser CG on a besoin de lttoolbox (on l'a), apertium (on l'a aussi) et ICU (on doit l'installer maintenant).

Comment installer ICU pour Ubuntu. Ouvrez votre terminal et copiez/collez ce code :

   apt-get install libicu-dev

Maintenant on peut installer apertium, lttoolbox et CG.

Installation

Apertium

Avant d'installer apertium on doit installer lttoolbox (qui a été téléchargé en même temps qu'apertium). Pour le faire vous devez copier/coller ce code :

cd apertium

cd lttoolbox/

PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./autogen.sh

make

sudo make install

sudo ldconfig


Le terminal vous demandera de nouveau votre mot de passe [sudo] password for user: Après l'avoir tapé appuyez sur la touche entrée. Attendez de voir sur votre terminal user@ubuntu:~/apertium/lttoolbox$ ensuite copiez/collez ce code :

cd ..

cd apertium/

PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./autogen.sh

make

sudo make install

sudo ldconfig

Cela commencera l'installation d'apertium. Vous devez attendre quelques minutes. Quand vous voyez :

vasil@ubuntu:~/apertium/apertium$ sudo ldconfig

vasil@ubuntu:~/apertium/apertium$

le processus est prêt.


Constraint grammar


Comment installer CG. Ouvrir le terminal et copiez/collez ce code :

$ svn co --username anonymous --password anonymous http://beta.visl.sdu.dk/svn/visl/tools/vislcg3/trunk vislcg3

$ cd vislcg3

$ sh autogen.sh --prefix=<prefix>

$ make

$ make install

Cela vous demandera votre mot de passe [sudo] password for user: . Après l'avoir tapé appuyez sur la touche entrée.

On est prêt.

Utilisation

Pour l'exemple qui suit, on utilise la paire de langue apertium-es-ca, mais les principes devraient être applicables pour chaque paire de langue. D'abord, il faut compiler cette paire. Allez dans le répertoire d'où vous avez extrait apertium depuis SVN, puis

   cd apertium/apertium-es-ca
   sh autogen.sh
   make

Supposons que ce qu'on a installé fonctionne. D'abord copiez/collez ce code :

   echo "vino a la playa" | lt-proc es-ca.automorf.bin

Ça devrait vous donner :

   ^vino/vino<n><m><sg>/venir<vblex><ifi><p3><sg>$ ^a/a<pr>$ ^la/el<det><def><f><sg>/lo<prn><pro><p3><f><sg>$ ^playa/playa<n><f><sg>$

Ici on a des ambiguïtés, une entre un nom et un verbe et l'autre entre un déterminant et un pronom. On peut écrire quelques règles qui peuvent imposer une catégorisation entre deux ambiguïtés. D'abord on définit nos catégories, ça peut être des balises, des formes de mots ou des lemmes. Ça peut aider de penser à elles comme des "étiquettes brutes", qui peuvent impliquer un ensemble de balises ou lemmes. Donc, créez un fichier grammar.txt, et ajoutez le texte qui suit :

   DELIMITERS = "<$.>" ;
   LIST NOUN = n;
   LIST VERB = vblex;
   LIST DET = det;
   LIST PRN = prn;
   LIST PREP = pr;
   SECTION

Ainsi la première règle est states(?) "Quand l'unité lexicale courante peut être un pronom ou un déterminant, et est suivie à droite d'une unité lexicale qui peut être un nom, choisir le déterminant". On doit ajouter cette règle au fichier, et compiler en utilisant cg-comp :

règle :

   # 1
   SELECT DET IF
           (0 DET)
           (0 PRN)
           (1 NOUN) ;

compiler avec :

   $ ./cg-comp grammar.txt grammar.bin
   Sections: 1, Rules: 1, Sets: 6, Tags: 7

Pour essayer ce qu'on a fait, copiez/collez ce code :

   $ echo "vino a la playa" | lt-proc es-ca.automorf.bin |  cg-proc grammar.bin
   ^vino/vino<n><m><sg>/venir<vblex><ifi><p3><sg>$ ^a/a<pr>$ ^la/el<det><def><f><sg>$ ^playa/playa<n><f><sg>$


La deuxième règle est states(?) "Quand l'unité lexicale courante peut être un nom ou un verbe, si les deux unités qui suivent à droite sont une préposition et un déterminant, enlever le nom". Maintenant On doit ajouter cette règle :

règle :

   # 2
   REMOVE NOUN IF
           (0 NOUN)
           (0 VERB)
           (1 PREP)
           (2 DET) ;

recompiler la grammaire et tester :

   $ echo "vino a la playa" | lt-proc es-ca.automorf.bin |  cg-proc grammar.bin
   ^vino/venir<vblex><ifi><p3><sg>$ ^a/a<pr>$ ^la/el<det><def><f><sg>$ ^playa/playa<n><f><sg>$

La troisième règle states(?) "Enlever l'interjection si le mot précédent est un verbe modal."