该包包含为 SRILM 语言模型生成 Perl 和 Python 包装器的文件。
GNU 使
简化的包装器和接口生成器 (SWIG)
本地 Python 和/或 Perl 安装
SRILM 工具包 (v1.7.1)。如果您有旧版本的 SRILM,例如 1.5.x 系列,那么您应该使用old_srilm
分支。请注意,SRILM 应编译为位置无关代码。您可以在编译 SRILM 时使用命令MAKE_PIC=yes make
来完成此操作。
修改包含的 Makefile 顶部的以下环境变量:
SRILM_LIBS
:包含 SRILM 库的目录
SRILM_INC
:包含 SRILM 头文件的目录
PYTHON_INC
:包含 python 头文件的目录
PERL_INC
:包含 perl 头文件的目录
要创建 Python 模块,请在此目录中运行“make python”。将_srilm.so
和srilm.py
复制到要使用 python 模块的目录。您可以运行包含的test.py
脚本来检查编译后的模块是否正常工作。 test.py 的输出应如下所示:
1. Number of n-grams: There are 11868 unigrams in this LM There are 59481 bigrams in this LM There are 16744 trigrams in this LM There are 13787 4-grams in this LM There are 12082 5-grams in this LM 2. N-gram log probabilities: p('good') = -3.49373698235 p('of the') = -0.558740794659 p('nitin madnani') = -99.0 p('there are some') = -0.985605716705 p('do more about your') = -0.469523012638 p('or whatever has yet to') = -0.53226429224 3. Sentence log probabilities and perplexities: p('there are some good') = -9.85836982727 ppl('there are some good') = 93.6858444214 4. OOvs: nOOVs('there are some foobar') = 1 5. Corpus log probabilties and perplexities: Logprob for the file test.txt = -33.6016654968 Perplexity for the file test.txt = 94.7476806641
要创建 Perl 模块,请在此目录中运行make perl
。将srilm.so
和srilm.pm
复制到您选择的目录。运行附带的 Perl 脚本“test.pl”来测试编译的模块是否正常工作。输出应该与上面相同。
注意:这仅在 OS X El Capitan 上进行了测试,并且仅使用内置版本的 python (2.7.10) 和 perl (5.18)。
查看macosx
分支。
确保您已编译 SRILM 库 ( MAKE_PIC=yes make
)。
转到包含 SRILM 头文件的目录 ( $SRILM/include
),打开File.h
并注释掉#include "zio.h"
行。这是必要的,因为尽管 SRILM 在 OS X 上应该将zopen()
函数重命名为my_zopen()
因为默认情况下安装了zlib
,但它似乎不起作用。所以,这是一个很棘手的解决方法。
修改Makefile.osx
顶部的以下环境变量:
SRILM_LIBS
:包含 SRILM 库的目录
SRILM_INC
:包含 SRILM 头文件的目录
重要提示:请勿更改PYTHON_INC
和PERL_INC
变量,因为它们被设置为 OS X El Capitan 的默认值。
要编译 python 模块,请运行make -f Makefile.osx python
并编译 perl 模块,请运行make -f Makefile.osx perl
。请注意,编译的模块仅适用于默认的 OS X python 和 perl 解释器,即/usr/bin/python
和/usr/bin/perl
。
您应该能够运行/usr/bin/python test.py
和/usr/bin/perl test.pl
来测试模块是否工作并在 Linux 情况下获得相同的输出。
文件test.pl
和test.py
清楚地说明了用法。