انالیز احساسات یا sentiment analysis چیست.



به زبون ساده به معنی اینه که ببینیم توی یک متن دیدگاه و نظر در مورد یک موضوع خاص چیه. این روش توسط صاحبین کالا یا محصول میتونه خیلی خوب استفاده بشه.

مثلا فرض کنیم هفته پیش مدیران اسنپ تصمیم گرفتن که ببین چقدر از دیدگاه های مردم تو شبکه های اجتماعی ( توییتر | ایسنتا و ... ) موافق عملکردشون تو حواشی اخیر بوده یا چقدر مخالف. روشی که میتونه بهشون کمک کنه تا احساسات مردم رو تو این موضوع خاص بفهمن همین sentiment analysis هستش. ولی این روش چجوری کار میکنه. (اینم باید بگم خیلی از شرکت ها به ما امکان دسترسی به داده هاشونو برای این کار ها میدن. مثل twitter api.)


این روش با دو رویکرد کلی کار میکنه :

  • روش صندوق کلمات (rule base)
  • روش یادگیری ماشین(machin learning)

۱- تو روش صندوق کلمات (اسمشو از خودم درآوردم) ما یک مجموعه ای داریم که توش تعدادی معین کلمه رو قرار میدیم ( اصطلاحا lexicon ) و اونهارو از نظر بار معنایی ارزش گذاری میکنیم. مثلا میگیم کلمه عصرحجری بار معنایی منفی داره برای ما. این بار معنایی میتونه بصورت دودویی باشه (فقط مثبت منفی) یا چندگانه باشه ( منفی مثبت خنثی ... ). بعد از داشتن مجموعه کلمات باید متن هامون رو پیش پردازش کنیم ( پاکسازی متن و از این قبیل کار ها. به عنوان مثال حذف کردن عدد ها ). حالا متن رو بررسی میکنیم و میبینم چندتا کلمه مثبت یا منفی یا خنثی هستش در اخر با داشتن تعداد کل مثبت ها و منفی ها میفهمیم متن موافق ابقای راننده اسنپ بوده یا مخالف.


این روش صندوق کلمات نتیجه دقیقی میده اما مشکلاتی هم داره. مثلا بعضی اوقات کلمه ها تو معنی خودشون بکار نمیرن. مثل وقتی که جمع های پسرونه میخوان از یکی از رفیقاشون تعریف کنن :) کلماتی که استفاده میکنن عملا فحشه ولی دارن از رفیقشون به نیکی یاد میکنن. اینجور موقع ها این روش خطا میده.


۲- روش دیگه یادگیری ماشین هستش. این روش از الگوریتم های یادگیری ماشین استفاده میکنیم و الگوریتم رو با مجموعه داده های اولیه اموزش میدیم. بعد از این دیگه این الگوریتم آماده است که با گرفتن هر تعداد متن جدید بهمون بگه که این جمله بار معنایی مثبت داره یا منفی. این روش مزیتش بر روش اول اینه که الگوریتم نوع تکلم ما رو یاد میگیره و میفهمه اگر ما کلمه ای رو تو معنی واقعیش استفاده نکنیم منظورمون چی بوده. و یکی از مواردی که به عنوان مشکل ازش یاد میکنن اینه که این روش نیاز به داده های اولیه برای آموزش الگوریتم داره.


مثال های زیادی تو سطح وب برای این موضوع هست ولی سعی کردم خیلی عامینه توضیحش بدم سعی میکنم پیاده سازی با هر دو روش بسازم با زبان پایتون و لینکشو اخر همینجا اضافه کنم. در اخرم چندتا مقاله و فیلم خوب میزارم تو این موضوع اگر خواستید برید ببینید.


تفاوت دو روش پیاده سازی ۱

تفاوت دو روش پیاده سازی ۲

پنج مرحله از پیاده سازی

آنالیز احساسی نظر کاربران در مورد UBER

ویدیوی سیراج ( یه آدم حرفه ای تو این زمینه. یوتوبه البته )