Test de corpus
Le test de corpus consiste à tester (par traduction) tout un corpus et à comparer le résultat à celui de la dernière fois que le corpus a été traduit. C'est très utile si vous voulez changer une règle ou un mot et obtenir une vue d'ensemble des conséquences sur le texte réel. Avec les tests de vocabulaire et les tests de régression c'est une bonne manière de vérifier que votre traducteur fonctionne, et que vos modifications ont rien de cassé.
Contents
Création d'un corpus
Avant que vous vous commenciez vous avez d'abord besoin d'un corpus. Regardez dans apertium-eo-en/corpa/enwiki.crp.txt.bz2 ? Lancez
bunzip2 -c enwiki.crp.txt.bz2 > en.crp.txt
pour avoir une idée sur ce à quoi ça devrait ressembler:
- Récupérez avec
grep
toutes les lignes avec # et @ - ça vous aidera à trouver des problèmes dans le bidix (@) et dans le monodix de la langue cible (#). - Rajouter avant/après (?) le grep le tube
nl -s
'. ' pour avoir les bons numéros de ligne.
Note du traducteur : Ce morceau est peu clair, mais les instructions suivantes devraient faire l'affaire sur un ordinateur fonctionnant sous Linux :
fgrep -n "#" monodix fgrep -n "@" bidix
Installation et invocation
Copiez le fichier testcorpus_en-eo.sh
de la paire apertium-eo-en et changez son nom.
Pour commencer, tapez bash regression-tests.sh
depuis une fenêtre ou un terminal UNIX.
Sortie
Des lignes contenant @ et # (indiquant un problème de .dix, dont beaucoup pourraient également être trouvés par la méthode de test de vocabulaire) seront affichées.
Mais plus important, dans testcorpus_en-eo.txt il y aura une liste de différences. D'abord un numéro de ligne, puis le texte d'origine, puis < et la traduction de la dernière fois, suivie d'une dernière ligne commençant par > et la traduction de cette fois-ci :
-- 1924 --- 1924. In Japan there is an input system allowing you to type kanji. < 1924. En Japanio estas kontribuaĵan sistemon permesanta vi tajpi *kanji. > 1924. En Japanio estas kontribuaĵa sistemo permesanta vin tajpi *kanji. --- 1937 --- 1937. However, such apparent simplifications can perversely make a script more complicated. < 1937. Tamen, tiaj evidentaj simpligoj povas *perversely fari skribo pli komplika. > 1937. Tamen, tiaj evidentaj simpligoj povas *perversely fari skribon pli komplika.
Pour faire pareil sans script
Vous n'avez pas forcément besoin d'un script. Tapez juste :
make && cat corpa/en.crp.txt | apertium -d . en-eo > traduction_origine.txt
pour faire la 'traduction originale'. Ensuite modifiez vos .dixes, et lancez :
make && cat corpa/en.crp.txt | apertium -d . en-eo > traduction_nouvelle.txt &
Le signe & fera tourner le processus en tache de fond. Ça signifie que vous pouvez examiner les différences avant que toutes les phrases soient traduites, avec:
diff -w traduction_origine.txt traduction_nouvelle.txt | grep -r '[<>]' > /tmp/crpdiff.txt && for i in `cut -c3-8 /tmp/crpdiff.txt | sort -un`; do echo --- $i ---; grep -r "^ *$i\." corpa/en.crp.txt; grep -r "^. *$i\." /tmp/crpdiff.txt; done | less