Traduction Automatique Statistique Master 2 – ISI Matériel

Transcription

Traduction Automatique Statistique Master 2 – ISI Matériel
Traduction Automatique Statistique
Master 2 – ISI
Préambule :
La traduction automatique est devenue une technologie incontournable. Plusieurs approches
existent, mais depuis quelques années la traduction automatique statistique est considérée comme la
plus prometteuse. Dans cette approche, toutes les connaissances sont extraites automatiquement à
partir d'exemples de traductions, appelés textes ou corpus parallèles. La traduction automatique
statistique est fondée sur l'apprentissage de modèles à partir de corpus parallèles bilingues. Le but
de ce TP est de construire un système de traduction automatique statistique fondé sur les séquences
(phrase-based translation).
Matériel nécessaire Tout est dans /info/projets/smt
Liens utiles :
http://www.statmt.org/moses/?n=Development.GetStarted
http://code.google.com/p/giza-pp/downloads/list
1-­‐ Préparation des données (Pré-­‐traitements) - Créez un répertoire de travail en local à votre machine.
- Tokenisez les données d’entraînement (en-fr)
- Filtrez les phrases longues.
perl MOSES/scripts/training/clean-corpus-n.perl train.tok fr en train.tok.clean 1 40
- Passez
le vocabulaire en minuscule.
perl ../scripts/lowercase.perl < train.tok.clean.en > ../training/train.lowercased.en
- Toutes ces étapes sont-elles nécessaires ? Justifiez votre réponse.
2-­‐ Introduction au système de traduction automatique Moses 2-­‐1 Alignement (GIZA++) Un alignement mot à mot entre une phrase et sa traduction consiste à extraire des relations
d’appariement entre les mots de la phrase source et les mots de sa traduction. Aujourd’hui le
principal système d’alignement état de l’art, Giza++, repose sur une combinaison des modèles
génératifs IBM.
1) Voici un échantillon d'un corpus parallèle d'apprentissage anglais/français :
Partie anglaise
Partie française
Taming Politicians on Both Sides of the Atlantic.
Apprivoiser les politiciens des deux côtés de
l'Atlantique.
The US Federal Reserve Board is, of course, very
independent.
La Réserve fédérale américaine est bien entendu
extrêmement indépendante.
This is far more difficult!
C'est une tâche bien plus difficile !
1) Peut-on exploiter cet échantillon tel quel pour apprendre un modèle via GIZA++ ?
- Si non, quelles sont les modifications à apporter à ce corpus ?
2) Lancez la commande plain2snt.out pour obtenir les fichiers du vocabulaire source et cible
(.vcb) ainsi que le fichier des couples de phrases (.snt). Observez les fichiers résultats.
Ex : giza-pp/GIZA++-v2/plain2snt.out train.en train.fr
3) Construisez un fichier de co-occurrences à l'aide de la commande snt2cooc.out
Ex : giza-pp/GIZA++-v2/snt2cooc.out train.fr.vcb train.en.vcb train.fr_train.en.snt > file.cooc
4) Produisez un alignement à l'aide de Giza++
Ex : giza-pp/GIZA++-v2/GIZA++ -s train.fr.vcb -t train.en.vcb -c train.fr_train.en.snt -CoocurrenceFile
file.cooc
Observez les fichiers résultats.
2-­‐2 Entrainement d'un système de traduction Nous allons suivre les étapes listées dans la page d’accueil :
http://www.statmt.org/moses/?n=FactoredTraining.HomePage
1- Préparation des données (Pré-traitements)
2- Construction du modèle de langage et du modèle de traduction
cf 2 premières séances de TP
2-2- Apprentissage du modèle de traduction (Entraînement)
- Copiez dans le répertoire external les exécutables de GIZA++ et mkcls (GIZA++, mkcls,
plain2snt.out, snt2cooc.out et snt2plain.out)
- Lancez la commande d'apprentissage suivante :
perl ../mosesdecoder/scripts/training/train-model.perl -root-dir . -external-bin-dir ../external -corpus
../training/news-commentary.lowercased -f fr -e en -alignment grow-diag-final-and -reordering msd-bidirectional-fe -lm
0:3:ModeleDeLangue.lm >& training.out &
- Vous pouvez observer les fichiers du vocabulaire source et cible (.vcb) ainsi que le fichier des couples de phrases
(.snt).
- Vous pouvez aussi observer les alignements dans giza.fr-en/fr-en.A3.final et giza.en-fr/en-fr.A3.final
3-­‐ Test du modèle de langage - Filtrez la table de décodage pour ne pas tout charger en mémoire
MOSES/scripts/training/filter-model-given-input.pl out model/moses.ini test.en
- Lancez le décodeur sur le fichier de test (test.en par exemple)
MOSES/bin/moses -f out/moses.ini < test.en > res.fr
Que constatez vous ?
4-­‐ Correction d'erreurs - Testez la démo en ligne de Moses : http://demo.statmt.org/index.php
- La démo vous offre la possibilité de corriger une traduction erronée et de la ressoumettre au
système. Testez cette fonctionnalité. Que constatez vous ?
- Pourriez-vous proposer une méthode pour prendre en compte les corrections de manière quasiinstantané ?