Shona spaCy؛ یه آنالیزور مورفولوژیکی خفن برای زبون شونا – زبونی که ابزار براش کمه!

Fall Back

یه خبر جذاب واسه بچه‌هایی که به پردازش زبون‌های طبیعی (NLP یعنی همون تکنولوژی‌هایی که کمک می‌کنن کامپیوترها زبان آدمارو بفهمن) علاقه دارن! اگه اسم زبان شونا (Shona) رو تا حالا نشنیدی بدون که این یه زبان Bantu (بانتو یعنی خانواده‌ای بزرگ از زبونای آفریقایی) هست که تو زیمبابوه و چند جای دیگه صحبت میشه. با اینکه دنیای NLP کلی پیشرفت داشته، ولی هنوز خیلی از این زبون‌ها که منابع کمی دارن (یعنی متن و ابزار براشون به اندازه کافی وجود نداره)، تقریبا فراموش شدن!

توی این مقاله قراره با “Shona spaCy” آشنا بشیم؛ یه ابزار جدید و اوپن‌سورس (یعنی سورسش بازه و هرکسی می‌تونه استفاده یا حتی روش کار کنه) که با تکنولوژی spaCy ساخته شده. spaCy خودش یکی از فریم‌ورک‌های معروف تو دنیای NLP هست و باعث میشه ساختن ابزارهای زبانی راحت‌تر شه.

خب Shona spaCy چی کار میکنه؟ راستش یه خط لوله مورفولوژیکی (Morphological analyzer یعنی ابزاری که می‌تونه اجزای یک کلمه مثل ریشه، پسوند، پیشوند و ویژگی‌های دستوری رو تشخیص بده) واسه زبان شونا ساخته. تو این مدل، هم از دیکشنری حساب‌شده با فرمت JSON استفاده شده، هم یه سری قانون زبانی دقیق این وسط هست. این قوانین باعث میشن سیستم بتونه مثلاً پیشوندهای کلاس اسمی (یعنی یه سیستم خاص تو زبان‌های Bantu که اسم‌ها رو به ۱۸ دسته مختلف تقسیم می‌کنه! اسم این دسته‌ها Mupanda هست)، ضمایر فاعلی توی فعل (subject concord)، نشانه‌های زمان و وجه (که tense-aspect marker صداشون می‌زنن)، ایده‌فون‌ها (یعنی کلماتی که یه حالت خاص یا حرکت و صدا رو تداعی می‌کنن)، و ضمایر چسبیده به واژه‌ها (clitic – مثلاً ضمایری که آخر فعل میان)، همه رو بکشه بیرون و آنوتیت کنه (یعنی روی هر کلمه اطلاعات اضافه بذاره، مثل ریشه یا ویژگی دستوری‌ش).

این ابزار تازه کارش این نیست؛ همه این اطلاعات رو روی سطح توکنی (یعنی تک‌تک کلمات جدا از هم) تو خروجی اضافه میکنه: مثلا ریشه (lemma)، نقش دستوری (part-of-speech)، و ویژگی‌های مورفولوژیکی ورودی هر کلمه. حالا خوبیش اینه که نصبش خیلی راحته: فقط کافیه دستور pip install shona-spacy رو بزنی و تموم!

اگه می‌خوای بری سروش رو چک کنی یا سورس رو ور بزنی، می‌تونی بری تو گیت‌هاب (github.com/HappymoreMasoka/shona-spacy) یا صفحه رسمی‌ش تو PyPI رو نگاه کنی (pypi.org/project/shona-spacy/0.1.4/).

ولی بیاید ببینیم دقت این داستان چقدره! این ابزار روی دو جور دیتاست امتحان شده: هم متون رسمی شونا و هم متون غیررسمی. نتیجه؟ حدود ۹۰ درصد دقت تو تشخیص نقش واژه (POS-tagging accuracy) و حدود ۸۸ درصد دقت تو فهمیدن ویژگی‌های مورفولوژیکی (morphological-feature accuracy)؛ عددای خیلی خوبی هستن واسه زبونی که اینقدر ابزار براش کمه.

یه نکته باحال دیگه: توی همه کارش شفافیت داره! یعنی میشه فهمید دقیقا چرا هر تصمیم رو گرفته و چجوری هر بخش جمله رو تحلیل کرده. خلاصه، Shona spaCy عملاً اومده پُل بزنه بین دانش گرامر زبان شونا و علم کامپیوتری، تا هم کسایی که تو زیمبابوه و جاهای دیگه شونا حرف می‌زنن بیشتر بتونن وارد دنیای فناوری بشن، هم یه الگو باشه برای ساخت ابزار برای بقیه زبان‌های Bantu که تا حالا زیاد جدی گرفته نشدن.

در کل، اگه دنبال ساخت یا کار با ابزارای هوشمند برای زبونایی هستی که کمتر بهشون توجه شده، حتما یه سر به Shona spaCy بزن! هم آموزشی هم کلی آینده باحالی جلوشه!

منبع: +