بخشی از مقاله

چکیده

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

کلید واژهها: ریشه یابی خودکار، پردازش زبان طبیعی

1  مقدمه

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

در زبان فارسی و خانواده زبان های هند و اروپایی عملیات اشتقاق و ساخت واژگان، با ترکیب واژه های ریشه و الحاق پسوند و پیشوند های مختلف صورت می گیرد. هدف از ریشه یابی، زدودن الحاقات و یافتن جوهره اصلی واژه است.[1] به عنوان مثال ریشه کلمه "دانایان" کلمه "دانا" می باشد که با استفاده از قانون "ریشه + ی + ان" تولید شده است. هم چنین ریشه کلمه "می خوانم" کلمه "خوان" است که با استفاده از قانون "می+ بنمضارع + م" تولید شده است.ریشهیابی خودکارکلمات با توجه به گسترش روزافزون پردازش زبان طبیعی کاربردهای فراوانی یافته و بیش از پیش مورد توجه قرار گرفته است. برخی از کاربردهای ریشهیابی کلمات عبارتند از:

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

·ریشه یابی کلمات در سیستم های بازیابی اطلاعات: بازیابی اطلاعات عبارت است از دانش جستجو و استخراج اطلاعات، داده ها و فراداده ها از انواع گوناگون منابع اطلاعاتی نظیر بانک های اسناد. هر چه شبکه های معنایی استخراج شده ازاین اطلاعات دقیق تر و گسترده تر باشند، اطلاعات استخراج شده بیشتر و راحتتر فراهم می شوند. در همین راستا میتوان از سیستم های ریشهیابی خودکار کلمات به منظور ایجاد امکان دستیابی به شبکه های معنایی گسترده، در سیستم های بازیابی اطلاعات استفاده کرد.[2] هم چنین یکی از اهداف موجود در بازیابی اطلاعات، ایجاد امکان جستجوی کلمات بر اساس ریشه آن هاست. در این صورت به طور مثال هر دو کلمه »دانشجو« و »دانشجویان - « به طور کلی همه اشتقاقهای ممکن از یک ریشه - در سیستم بازیابی اطلاعات به صورت »دانشجو« - ریشه کلمه - ذخیره می شوند، و اگر کاربری در درخواست خود از کلمه »دانشجو« استفاده کند، همه اسنادی که در آن واژه »دانشجویان« وجود دارد نیز - اسنادی که در آن هااشکال مختلف اشتقاق ها از ریشه مربوطه وجود دارند - ، به عنوان پاسخ در اختیار کاربر قرار خواهند گرفت.

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

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

2 روشهای ریشهیابی

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

2-1 ریشهیابی براساس قوانین حذف وندها

این سیستم ها به منظور دستیابی به ریشه واژه ها، تنها از قوانین حذف وند استفاده می کنند. در این سیستم ها با ورود هر کلمه به ریشه یاب با استفاده از قوانین موجود، وندهای قابل حذف از آنها شناسایی شده و حذف میشوند. هم چنین این سیستم ها معمولا از یک حد آستانه برای تعیین کمترین تعداد حروف ممکن برای ریشه کلمات استفاده میکنند. الگوریتم های پورتر[3]1و لُووینس[4]2 از جمله سیستمهایی هستند که به منظور ریشهیابی کلمات زبان انگلیسی، از این روش استفاده کرده اند. از پژوهش های انجام شده در زمینه ریشهیابی کلمات زبان فارسی که از این روش استفاده کردهاند می توان به سیستم ریشه یاب خودکاربُن3 که توسط تشکری و همکارانش ارائه شده، اشاره کرد .[5]

در این سیستم با ورود هر کلمه به سیستم ریشهیاب، وندهای قابل حذف از کلمه شناسایی شده و حذف میشوند. سپس کلمه حاصل دوباره به عنوان ورودی به سیستم داده میشود تا وندهای باقی مانده در صورت وجود حذف شوند. این کار تا جایی که بر اساس قوانین موجود وندی برای حذف وجود نداشته باشد ادامه مییابد. در این سیستم هم چنین قوانینی برای مواجهه با حالتهای استثنا نیز در نظر گرفته شده است.در سیستم دیگری که توسط تقوا و همکارانش در راستای ریشه یابی کلمات زبان فارسی ارایه شده است از ماشین های متناهی قطعی برای حذف وندهای کلمات استفاده میشود.[6] ماشین متناهی قطعی عبارت است از ماشینی که شامل مجموعه ای متناهی از حالات شامل حالت شروع و پایان بوده و بر اساس هر ورودی معین و تابع گذر خود از یک حالت به حالت دیگر تغییر وضعیت می دهد، تا جایی که در یکی از حالتهای پایانی قرار گرفته و ورودی پذیرفته شود. این سیستم از

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