یکی از خصوصیاتی که به عنوان ورودی در اکثر وظایف پردازش زبان طبیعی استفاده میشود، برچسب اجزای سخن است. برای این منظور یک مجموعه تگ (tagset) مانند شکل زیر انتخاب میشود و به هر واژه در متن یک برچسب اختصاص داده خواهد شد.
۱. مقدمه
یکی از کارهای اساسی در پردازش زبان طبیعی ، برچسب زنی اجزای گفتار می باشد . برچسب زنی ، تعیین مقوله های دستوری برای هر نماد در متن می باشد .
در برچسب زنی دو حوزه ساختواژه و نحو زبان برای تعیین مقوله های دستوری با یکدیگر تعمل دارند . تحلیل های ساخنواژی ، یکی از مسائل اصلی در تحلیل های رایانه ای متون فارسی است و پردازش متون رایانه ای فارسی را با مشکلاتی روبرو کرده است ، از جمله این مشکلات ، شناسایی واژه های ناشناخته در متن و مشکلات خط فارسی می باشد .
در این مقاله سعی بر این شده با بررسی تاریخی این عملیات در علم کامپیوتر ، انواع روشهای آن را به صورت اجمالی مورد بحث قرار داده و در انتها یکی از این روشهارا بر روی زبان فارسی پیاده سازی کنیم .
یادگیری ماشین برروی ترکیب های زبان انسان برای ابهام زدایی در شناخت کلمات یکی از زمینه های مورد علاقه ی کار محققان علوم کامپیوتر و هوش مصنوعی بوده که نظر آنها را بسیار به خود جلب کرده است ، یکی از کاربردها «جدا سازی خودکار اجزای سخن» است ؛
امیدوارم با بررسی روش های مرتبط و مقایسه آنها توانسته باشم مطلب را به خوبی در این مقاله انتقال بدهم .
۲. کارهای مرتبط
از جداسازکننده های موفق برای برچسب گذاری می توان به موارد زیر اشاره کرد :
MX-POST بر مبنای Maximum entropy
MBT جدا ساز حافظه محور
Brill's بر پایه یادگیری مبتنی بر تحول "Transformation-based Learning"
TBL
Trigram-Tagger یا همان TNT بر مبنای مدلهای پنهان مارکوف
Maximum LikeLihood Estimation (MLE)
تا امروز روشهای زیادی طراحی و پیاده سازی شده اند و بسیاری از آنها برای زبان انگلیسی و دیگر زبانها با سربلندی امتحان شده اند ، ولی تعداد زیادی برای زبان فارسی مورد آزمایش قرار نگرفته اند .
با این حال روش هایی مثل MLE , MBT امتحان شده اند که نتایجی با کیفیت کافی نداشته اند .
یکی از روش هایی که بر روی زبان فارسی موفق بوده روش HunPOS است که بر اساس پیاده سازی دوباره روش TNT ساخته شده و قابلیت تنظیمات مختلف برای زبانهای مختلف را به کاربر می دهد و برای زبان فارسی 96.9 % درست عمل می کند که بهترین نتیجه ی گذارش شده برای زبان فارسی تا به امروز است .
این برنامه به TNT بسیار شبیه است با این تفاوت که این روش احتمالات را بر اساس تگ حاضر و تگ قبلی براورد می کند .
یکی از توانایی هایی قوی که از روش TNT به ارث برده است این است که با توجه پسوند و پیشوند می تواند نقش کلمات را حدس بزند که برای کلماتی که دیده نشده اند کاربرد دارد .
پیکره بیژن خوان :
این پیکره مجموع ای از کلمات از قبل برچسب گذاری شده است که از 2.6 میلیون کلمه ی فارسی تگ شده تشکیل شده و در روش های برچسب گذاری بر اساس حافظه از آن استفاده بهینه ای می توان کرد .
۳. آزمایشها
خب حالا در این بخش به بررسی روش پیاده سازی می پردازیم .
ﺑﺮای ﺑﺮﭼﺴﺐ ﮔﺬاری اﺟﺰای واژﮔﺎﻧﻲ ﻛﻼم روش ﻫﺎ و اﻟﮕﻮرﻳﺘﻢ ﻫﺎی ﻣﺨﺘﻠﻔﻲ وﺟﻮد دارد .ورودی اﻳﻦ اﻟﮕﻮرﻳﺘﻢ ﻫﺎ ﻋﺒﺎرﺗﻨﺪ از :
1- ﻣﺠ ﻤﻮﻋﺔ ﺑﺮﭼﺴﺐ ﻫﺎی در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﺪه.
2- رﺷﺘﻪ ای از واژه ﻫﺎ ﻛﻪ ﻗﺼﺪ ﺑﺮﭼﺴﺐ ﮔﺬاری آن را دارﻳﻢ.
خروجی این برنامه واژه های برچسب گذاری شده می باشد که به بهترین صورت برچسب گذاری شده باشند
بهترین صورت به معنای این است که روشی را به کار بگیریم که درستترین برچسب گذاری را برای ما انجام داده باشد
به طور کلی این روش ها به 3 دسته تقسیم می شوند :
1- روش های مبتنی بر قواعد
2- روش های آماری مطلق
3- روش های مبتنی بر تغییر
برای استفاده از روش های بالا به پیکره ی زبانی استخراج شده از متون و کلمات نیاز داریم
این پیکره تعداد زیادی کلمات و برچسب هستند که از متون زبان مورد نظر استخراج شده اند و به مانند یک دیکشنری مورد استفاده قرار می گیرند .
۴. الف ) روش مبتنی بر قواعد
در این روش از یک واژه نامه و مجموعه قواعد استفاده می شود .
در اولین مرحله تمامی نقش هایی که واژه ی ما می تواند در جمله ایفا کند به آن داده میشود ، در اینجا به علت اینکه چندین نقش ممکن است به یک واژه واگذار شود ، نقش واژه مبهم خواهد بود ازینرو در مرحله ی بعدی با پیاده سازی قواعد زبانی بر روی واژه نقش های بی ربط را حذف می کنیم که یا به نقش اصلی کلمه خواهیم رسید یا اینکه باعث کاهش تعداد نقش های کلمات میشویم و میزان ابهام کم می شود .
مشکل این روش این است که اگر کلمه ای در واژه نامه نباشد قادر به برچسب گذاری نخواهیم بود برای همین واژه نامه ی ما باید بسیار کامل باشد و با توجه به پیشرفت و پویا بودن زبان دائما به روز شود . به همین از این روش نمی توان به تنهایی برای برچسب گذاری استفاده کرد و از آن به همراه روشهای آماری و الگوریتمهای یادگیری خودکار به صورت توئما استفاده می شود .
۵. ب) روش آماری مطلق
تقریبا تمامی روش های برچسب گذاری از روش های آماری در مراحل میانی خود بهره می برند .
یکی از روش های آماری که استفاده بسیاری دارد روش زنجیره ای مارکوف می باشد .
زنجیره مارکف که به افتخار آندری مارکف ریاضی دان اهل روسیه این گونه نام گذاری شده یک سیستم ریاضی است که در آن انتقال از یک حالت به حالت دیگر صورت میگیرد که البته تعداد این حالات قابل شمارش است. زنجیره مارکف یک فرایند تصادفی بدون حافظهاست بدین معنی کهتوزیع احتمال شرطی حالت بعد تنها به حالت فعلی بستگی دارد و به وقایع قبل از آن وابسته نیست. این نوع بدون حافظه بودن خاصیت مارکف نام دارد.
زنجیره مارکوف(Markov Approach modeling) یک فرایند تصادفی گسسته در زمان با خاصیت مارکف است. اگرچه برخی از نویسندگان در مورد فرایندهای پیوسته در زمان هم از اصطلاح زنجیره مارکف استفاده میکنند. یک فرایند تصافی گسسته در زمان شامل سیستمی است که در هر مرحله در حالت خاص و مشخصی قرار دارد و به صورت تصادفی در هر مرحله تغییر حالت میدهد. مراحل اغلب به عنوان لحظههای زمانی در نظر گرفته میشوند ولی میتوان آنها را فاصله فیزیکی یا هر متغیر گسسته دیگری در نظر گرفت.خاصیت مارکف بیان میکند که توزیع احتمال شرطی برای سیستم در مرحله بعد فقط به حالت فعلی سیستم بستگی دارد و به حالتهای قبل بستگی ندارد. چون سیستم به صورت تصادفی تغییر میکند به طور کلی پیش بینی حالت زنجیره مارکف در نقطهای خاص در آینده غیر ممکن است. با این حال ویژگیهای آماری سیستم در آینده قابل پیش بینی است. در بسیاری از کاربردها چیزی که دارای اهمیت است همین ویژگیهای آماری است.
تغییرات حالات سیستم انتقال نام دارند و احتمالهایی که به این تغییر حالتها نسبت داده میشوند احتمال انتقال نام دارند. مجموعهای از حالتها و احتمال انتقالها به طور کامل یک زنجیره مارکف را مشخص میکنند. طبق قرار داد ما فرض میکنیم همیشه حالت بعدی وجود دارد و در نتیجه فرایند تا ابد ادامه پیدا میکند.
یکی از معروف ترین زنجیرههای مارکف که موسوم به «پیاده روی می خواره» است یک پیاده روی تصادفی است که در آن در هر قدم موقعیت با احتمال برابر به اندازه ۱+ یا ۱- تغییر میکند. در هر مکان دو انتقال ممکن وجود دارد یکی به عدد صحیح بعدی(۱+) و یکی به عدد صحیح قبلی(۱-). احتمال هر انتقال فقط به حالت کنونی بستگی دارد. برای مثال احتمال انتقال از ۵ به ۶ برابر با احتمال انتقال از ۵ به ۴ است و هر دوی این احتمالات برابر با ۰٫۵ هستند. این احتمالات مستقل از حالت قبلی (که یا ۴ بوده و یا ۶) هستند.
مثالی دیگر عادات غذایی که فقط انگور، پنیر و کاهو میخورد و عادات غذایی او از قوانین زیر پیروی میکند:
او فقط یک بار در روز میخورد.
اگر امروز پنیر بخورد فردا انگور یا کاهو را با احتمال برابر خواهد خورد.
اگر امروز انگور بخورد فردا با احتمال ۰٫۱ انگور، با احتمال ۰٫۴ پنیر و با احتمال ۰٫۵ کاهو خواهد خورد.
اگر امروز کاهو بخورد فردا با احتمال ۰٫۴ انگور و با احتمال ۰٫۶ پنیر خواهد خورد.
عادات غذایی این موجود را میتوان با یک زنجیره مارکف مدل سازی کرد به دلیل این که چیزی که فردا میخورد(حالت بعدی) تنها به چیزی که امروز خورده است(حالت فعلی) بستگی دارد. یکی از ویژگیهای آماری که میتوان در مورد این زنجیره محاسبه کرد امید ریاضی درصد روزهایی است که انگور خورده است(در یک دوره طولانی).
تعریف آماری :
یک زنجیره مارکف دنبالهای از متغیرهای تصادفی X۱،X۲،X۳،... است که دارای خاصیت مارکف هستند یعنی:
مقادیر ممکن برای Xi مجموعه قابل شمارشی را میسازند که فضای حالت نام دارد.
تعریف دیگری به شرح ذیل عنوان شده است: هرگاه فرایند تعمیرات برای سیستمهای تعمیر پذیر لحظه ای و یا به عبارتی با زمان کوتاه و قابل اغماض در مقایسه با زمان عملکرد سیستم را نتوان مفروض داشت،روشهایی مانند زنجیره ی پیوسته مارکوف برای تحلیل سیستم به کار گرفته میشود. روش مارکوف برای مدلسازی رفتار اتفاقی به صورت پیوسته و نا پیوسته نسبت به زمان و یا در فضای حالت تقسیم بندی میگردد. این تغییرات پیوسته و یا نا پیوسته اتفاقی را اصطلاحاً فرایندهای اتفاقی می نامند. در حقیقت به کارگیری روش مارکوف نیازمند این امر است که سیستم نماینگر فقدان حافظه باشد. یعنی حالت و وضعیت آینده ی سیستم مستقل از وضعیتهای گذشته آن بوده و تنها به آخرین جزء آن وابسته باشد.
زنجیرههای مارکف ایستا :
زنجیرههای مارکف ایستا زنجیرههایی هستند که در آنها:
که رابطه بالا برای هر n صحیح است. در واقع احتمال انتقال مستقل از n است.
زنجیره مارکف مرتبه m :
زنجیره مارکف مرتبه m(که در آن m متناهی است) فرایندی است که در آن:
به عبارت دیگر حالت بعدی به m حالت قبلی وابستهاست .
احتمال تغییر حالت از حالت iام به حالت jام در n حرکت برابر است با :
۶. استفاده از مدل مارکوف در برچسب گذاری
ابتدا باید مساله خود را به صورت مدل آماری در بیاوریم ، در مساله برچسب گذاری می توان هر حالت را برابر یکی از برچسب های نسبت داده شده از مجموع برچسب ها دانست . در این صورت وزن یال ها مشخص کننده ی دیده شدن یک برچسب خاص بعد از دنباله ای از برچسب های ماست .
با داشتن دنباله کلمات W، هدف یافتن محتمل ترین دنبالۀ معناییM میباشد.
P(M) را مدل اولیۀ معنایی (semantic prior model) و P(W|M) را مدل لغوی (lexicalization model) میگویند.
. در این مدل، حالتها برچسبهای معنایی را نشان میدهند و خروجی حالتها مدل لغوی را نشان میدهد.
۷. ج) روش های مبتنی بر تغییر
ابتدا با بعضی رویکرد های آماری واژه های درون متن برچسب گذاری می شوند سپس از مجموعه ای از قوائد برای برچسب گذاری دوباره استفاده می کنیم ، در همه ی این روش ها از یادگیری مبتنی بر تغییر استفاده می کنیم .
یادگیری مبتنی بر تغییر :
عاملهای یادگیرنده ی هوشمند ، عواملی هستند که می تواندد رشته ی ادراکات را از محیط دریافت کنند بر اساس آن قوانین پایگاه دانش خود را تغییر دهند ، به عبارت دیگر می توانند از محیط یاد بگیرند . الگوریتمهای یادگیری بر اساس نوع تعاملی که عامل یادگیرنده با محیط دارد دسته بندی می شود .
یادگیری با ناظر دسته ای از الگوریتمهای یادگیری خودکار هستند که در آن رده ی مجموعه ای از نمونه ها داده شده است و رده ی بقیه نمونه ها از مجموعه آموزش تامین می شود .
به روش مشابه در یادگیری مبتنی بر تغییر یک پیکره برچسب گذاری شده که همان مجموعه ی آموزش است موجود است که برچسب گذاری واژه ها با استفاده از آن انجام می شود ،
در این روش ابتدا متن بدون برچسب با استفاده از یکی از روش های آماری برچسب گذاری می شود از برچسب با بیشترین فراوانی در میان برچسب های مختلف یک واژه برای برچسب گذاری استفاده می شود بعد از این مرحله متن برچسب گذاری شده با نسخه ی برچسب گذاری شده ی دیگری مقایسه می شود ، خروجی این مرحله همان قواعد تغییر است که با اعمال آنها برچسب واژه ها را می توان به برچسب گذاری مطلوب نزدیک کرد .
1- قاعده ی باز نویسی : مشخص کننده برچسبی که باید جایگزین برچسب نادرست شود .
2- محیط اعمال : شروطی را بیان می کند که باید در واژه های اطراف یا برچسب آنها وجود داشته باشد تا بتوان قاعده را بازنویسی کرد .
ﺑﺎ ﻣﻘﺎﻳﺴﺔ ﺑﺮﭼﺴﺐ ﻫﺮ ﻳﻚ از واژه ﻫﺎ ﺑﺎ ﺑﺮﭼﺴﺐ درﺳﺖ آن ﻫﺎ در ﻣﺘﻦ ﺑﺮﭼ ﺴ ﺐ ﮔﺬاری ﺷﺪه، ﻋﻨﺼﺮ ﻳﺎدﮔﻴﺮی ﺧﻮدﻛﺎر ﻳﻚ ﻗﺎﻧﻮن به مجموعه ی قوانین اضافه می کند ، ﺳﭙﺲ از ﻳﻚ اﻟﮕﻮرﻳﺘﻢ ﺟﺴﺘﺠﻮی ﺣﺮﻳﺼﺎﻧﻪ ﺑﺮای ﻳﺎﻓﺘﻦ ﻓﻬﺮﺳﺖ ﻣﺮﺗﺐ ﺷﺪة قوانین تغییر اﺳﺘﻔﺎده ﻣﻲ ﺷﻮد؛ در ﻫﺮ ﻳﻚ از ﺗﻜﺮار اﻟﮕﻮرﻳﺘﻢ از میان ﻫﻤﺔ قوانین تغییر ، ﻗﺎﻧﻮﻧﻲ اﻧﺘﺨﺎب ﻣﻲ ، ﻫﺎی اﻳﻦ ﺷﻮد ﻛﻪ اﻋﻤﺎل آن ﺑﺮ ﻣﺘﻦ ﻛﻤﺘﺮﻳﻦ ﺗﻌﺪاد ﺧﻄﺎ را ﺑﻪ دﻧﺒﺎل داﺷﺘﻪ ﺑﺎﺷﺪ .ﺳﭙﺲ اﻳﻦ ﻗﺎﻧﻮن ﺑﻪ ﻛﻞ ﻣﺘﻦ اﻋﻤﺎل ﻣﻲ ﺷﻮد .اﻳﻦ ﺗﻜﺮار ﻫﺎ ﺗﺎ ﺟﺎﻳﻲ اداﻣﻪ پیدا ﻣﻲ ﻛﻨﺪ ﻛﻪ اﻋﻤﺎل قوانین تغییر ﺑﺮ ﻣﺘﻦ، ﺑﻪ ﻛﺎﻫﺶ ﺗﻌﺪاد ﺧﻄﺎﻫﺎ ﻣﻨﺠﺮ ﻧﺸﻮد، ﻳﺎ اﻳﻦ ﻛﻪ ﺗﻌﺪاد ﺧﻄﺎﻫﺎ، ﻛﻤﺘﺮ ﻣﺴﺎویِ ﺳﻄﺢ دﻗﺖ ﻣﻮرد ﻧﻈﺮ ﺑﺮای برچسب گذاری شود .
در نهایت فلو چارت کار ما به صورت زیر می باشد که کد اجرایی آن در فاز بعدی با استفاده از روش های گفته شده ارائه خواهد شد :
متاسفانه کد برنامه هنوز تمام نشده و انشالله در فاز بعدی پروژه تحویل داده خواهد شد .
۸. مراجع
Seraji, Mojgan. "A statistical part-of-speech tagger for Persian." Proceedings of the 18th Nordic Conference of Computational Linguistics NODALIDA 2011. 2011. (دریافت مدل)