بخشی از مقاله

چکیده

تجزیه و ترکیب نحوي زبانهاي طبیعی یکی از چالشهاي پیشروي پژوهشگران حوزه پردازش زبان طبیعی است که داراي دو بخش عمده میباشد. اول ارائه گرامري که بتواند با ترکیب واژگان یک زبان، جملاتی با ساختار نحوي درست بسازد و دوم طراحی تجزیهگري که با بکارگیري گرامر، منجر به تجزیهي جملات به ساختارهاي نحوي آنها شود. در این مقاله، ابتدا یک گرامر مستقل از متن براي زبان فارسی ارائه شده که شامل مجموعهاي از 128 قانون گرامري میباشد. نمونههایی از این قوانین در این مقاله آورده شده است. این گرامر تولید کنندهي جملات باترتیب و فعل-انتها در زبان فارسی است .

سپس یک تجزیهگر پیشگو که مبتنی بر گرامر پیشنهادي میباشد، ارائه شده است. همراه با تجزیهگر، جدول تجزیهاي ساخته شده است که به تجزیه ي جملات زبان فارسی کمک میکند. با بکارگیري جدول تجزیه، خطاهاي نحوي جملات فارسی شناسایی می شوند. رویکرد پیشنهادي مبتنی بر متدهاي تجزیه بالا به پایین است و براي کاهش ابهام در تجزیهگر، عمل فاکتورگیري بر روي گرامر اولیه صورت پذیرفته است. در ارزیابی این گرامر، از جملات برچسبگذاري شدهي پیکرهي وابستگی نحوي زبان فارسی استفاده کردهایم. تجزیهگر پیشنهادي با نرخ پذیرش %71,8 موفق به تجزیه جملات فارسی شده است، که افزایش نرخ پذیرش، با توسعه گرامر امکانپذیر است.

.1  مقدمه

تجزیه و ترکیب زبانها ي طبیعی فرآیندي دو بعدي است. در بعد ترکیب، گرامري ارائه میشود که براساس آن، واژگان موجود در زبان، با یکدیگر ترکیب شده و جملات عضو زبان را، تنها با درنظر گیري ساختار نحوي و نه معنایی آنها، تولید میکنند.

در فرآیند تجزیه، یافتن ساختار نحوي جملات موجود در زبان و یا شناسایی خطاهاي نحوي آنها، مدنظر است. گرامر هر زبان شامل مجموعهاي از قوانین است. تجزیه، فرآیند بکارگیري قوانین گرامر است تا درخصوص یک جمله مشخص کند که آیا آن جمله عضو زبان موردنظر است یا خیر و در صورت پاسخ مثبت، ساختار نحوي آن را مشخص کند.

ساختار درختی، جمله را به اجزاي سازنده آن، یعنی عبارات، تقسیم میکند و سپس آنها را در دستههاي مختلفی نظیر عبارت اسمی، عبارت فعلی و غیره قرار میدهد. در پردازش زبان طبیعی، تجزیه، چالشی اساسی هم براي انسان و هم براي ماشین است. در واقع مسئلهي تجزیه شامل تعریف یک الگوریتم براي تطبیق هر جملهي ورودي با ساختار درخت نحوي وابسته به آن است. یک تجزیهگر، دنبالهاي از نمادهاي ورودي را براساس گرامري که در اختیارش قرار دارد، آنالیز میکند.

کاربردهایی در حوزه زبان طبیعی وجود دارند که نیازمند تجزیهگرهایی با دقت بالا میباشند. کاربردهایی نظیر: استخراج اطلاعات، ترجمه ماشین و شناسایی گفتار. براي بررسی گرامرهاي مبتنی بر متن، جمله باید بطور کامل تجزیه شود و درستی آن بررسی شود. اگر تجزیهينحوي با شکست مواجه شد به این معناست که جمله از لحاظ ساختار نحوي غلط است

