Ce package contient des fichiers permettant de générer des wrappers Perl et Python pour les modèles de langage SRILM.
Marque GNU
Wrapper et générateur d'interface simplifiés (SWIG)
Une installation locale de Python et/ou Perl
La boîte à outils SRILM (v1.7.1). Si vous disposez d'une ancienne version de SRILM, par exemple la série 1.5.x, vous devez utiliser la branche old_srilm
. Notez que SRILM aurait dû être compilé en tant que code indépendant de la position. Vous pouvez le faire en utilisant la commande MAKE_PIC=yes make
lors de la compilation de SRILM.
Modifiez les variables d'environnement suivantes en haut du Makefile inclus :
SRILM_LIBS
: Le répertoire contenant les bibliothèques SRILM
SRILM_INC
: Le répertoire contenant les fichiers d'entête SRILM
PYTHON_INC
: Le répertoire contenant les fichiers d'en-tête python
PERL_INC
: Le répertoire contenant les fichiers d'en-tête Perl
Pour créer un module Python, exécutez 'make python' dans ce répertoire. Copiez _srilm.so
et srilm.py
dans votre répertoire où vous souhaitez utiliser le module python. Vous pouvez exécuter le script test.py
inclus pour vérifier si le module compilé fonctionne correctement. Le résultat de test.py devrait être le suivant :
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
Pour créer un module Perl, exécutez make perl
dans ce répertoire. Copiez srilm.so
et srilm.pm
dans le répertoire de votre choix. Exécutez le script Perl inclus « test.pl » pour tester si le module compilé fonctionne correctement. Le résultat devrait être le même que ci-dessus.
Remarque : Cela n'a été testé que sur OS X El Capitan et uniquement avec les versions intégrées de python (2.7.10) et perl (5.18).
Consultez la branche macosx
.
Assurez-vous d'avoir compilé les bibliothèques SRILM ( MAKE_PIC=yes make
).
Accédez au répertoire contenant les fichiers d'en-tête SRILM ( $SRILM/include
), ouvrez File.h
et commentez la ligne qui dit #include "zio.h"
. Ceci est nécessaire car même si SRILM est censé renommer la fonction zopen()
en my_zopen()
sous OS X puisque zlib
est installé par défaut, cela ne semble pas fonctionner. Il s’agit donc d’une solution de contournement piratée.
Modifiez les variables d'environnement suivantes en haut de Makefile.osx
:
SRILM_LIBS
: Le répertoire contenant les bibliothèques SRILM
SRILM_INC
: Le répertoire contenant les fichiers d'entête SRILM
IMPORTANT : NE modifiez PAS les variables PYTHON_INC
et PERL_INC
car elles sont définies comme étant les valeurs par défaut pour OS X El Capitan.
Pour compiler le module python, exécutez make -f Makefile.osx python
et pour compiler le module perl, exécutez make -f Makefile.osx perl
. Notez que les modules compilés ne fonctionneront qu'avec les interpréteurs python et perl par défaut d'OS X, c'est-à-dire /usr/bin/python
et /usr/bin/perl
.
Vous devriez pouvoir exécuter /usr/bin/python test.py
et /usr/bin/perl test.pl
pour tester que les modules fonctionnent et obtenir le même résultat dans le cas Linux.
L'utilisation est clairement illustrée dans les fichiers test.pl
et test.py
.