Document 7743148

Download Report

Transcript Document 7743148

‫ریشه یابی کلمات فارس ی‬
‫ارائه دهنده ‪ :‬محسن کامیار‬
‫زمستان ‪87‬‬
‫مقدمه‬
‫‪‬‬
‫امروزه با گسترش کاربرد زبان در سیستم های رایانه ای‪ ،‬نیاز به پردازش متون در این سیستم‬
‫ها‪ ،‬بیش از پیش احساس می شود‪.‬‬
‫‪‬‬
‫ریشه یابی لغات نه به معنای زبان شناس ی آن بلکه به معنای دسته بندی کلمات در گروه های‬
‫معنایی یکسان‪ ،‬امری است که در بسیاری از زمینه های پردازش زبان طبیعی مدنظر می باشد‪.‬‬
‫‪‬‬
‫فعالیت بر روی زبان فارس ی به دلیل حجم کم تالشها بر روی ریشه یابی کلمات فارس ی‪ ،‬کامل‬
‫بودن گرامر زبان فارس ی و همچنین قابلیت بسط الگوریتم های به دست آمده به خانواده ی‬
‫زبانهای هند و اروپایی به دلیل قرابت ساختاری آنها بسیار قابل توجه می باشد‪.‬‬
‫‪‬‬
‫به جز مشکالتی که در زمینه ی رسم الخط فارس ی برای سامانه های رایانه ای وجود دارد‬
‫(کوشا‪ ،)1381،‬مشکالت دیگری نیز در دل دستور زبان فارس ی هست که ماهیتا پردازش آن را‬
‫برای یک نرم افزار پیچیده می کند‪.‬‬
‫انواع الگوریتم های ریشه یابی‬
‫‪ ‬الگوریتم های مبتنی بردیکشنری ‪ :‬کاملترین الگوریتمهای ریشه یابی هستند‪ .‬مشکالتی‬
‫نظیر ‪:‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫قابلیت گسترش پایین (‪)no scalability‬‬
‫ناتوانی در دسته بندی کلمات در گروه های معنایی همسان‬
‫درجه زمانی و مکانی بسیار باال‬
‫‪ ‬الگوریتم های مبتنی برقانون ‪ :‬این الگوریتمها‪ ،‬بر روی به دست آوردن ریشه ی کلمات‬
‫از طریق تعدادی قوانین از پیش تعیین شده کار می کنند‪.‬‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫‪.4‬‬
‫قوانین موجود ساختارهای زبانشناس ی نیستند‪.‬‬
‫مشکالت روش قبل را ندارند‪.‬‬
‫از لحاظ مؤفقیت از درصد پایینی برخوردار هستند‪.‬‬
‫از این دسته الگوریتمها می توان به الگوریتمهای معروف ‪ Porter‬و ‪ Lovins‬و ‪... Krovetz‬‬
‫بر روی زبان انگلیس ی و الگوریتم ریشه یابی کاظم تقوی و ‪ ...‬بر روی زبان فارس ی اشاره کرد‪.‬‬
‫بررس ی الگوریتم ‪: PORTER‬‬
‫‪‬‬
‫در هر برنامه جداسازي پسوند در سيستم هاي ‪ IR‬دو مورد بايستي مد نظر باشد‪.‬‬
‫‪‬‬
‫‪‬‬
‫اول آنكه در سيستم هاي ‪ IR‬پسوندها به هدف افزايش كارائي سيستم حذف مي شوند و نه به لحاظ عمليات‬
‫زبانشناس ي‪ .‬اين بدان معني است كه لزومي ندارد تا بفهميم تحت چه شرايطي يك پسوند بايستي حذف گردد‪.‬‬
‫نكته دوم آن است كه با استفاده از روش ي كه توضيح داده خواهد شد؛ يعني با استفاده از ليست پسوندها با قوانین‬
‫ِاعمال متعدد‪ ،‬ضريب موفقيت در حذف پسوندها جدا از آنكه اين پردازش چگونه ارزيابي شود‪ ،‬مطمئنا كمتر از ‪100‬‬
‫درصد خواهد بود‪.‬‬
‫‪‬‬
‫ريشه ياب پورتر ريشه ياب كاهش دهندة ادغامي براي زبان انگليس ي است كه توسط مارتین‬
‫پورتر در دانشگاه كمبريج در سال ‪ 1980‬ارائه شد‪.‬‬
‫‪‬‬
‫اين ريشه ياب بصورت مرحله اي(‪ 5‬مرحله كه در هر مرحله قوانین خاص ي ِاعمال مي شود) و‬
‫خطي می باشد که در ادامه به این مراحل اشاره می کنیم‪ .‬در هر مرحله عملیات کاهش یا‬
‫افزایش روی کلمات صورت می گیرد‪.‬‬
‫بررس ی الگوریتم ‪: PORTER‬‬
‫‪ ‬در زبان انگليس ي يك حرف بي صدا)‪ (Consonant‬در يك كلمه حرفي غیر از ‪ A,E,I,O,U‬و‬
‫‪ Y‬بعد از يك حرف صدادار است‪(.‬واقعيت آن است كه تعريف حرف بي صدا بصورت بازگشتي در‬
‫اينجا باعث مبهم شدن تعريف حرف بي صدا نمي شود)‪ .‬بنابراين در ‪ TOY‬حروف بي صدا ‪ T‬و ‪Y‬‬
‫هستند و در ‪ SYZYGY‬حروف بي صدا ‪ S‬و ‪ Z‬و ‪G‬ميباشند‪.‬‬
‫‪CVCV ... C‬‬
‫‪CVCV ... V‬‬
‫‪VCVC ... C‬‬
‫‪VCVC ... V‬‬
‫]‪[C]VCVC ... [V‬‬
‫‪ ‬قوانین براي حذف پسوند در فرم زير نمايش داده مي شود‪:‬‬
‫پسوند ‪ S1‬پايان بگیرد و‬
‫‪(condition) S1-> S2‬كه به معناي آن است كه اگر كلمه اي با‬
‫ِ‬
‫شرط)‪ (condition‬داده شده را ارضا كند‪ S1 ،‬با ‪ S2‬جايگزين مي شود‪.‬‬
‫ريشة ماقبل ‪ِ S1‬‬
‫حرف ‪ S‬پايان مي گیرد(همچنین براي ساير حروف)‪.‬‬
‫‪ :*S ‬ريشه با ِ‬
‫‪ :*v* ‬ريشه شامل حرف صدادار است‪.‬‬
‫‪ :*d ‬ريشه با دو حرف صدادار يكسان پايان مي گیرد(مثل ‪ TT‬و‪SS‬و‪.)...‬‬
‫‪،‬حروف ‪ X،W‬يا‪ Y‬نيست‪(.‬مثل‪.)-HOP,-WIL‬‬
‫‪ :*o ‬ريشه با ‪ cvc‬پايان مي گیرد بطوريكه دومین‪c‬‬
‫ِ‬
‫بررس ی الگوریتم ‪ – PORTER‬مراحل روش‬
‫‪‬‬
‫در مرحله اول بیشتر با قسمت سوم افعال و صورت جمع کلمات سروکار داریم مثل‪:‬‬
‫‪caress‬‬
‫‪SSES  SS‬‬
‫‪caresses ‬‬
‫‪poni‬‬
‫‪IES  I‬‬
‫‪ponies ‬‬
‫‪SS  SS‬‬
‫‪caress  caress‬‬
‫‪...‬‬
‫‪‬‬
‫در مراحل ‪ 2‬و‪ 3‬و ‪ 4‬هم به صورت مشابه قوانین مختلفی استفاده می شود تا به ریشه مورد نظر‬
‫نزدیک تر شویم مثل ‪:‬‬
‫‪relate‬‬
‫‪‬‬
‫‪relational‬‬
‫‪condition‬‬
‫‪ form‬‬
‫‪ formal‬‬
‫‪2 : (m>0) ATIONAL  ATE‬‬
‫‪conditional ‬‬
‫‪formative‬‬
‫‪formalize‬‬
‫‪defensible  defens‬‬
‫‪activate‬‬
‫‪ activ‬‬
‫‪(m>0) TIONAL  TION‬‬
‫‪(m>0) ATIVE ‬‬
‫‪3:‬‬
‫‪(m>0) ALIZE  AL‬‬
‫‪4 : (m>1) IBLE ‬‬
‫‪‬‬
‫‪(m>1) ATE‬‬
‫…‬
‫‪‬‬
‫تا اينجا تمامي پسوندها حذف شده است و آنچه كه مانده كمي از مراحله تصفيه (مرحله ‪ )5‬است‪ .‬در این‬
‫مرحله هم عملیاتی نظیر قوانین زیر صورت می گیرد‪.‬‬
‫‪-> probat‬‬
‫…‬
‫‪probate‬‬
‫>‪-‬‬
‫‪(m>1) E‬‬
‫بررس ی الگوریتم ‪ - PORTER‬فلوچارت‬
‫بررس ی الگوریتم ‪: PORTER‬‬
‫‪‬‬
‫درالگوریتم ‪ porter‬هیچ توجه ای به پیش وند ها نمی شود ‪ :‬باعث می شود که نتایج کمی‬
‫نادرست باشد ولی در عمل اين مسئلة چنداني نيست چونكه وجود پيشوند احتمال كاهشها و ادغامهاي‬
‫نادرست را كاهش مي دهد‪.‬‬
‫‪‬‬
‫مزایای عمده این روش ‪:‬‬
‫‪.2‬‬
‫این الگوریتم کوتاه ( كمتر از ‪ 400‬خط كد به صورت ‪ )BCPL‬و سریع می باشد‪( .‬واژگان‬
‫با ‪ 10000‬كلمة مختلف را در ‪ 8.1‬ثانيه بر روي ‪ IBM 370/165‬در دانشگاه كمبريج‬
‫پردازش كرده است)‪.‬‬
‫ساده و کارا می باشد‪.‬‬
‫‪.3‬‬
‫قابلیت انعطاف دارد‪.‬‬
‫‪.1‬‬
‫بررس ی الگوریتم ‪ – PORTER‬نتایج اجرای این روش‬
‫•‬
‫•‬
‫در واژگاني با ‪ 10000‬كلمه كاهش در اندازة ريشه بصورت مراحل زير صورت مي گیرد‪:‬‬
‫‪Suffix stripping of a vocabulary of 10,000 words‬‬
‫‪Number of words‬‬
‫‪reduced‬‬
‫•‬
‫‪step‬‬
‫‪3597‬‬
‫‪1‬‬
‫‪766‬‬
‫‪2‬‬
‫‪327‬‬
‫‪3‬‬
‫‪2424‬‬
‫‪4‬‬
‫‪1373‬‬
‫‪5‬‬
‫حدودا ‪ 3650‬تا کاهش انجام شده ‪ ،‬كه سرانجام واژگان ريشة حاصل شامل ‪ 6370‬كلمة‬
‫يكتاست ‪ .‬بنابراين اين متد جداسازي پسوند‪ ،‬سايز واژگان را به يك سوم كاهش مي دهد‪.‬‬
‫الگوریتم کاظم تقوی برای زبان فارس ی‬
‫‪‬‬
‫این الگوریتم شباهت زيادي به الگوريتم پورتر در انگليس ي دارد‪ .‬الگوريتم بر مبناي ريخت شناس ي هستند‪.‬‬
‫‪‬‬
‫هر دو ريشه ياب به دنبال پسوندهاي خاص ي جستجو مي كنند و مراحل مختلفي را بر طبق ليست قوانین‬
‫پسوندي پشته گذاري شده طي ميكنند‪ . .‬با اين حال تفاوتهاي مهمي بین اين دو الگوريتم وجود دارد‪.‬‬
‫‪‬‬
‫براي مثال الگوريتم ريشه ياب پورتر به منظور تخمین محتواي اطالعات‪ ،‬الگوي حروف صدادار و بي صدا را‬
‫تشخيص مي دهد؛ اما در فارس ي بسياري از حروف صدادار نوشته نمي شوند‪ ،‬بنابراين ريشه ياب فارس ي از طول‬
‫رشته براي تعريف كران پائین محتواي ريشه استفاده مي كند‪ (.‬در حال حاضر مينيمم طول ريشه ‪ 3‬است)‪.‬اين‬
‫محدوديت در بعض ي موارد باعث خطا ميگردد بخصوص زمانيكه يك زيررشته كه قسمتي از يك كلمه كوتاه است ‪ ،‬به‬
‫اشتباه به عنوان يك پسوند در نظر گرفته شود‪ .‬تفاوت ديگر اين دو الگوريتم ان است كه اين الگوريتم بر خالف‬
‫الگوريتم پورتر ‪ ،‬پيشوندها را هم شناسايي مي كند‪.‬‬
‫الگوریتم کاظم تقوی برای زبان فارس ی‬
‫الگوریتم کاظم تقوی برای زبان فارس ی‬
‫‪‬‬
‫‪‬‬
‫ُ‬
‫‪ DFA‬به صورت يك آرايه دوبعدي كد مي شود‪ .‬رديف ها نمايانگر حاالت و ستون ها نمايانگر‬
‫حروف ورودي هستند‪.‬‬
‫‪ DFA‬از پايان ورودي ريشه ياب شروع مي كند و تا به سومین حرف از ورودي از ابتدا ادامه مي‬
‫دهد‪ DFA .‬هرگز دو حرف ابتداي كلمه ( از سمت راست) را چك نمي كند‪ .‬در هر دور درايو ِر‬
‫‪ DFA‬با مشاهدة داده در رديف ‪ s‬وستون ‪ ، l‬حالت بعدي را مشخص مي كند‪ s (.‬حالت فعلي و ‪l‬‬
‫كاراكتر ورودي است) هنگاميكه ماشین ‪ DFA‬به يك حالت نهايي مي رسد‪ ،‬كلمه و شماره حالت به‬
‫َپس پردازشگر براي حذف پسوند فرستاده مي شود‪.‬‬
‫الگوریتم کاظم تقوی برای زبان فارس ی‬
‫اگر پسوند تشخيص داده شده ‪ ،‬پسوند مالكيت يا پسوند جمع باشد‪ ،‬پس پردازشگر كلمة جداسازي‬
‫شده را به ‪ DFA‬ميدهد تا بقية پسوندها شناسايي شوند‪ .‬اگرپسوندهاي پشت سرهم پيدا شوند‪ ،‬در‬
‫صورتيكه اين پسوندها به كالسهاي اسمي درستي متعلق باشند‪ ،‬پس پردازشگر آنها را حذف مي كند‪.‬‬
‫هنگاميكه پس پردازشگر يك حالت پسوند فعلي را يافت (همانند حالت ‪ 10‬در شكل‪ )DFA‬آنگاه كلمة‬
‫جداسازي شده را به اتوماتاي پيشوندي مي فرستدكه اين اتوماتا شبيه اتوماتاي پسوندي است‪.‬‬
‫ارزيابي ريشه ياب فارس ي كاظم تقوي‬
‫‪‬‬
‫‪‬‬
‫به منظور ارزيابي اين الگوريتم‪ ،‬اثر ان بر روي مقادير ‪ precision/recall‬در سيستم بازيابي‬
‫اطالعات كه متشكل از يك مجموعه كوئر ِي فارس ي و مجموعة ثابتي از اسناد بوده‪ ،‬بر مبناي مدل‬
‫فضاي برداري)‪ (VSM‬مشاهده شده است‪.‬‬
‫يك مجموعه كه از ‪ 1647‬سند فارس ي كه اغلبا فايلهاي اينترنتي بوده اند مجموعة سند را تشكيل داده‬
‫بود‪ .‬يك ليست از ‪ 60‬كوئر ِي فارس ي توسط فارس ي زبانان محلي تهيه شد‪.‬‬
‫الگوریتم کراوتز‬
‫‪ ‬الگوريتم كراوتز براي اولین بار در سال ‪ 1993‬در يك مقاله توسط كراوتز معرفي شد‪.‬‬
‫‪ ‬اين الگوريتم از روشهاي ريخت شناس ي و از يك فرهنگ لغت براي آزمودن ريشه هاي‬
‫يافت شده استفاده مي كند‪.‬‬
‫‪ ‬اين الگوريتم براي زبانهايي كه ساخت كلمات در آنها قانونمند است‪ ،‬كارائي خوبي را‬
‫نشان داده است‪.‬‬
‫‪ ‬الگوريتم كراوتز پسوند و پيشوند كلمات را بررس ي مي كند و در ماشينهاي مترجم‬
‫كارائي خوبي را نشان داده است‪.‬‬
‫‪ ‬اولین كاربرد اين ايده براي زبان انگليس ي معرفي شده است‪ .‬صرف افعال زبان انگليس ي‬
‫و همچنین افزودن ‪ s/es‬به انتهاي اسامي براي جمع بستن آنها مورد بررس ي قرار مي‬
‫گیرد‪ .‬همانطور كه مالحظه مي شود اين تغيیرات نقش كلمات را تغيیر نمي دهند‪ ،‬به‬
‫همین دليل براي ماشین هاي مترجم مناسب هستند‪.‬‬
‫الگوریتم کراوتز‬
‫‪ ‬الگوريتم كراوتز تعدادي از پسوندها را مورد بررس ي قرار مي دهد و در هر مرحله با‬
‫زدودن پسوند يافت شده‪ ،‬ريشه بدست آمده را مورد بررس ي قرار مي دهد‪ .‬در‬
‫صورتيكه اين ريشه در فرهنگ لغات موجود باشد‪ ،‬عمل ريشه يابي متوقف مي شود‪.‬‬
‫‪ ‬گاهي افزودن يك پسوند باعث تغيیراتي در ساختار يك كلمه مي شود براي كشف‬
‫چنین كلماتي در صورتيكه ريشة كلمه در فرهنگ لغات نباشد‪ ،‬بر روي كلمه يك سري‬
‫تغيیراتي ِاعمال مي كند تا هنگامي كه ريشه در فرهنگ لغات يافت شود‪.‬‬
‫الگوريتم كراوتز بهبود یافته‬
‫‪ ‬در سال ‪ 2006‬توسط رضا حسامي فرد و غالمرضا قاسم ثاني الگوريتمي بهبود يافته‬
‫از الگوريتم كراوتز ارائه شد‪.‬‬
‫‪ ‬در اين الگوريتم از نقش كلمات عالوه بر وجود يا عدم وجود آنها در فرهنگ لغت‬
‫استفاده مي كند‪.‬‬
‫‪ ‬به عنوان مثال در فرآيند ريشه يابي كلمة "‪ "being‬ابتدا "‪ "bee‬جستجو مي‬
‫شود كه در فرهنگ لغت هم موجود مي باشد‪ .‬بنابراين به عنوان ريشه برگردانده مي‬
‫شد اما با توجه به اينكه ‪ bee‬يك اسم است نمي توان به آن پسوند ‪ ing‬افزود‪.‬‬
‫بنابراين الگوريتم اين ريشه را به عنوان ريشة اصلي انتخاب نمي كند و به اين ترتيب‬
‫با ادامة الگوريتم به ريشة درست كلمه كه همان "‪ "be‬است مي رسيم‪.‬‬
‫ایده اصلی‬
‫‪ ‬مسئله ای که در الگوریتم های فارس ی به آن دقت نشده است این است که شرایط‬
‫مسئله نیز در انتخاب پسوند تأثیرگذار هستند‪.‬‬
‫‪ ‬اید اصلی توجه به شرایط کلمه در جداسازی پسوند می باشد‪.‬‬
‫‪ ‬برای این کار ‪ 10000‬کلمه از مجله کامپیوتر سایت تبیان انتخاب شدند‬
‫‪ ‬این کلمات کامال عامیانه هستند‬
‫‪ ‬این متون دارای حوزه های معنایی گسترده ای هستند‬
‫‪ ‬این متون توسط افراد مختلف تهیه شده اند‬
‫‪ ‬کلمات به صورت دستی ریشه یابی شدند و نتایج آمار برروی شرایط مختلف این‬
‫کلمات تحقیق شدند‪ .‬از جمله شرایط مورد توجه موارد زیر بوده اند‪:‬‬
‫‪ ‬حرف آخر‬
‫‪ ‬تعداد حروف‬
‫‪ ‬تعداد حروف صدادار‬
‫نتایج عملی‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫تعداد حروف بی صدا‬
‫نوع حرف آخر از لحاظ با صدا یا بی صدا بودن و یا خواص دیگر قابل ذکر برای حروف‬
‫تعداد هجاها‬
‫نقش کلمه در جمله‬
‫‪ ‬این نتایج به صورت جداگانه بررس ی شده اند‬
‫‪ ‬در گام بعد باید نتایج این معیارها را با هم ترکیب و نتیجه ای واحد به عنوان‬
‫مجموعه قوانین اتخاذ گردند‪.‬‬
‫‪ ‬ساده ترین معیار باال تأثیر حرف آخر کلمه در پسوند بودن یک ترکیب از حروف می‬
‫باشد‪.‬‬
‫‪ ‬در ‪ 10000‬کلمه بررس ی شده ‪ 6276‬مورد استفاده از پسوندها رخ داده بود‪.‬‬
‫‪ ‬از این میان پسوند «ی» با ‪ 2106‬مورد و «ها» با ‪ 423‬مورد بیشترینها بودند‪.‬‬
‫نتایج عملی‬
‫‪400‬‬
‫‪350‬‬
‫‪300‬‬
‫‪250‬‬
‫‪Series1‬‬
‫‪200‬‬
‫‪Series2‬‬
‫‪150‬‬
‫‪100‬‬
‫‪50‬‬
‫ی‬
‫ه‬
‫و‬
‫ن‬
‫م‬
‫ل‬
‫گ‬
‫ک‬
‫ق‬
‫ف‬
‫غ‬
‫ع‬
‫ظ‬
‫ط‬
‫ض‬
‫ص‬
‫ش‬
‫س‬
‫ژ‬
‫ز‬
‫ر‬
‫ذ‬
‫د‬
‫خ‬
‫ح‬
‫چ‬
‫ج‬
‫ث‬
‫ت‬
‫پ‬
‫ب‬
‫ئ‬
‫ء‬
‫ا‬
‫آ‬
‫‪0‬‬
‫نتایج عملی‬
‫‪180‬‬
‫‪160‬‬
‫‪140‬‬
‫‪120‬‬
‫‪Series1‬‬
‫‪100‬‬
‫‪Series2‬‬
‫‪80‬‬
‫‪60‬‬
‫‪40‬‬
‫‪20‬‬
‫ی‬
‫ه‬
‫و‬
‫ن‬
‫م‬
‫ل‬
‫گ‬
‫ک‬
‫ق‬
‫ف‬
‫ع‬
‫ظ‬
‫ط‬
‫ش‬
‫س‬
‫ز‬
‫ر‬
‫د‬
‫چ‬
‫ت‬
‫پ‬
‫ب‬
‫ا‬
‫‪0‬‬