در این مقاله، گرامر مستقل از متنی براي زبان فارسی پیشنهاد میشود. این گرامر شامل 128 قانون گرامري است که همگی در قالب قوانین گرامرهاي مستقل از متن قرار دارند. گرامر پیشنهادي تنها قادر به تولید جملات با ترتیب زبان فارسی است و لذا توانایی تولید جملاتی که در  قالب شعر، ضرب المثل، اصطلاحات و ... می باشند را ندارد. پس از استخراج گرامر زبان فارسی، در مرحلهي بعد تجزیهگر بالا به پایینی پیشنهاد میشود که با استفاده از جدول تجزیه، اقدام به تجزیهي جملات ورودي میکند. تجزیهگرهاي بالا به پایین در مقایسه با آتاماتاي پشتهاي حافظه کمتري مصرف میکنند اما کندتر هستند و زمان نسبتا زیادي براي تجزیهي جملات نیاز دارند

در این پژوهش با انجام عمل فاکتورگیري بر روي گرامر، پیش از طراحی تجزیهگر، جلوي عقبگرد تجزیهگر را گرفته ایم که این خود منجر به افزایش سرعت تجزیهگر و رفع ابهام از آن شده است.

.2 کارهاي مرتبط

همانطور که پیشتر نیز ذکر شد، تحلیل نحوي زبان طبیعی به نحوهي تجزیه و ترکیب کلمات براي ساخت جملات آن زبان توجه دارد.

تحلیل نحوي از دو منظر قابل ارزیابی است: -1 ساخت گرامري که منجر به تولید زبان شود. -2 تجزیهي جملات موجود در زبان براساس گرامر طراحی شده.

گرامرهاي مربوط به زبانهاي طبیعی بنابر دلایل زیادي، بسیار پیچیدهتر از گرامر زبانهاي برنامهنویسی میباشند. یکی از علل این مساله، وجود مجموعهي تقریبا نامتناهی واژگان در زبانهاي طبیعی میباشد. مشکل دیگر مباحث مربوط به معناشناسی و تحلیل معنایی جملات تولیدشده توسط گرامر است. به این مفهوم که هر جملهاي که از نظر ساختار نحوي درست باشد، لزوماً عضو زبان طبیعی نیست، زیرا ممکن است معناي درست و قابل درکی براي استفادهکنندگان از آن زبان نداشته باشد.

در طراحی گرامر زبان فارسی، اگرچه این زبان فعل-انتها است اما درعوض شامل گسترهي وسیعی از جملات بدون ترتیب است که این خود یکی از چالشهاي استخراج گرامر زبان فارسی به حساب میآید. به این معنا که اجزاي جمله ممکن است در موقعیت-هاي متفاوتی رخ دهند در حالیکه جمله همچنان بامعناست. این مساله درخصوص جابجایی گروههاي قیدي در جملات فارسی به وضوح به چشم میخورد. مشکل دیگر تجزیهي زبان فارسی، حذف واژك اضافه - کسره اضافه - در شکل نوشتاري زبان است.

این واژك اگرچه در شکل گفتاري زبان فارسی، در تشخیص پیوندهاي میان اجزاي گروه اسمی بسیار مفید است، اما در شکل نوشتاري تقریبا حذف شده است. حذف اجزاي نحوي جمله را میتوان به عنوان یکی دیگر از مشکلات تجزیه و ترکیب زبان فارسی مطرح کرد. پدیدهي حذف در زبان فارسی به دلایل مختلفی صورت می پذیرد که از آن جمله میتوان به حذف بنابر عرف زبان، حذف به قرینه لفظی و حذف به قرینه معنوي اشاره کرد.

از طرفی شاید بتوان گفت که عمدهترین مشکل در پژوهشهاي حوزه پردازش زبان فارسی، عدم وجود منابع زبانی و عدم دسترسی به دادگان و پیکرههاي مناسب می باشد. در این پژوهش از پیکرهي وابستگی نحوي زبان فارسی با حدود 30000 جمله برچسبگذاري شده با اطلاعات نحوي و ساختواژي، جهت ارزیابی گرامر و تجزیهگر پیشنهادي استفاده شده است 

