Ich habe OpenNLP-py Modelle von Englisch nach Deutsch und von Italienisch nach Deutsch auf Europarl trainiert und ich habe sehr niedrige BLEU Punkte: 8.13 für Englisch -> Deutsch und 4.79 für Italienisch -> Deutsch.OpenNMT-py niedrige BLEU Noten für Übersetzer auf Deutsch
Da ich kein Experte für NNs (noch) bin, habe ich die Standardkonfigurationen von der Bibliothek übernommen. Training 13 Epochen dauerte in beiden Fällen ca. 20 Stunden. In beiden Fällen verwendete ich 80% des Datensatzes für die Schulung, 10% für die Validierung und 10% für die Tests.
Im Folgenden sind die Befehle, die ich für die Erstellung des Italienisch -> Deutsch-Modells verwendet habe, ich habe eine ähnliche Befehlsfolge für das andere Modell verwendet. Kann mir jemand Ratschläge geben, wie ich die Effektivität meiner Modelle verbessern kann?
# $ wc -l Europarl.de-it.de
# 1832052 Europarl.de-it.de
head -1465640 Europarl.de-it.de > train_de-it.de
head -1465640 Europarl.de-it.it > train_de-it.it
tail -n 366412 Europarl.de-it.de | head -183206 > dev_de-it.de
tail -n 366412 Europarl.de-it.it | head -183206 > dev_de-it.it
tail -n 183206 Europarl.de-it.de > test_de-it.de
tail -n 183206 Europarl.de-it.it > test_de-it.it
perl tokenizer.perl -a -no-escape -l de < ../data/train_de-it.de > ../data/train_de-it.atok.de
perl tokenizer.perl -a -no-escape -l de < ../data/dev_de-it.de > ../data/dev_de-it.atok.de
perl tokenizer.perl -a -no-escape -l de < ../data/test_de-it.de > ../data/test_de-it.atok.de
perl tokenizer.perl -a -no-escape -l it < ../data/train_de-it.it > ../data/train_de-it.atok.it
perl tokenizer.perl -a -no-escape -l it < ../data/dev_de-it.it > ../data/dev_de-it.atok.it
perl tokenizer.perl -a -no-escape -l it < ../data/test_de-it.it > ../data/test_de-it.atok.it
python3 preprocess.py \
-train_src ../data/train_de-it.atok.it \
-train_tgt ../data/train_de-it.atok.de \
-valid_src ../data/dev_de-it.atok.it \
-valid_tgt ../data/dev_de-it.atok.de \
-save_data ../data/europarl_de_it.atok.low \
-lower
python3 train.py \
-data ../data/europarl_de_it.atok.low.train.pt \
-save_model ../models_en_de/europarl_it_de_models \
-gpus 0
Sie können Romance Multi-Way-Modell] (http://forum.opennmt.net/t/training-romance-multi-way-model/86) und auch [Training Englisch-Deutsch WMT15 NMT-Engine] (http: //forum.oplenmt .net/t/training-deutsch-deutsch-wmt15-nmt-engine/29/33). Die Grundidee besteht darin, die BPE-Tokenisierung auf einem verketteten ENDE-Trainingskorpus auszuführen und dann die Trainingskorpora mit den gelernten BPE-Modellen zu tokenisieren. '-case_feature' ist auch eine gute Idee für alle Sprachen, in denen Buchstaben unterschiedliche Schreibweisen haben können. –
das ist ziemlich interessantes Material zum Lesen! Danke für deinen Kommentar und für die Hinweise. Bitte, machen Sie eine Antwort daraus, so dass ich nach oben abstimmen und als Lösung markieren kann. – Alberto
Wenn Sie mit einem Schritt für Schritt Code kommen, fühlen Sie sich bitte auch frei, als separate Antwort zu posten.Oder ich werde meine Antwort bearbeiten, nachdem meine Tests beendet sind. –