یکی از خصوصیاتی که به عنوان ورودی در اکثر وظایف پردازش زبان طبیعی استفاده میشود، برچسب اجزای سخن است. برای این منظور یک مجموعه تگ (tagset) مانند شکل زیر انتخاب میشود و به هر واژه در متن یک برچسب اختصاص داده خواهد شد.
کاربرد اصلی و ریشه ای این مسئله در تعیین نقش دستوری واژه ها در متن ورودی ("پیکره") و نسبت دادن برچسب های واژگانی به واژه ها و نشانه های به کار رفته در یک متن است.
۱. مقدمه
با نسبت دادن برچسب های کالمات به واژه های تن ورودی نرم افزار های مربوطه میتوانیم نقش دستوری هر واژه را مشخص کنیم.
به این متن ورودی در این علم "پیکره" گفته میشود.
از کاربرد های برچسب گذاری میتوان به پیشبینی واژه های بعدی در جملات ناقص یا در حال کامل شدن اشاره کرد.
همینطور تشخیص گفتار، تشخیص دست خط، ارتباط تقویتی برای معلولان زبانی، کشف خطاهای املایی، ترجمه خودکار، تجزیه و تحلیل نحوی و بازیابی اطلاعات از کاربرد های این سیستم هستند.
از دیگر کابرد های مهم این سیستم که در این روز ها بسیار از آن صحبت شده است و میتواند مفید واقع شود تبدیل نوع نوشتاری "انگلیسی-فارسی" به "فارسی" است. یعنی جملات فارسی که با حروف انگلیسی نوشته میشود را میتوان با برچسب گذاری دقیق به جملات فارسی تبدیل کرد.
در این سیستم، بحث "تعیین احتمال رخداد دنباله ای از لغات" نیز مطرح می شود که به منظور تعیین احتمال استفاده یک واژه به عنوان واژه بعدی در یک متن ناقص است. در اینجا موضوع "احتمال" بسیار حائز اهمیت است. این احتمال از "پیکره" استخراج میشود.
یعنی سیستم با آنالیز و بررسی پیکره های مختلف و معتبر این احتمال را به دست می آورد.
تعریفی که برای پیکره در [1] ارائه شده به این صورت است:
"حجم زیادی از داده های زبانی که بر اساس معیار های مشخص برای هدف معینی جمع آوری و ذخیره شده اند به صورتی که نماینده و با گویش مورد مطالعه باشند."
برچسب گذاری به عنوان یکی از مراحل میانی کاربرد های ذکر شده است.
میزان دقت برچسب گذاری به دقیق بودن نتیجه نهایی کمک میکند و تاثیر گذار است.
چندین روش مختلف برای برچسب گذاری مطرح میشود:
1- روش مبتنی بر قواعد
2- روش آماری محض
3- روش مبتنی بر گذار
در برچسب گذاری رده بندی هایی برای کلمات صورت می گیرد. و برچسب های مختلف در گروه هایی دسته بندی میشوند. برای مثال انواع فعل در یک گروه قرار میگیرند. به این رده بندی برچسب گذاری ها، "مجموعه برچسب" گفته میشود.
روش های رده بندی را میتوان به دو دسته تقسیم بندی کرد:
1- روشی که ابتدا رده بندی برای کلمات در برچسب گذاری انجام شده است و بعد از آن به سراغ ابهام زدایی این رده بندی ها میرویم.
2- روشی که در حین رده بندی ابهام زدایی نیز صورت میگیرد.
ورودی سیستم های برچسب گذاری شامل مجموعه ای از برچسب های ممکن و همینطور رشته ای است که میخواهیم برچسب گذاری کنیم.
در اینجا منظور از برچسب های ممکن مجموعه ای است که سیستم در آغاز دریافت میکند و براساس آن برچسب گذاری را انجام میدهد و در واقع میتوانیم از آن به عنوان قانون برچسب گذاری در آن سیستم یاد کنیم.
و خروجی آن نیز رشته ای است که به خوبی برچسب گذاری شده. در اینجا هر چه برچسب گذاری به حالت ایده آل نزدیک تر باشد و دقیق تر انجام شده باشد "خوب" تر است.
۲. کارهای مرتبط و آزمایش ها
۲.۱. سیستم های برچسب زنی بر پایه الگوریتم Hidden Marcov Model
سیستم های پیاده سازی شده توسط الگوریتم hidden marcov model. این سیستم در نرم افزار تبدیل نوشته به صدا "پارس گویان" مورد استفاده قرار گرفته است. 1 2
در این مقاله بر استفاده این الگوریتم برای تبدیل سخن به متن و همینطور پیدا کردن حروف اضافه در جملات فارسی تاکید شده است.
سیستم برچسب زنی TnT این سیستم در داده های امتحان شده خود 2.5 میلیون جمله دارد و مجموعه نشانه ها (tag) آن 38 عدد است. که دقت آن به 96.64% نیز میرسد. در راستای این سیستم و با استفاده از این روش دو تحقیقگر به نام های جباری و Allison سیستمی به اسم پارس گویان پیاده سازی کرده اند. این اولین سیستم برای برچسب گزاری جملات و متون فارسی بوده است.
همچنین در ادامه به برخی چالش هایی که دراین کار برخورد میکنیم اشاره کرده است. برای مثال در زبان فارسی کلمه ای مانند: "میروم" و یا "کتابها" هر کدام به سه شکل مختلف نوشته میشوند.
که یا به صورت بدون فاصله و چسبیده است و یا با فاصله. گاهی اوقات هم به صورت نیم فاصله که خیلی مرسوم نیست. در کلمه "میروم" اگر "می" به اشتباه "مِی" (mey) خوانده شود به معنای آن در جمله تغییر خواهد کرد.
در برخی کلمات با پسوند نیز چالش هایی وجود دارد. برای مثال پسوند "تر" به معنی "مقایسه" است و میتواند به معنی "خیس" هم به کار رود.
در نتیجه در اینگونه چالش ها معمولا از یک درخت تصمیم گیری استفاده میشود. و حالت های مختلف که ممکن است برای یک کلمه و یا یک عبارت پیش بیاید را در مراحل مختلف مورد بررسی قرار میدهد. در بخش آزمایش ها بیشتر به این موضوع پرداخته میشود.
در این الگوریتم از این فرمول برای مقایسه دو نوع از احتمالات استفاده میشود. احتمال "انتقال نشانه" (tag transition) و احتمال "کلمات" (word)
احتمال کلمات (Wi) یعنی احتمال تخصیص یک نشانه (tag) به یک کلمه چقدر است. و احتمال انتقال نشانه (Ti) نشان دهنده احتمال تخصیص یک نشانه به نشانه بعدی است.
۲.۲. معرفی یک الگوریتم خاص در سیستم های برچسب گذاری
یک الگوریتم ترکیبی از الگوریتم های احتمالی و قانون محور است که در مقایسه با دیگر الگوریتم های بچسب گذاری از این جهت برتری دارد که نیازی به جمع آوری اطلاعات و دانش از قبل ندارد. این الگوریتم نیازی به دامنه ندارد و مستقل از دامنه است زیرا از قوانین مورفولوژیک استفاده میکند. 3
الگوریتم های نشانه گذاری سعی میکنند که عیوب و کاستی های ورژن های قبلی الگوریتم را بهبود ببخشند. همچنین سیستم های نشانه گذاری بر اساس الگوریتمی که استفاده میکنند دسته بندی میشوند.
یک نمونه از دسته بندی این سیستم ها به نام jurafsky (که توسط jurafsky و martin در سال 2000 انجام شده) در زیر آمده است.
۲.۲.۱. 1-سیستم های قانون محور (Rule-based)
در این سیستم ها فرآیند نشانه گذاری دو قسمت و یا دو فاز دارد. در فاز اول کلمات و عبارات و نشانه های آنها در دیکشنری ای ذخیره میشوند. و در مرحله دوم سیستم با در نظر گرفتن برخی محدودیت ها برای نشانه ها سعی میکند که عباراتی که چند نشانه دارند رابه یک نشانه تبدیل کند.
۲.۲.۲. 2-سیستم های تصادفی (stochastic)
این سیستم ها از روش های احتمالی پیروی و استفاده میکنند. به این صورت که به هر کلمه با توجه به استفاده آن در دیگر قسمت های آن متن یک نشانه تعلق میگیرد.
۲.۲.۳. 3- سیستم های تبدیل (Transformation)
این سیستم ها هم از دو فاز تشکیل شده اند. در فاز اول نشانه ای که بالاترین احتمال را دارد به هر عبارت تعلق میگیرد. در فاز دوم سیستم سعی در اصلاح نشانه ها دارد که با استفاده از قوانین خاص تعریف شده برای سیستم انجام خواهد شد.
۲.۲.۴. 4-سیستم های آماری (Statistical)
اینگونه سیستم ها نیز از داده های آماری استفاده میکنند به این صورت که برای مثال اگر به واژه و یا عبارت نا مفهومی برسند به سابقه آن عبارت در متن توجه میکنند. نکته قابل توجه در این سیستم ها این است که پیشرفت این سیستم ها سخت و هزینه بر است. زیرا برای پیشرفت و بهبود هر قسمت از نشانه گذاری باید داده های آماری را چک کند و بااستفاده از آن ها احتمالات را برای عبارات مختلف تصحیح کند.
الگوریتمی که در این بخش توضیح داده میشود ترکیبی از الگوریتم ای قانون محور و آماری است. در این الگورتیم 5 مرحله کلی برای شناسایی یک کلمه ناشناخته وجود دارد. 1-محاسبه احتمال نشانه ها برای آن عبارت 2- ساخت درخت parse برای عبارات 3- تصحیح و مرتب سازی درخت 4-محاسبه آمار دقیق برای عبارات 5-تخصیص نشانه به هر کلمه با توجه به بیشترین احتمال به دست آمده.
۲.۳. سیستم برچسب گذاری HunPos
سیستم برچسب گذاری HunPos که با دقت 96.9 درصد انجام میشود. 4
در واقع این سیستم پیاده سازی دوباره سیستم هایی است که از hidden marcov model استفاده میکنند.که در این پیاده سازی کاربر اجازه استفاده از تنظیمات و ویژگی های مختلف را دارد. اولین تفاوت این دو در محاسبه احتمال است. محاسبه احتمال در این الگریتم با در نظر گرفت نحالت قبلی و بعدی انجام میشود. و تفاوت بعدی در open source بودن آنهاست.این الوریتم برخلاف الگوریتم های دیگر open source است.
۲.۴. مقاله ای درباره تغییرات و سیر تکاملی سیستم های برچسب گزاری در زبان فارسی
بررسی و آنالیز انواع سیستم های برچسب گذاری در زبان فارسی 5
در این مقاله درباره چگونگی اعمال برچسب گزاری و انتقال آن از یک زبان ماند انگلیسی به زبان دیگر (که در اینجا فارسی است) صحبت میشود.
و به طور خاص درباره سه روش برچسب گزاری است از که عبارت است از سیستم های آماری، سیستم های حافظه محور و دو ورژن از سیستم های بر اساس تخمین و احتمالات. تفاوت سیستم های برچسب گزاری اغلب بر اساس میزان عملیات انجام شده بر روی داده هاست.
برای زبانی مثل فارسی فعالیت زیادی در این حوزه انجام نشده است و فعالیت های انجام شده نیز با الگوریتم های marcov model است.
مشکل اصلی ما در این زمینه دو مسئله است: حاشیه نویسی برای نشانه ها و همینطور ایجاد کپسول و یا مجموعه ای از نشانه هاست. در ادامه توضیحی درباره این مجموعه (کپسول) ارائه میشود.
۲.۴.۱. ساختار و ایجاد کپسولی از نسانه ها
این کپسول با بررسی روزانه اخبار و نوشته های مختلف به وجود می آید. و نشانه های به دست آمده که حدودا 550 عدد هستند را با ساختاری شبیه به درخت ذخیره سازی میکند. و قاعدتا این حجم زیاد نشانه ها به یک نشانه گزاری خوب در متون کمک به سزایی میکند.
اما یکی از مشکلاتی که این حجم از داده دارد این است که در راستای یادگیری ماشین این سیستم نشانه گزاری تاخیر ایجاد میکند. به عبارت دیگر زمان این یادگیری و بررسی نشانه ها افزایش چشم گیری دارد. و ما به دنبال آن هستیم که بتوانیم با نگه داشتن کارایی این سیستم و کپسول حجم آن را کمتر کنیم.
در ادامه درباره مراحل ساختن و ایجاد این کپسول میخوانیم.
1- انتخاب نشانه های مناسب
این کار با انجام و طی کردن چهار مرحله انجام میشود.
1- دامنه نشانه های هر عبارت را از چیزی که هست کمتر کنیم.
2- کاهش و حفظ نشانه هایی که به عبارتهای عددی (numeric) اشاره میکنند. و مشخص کردن آن ها به عنوان نشانه های default و مشخص
3- بعد از انجام دو مرحله اول، در مرحله سوم یکسری از نشانه های میمانند که قطعا درست هستند و باید در کپسول ما باشند. آنها را نیز ذخیره میکنیم و بعد از آن تعداد نشانه های بررسی نشده کمتر میشود.
4- حذف کردن نشانه هایی که به اسم (noun) و به فعل های کوتاه مربوط میشوند.
2- آنالیز بررسی آماری کپسول
بررسی میکنیم کدام نشانه های از همه بیشتر و کدام نشانه ها کمترین استفاده را داشته است.
3- ایجاد بستر برای تست و آزمایش این کپسول
در بررسی و تست کپسول ما باید به هر کدام از اعمال تست (test) و انجام عملیات (training) هزینه و زمانی را اختصاص دهیم. در اینجا ما 85% به 15% تقسیم بندی میکنیم و طبق جدول زیر اینکار را انجام خواهیم داد.
جدول اول نشان دهنده 5 بار اجرا انجام شده برای هر آزمایش است. و نشاندهنده تعداد کل token ها و تعداد استفاده شده در آزمایش است.
در جدول دوم (table 3) نشاندهنده درصد عبارات و کلمات شناخته شده و شناخته نشده در تست است.
۳. مراجع
[4] Seraji, Mojgan. "A statistical part-of-speech tagger for Persian." Proceedings of the 18th Nordic Conference of Computational Linguistics NODALIDA 2011. 2011. (دریافت مدل)
[6] A study on part of speech tagging - N. Jahangiri, M. Kahani, R. Ahamdi, M. Sazvar.pdf)