Este paquete contiene archivos para generar contenedores de Perl y Python para modelos de lenguaje SRILM.
hacer GNU
Generador de interfaz y contenedor simplificado (SWIG)
Una instalación local de Python y/o Perl
El kit de herramientas SRILM (v1.7.1). Si tiene una versión anterior de SRILM, por ejemplo, la serie 1.5.x, entonces debería usar la rama old_srilm
. Tenga en cuenta que SRILM debería haberse compilado como código independiente de la posición. Puede hacerlo utilizando el comando MAKE_PIC=yes make
al compilar SRILM.
Modifique las siguientes variables de entorno en la parte superior del Makefile incluido:
SRILM_LIBS
: el directorio que contiene las bibliotecas SRILM.
SRILM_INC
: el directorio que contiene los archivos de encabezado SRILM
PYTHON_INC
: el directorio que contiene los archivos de encabezado de Python
PERL_INC
: el directorio que contiene los archivos de encabezado de Perl.
Para crear un módulo de Python, ejecute 'make python' en este directorio. Copie _srilm.so
y srilm.py
a su directorio donde desea utilizar el módulo de Python. Puede ejecutar el script test.py
incluido para comprobar si el módulo compilado funciona correctamente. La salida de test.py debería ser la siguiente:
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 crear un módulo Perl, ejecute make perl
en este directorio. Copie srilm.so
y srilm.pm
al directorio de su elección. Ejecute el script Perl 'test.pl' incluido para probar si el módulo compilado funciona correctamente. El resultado debería ser el mismo que el anterior.
Nota : Esto sólo se ha probado en OS X El Capitan y sólo con las versiones integradas de Python (2.7.10) y Perl (5.18).
Consulte la rama macosx
.
Asegúrese de haber compilado las bibliotecas SRILM ( MAKE_PIC=yes make
).
Vaya al directorio que contiene los archivos de encabezado SRILM ( $SRILM/include
), abra File.h
y comente la línea que dice #include "zio.h"
. Esto es necesario porque aunque se supone que SRILM cambia el nombre de la función zopen()
a my_zopen()
en OS X ya que zlib
está instalado de forma predeterminada, no parece funcionar. Entonces, esta es una solución ingeniosa.
Modifique las siguientes variables de entorno en la parte superior de Makefile.osx
:
SRILM_LIBS
: el directorio que contiene las bibliotecas SRILM.
SRILM_INC
: el directorio que contiene los archivos de encabezado SRILM
IMPORTANTE : NO cambie las variables PYTHON_INC
y PERL_INC
, ya que están configuradas como valores predeterminados para OS X El Capitan.
Para compilar el módulo de Python, ejecute make -f Makefile.osx python
y para compilar el módulo de Perl, ejecute make -f Makefile.osx perl
. Tenga en cuenta que los módulos compilados solo funcionarán con los intérpretes predeterminados de OS X python y perl, es decir, /usr/bin/python
y /usr/bin/perl
.
Debería poder ejecutar /usr/bin/python test.py
y /usr/bin/perl test.pl
para probar que los módulos funcionan y obtener el mismo resultado en el caso de Linux.
El uso se ilustra claramente en los archivos test.pl
y test.py