Este pacote contém arquivos para gerar wrappers Perl e Python para modelos de linguagem SRILM.
Marca GNU
Wrapper simplificado e gerador de interface (SWIG)
Uma instalação local de Python e/ou Perl
O kit de ferramentas SRILM (v1.7.1). Se você tiver uma versão mais antiga do SRILM, por exemplo, a série 1.5.x, então você deve usar o branch old_srilm
. Observe que o SRILM deveria ter sido compilado como código independente de posição. Você pode fazer isso usando o comando MAKE_PIC=yes make
ao compilar o SRILM.
Modifique as seguintes variáveis de ambiente na parte superior do Makefile incluído:
SRILM_LIBS
: O diretório que contém as bibliotecas SRILM
SRILM_INC
: O diretório que contém os arquivos de cabeçalho SRILM
PYTHON_INC
: O diretório que contém os arquivos de cabeçalho python
PERL_INC
: O diretório que contém os arquivos de cabeçalho perl
Para criar um módulo Python, execute 'make python' neste diretório. Copie _srilm.so
e srilm.py
para o diretório onde deseja usar o módulo python. Você pode executar o script test.py
incluído para verificar se o módulo compilado funciona corretamente. A saída de test.py deve ser a seguinte:
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
Para criar um módulo Perl, execute make perl
neste diretório. Copie srilm.so
e srilm.pm
para o diretório de sua escolha. Execute o script Perl incluído 'test.pl' para testar se o módulo compilado funciona corretamente. A saída deve ser a mesma acima.
Nota : Isso só foi testado no OS X El Capitan e apenas com as versões integradas do python (2.7.10) e perl (5.18).
Confira o ramo macosx
.
Certifique-se de ter compilado as bibliotecas SRILM ( MAKE_PIC=yes make
).
Vá para o diretório que contém os arquivos de cabeçalho SRILM ( $SRILM/include
), abra File.h
e comente a linha que diz #include "zio.h"
. Isso é necessário porque embora o SRILM deva renomear a função zopen()
para my_zopen()
no OS X, já que zlib
é instalado por padrão, ele parece não funcionar. Portanto, esta é uma solução alternativa hacky.
Modifique as seguintes variáveis de ambiente na parte superior de Makefile.osx
:
SRILM_LIBS
: O diretório que contém as bibliotecas SRILM
SRILM_INC
: O diretório que contém os arquivos de cabeçalho SRILM
IMPORTANTE : NÃO altere as variáveis PYTHON_INC
e PERL_INC
, pois elas são definidas como valores padrão para OS X El Capitan.
Para compilar o módulo python, execute make -f Makefile.osx python
e para compilar o módulo perl, execute make -f Makefile.osx perl
. Observe que os módulos compilados funcionarão apenas com os interpretadores padrão OS X python e perl, ou seja, /usr/bin/python
e /usr/bin/perl
.
Você deve ser capaz de executar /usr/bin/python test.py
e /usr/bin/perl test.pl
para testar se os módulos funcionam e obter a mesma saída no caso do Linux.
O uso é claramente ilustrado nos arquivos test.pl
e test.py
.