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