برچسب‌زنی اجزای سخن (تحقیقاتی)

تغییرات پروژه از تاریخ 1396/10/07 تا تاریخ 1396/11/11
یکی از خصوصیاتی که به عنوان ورودی در اکثر وظایف پردازش زبان طبیعی استفاده می‌شود، برچسب اجزای سخن است. برای این منظور یک مجموعه تگ (tagset) مانند شکل زیر انتخاب می‌شود و به هر واژه در متن یک برچسب اختصاص داده خواهد شد.

[![نمونه ای از مجموعه برچسب گذاری روی یک متن که همراه با علامت و نماد هر برچسب ارائه شده است. در این نمونه که مربوط به تعیین نقش دستوری هر واژه در پیکره است هر دستور با یک نماد جداگانه مشخص شده است که مخفف واژه انگلیسی آن دستور است.](https://camo.githubusercontent.com/5ebb3f17f54c7a9c61f610f2ad41bffbdb921ca3/687474703a2f2f66756d626c6f672e756d2e61632e69722f67616c6c6572792f3234392f546167677365742e6a7067)](https://camo.githubusercontent.com/5ebb3f17f54c7a9c61f610f2ad41bffbdb921ca3/687474703a2f2f66756d626c6f672e756d2e61632e69722f67616c6c6572792f3234392f546167677365742e6a7067)

کاربرد اصلی و ریشه ای این مسئله  در تعیین نقش دستوری واژه ها در متن ورودی ("پیکره") و نسبت دادن برچسب های واژگانی به واژه ها و نشانه های به کار رفته در یک متن است.

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

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

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

چندین روش مختلف برای برچسب گذاری مطرح میشود:
1- روش مبتنی بر قواعد
2- روش آماری محض 
3- روش مبتنی بر گذار

در برچسب گذاری رده بندی هایی برای کلمات صورت می گیرد. و برچسب های مختلف در گروه هایی دسته بندی میشوند. برای مثال انواع فعل در یک گروه قرار میگیرند. به این رده بندی برچسب گذاری ها، "مجموعه برچسب" گفته میشود.
روش های رده بندی را میتوان به دو دسته تقسیم بندی کرد:
1- روشی که ابتدا رده بندی برای کلمات در برچسب گذاری انجام شده است و بعد از آن به سراغ ابهام زدایی این رده بندی ها میرویم.
2- روشی که در حین رده بندی ابهام زدایی نیز صورت میگیرد.

ورودی سیستم های برچسب گذاری شامل مجموعه ای از برچسب های ممکن و همینطور رشته ای است که میخواهیم برچسب گذاری کنیم.
در اینجا منظور از برچسب های ممکن مجموعه ای است که سیستم در آغاز دریافت میکند و براساس آن برچسب گذاری را انجام میدهد و در واقع میتوانیم از آن به عنوان قانون برچسب گذاری در آن سیستم یاد کنیم.
و خروجی آن نیز رشته ای است که به خوبی برچسب گذاری شده. در اینجا هر چه برچسب گذاری به حالت ایده آل نزدیک تر باشد و دقیق تر انجام شده باشد "خوب" تر است.

# کارهای مرتبط
سیستم های پیاده سازی شده توسط الگوریتم hidden marcov model. این سیستم در نرم افزار تبدیل نوشته به صدا "پارس گویان" مورد استفاده قرار گرفته است. [1](http://lexicometrica.univ-paris3.fr/jadt/jadt2008/pdf/azimizadeh-arab-quchani.pdf)
این مقاله نیز از دیگر مقالات در زمینه الگوریتم marcov model است. [2](http://www.bnas.org/Science/2014/Vols.%208,%20N1/412.pdf)

یک الگوریتم ترکیبی از الگوریتم های احتمالی و قانون محور است که در مقایسه با دیگر الگوریتم های بچسب گذاری از این جهت برتری دارد که نیازی به جمع آوری اطلاعات و دانش از قبل ندارد. این الگوریتم نیازی به دامنه ندارد و مستقل از دامنه است زیرا از قوانین مورفولوژیک استفاده میکند. [3](http://www.lrec-conf.org/proceedings/lrec2008/pdf/875_paper.pdf)

سیستم برچسب گذاری HunPos که با دقت 96.9 درصد انجام میشود. [4](http://uu.diva-portal.org/smash/get/diva2:421097/FULLTEXT02) 
## سیستم های برچسب زنی بر پایه الگوریتم Hidden Marcov Model

 سیستم های پیاده سازی شده توسط الگوریتم hidden marcov model. این سیستم در نرم افزار تبدیل نوشته به صدا "پارس گویان" مورد استفاده قرار گرفته است. [1](http://lexicometrica.univ-paris3.fr/jadt/jadt2008/pdf/azimizadeh-arab-quchani.pdf) [2](http://www.bnas.org/Science/2014/Vols.%208,%20N1/412.pdf)
در این مقاله بر استفاده این الگوریتم برای تبدیل سخن به متن و همینطور پیدا کردن حروف اضافه در جملات فارسی تاکید شده است.

سیستم برچسب زنی TnT این سیستم در داده های امتحان شده خود 2.5 میلیون جمله دارد و مجموعه نشانه ها (tag) آن 38 عدد است. که دقت آن به 96.64% نیز میرسد. در راستای این سیستم و با استفاده از این روش دو تحقیقگر به نام های جباری و Allison سیستمی به اسم پارس گویان پیاده سازی کرده اند. این اولین سیستم برای برچسب گزاری جملات و متون فارسی بوده است.
همچنین در ادامه به برخی چالش هایی که دراین کار برخورد میکنیم اشاره کرده است. برای مثال در زبان فارسی کلمه ای مانند: "میروم" و یا "کتابها" هر کدام به سه شکل مختلف نوشته میشوند.


که یا به صورت بدون فاصله و چسبیده است و یا با فاصله. گاهی اوقات هم به صورت نیم فاصله که خیلی مرسوم نیست. در کلمه "میروم" اگر "می" به اشتباه "مِی" (mey) خوانده شود به معنای آن در جمله تغییر خواهد کرد.
در برخی کلمات با پسوند نیز چالش هایی وجود دارد. برای مثال پسوند "تر" به معنی "مقایسه" است و میتواند به معنی "خیس" هم به کار رود. 
در نتیجه در اینگونه چالش ها معمولا از یک درخت تصمیم گیری استفاده میشود. و حالت های مختلف که ممکن است برای یک کلمه و یا یک عبارت پیش بیاید را در مراحل مختلف مورد بررسی قرار میدهد. در بخش آزمایش ها بیشتر به این موضوع پرداخته میشود.

در این الگوریتم از این فرمول برای مقایسه دو نوع از احتمالات استفاده میشود. احتمال "انتقال نشانه" (tag transition) و احتمال "کلمات" (word) 
احتمال کلمات (Wi) یعنی احتمال تخصیص یک نشانه (tag) به یک کلمه چقدر است. و احتمال انتقال نشانه (Ti) نشان دهنده احتمال تخصیص یک نشانه به نشانه بعدی است.  

##معرفی یک الگوریتم خاص در سیستم های برچسب گذاری

یک الگوریتم ترکیبی از الگوریتم های احتمالی و قانون محور است که در مقایسه با دیگر الگوریتم های بچسب گذاری از این جهت برتری دارد که نیازی به جمع آوری اطلاعات و دانش از قبل ندارد. این الگوریتم نیازی به دامنه ندارد و مستقل از دامنه است زیرا از قوانین مورفولوژیک استفاده میکند. [3](http://www.lrec-conf.org/proceedings/lrec2008/pdf/875_paper.pdf)

الگوریتم های نشانه گذاری سعی میکنند که عیوب و کاستی های ورژن های قبلی الگوریتم را بهبود ببخشند. همچنین سیستم های نشانه گذاری بر اساس الگوریتمی که استفاده میکنند دسته بندی میشوند.
یک نمونه از دسته بندی این سیستم ها به نام 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](http://uu.diva-portal.org/smash/get/diva2:421097/FULLTEXT02) 

در  واقع این سیستم پیاده سازی دوباره سیستم هایی است که از hidden marcov model استفاده میکنند.که در این پیاده سازی کاربر اجازه استفاده از تنظیمات و ویژگی های مختلف را دارد. اولین تفاوت این دو در محاسبه احتمال است. محاسبه احتمال در این الگریتم با در نظر گرفت نحالت قبلی و بعدی انجام میشود. و تفاوت بعدی در open source بودن آنهاست.این الوریتم برخلاف الگوریتم های دیگر open source است.

بررسی و آنالیز انواع سیستم های برچسب گذاری در زبان فارسی [5](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.99.5051&rep=rep1&type=pdf)
بررسی و آنالیز انواع سیستم های برچسب گذاری در زبان فارسی [6](http://5thsastech.khi.ac.ir/data1/Computer/1%20(19).pdf)

# آزمایش‌ها

# کارهای آینده

# مراجع

+ [1] [Azimizadeh, Ali, Mohammad Mehdi Arab, and Saeid Rahati Quchani. "Persian part of speech tagger based on Hidden Markov Model." 9th International Conference on the Statistical Analysis of Textual Data. 2008.](http://lexicometrica.univ-paris3.fr/jadt/jadt2008/pdf/azimizadeh-arab-quchani.pdf)
+ [2] [PSTM: Part-Of-Speech Tagger for Persian Based on Markov Model. Seyyed Ahmad Alavi ,Behrouz Minaei Bidgoli ,Morteza Okhovvat](http://www.bnas.org/Science/2014/Vols.%208,%20N1/412.pdf)
+ [3] [Shamsfard, Mehrnoush, and Hakimeh Fadaei. "A Hybrid Morphology-Based POS Tagger for Persian." LREC. 2008.](http://www.lrec-conf.org/proceedings/lrec2008/pdf/875_paper.pdf)
+ [4] [Seraji, Mojgan. "A statistical part-of-speech tagger for Persian." Proceedings of the 18th Nordic Conference of Computational Linguistics NODALIDA 2011. 2011.](http://uu.diva-portal.org/smash/get/diva2:421097/FULLTEXT02) ([دریافت مدل](http://stp.lingfil.uu.se/~mojgan/tagper.html))
+ [5] [Evaluation of Part of Speech Tagging on Persian Text - Fahimeh Raja Hadi Amiri Samira Tasharofi Mehdi Sarmadi Hossein Hojjat](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.99.5051&rep=rep1&type=pdf)
+ [6] [A study on part of speech tagging - N. Jahangiri, M. Kahani, R. Ahamdi, M. Sazvar](http://5thsastech.khi.ac.ir/data1/Computer/1%20(19).pdf)
+ [Mohseni, Mahdi, and Behrouz Minaei-Bidgoli. "A Persian Part-Of-Speech Tagger Based on Morphological Analysis." LREC. 2010.](http://www.lrec-conf.org/proceedings/lrec2010/pdf/107_Paper.pdf)

# پیوندهای مفید

+ [پردازش زبان فارسی در پایتون](http://www.sobhe.ir/hazm)
+ [برچسب‌گذاری خودکار اجزای واژگانی کلام، پروژه درس هوش مصنوعی، دانشگاه علم و صنعت، 1388](http://bayanbox.ir/id/7261204785026299944?download)
+ [برچسب‌گذاری بر اساس مقوله دستوری، پروژه درس هوش مصنوعی، دانشگاه علم و صنعت، 1388](http://bayanbox.ir/id/7069998416872188020?download)
+ [پیکره بی‌جن‌خان](http://ece.ut.ac.ir/dbrg/bijankhan/)