Dieses Paket enthält Dateien zum Generieren von Perl- und Python-Wrappern für SRILM-Sprachmodelle.
GNU machen
Vereinfachter Wrapper- und Schnittstellengenerator (SWIG)
Eine lokale Python- und/oder Perl-Installation
Das SRILM-Toolkit (v1.7.1). Wenn Sie eine ältere Version von SRILM haben, z. B. die 1.5.x-Serie, sollten Sie den Zweig old_srilm
verwenden. Beachten Sie, dass SRILM als positionsunabhängiger Code kompiliert werden sollte. Sie können dies tun, indem Sie beim Kompilieren von SRILM den Befehl MAKE_PIC=yes make
verwenden.
Ändern Sie die folgenden Umgebungsvariablen oben im enthaltenen Makefile:
SRILM_LIBS
: Das Verzeichnis, das die SRILM-Bibliotheken enthält
SRILM_INC
: Das Verzeichnis, das die SRILM-Headerdateien enthält
PYTHON_INC
: Das Verzeichnis, das die Python-Header-Dateien enthält
PERL_INC
: Das Verzeichnis, das die Perl-Header-Dateien enthält
Um ein Python-Modul zu erstellen, führen Sie in diesem Verzeichnis „make python“ aus. Kopieren Sie _srilm.so
und srilm.py
in Ihr Verzeichnis, in dem Sie das Python-Modul verwenden möchten. Sie können das mitgelieferte Skript test.py
ausführen, um zu überprüfen, ob das kompilierte Modul ordnungsgemäß funktioniert. Die Ausgabe von test.py sollte wie folgt aussehen:
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
Um ein Perl-Modul zu erstellen, führen Sie make perl
in diesem Verzeichnis aus. Kopieren Sie srilm.so
und srilm.pm
in das Verzeichnis Ihrer Wahl. Führen Sie das mitgelieferte Perl-Skript „test.pl“ aus, um zu testen, ob das kompilierte Modul ordnungsgemäß funktioniert. Die Ausgabe sollte die gleiche sein wie oben.
Hinweis : Dies wurde nur unter OS X El Capitan und nur mit den integrierten Versionen von Python (2.7.10) und Perl (5.18) getestet.
Schauen Sie sich den macosx
-Zweig an.
Stellen Sie sicher, dass Sie die SRILM-Bibliotheken kompiliert haben ( MAKE_PIC=yes make
).
Gehen Sie in das Verzeichnis mit den SRILM-Headerdateien ( $SRILM/include
), öffnen Sie File.h
und kommentieren Sie die Zeile mit der Aufschrift #include "zio.h"
aus. Dies ist notwendig, denn obwohl SRILM die zopen()
Funktion unter OS X in my_zopen()
umbenennen soll, da zlib
standardmäßig installiert ist, scheint es nicht zu funktionieren. Das ist also eine knifflige Problemumgehung.
Ändern Sie die folgenden Umgebungsvariablen oben in Makefile.osx
:
SRILM_LIBS
: Das Verzeichnis, das die SRILM-Bibliotheken enthält
SRILM_INC
: Das Verzeichnis, das die SRILM-Headerdateien enthält
WICHTIG : Ändern Sie NICHT die Variablen PYTHON_INC
und PERL_INC
da sie als Standardwerte für OS X El Capitan festgelegt sind.
Um das Python-Modul zu kompilieren, führen Sie make -f Makefile.osx python
aus und um das Perl-Modul zu kompilieren, führen Sie make -f Makefile.osx perl
aus. Beachten Sie, dass die kompilierten Module nur mit den standardmäßigen Python- und Perl-Interpretern von OS X funktionieren, d. h. /usr/bin/python
und /usr/bin/perl
.
Sie sollten in der Lage sein, /usr/bin/python test.py
und /usr/bin/perl test.pl
auszuführen, um zu testen, ob die Module funktionieren, und im Linux-Fall die gleiche Ausgabe zu erhalten.
Die Verwendung wird in den Dateien test.pl
und test.py
deutlich dargestellt.