این مطلب، به بررسی دو مورد اختصاص دارد:
در علوم کامپیوتر و زبان محاسباتی، Edit Distance جهت محاسبه و کمیت سازی میزان تفاوت دو کلمه یا رشته تعیین می شود. روش های متعددی جهت این امر وجود دارد که Levenshtein یکی از روش های معروف این حوزه به شمار می رود که در شکل زیر الگوریتم محاسبه آن آورده شده است. از این روش در بررسی صحت نوشتار و Spelling کلمات نیز استفاده می شود.
فاصله Levenshtein با 3 اپراتور درگیر است که با آن ها فاصله نهایی را محاسبه می نماید:
در این روش، قاعده محاسبه به این صورت است که بین دو کلمه مورد نظر، جدولی تشکیل می گردد که یکی در ستون و یکی در سطر (کاراکتر به کاراکتر) می نشینند. سپس همانطور که در شکل زیر به عنوان مثال آورده شده است، هر اپراتور "هزینه ای برابر با یک" خواهد داشت.
* نمونه ای دیگر از نحوه محاسبه و تشکیل جدول به روش Levenshtein در این لینک آورده شده است که علاقمندان می توانند جهت مطالعه بیشتر به آن مراجعه نمایند. *
به عنوان مقدمه جهت ورود به مدل های موجود برای زبان های طبیعی، ابتدا باید گفت که در هر شبیه سازی و حل مسئله، یک مدل سازی اولیه لازم است. بسیاری از این مدل ها، از یک پس زمینه ریاضی برخوردار هستند؛ مانند گراف، احتمالات و ... . مدل N-Gram یکی از این مدل هاست. در این مدل، از آمار کلاسیک و احتمال بهره گرفته شده است. فرض کنید هر کدام از Nodeها را به صورت یک رأس در گراف هستند که می تواند به رأس دیگری یال جهت دار داشته باشد. این یال جهت دار، نشان دهنده یک نوع رابطه است که با توجه به مورد دلخواه ما می تواند معانی متفاوتی داشته باشد. مثلاً می تواند توالی دو کلمه باشد (اگر کلمه ای بعد از کلمه دیگری بیاید، یک یال از اولی به دومی وجود دارد). به یک توالی n تایی از این رأس ها، N-Gram می گوییم (توالی های 3gram، 2gram و ... نیز از مدل های دیگر پیشنهادی می باشند).
در این مدل، یک مجموعه داده های آماری بسیار بزرگ نیاز داریم که هر کدام مجموعه ای از این نشانه ها به همراه روابط بین آن ها است. برای مثال، در مورد یک زبان خاص، یک سری متن به آن زبان می باشد. حال روابطی در این مدل تعریف می شود که می توان با استفاده از آن، درستی یک توالی خواص از این نشانه ها را بررسی کرد.
فرض کنید می خواهیم درستی عبارت a1→a2→a3→a4 را مورد ارزیابی قرار دهیم. در این مدل، احتمال درستی به صورت یک عدد تعیین می شود که هرچه داده های آماری ما بیشتر باشد، نتیجه مطلوب تر است. عبارت بالا را به اجزای زیر تقسیم می کنیم و تعداد تکرار هر کدام را در داده های آماری پیدا می کنیم.
همانطور که در شکل زیر مشاهده می نمایید، یک مثال از نحوه محاسبه Maximum Likelihood که بر اساس Chain Rule می آید، آورده شده است.
در انتها، یک مساله باز می ماند که اگر تنها یکی از این احتمال ها صفر باشد، کل رابطه فوق و در نتیجه احتمال کل صفر خواهد شد؛ یکی از روش های روبرویی با این چالش، افزودن مقداری ثابت در احتمال کل می باشد که در روش های ریاضیاتی و محاسباتی بیشتر به آن اشاره می شود. اما در این جا، طبق سیلابس ارایه شده در دوره NLP دانشگاه Stanford، جهت افزایش سرعت محاسبه (جمع سریعتر از ضرب می باشد) و نیز جلوگیری از Underflow در فضای لگاریتمی با مقادیر احتمالات برخورد می کنیم. منظور از Underflow این است که در صورت ضرب چندین عدد کمتر از یک، عدد نهایی بسیار کوچک خواهد شد و در گام های بعدی کار ما را سخت خواهد کرد.
من، سهیل تهرانی پور، قصد دارم تا از طریق ویرگول برای شما بیشتر از NLP بگم تا بتونیم در کنار هم زبان قشنگ فارسی رو جهانی تر کنیم.
بیاین با هم یادگیری ماشین، یاد بگیریم. (Keep Calm and Learn Machine Learning)