در بالا اشارهاي کلی به موانع و چالشهاي پیشروي پردازش زبان طبیعی و بخصوص پردازش زبان فارسی داشتیم . [6] در ادامه به مطالعه برخی از پژوهش هاي انجام شده در حوزهي تجزیه و ترکیب زبان فارسی میپردازیم.

در سال 1387، گرامر پیوندي براي زبان فارسی ارائه شد که مبتنی بر روابط و پیوندهاي بین کلمات موجود در جمله بود. گرامر پیوندي بدلیل استفاده از کلمات به جاي واحدها، در دستهي گرامرهاي لغوي قرار میگیرد. نویسندگان این مقاله، در ابتدا کار را با نقشهاي اولیه - فاعل و فعل - و الگوهاي ساده شروع کردند و در هر مرحله سعی در افزودن دیگر نقشها و پیچیدهتر کردن تعاریف کردند. در نهایت واژه-نامهاي براي نقشهاي اساسی و الگوهاي اولیه ارائه شد و ارائه الگوهاي پیچیدهتر به کارهاي آتی موکول گردید

در سال 2011 ، بحرانی و همکاران اقدام به ارائهي یک گرامر محاسباتی براي تولید زبان فارسی کردند. این مدل گرامري، براي کاربردهاي تشخیص گفتار پیوسته طراحی شد اما بنابر ادعاي نویسندگان در کاربردهاي دیگري که نیاز به تحلیل نحوي زبان فارسی دارﻧﺪ نیز میتواند مورد استفاده قرار گیرد. در این پژوهش 5 رده نحوي پایه براي زبان فارسی درنظر گرفته شده است که شامل اسم، فعل، قید، صفت و حرف اضافه میباشد. سپس با استفاده از تئوري ایکس بار2 عبارتهاي اسمی، عبارتهاي فعلی، عبارتهاي قیدي، عبارتهاي صفتی و عبارتهاي حرف اضافهاي شناسایی شدند. در نهایت مجموعهاي از 120 قانون گرامري استخراج شد که ساختار نحوي زبان فارسی را پوشش میداد. این گرامر در یک تجزیهگر پایین به بالا با نرخ پذیرش %89 مورد استفاده قرار گرفت

در سال 2012 یک گرامر محاسباتی متن باز چندزبانه، براي زبان فارسی ارائه شد که داراي 40 دسته متفاوت نحوي و 190 تابع نحوي بود. آنها براي آزمایش نرمافزارشان از یک اپلیکیشن راهنماي زبان که در پروژهي مولتو 3 توسعه یافته است، استفاده کردند. این راهنماي زبان، 15 زبان را پشتیبانی میکرد که براي ارزیابی گرامر پیشنهادي
در این مقاله، پشتیبانی از زبان فارسی نیز به آن اضافه شد. در این پروژه 250 مورد آزمایش را تولید کردند و در نهایت اپلیکیشن تولید شده را بصورت منبع باز در دسترس قرار دادند

.3 نقشهي تجزیه

یک تجزیهگر پیشگو راه حل بسیار مناسبی براي انجام عمل تجزیهي بازگشتی است. اجزا این تجزیهگر عبارتند از: نوار ورودي، پشته، جدول تجزیه و خروجی. ورودي شامل دنبالهاي از کلمات است که بر روي نوار ورودي قرار دارند. در زبان فارسی هفت نوع کلمه وجود دارد [10] که در جدول 1 با ذکر مثال نشان داده شدهاند. نماد انتهاي رشته ي ورودي، $ است. پشته شامل دنبالهاي از نمادهاي گرامر است. جدول تجزیه یک آرایهي دو بعدي بصورت M[A,n] است که در آن A عناصر غیرپایانی و n یک عنصر پایانی و یا نماد $ است.

جدول : 1 مجموعهاي از برچسبهاي زبان فارسی

براي تولید دنباله اي از عناصر پایانی توسط گرامر باید مراحل زیر را پیمود:

با نماد شروع کار را آغاز میکنیم. یکی از قوانینی که در سمت راست آن نماد شروع قرار دارد را بکار برده و بجاي نماد شروع رشتهاي را که در سمت چپ قانون آمده است، قرار میدهیم.

