تحتوي هذه الحزمة على ملفات لإنشاء أغلفة Perl وPython لنماذج لغة SRILM.
صنع جنو
الغلاف المبسط ومولد الواجهة (SWIG)
تثبيت Python و/أو Perl محليًا
مجموعة أدوات SRILM (الإصدار 1.7.1). إذا كان لديك إصدار أقدم من SRILM، على سبيل المثال، سلسلة 1.5.x، فيجب عليك استخدام الفرع old_srilm
. لاحظ أنه يجب تجميع SRILM كرمز مستقل للموضع. يمكنك القيام بذلك عن طريق استخدام الأمر MAKE_PIC=yes make
عند ترجمة SRILM.
قم بتعديل متغيرات البيئة التالية في الجزء العلوي من Makefile المضمن:
SRILM_LIBS
: الدليل الذي يحتوي على مكتبات SRILM
SRILM_INC
: الدليل الذي يحتوي على ملفات رأس SRILM
PYTHON_INC
: الدليل الذي يحتوي على ملفات رأس بايثون
PERL_INC
: الدليل الذي يحتوي على ملفات رأس Perl
لإنشاء وحدة Python، قم بتشغيل "make python" في هذا الدليل. انسخ _srilm.so
و srilm.py
إلى الدليل الخاص بك حيث تريد استخدام وحدة python. يمكنك تشغيل البرنامج النصي test.py
المضمن للتحقق مما إذا كانت الوحدة المترجمة تعمل بشكل صحيح. يجب أن يكون إخراج test.py كما يلي:
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
لإنشاء وحدة Perl، قم بتشغيل make perl
في هذا الدليل. انسخ srilm.so
و srilm.pm
إلى الدليل الذي تختاره. قم بتشغيل البرنامج النصي Perl المضمن "test.pl" لاختبار ما إذا كانت الوحدة المترجمة تعمل بشكل صحيح. يجب أن يكون الإخراج هو نفسه كما هو مذكور أعلاه.
ملاحظة : تم اختبار ذلك فقط على نظام التشغيل OS X El Capitan وفقط مع الإصدارات المضمنة من python (2.7.10) وPerl (5.18).
تحقق من فرع macosx
.
تأكد من قيامك بتجميع مكتبات SRILM ( MAKE_PIC=yes make
).
انتقل إلى الدليل الذي يحتوي على ملفات رأس SRILM ( $SRILM/include
)، وافتح File.h
وقم بالتعليق على السطر الذي يقول #include "zio.h"
. يعد هذا ضروريًا لأنه على الرغم من أنه من المفترض أن يقوم SRILM بإعادة تسمية الدالة zopen()
إلى my_zopen()
على OS X نظرًا لأن zlib
مثبت بشكل افتراضي، إلا أنه لا يبدو أنه يعمل. لذلك، هذا هو الحل البديل hacky.
قم بتعديل متغيرات البيئة التالية في الجزء العلوي من Makefile.osx
:
SRILM_LIBS
: الدليل الذي يحتوي على مكتبات SRILM
SRILM_INC
: الدليل الذي يحتوي على ملفات رأس SRILM
هام : لا تقم بتغيير متغيرات PYTHON_INC
و PERL_INC
حيث تم تعيينها لتكون القيم الافتراضية لنظام التشغيل OS X El Capitan.
لتجميع وحدة python، قم بتشغيل make -f Makefile.osx python
ولتجميع وحدة Perl، قم بتشغيل make -f Makefile.osx perl
. لاحظ أن الوحدات المترجمة ستعمل فقط مع مترجمي OS X python وPerl الافتراضيين، أي /usr/bin/python
و /usr/bin/perl
.
يجب أن تكون قادرًا على تشغيل /usr/bin/python test.py
و /usr/bin/perl test.pl
لاختبار عمل الوحدات والحصول على نفس المخرجات في حالة Linux.
يتم توضيح الاستخدام بوضوح في الملفات test.pl
و test.py
.