mirror of
https://github.com/moses-smt/mosesdecoder.git
synced 2024-11-10 10:59:21 +03:00
159 lines
5.7 KiB
Plaintext
159 lines
5.7 KiB
Plaintext
PRELIMINARIES
|
|
|
|
Moses is primarily targeted at gcc on UNIX.
|
|
|
|
Moses requires gcc, Boost >= 1.36, and zlib including the headers that some
|
|
distributions package separately (i.e. -dev or -devel packages). Source is
|
|
available at http://boost.org .
|
|
|
|
There are several optional dependencies:
|
|
|
|
GIZA++ from http://code.google.com/p/giza-pp/ is used to align words in the parallel corpus during training.
|
|
|
|
Moses server requires xmlrpc-c with abyss-server. Source is available from
|
|
http://xmlrpc-c.sourceforge.net/.
|
|
|
|
The scripts support building ARPA format language models with SRILM or IRSTLM.
|
|
To apply models inside the decoder, you can use SRILM, IRSTLM, or KenLM. The
|
|
ARPA format is exchangable so that e.g. you can build a model with SRILM and
|
|
run the decoder with IRSTLM or KenLM.
|
|
|
|
If you want to use SRILM, you will need to download its source and build it.
|
|
The SRILM can be downloaded from
|
|
http://www.speech.sri.com/projects/srilm/download.html .
|
|
On x86_64, the default machine type is broken. Edit sbin/machine-type, find
|
|
this code
|
|
else if (`uname -m` == x86_64) then
|
|
set MACHINE_TYPE = i686
|
|
and change it to
|
|
else if (`uname -m` == x86_64) then
|
|
set MACHINE_TYPE = i686-m64
|
|
You may have to chmod +w sbin/machine-type first.
|
|
|
|
If you want to use IRSTLM, you will need to download its source and build it.
|
|
The IRSTLM can be downloaded from either the SourceForge website
|
|
http://sourceforge.net/projects/irstlm
|
|
or the official IRSTLM website
|
|
http://hlt.fbk.eu/en/irstlm
|
|
|
|
KenLM is included with Moses.
|
|
|
|
--------------------------------------------------------------------------
|
|
|
|
ADVICE ON INSTALLING EXTERNAL LIBRARIES
|
|
|
|
Generally, for trouble installing external libraries, you should get support
|
|
directly from the library maker:
|
|
|
|
Boost: http://www.boost.org/doc/libs/release/more/getting_started/unix-variants.html
|
|
IRSTLM: https://list.fbk.eu/sympa/subscribe/user-irstlm
|
|
SRILM: http://www.speech.sri.com/projects/srilm/#srilm-user
|
|
|
|
However, here's some general advice on installing software (for bash users):
|
|
|
|
#Determine where you want to install packages
|
|
PREFIX=$HOME/usr
|
|
#If your system has lib64 directories, lib64 should be used AND NOT lib
|
|
if [ -d /lib64 ]; then
|
|
LIBDIR=$PREFIX/lib64
|
|
else
|
|
LIBDIR=$PREFIX/lib
|
|
fi
|
|
#If you're installing to a non-standard path, tell programs where to find things:
|
|
export PATH=$PREFIX/bin${PATH:+:$PATH}
|
|
export LD_LIBRARY_PATH=$LIBDIR${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
|
|
export LIBRARY_PATH=$LIBDIR${LIBRARY_PATH:+:$LIBRARY_PATH}
|
|
export CPATH=$PREFIX/include${CPATH:+:$CPATH}
|
|
|
|
Add all the above code to your .bashrc or .bash_login as appropriate. Then
|
|
you're ready to install packages in non-standard paths:
|
|
|
|
#For autotools packages e.g. xmlrpc-c and zlib
|
|
./configure --prefix=$PREFIX --libdir=$LIBDIR [other options here]
|
|
|
|
#tcmalloc is a malloc implementation with threaded performance. To see how it
|
|
#improves Moses performance, read
|
|
# http://www.mail-archive.com/moses-support@mit.edu/msg07303.html
|
|
#It is part of gperftools which can be downloaded from from
|
|
# https://code.google.com/p/gperftools/downloads/list
|
|
#configure with this:
|
|
./configure --prefix=$PREFIX --libdir=$LIBDIR --enable-shared --enable-static --enable-minimal
|
|
|
|
#For bzip2:
|
|
wget http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz
|
|
tar xzvf bzip2-1.0.6.tar.gz
|
|
cd bzip2-1.0.6/
|
|
#Compile and install libbz2.a (static library)
|
|
make
|
|
make install PREFIX=$PREFIX
|
|
mkdir -p $LIBDIR
|
|
#Note this may be the same file; you can ignore the error
|
|
mv $PREFIX/lib/libbz2.a $LIBDIR 2>/dev/null
|
|
#Compile and install libbz2.so (dynamic library)
|
|
make clean
|
|
make -f Makefile-libbz2_so
|
|
cp libbz2.so.* $LIBDIR
|
|
ln -sf libbz2.so.1.0 $LIBDIR/libbz2.so
|
|
|
|
#For Boost:
|
|
./bootstrap.sh
|
|
./b2 --prefix=$PWD --libdir=$PWD/lib64 --layout=tagged link=static,shared threading=multi,single install || echo FAILURE
|
|
|
|
This will put the header files and libraries files in the current directory, rather than the system directory.
|
|
|
|
For most Linux systems, you should replace
|
|
link=static,shared
|
|
with
|
|
link=static
|
|
so it will only create static libraries. The minimised headaches when linking with Moses.
|
|
|
|
To link Moses to your version of boost,
|
|
./bjam --with-boost=[boost/path]
|
|
|
|
Alternatively, you run
|
|
./b2 --prefix=/usr/ --libdir=/usr/lib
|
|
to install boost in the systems folder. However, this may override the built in boost and causes problems for your OS, therefore, it is not recommended.
|
|
|
|
--------------------------------------------------------------------------
|
|
|
|
BUILDING
|
|
|
|
Building consists of running
|
|
./bjam [options]
|
|
|
|
Common options are:
|
|
--with-srilm=/path/to/srilm to compile the decoder with SRILM support
|
|
--with-irstlm=/path/to/irstlm to compile the decoder with IRSTLM support
|
|
-jN where N is the number of CPUs
|
|
|
|
--with-macports=/path/to/macports use MacPorts on Mac OS X.
|
|
|
|
If you leave out /path/to/macports bjam will use the /opt/local as default.
|
|
You don't have to use --with-boost with-macports as it is implicitly set.
|
|
Also note that using --with-macports automatically triggers "using darwin".
|
|
|
|
Binaries will appear in dist/bin.
|
|
|
|
You can clean up data from previous builds using
|
|
./bjam --clean
|
|
|
|
For further documentation, run
|
|
./bjam --help
|
|
|
|
--------------------------------------------------------------------------
|
|
|
|
ALTERNATIVE WAYS TO BUILD ON UNIX AND OTHER PLATFORMS
|
|
|
|
Microsoft Windows
|
|
-----------------
|
|
Moses is primarily targeted at gcc on UNIX. Windows users should
|
|
install using Cygwin. Outdated instructions can be found here:
|
|
http://ssli.ee.washington.edu/people/amittai/Moses-on-Win7.pdf .
|
|
|
|
Binaries for all external libraries needed can be downloaded from
|
|
http://www.statmt.org/moses/?n=Moses.LibrariesUsed
|
|
|
|
Only the decoder is developed and tested under Windows. There are
|
|
difficulties using the training scripts under Windows, even with
|
|
Cygwin, but it can be done.
|