عمل جایگزینی عنصر غیرپایانی در رشته هاي تولید شده ادامه مییابد تا در نهایت رشته اي تولید شود که تمام عناصر آن، عنصر پایانی باشند. آنچه که مسلم است براي جایگزینی عناصر غیرپایانی، قوانینی را انتخاب میکنیم که سمت راست آنها عنصر غیرپایانی موردنظر باشد که این عنصر با رشتهي سمت چپ قانون جایگزین میشود.
گرامر پیشنهادي در این پژوهش شامل 128 قانون است که در بخش 4 به برخی از قوانین آن اشاره شده است. این گرامر با استفاده از کتاب دستور زبان گیوي و انوري تهیه شده است 

۲ - فاکتورگیري گرامر

.A طراحی گرامر زبان فارسی

در این مرحله با توجه به اجزا جملات فارسی، گرامري مستقل از متن براي زبان فارسی پیشنهاد شده است. لازم به ذکر است که با توجه به اینکه زبان فارسی زبانی راست به چپ است در نوشتن گرامر آن نیز، عکس دیگر گرامرها عمل میکنیم. به این معنا که تولید قوانین از راست به چپ خواهد بود.

۱ -     گرامر مستقل از متن

گرامر مستقل از متن مجموعهاي از قوانین بازگشتی است که براي تولید الگویی از رشتهها بکاربرده میشود. یک گرامر مستقل از متن G - T , V , R ,S - چهارتایی است که شامل مولفههاي زیر میباشد:

•    T، مجموعه اي از عناصر پایانی که عبارتند از رشته هایی که از الفباي زبان فارسی مشتق شدهاند. این عناصر در واقع همان واژگان موجود در زبان فارسی هستند.

•    V، مجموعهاي از نمادهاي غیرپایانی که در قوانینی که عناصر پایانی را تولید میکنند به کار میروند.

R •، مجموعه اي از قوانین که در گرامر زبان فارسی، سمت راست این قوانین عناصر غیرپایانی قرار دارند. این عناصر با رشتههایی مرکب از عناصر پایانی و غیر پایانی که در سمت چپ قانون آمده، جایگزین میشوند.

•    S  ، نماد شروع که یک عنصر غیرپایانی خاص است و اولین رشته تولید شده توسط گرامر را تولید میکند.

گرامر پیشنهادي داراي قوانینی است که در حین تجزیه، موجب عقبگرد میشوند. این ویژگی کارایی تجزیهگر را کاهش میدهد و موجب ابهام در تجزیه میش ود. براي جلوگیري از عقبگرد و رفع ابهام هنگام تجزیه، عمل فاکتورگیري را بر روي قوانین گرامر انجام می-دهیم. با انجام عمل فاکتورگیري، گرامر مناسبی براي تجزیهگر پیشگو بدست می آید.

ایده اصلی فاکتورگیري بر این مبنا است که هرگاه واضح نباشد که کدام قانون باید براي بسط و گسترش عنصر غیرپایانی انتخاب شود، آنگاه این تصمیم تا آمدن عنصر ورودي بعدي به تاخیر انداخته میشود. براي توضیح بیشتر هرگاه قوانین زیر در گرامري وجود داشته باشند و عنصر بعدي رشته ورودي a باشد، هریک از این دو قانون را میتوان انتخاب کرد. و در واقع نوعی ابهام در انتخاب قانون بوجود میآید.

با انجام عمل فاکتورگیري بر روي قوانین فوق، گرامر جدیدي بوجود میآید که تصمیمگیري را یک مرحله به تاخیر میاندازد.

.B طراحی تجزیهگر

یک تجزیهگر براي گرامر G، رشتهاي به عنوان ورودي دریافت میکند. درصورتیکه این رشته منطبق بر گرامر G باشد، درخت تجزیهي آن را به عنوان خروجی تولید میکند و درصورتیکه جمله منطبق بر گرامر نباشد، پیغام خطایی میدهد.

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید