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é ?