mirror of
https://github.com/moses-smt/mosesdecoder.git
synced 2024-12-25 12:52:29 +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