SLMBUILD(1) User Contributed Perl Documentation SLMBUILD(1)

slmbuild - تولید مدل زبانی از فایل idngram

slmbuild [option]... idngram_file...

دستور slmbuild یک مدل زبانی هموارسازی پس‌گرد (back-off smoothing language model) را از یک فایل idngram مشخص تولید می‌کند. معمولاً فایل idngram_file توسط ids2ngram ساخته می‌شود.

تمامی گزینه‌های زیر الزامی هستند.

مقدار 1 برای unigram، مقدار 2 برای bigram و 3 برای trigram. هر عددی خارج از بازه 1..3 نامعتبر است.
تعیین نام فایل خروجی.
استفاده از -log(pr)؛ در حالت پیش‌فرض مستقیماً از pr استفاده می‌شود.
اندازه واژگان (lexicon)، تعداد کلمات متمایز.
تعیین شناسه‌هایی (id) که باید به عنوان جداکننده (breaker) در نظر گرفته شوند.
تعیین شناسه‌هایی (id) که نباید در مدل زبانی (LM) قرار گیرند.
مواردی از k-gram که بسامد (freq) آن‌ها <= c[k] باشد کنار گذاشته می‌شوند.
پارامتر k-ام -d روش تخفیف (discount) را مشخص می‌کند.

برای k-gram، مقادیر ممکن برای method/param عبارتند از:

B<GT>,I<R>,I<dis>  : تخفیف B<GT> برای r E<lt>= I<R>؛ r بسامد یک ngram است.
            تخفیف خطی برای r E<gt> I<R>، یعنی r'=r*dis
            0 E<lt>E<lt> dis E<lt> 1.0، برای مثال 0.999
B<ABS>,[I<dis>] : تخفیف مطلق r'=r-I<dis>، و I<dis> اختیاری است
            0 E<lt>E<lt> I<dis> E<lt> cut[k]+1.0، معمولاً I<dis> E<lt> 1.0.
LIN,[I<dis>] : تخفیف خطی r'=r*dis، و dis اختیاری است
            0 E<lt> dis E<lt> 1.0

گزینه -n باید پیش از -c و -b مشخص شود. همچنین -c باید تعداد صحیحی از مقادیر cut-off را تعیین کند؛ گزینه‌های -d نیز باید دقیقاً N بار تکرار شوند تا تخفیف‌ها را به ترتیب برای 1-gram، 2-gram و... مشخص کنند.

شناسه‌های BREAKER-ID می‌توانند SentenceTokens یا ParagraphTokens باشند. از نظر مفهومی، این شناسه‌ها هنگامی که در میان یک n-gram قرار گیرند هیچ معنایی ندارند.

شناسه‌های EXCLUDE-ID می‌توانند شناسه‌های مبهم (ambiguous-ids) باشند. از نظر مفهومی، n-gramهایی که شامل این شناسه‌ها باشند بی‌معنی هستند.

نمی‌توان n-gramها را مستقیماً بر اساس BREAKER-IDها و EXCLUDE-IDها از فایل IDNGRAM حذف کرد، چرا که برخی از اطلاعات سطح پایین موجود در آن همچنان مفید هستند.

مثال زیر فایل 'all.id3gram' را می‌خواند و مدل trigram با نام 'all.slm' را می‌نویسد.

در سطح 1-gram، از تخفیف Good-Turing با cut-off برابر با 0، مقدار R=8 و dis=0.9995 استفاده می‌شود. در سطح 2-gram، از تخفیف Absolute با cut-off برابر با 3 و محاسبه خودکار dis استفاده می‌شود. در سطح 3-gram، از تخفیف Absolute با cut-off برابر با 2 و محاسبه خودکار dis استفاده می‌شود. شناسه‌های کلمه 10، 11 و 12 جداکننده هستند (جداکننده جمله/پاراگراف/مقاله و غیره). مقدار Exclude-ID برابر 9 است. واژگان شامل 200000 کلمه است. مدل زبانی حاصل از -log(pr) استفاده می‌کند.

slmbuild -l -n 3 -o all.slm -w 200000 -c 0,3,2 -d GT,8,0.9995 -d ABS -d ABS -b 10,11,12 -e 9 all.id3gram

در ابتدا توسط Phill.Zhang <phill.zhang@sun.com> نوشته شده است. در حال حاضر توسط Kov.Chai <tchaikov@gmail.com> نگهداری می‌شود.

ids2ngram(1), slmprune(1).

2024-07-13 perl v5.38.2