mirror of
https://github.com/moses-smt/mosesdecoder.git
synced 2024-09-11 11:25:40 +03:00
out of date build instruction. Refer everyone to website
This commit is contained in:
parent
7adf705a9e
commit
65b337136d
@ -1,158 +1,3 @@
|
|||||||
PRELIMINARIES
|
Please see the Moses website on how to compile and run Moses
|
||||||
|
http://www.statmt.org/moses/?n=Development.GetStarted
|
||||||
|
|
||||||
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.
|
|
||||||
|
Loading…
Reference in New Issue
Block a user