توسعه سیستم ترجمه زبانی در پایتون
اگر برایتان جالب است که بدانید یک سیستم ترجمه و تشخیص زبان چگونه کار میکنند، بهتر است از کتابخانههای متن باز پایتون استفاده کنید و خودتان با اجرای چند خط کد چنین سیستمی را توسعه دهید.
تشخیص زبان Text language indentification به فرایند پیشبینی زبان یک متن اطلاق میشود. در مقابل ترجمه متنی به فرایندی گفته میشود که طی آن متنی از یک زبان به زبان دیگر ترجمه میشود. اغلب در پروژههای پردازش زبان طبیعی، به مواردی بر میخوریم که زبان متن مشخص نیست و یا اینکه زبان متن با مقاصد و اهداف ما همخوانی ندارد. از این روی تشخیص متن و ترجمه آن به زبان دیگر به نوبه خود مسئله حائز اهمیتی است.
در مقاله حاضر برای سیستم ترجمه به زبان مورد نظرمان و تشخیص متن از برخی از کتابخانههای متنباز (از گوگل) استفاده کردیم.
Compact Language Detector 3 (محصول شرکت گوگل)
Compact Language Detector 3 که به اختصار CLD3 نامیده میشود یک کتابخانه تشخیص زبان مبتنی بر شبکه های عصبی است. این پکیج شامل یک مدل آموزش دیده است که از آن برای تشخیص زبان نوشتاری متون استفاده میشود. در حال حاضر این کتابخانه از 107 زبان پشتیبانی میکند و زبان خروجی را به صورت کدهای زبانی BCP 47 پیشبینی میکند.
محتویات پکیج CLD3
پکیج CLD3 شامل کد استنباطی Inference code و یک مدل آموزشدیده عصبی است. این پکیج رشته کاراکترهای n-gram را از متن ورودی استخراج و سپس فراوانی هر کدام آنها را در متن محاسبه میکند.
برای مثال، برای رشته “banana”، یونیگرامها “b”، “a” و “n” و بایگرامها “ba”، “na” و “an” و تریگرمها “ban”، “ana” و “nan” هستند.
در مرحله بعد n-gramها به یک id هَش میشوند و به هر id ، برای آموزش ، یک بردار متراکم تعبیه کلمه Dense vector embedding به عنوان ورودی داده میشود.
[irp posts=”7626″]معماری شبکه عصبی
در یک سیستم ترجمه برای پیشبینی زبانِ متنِ ورودی، عملیات گذر به جلو (forward pass) را در سراسر شبکه انجام میدهیم. مدل، میانگین تعبیههای مرتبط با هر یک از ngramها را به صورت کسری محاسبه میکند و تعبیههایی که میانگین آنها محاسبه شده به هم متصل میشوند تا لایه تعبیه کلمات را ایجاد کنند. باقی اجزای شبکه شامل یک لایه پنهان ( تابع ReLu) و یک لایه softmax میشود.
نصب
پکیج CLD3 را میتوان از PyP1 و با استفاده از فرمان مقابل نصب کرد:
!pip install gcld3
موارد کاربرد
- مقداردهی: پس از نصب کتابخانه CLD3، با استفاده از تابع NNetLanguageIdentifier() آن میتوانید شیِ تشخیص متن را مقداردهی کنید.
import gcld3 detector = gcld3.NNetLanguageIdentifier(min_num_bytes=0, max_num_bytes=1000)
- پیشبینی یک زبانه: با استفاده از تشخیصگر میتوانید زبانی که بیشترین احتمال را دارد متن ورودی به آن نوشته شده باشد و میزان اعتبار و احتمال پیشبینی آن را پیشبینی کنید.
- N زبان پیشبینی شده برتر: CLD3 میتواند فهرستی از N زبان با بیشترین احتمال و همچنین میزان احتمال مرتبط با هر یک از آنها را پیشبینی کند.
سرویس ترجمه Google Translate – googletrans
Googletrans یک کتابخانه متنباز به زبان پایتون است که API سرویس Google Translate را پیادهسازی میکند و از همان سرور translate.googel.com استفاده میکند. سرویس ترجمه گوگل میتواند به صورت خودکار زبان را تشخیص دهد و بنابراین لازم نیست در هنگام استفاده از این سرویس زبان متن ورودی را مشخیص کنید.
- Googletrans از Ajax، API سرویس Google Translate استفاده میکند تا متدهای مورد نیار برای تشخیص و ترجمه زبان را فراخون کند.
- حداکثر تعداد کاراکترهای Googletrans محدود است و برای یک متن واحد برابر با 15000 کاراکتر است.
نصب
پکیج Googletrans را میتوانید از PyPl و با استفاده از فرمان مقابل اجرا کنید:
pip install googletrans
موارد کاربرد
- مقداردهی: پس از نصب کتابخانه Googletrans، با استفاده از تابع Translator() میتوانید شیِ مترجم متن را مقداردهی کنید.
- ترجمه: سیستم ترجمه Google Translate یک تابع translate() دارد که میتواند متن ورودی را از زبانی به زبان دیگر ترجمه کند. در صورتیکه زبان متن مبدأ مشخص نشده باشد، Google Translate تلاش میکند زبان آن را تشخیص دهد.
جمعبندی
در این مقاله مرتبط با سیستم ترجمه به شما نشان دادیم که چگونه میتوان با استفاده از کتابخانه CLD3 زبان یک متن را تشخیص داد و با استفاده از کتابخانه Googletrans متن ورودی را به زبان دیگری ترجمه کرد و گفتیم که کتابخانه Googletrans میتواند زبان متن ورودی را هم تشخیص دهد.