Этот пакет содержит файлы для создания оболочек Perl и Python для языковых моделей SRILM.
GNU сделать
Упрощенный генератор оболочек и интерфейсов (SWIG)
Локальная установка Python и/или Perl
Инструментарий SRILM (v1.7.1). Если у вас более старая версия SRILM, например, серия 1.5.x, вам следует использовать ветку old_srilm
. Обратите внимание, что SRILM должен был быть скомпилирован как позиционно-независимый код. Вы можете сделать это, используя команду MAKE_PIC=yes make
при компиляции SRILM.
Измените следующие переменные среды в верхней части включенного 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 должен переименовать функцию zopen()
в my_zopen()
в OS X, поскольку 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
. Обратите внимание, что скомпилированные модули будут работать только с интерпретаторами Python и Perl OS X по умолчанию, то есть /usr/bin/python
и /usr/bin/perl
.
У вас должна быть возможность запустить /usr/bin/python test.py
и /usr/bin/perl test.pl
, чтобы проверить работу модулей и получить тот же результат в случае Linux.
Использование наглядно проиллюстрировано в файлах test.pl
и test.py