Paket ini berisi file untuk menghasilkan pembungkus Perl dan Python untuk model bahasa SRILM.
buatan GNU
Pembungkus & Generator Antarmuka Sederhana (SWIG)
Instalasi Python dan/atau Perl lokal
Perangkat SRILM (v1.7.1). Jika Anda memiliki SRILM versi lama misalnya seri 1.5.x maka Anda harus menggunakan cabang old_srilm
. Perhatikan bahwa SRILM seharusnya dikompilasi sebagai kode posisi independen. Anda dapat melakukannya dengan menggunakan perintah MAKE_PIC=yes make
saat mengkompilasi SRILM.
Ubah variabel lingkungan berikut di bagian atas Makefile yang disertakan:
SRILM_LIBS
: Direktori yang berisi perpustakaan SRILM
SRILM_INC
: Direktori yang berisi file header SRILM
PYTHON_INC
: Direktori yang berisi file header python
PERL_INC
: Direktori yang berisi file header Perl
Untuk membuat modul Python, jalankan 'make python' di direktori ini. Salin _srilm.so
dan srilm.py
ke direktori tempat Anda ingin menggunakan modul python. Anda dapat menjalankan skrip test.py
yang disertakan untuk memeriksa apakah modul yang dikompilasi berfungsi dengan benar. Output dari test.py seharusnya sebagai berikut:
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
Untuk membuat modul Perl, jalankan make perl
di direktori ini. Salin srilm.so
dan srilm.pm
ke direktori pilihan Anda. Jalankan skrip Perl 'test.pl' yang disertakan untuk menguji apakah modul yang dikompilasi berfungsi dengan benar. Outputnya harus sama seperti di atas.
Catatan : Ini hanya diuji pada OS X El Capitan dan hanya dengan versi bawaan python (2.7.10) dan Perl (5.18).
Periksa cabang macosx
.
Pastikan Anda telah mengkompilasi perpustakaan SRILM ( MAKE_PIC=yes make
).
Buka direktori yang berisi file header SRILM ( $SRILM/include
), buka File.h
dan beri komentar pada baris yang bertuliskan #include "zio.h"
. Hal ini diperlukan karena meskipun SRILM seharusnya mengganti nama fungsi zopen()
menjadi my_zopen()
di OS X karena zlib
diinstal secara default, sepertinya fungsi tersebut tidak berfungsi. Jadi, ini adalah solusi peretasan.
Ubah variabel lingkungan berikut di bagian atas Makefile.osx
:
SRILM_LIBS
: Direktori yang berisi perpustakaan SRILM
SRILM_INC
: Direktori yang berisi file header SRILM
PENTING : JANGAN mengubah variabel PYTHON_INC
dan PERL_INC
karena keduanya ditetapkan sebagai nilai default untuk OS X El Capitan.
Untuk mengkompilasi modul python, jalankan make -f Makefile.osx python
dan untuk mengkompilasi modul Perl, jalankan make -f Makefile.osx perl
. Perhatikan bahwa modul yang dikompilasi hanya akan bekerja dengan interpreter default OS X python dan perl, yaitu /usr/bin/python
dan /usr/bin/perl
.
Anda seharusnya dapat menjalankan /usr/bin/python test.py
dan /usr/bin/perl test.pl
untuk menguji apakah modul berfungsi dan mendapatkan keluaran yang sama dalam kasus Linux.
Penggunaannya diilustrasikan dengan jelas dalam file test.pl
dan test.py
.