Difference between revisions of "Préparation de données pour Moses"

From Apertium
Jump to navigation Jump to search
(Création page)
 
(Lien page anglaise)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
[[Preparing data for Moses factored training using Apertium|In English]]

Cette page donne une description sur la manière de pré-traiter un corpus en utilisant Apertium afin qu'il puisse être utilisé pour entraîner Moses "factoredly" (???).
Cette page donne une description sur la manière de pré-traiter un corpus en utilisant Apertium afin qu'il puisse être utilisé pour entraîner Moses "factoredly" (???).


Line 21: Line 23:


<pre>
<pre>
$ wget http://apertium.svn.sourceforge.net/svnroot/apertium/trunk/apertium-sv-da/apertium-sv-da.da.dix
$ wget https://svn.code.sf.net/p/apertium/svn/trunk/apertium-sv-da/apertium-sv-da.da.dix
$ wget http://apertium.svn.sourceforge.net/svnroot/apertium/trunk/apertium-sv-da/da-sv.prob
$ wget https://svn.code.sf.net/p/apertium/svn/trunk/apertium-sv-da/da-sv.prob


$ wget http://apertium.svn.sourceforge.net/svnroot/apertium/trunk/apertium-is-en/apertium-is-en.en.dix
$ wget https://svn.code.sf.net/p/apertium/svn/trunk/apertium-is-en/apertium-is-en.en.dix
$ wget http://apertium.svn.sourceforge.net/svnroot/apertium/trunk/apertium-is-en/en-is.prob
$ wget https://svn.code.sf.net/p/apertium/svn/trunk/apertium-is-en/en-is.prob


$ lt-comp lr apertium-sv-da.da.dix da-sv.automorf.bin
$ lt-comp lr apertium-sv-da.da.dix da-sv.automorf.bin
Line 73: Line 75:


<pre>
<pre>
$ wget http://apertium.svn.sourceforge.net/svnroot/apertium/trunk/apertium-tools/tagger-to-factored.py
$ wget https://svn.code.sf.net/p/apertium/svn/trunk/apertium-tools/tagger-to-factored.py
</pre>
</pre>



Latest revision as of 07:52, 8 October 2014

In English

Cette page donne une description sur la manière de pré-traiter un corpus en utilisant Apertium afin qu'il puisse être utilisé pour entraîner Moses "factoredly" (???).

Exigences[edit]

Étapes[edit]

Télécharger et compiler les données[edit]

Pour le corpus parallèle, on va utiliser Europarl, la page corpora (seulement en anglais) en liste d'autres :

$ wget http://www.statmt.org/europarl/v5/da-en.tgz
$ tar -xzf da-en.tgz

Et pour l'analyseur morphologique et le tagger, on va utiliser apertium-sv-da et apertium-is-en. Vous pouvez en trouver d'autres dans : Liste des paires de langues et list of dictionaries.

$ wget https://svn.code.sf.net/p/apertium/svn/trunk/apertium-sv-da/apertium-sv-da.da.dix
$ wget https://svn.code.sf.net/p/apertium/svn/trunk/apertium-sv-da/da-sv.prob

$ wget https://svn.code.sf.net/p/apertium/svn/trunk/apertium-is-en/apertium-is-en.en.dix
$ wget https://svn.code.sf.net/p/apertium/svn/trunk/apertium-is-en/en-is.prob

$ lt-comp lr apertium-sv-da.da.dix da-sv.automorf.bin
final@inconditional 20 105
main@standard 9121 18055
unchecked@standard 4411 8130

$ lt-comp lr apertium-is-en.en.dix en-is.automorf.bin
final@inconditional 97 2809
main@standard 22284 47423

The

Nettoyer et baliser chaque coté du corpus[edit]

Supprimer chaque ligne qui commence par des balises :


$ cat da-en/da/*  | grep -v '^<' > europarl.da
$ cat da-en/en/*  | grep -v '^<' > europarl.en

Vérifier que les fichiers ont la même longueur.

$ wc -l europarl.*
  1687533 europarl.da
  1687533 europarl.en

Analyser et baliser le corpus :

$ cat europarl.da | apertium-destxt | lt-proc -w da-sv.automorf.bin | \
  apertium-tagger -g -p da-sv.prob | apertium-retxt > tagged.da

$ cat europarl.en | apertium-destxt | lt-proc -w en-is.automorf.bin | \
  apertium-tagger -g -p en-is.prob | apertium-retxt > tagged.en

Notez que l'option -w supporte la mise en minuscules du dictionnaire, c'est à dire, que le lemme est envoyé avec la casse qu'il a dans le dictionnaire, pas celle de la forme de surface.

Convertir dans le format "factored" pour Moses[edit]

Télécharger le tagger pour le script factored (???) :

$ wget https://svn.code.sf.net/p/apertium/svn/trunk/apertium-tools/tagger-to-factored.py

Alors convertir dans le format "factored" pour Moses :

$ cat tagged.da | python tagger-to-factored.py 2 > factored.da
$ cat tagged.en | python tagger-to-factored.py 2 > factored.en

Note: Le nombre en option de tagger-to-factored.py spécifie combien de balises vous voulez envoyer. En mettant 0 ça va seulement envoyer la forme de surface et le lemme. En mettant 1 ça va envoyer la forme de surface, le lemme et la première balise (qui est presque toujours la balise POS). Tout ce qui précède sera envoyé comme avant, mais un facteur supplémentaire sera envoyé comme le reste de l'information morphologique.

Par exemple:

$ echo "^der/der<adv>$ ^blev/blive<vblex><past><actv>$ ^ramt/ramme<vblex><pp>$^./.<sent>$" | python tagger-to-factored.py 0
der|der blev|blive ramt|ramme .|. 

$ echo "^der/der<adv>$ ^blev/blive<vblex><past><actv>$ ^ramt/ramme<vblex><pp>$^./.<sent>$" | python tagger-to-factored.py 1
der|der|adv blev|blive|vblex ramt|ramme|vblex .|.|sent 

$ echo "^der/der<adv>$ ^blev/blive<vblex><past><actv>$ ^ramt/ramme<vblex><pp>$^./.<sent>$" | python tagger-to-factored.py 2
der|der|adv|adv blev|blive|vblex|vblex.past ramt|ramme|vblex|vblex.pp .|.|sent|sent 

$ echo "^der/der<adv>$ ^blev/blive<vblex><past><actv>$ ^ramt/ramme<vblex><pp>$^./.<sent>$" | python tagger-to-factored.py 
der|der|adv|adv blev|blive|vblex|vblex.past.actv ramt|ramme|vblex|vblex.pp .|.|sent|sent 

Après ça, vérifiez de nouveau que les fichiers ont la même longueur :

$ wc -l factored.*

Entraîner un modèle "factored" basé sur des phrases[edit]

Maintenant vous avez les données, vous pouvez entraîner un modèle "factored" basé sur des phrases avec Moses !

Voir aussi[edit]

Liens externes[edit]