TAU2014/Ćwiczenia 2

Installing Moses (in Arch Linux)

Do /etc/pacman.conf dodać:

[nlp]
SigLevel = Optional TrustAll
Server = http://mrt.wmi.amu.edu.pl:8888/archlinux/$repo/os/$arch

Aktualizacja listy pakietów

pacman -Sy

Instalacja Mosesa (także reinstalacja):

pacman -S moses-compact-git

Uwaga 1: przez pewien czas była popsuta wersja, teraz powinno być OK.

Uwaga 2: jeśli w trakcie reinstalacji/uaktualnienia zapyta o zamianę cmph na cmph-staticlibs, proszę się zgodzić.

Więcej informacji: http://www.statmt.org/moses/?n=Development.GetStarted

Można pobrać proste modele:

wget http://www.statmt.org/moses/download/sample-models.tgz
echo 'das ist ein kleines haus' | /opt/moses/bin/moses -f phrase-model/moses.ini

Wytrenowanie prostego modelu: http://www.statmt.org/moses/?n=Moses.Baseline

Installing Moses (other Linux distributions)

You need to compile Moses on your own, see more info

Znaki specjalne w korpusie

Niektóre znaki (w szczególności) nawiasy kwadratowe mają dla Mosesa specjalne znaczenie.
Należy je wyczyścić, np. skryptem escape-special-chars.perl:

/opt/moses/scripts/tokenizer/escape-special-chars.perl < corpus.oryginalny.pl > corpus.pl

Creating a target language model

Let’s say we try to create a language model for the file corpus.pl.

First we add some special markers for the beginning and the end of the file:

$ bash /opt/irstlm/bin/add-start-end.sh  < corpus.pl > corpus.sb.pl

(Take a look at the output file corpus.sb.pl.)

Then we create a language model in a textual format:

$ export IRSTLM=/opt/irstlm; bash /opt/irstlm/bin/build-lm.sh -i corpus.sb.pl  -t ./tmp  -p -s improved-kneser-ney -o corpus.lm.pl

The model will be written to corpus.lm.pl.gz - it is a compressed file, can be viewed with:

$ zcat corpus.lm.pl.gz

Now let’s convert this file into the so-called ARPA format:

$ /opt/irstlm/bin/compile-lm --text=yes corpus.lm.pl.gz corpus.arpa.pl

Training:

First we should convert the language model created with IRSTLM into a binary format (more compact and faster):

$ /opt/moses/bin/build_binary corpus.arpa.pl corpus.blm.pl

Now we can run the train-model.perl script:

$ /opt/moses/scripts/training/train-model.perl  -root-dir train -corpus corpus -f en -e pl -alignment grow-diag-final-and -lm 0:3:/full/path/to/corpus.blm.pl:8 -external-bin-dir /usr/bin

Running

cd train/model
/opt/moses/bin/moses -f moses.ini