در این مطلب از بررسی NLP، به بررسی موضوع زیر خواهیم پرداخت:
یکی از کاربردهای معروف دسته بندی متون (Text Classification)، دسته بندی ایمیل ها به دو دسته اسپم و غیر اسپم (Spam , Ham) می باشد. خوب همونطوری که قطعاً با اسپم آشنایی دارند، اسپم (Spam)، به معنای ایمیل است که بدون درخواست گیرنده و معمولاً به صورت Bulk و همگانی برای افراد بی شمار فرستاده می شود. ایمیل های Spam بیشتر با هدف تبلیغاتی یا سوء استفاده های دیگر از سیستم دریافت پیام ارسال می شوند. امروز گوگل و سایر ارایه دهندگان سرویس های ایمیل، از روش های بسیار متنوعی جهت تشخیص اسپم از غیر اسپم استفاده می نمایند که شامل بررسی وضعیت Mail server و آدرس IP ارسال کننده و ... می باشد اما یکی از روش های اصولی، ممیزی محتوای ایمیل توسط روش های مبتنی بر NLP می باشد که یکی از این الگوریتم های ساده و معروف Naive Bayes Classifier می باشد که امروز طبق مطالب ارایه شده در کورس NLP دانشگاه Stanford به آن خواهیم پرداخت.
سنگ بنای یادگیری بیزی را تئوری بیز تشکیل می دهد. این تئوری امکان محاسبه احتمال ثانویه را بر مبنای احتمالات اولیه می دهد. قطعاً رابطه بیزین (Naive Bayes) که در شکل زیر آورده شده است بارها در هر کدام از دروس ریاضیاتی و به ویژه آمار و احتمالات آورده شده است اما امروز یک مثال عددی و کاربردی از آن را در تشخیص کلاس یک متن بررسی می کنیم.
برای شروع بهتر است در مورد مفهومی صحبت کنیم به نام Bag of Words یا BoW. کیف کلمات (BoW) یک مدل در پردازش زبان های طبیعی است که با هدف دسته بندی مستندات و متون استفاده می شود. ایده اصلی آن، به این صورت هست که به هر کدام از کلمات یک عدد Unique نسبت می دهیم و Feature بدست آمده بر اساس فرکانس تکرار هر کدام از کلمات به دست خواهد آمد.
توضیحات تکمیلی از طریق وب سایت دوست عزیزم، جناب آقای دکتر کاویانی، در لینک زیر آورده شده است.
ساخت کولهی کلمات(Bag of Words) در پیشپردازش متون
حال پس از بررسی مقدمات، نوبت به ریاضیات مساله می رسد. همانطور که در شکل زیر مشاهده می فرمایید، جهت به دست آوردن میزان احتمال اینکه یک داکیومنت یا رشته (متن) به یک کلاس (مثلاً کلاس مثبت یا کلاس منفی) از تئوری بیز استفاده می کنیم. داکیومنت با d و کلاس با c نمایش داده شده است.
جهت یافتن بیشترین میزان احتمال تعلق به هر کلاس از کلاس های در نظر گرفته شده، طبق روابط بالا می بایست Maximum a Posteriori را محاسبه نمود. در ادامه طبق Notation ارایه شده، میزان احتمال توالی کلمات و میزان احتمال تعلق به هر کلاس آورده شده است. البته شایان ذکر است که جهت جلوگیری از صفر شدن کل احتمال، میزان احتمال را با یک جمع می کنیم که در نهایت به شکل زیر خواهد شد.
به عنوان بخش پایانی یک مثال عددی را مورد بررسی قرار خواهیم داد. در این مثال، داده های Training و Test به صورت جدولی نشان داده شده است که جهت محاسبه، به این صورت عمل خواهیم کرد:
تعداد کلمه Chinese در کلاس C برابر با 5 می باشد (Count(w,c) = 5).
تعداد کل کلمات (حتی تکراری) در کلاس C برابر با 8 می باشد (Count(c) = 5)
تعداد کلمات Unique در کلاس C برابر با 6 می باشد (V = 6)
در نهایت با توجه به این که احتمال کلاس (c|d5)P بیشتر می باشد، داده تست که به صورت Chinese Chinese Chinese Tokyo Japan می باشد به کلاس C (که همان Chinese می باشد) متعلق خواهد بود.
یکی دیگر از اصلی ترین کاربردهای Text Classification، تشخیص احساسات یا Sentiment Analysis می باشد که در روزهای آتی به صورت مفصل در مورد آن بحث خواهیم نمود.
من، سهیل تهرانی پور، قصد دارم تا از طریق ویرگول برای شما بیشتر از NLP بگم تا بتونیم در کنار هم زبان قشنگ فارسی رو جهانی تر کنیم.
بیاین با هم یادگیری ماشین، یاد بگیریم. (Keep Calm and Learn Machine Learning)