Sentiment Analysis

در این مقاله سعی شده یکی از زمینه های تحقیقاتی پردازش زبان طبیعی را که در متن کاوی و داده کاوی هم به طور گسترده مورد بررسی قرار می گیرد به نام تحلیل گر احساس یا علایق را معرفی کنیم و روش های کار آن را همراه با کاربردهای آن در شبکه های اجتماعی و در نهایت برخی ابزارهای موجود را به اختصار شرح دهیم.
Sentiment Analysis(SA) و Opinion Mining(OM) یک زمینه تحقیقاتی است که نظرات، احساسات، ارزیابی ها، رفتارها و گرایش ها و عواطف نوشته شده با یک زبان نوشتاری را آنالیز می کند. به عبارتی این تحقیقات از حیطه تحقیقات کامپیوتری فراتر رفته و به دلیل اهمیت آن در اجتماع و کسب و کار وارد مباحث علوم مدیریتی و علوم اجتماعی می شود. افرایش اهمیت Sentiment analysis با رشد رسانه های اجتماعی مانند نظرسنجی ها، forum discussions ها، وبلاگ ها، توئیتر و شبکه های اجتماعی همزمان شده است. سیستم های Sentiment analysis تقریبا در همه زمینه های تجاری و اجتماعی مورد استفاده قرار می گیرند، زیرا نظرات و عقاید برای همه فعالیت های انسانی مهم بوده و تاثیر کلیدی بر رفتار ما دارند.
Sentiment Analysis  یا تحلیل احساس برخورد محاسباتی و ریاضی با نظرات، احساسات و متعاقبا با متن است.
Sentiment Analysis و Opinion Mining یا دیدگاه کاوی معنای مشترکی دارند ولی برخی محققان اظهار داشته اند که این دو کمی متفاوت هستند. OM نظارت مردم را درباره یک موجودیت (که می تواند یک فرد یا یک موضوع یا… باشد) را استخراج و آنالیز می کند؛ ولی SA احساس بیان شده در یک متن را پیدا کرده سپس آن را آنالیز می کند. بنابراین هدف SA  پیدا کردن نظرات مشخص کردن احساسی که نشان می دهند و سپس دسته بندی یا کلاسیفای کردن پلاریتی یا جهت گیری آن است.

شکل بالا فرایند SA  را در بررسی یک محصول نشان می دهد.
در واقع می توان گفت SA یک فرایند classification است. سه سطح دسته بندی اصلی در SA وجود دارد ۱) document-level 2) sentence-level و ۳) aspect-level.
در سطح سند یا سطح ۱، یک opinion document به این صورت دسته بندی می شود که نشان دهنده یک احساس یا نظر مثبت یا منفی است. این مرحله کل سند را یک واحد اطلاعاتی یا یک تاپیک در نظر می گیرد. در مرحله ۲ یا جمله احساس یا سنتیمنت مطرح شده در هر جمله دسته بندی می شود. مرحله اول برای تشخیص این بود که آیا جمله فاعلی است یا مفعولی. اگر جمله فاعلی بود در مرحله ۲ تعیین می شود که جمله بیانگر نظر مثبت بوده یا منفی. دسته بندی متن در مرحله سند یا جمله جزئیات کافی را به دست نمی دهد بنابراین به مرحله ۳ می رویم. در این مرحله جمله با توجه به جوانب خاص موجودیت ها احساس آنها را دسته بندی می کند. اولین مرحله پیدا کردن موجودیت ها و جوانب آنهاست. کسانی که نظر می دهند می توانند نظرات مختلفی برای موضوعات یا جوانب مختلف یک موجودیت یا موضوع یا شخص داشته باشند.
به عبارت ساده تر می توان گفت هدف sentiment analysis تعیین گرایش ها و طرز فکر نویسنده یا گوینده با توجه به برخی تاپیک ها یا کل متن موجود در یک سند است. این گرایش ممکن است قضاوت یا ارزیابی آن فرد، حالت احساسی نویسنده هنگام نوشتن آن متن یا ارتباط احساسی مورد نظر یا به عبارتی تاثیر احساسی که نویسنده مایل است بر خواننده بگذارد می باشد.
یکی از کارهای اولیه در sentiment analysis دسته بندی تمایل متن موجود در یک سند یا جمله است برای بررسی اینکه آیا نظر بیان شده در متن مثبت است یا منفی یا خنثی. sentiment classification های پیشرفته از این تمایلات یا پلاریتی ها فراتر رفته و حالات احساسی مانند angry، sad و happy را دسته بندی می کنند.
ظهور رسانه های اجتماعی مانند وبلاگ ها و شبکه های اجتماعی توجه و علاقه به sentiment analysis را بیشتر کرد. با زیاد شدن review ها، ratingها، recommendation ها و سایر شکل های اظهار نظر های آنلاین، online opinion تبدیل به نوعی جریان مجازی بیزینس هایی که به دنبال بازاریابی محصولاتشان بودند برای پیدا کردن فرصت های بهتر و مدیریت اعتبارشان گشت. بیزینس هایی که به دنبال خودکارسازی فرایند فیلترینگ نویز، درک مکالمات، تخصیص محتواهای مرتبط و به کار بستن آن به طور بهینه بودند به زمینه sentiment analysis روی آودند. ظهور پلتفرم های رسانه های اجتماعی متفرقه مانند ۴chan  و Reddit قضیه را پیچیده تر کرد. پروژه CyberEmotions به عنوان یک نمونه از پروژه های تحقیقاتی که در زمینه sentiment analysis در رسانه های اجتماعی انجام می شود اخیرا نقش احساسات منفی را در هدایت مناظرات شبکه های احتماعی مشخص کرده است.
مشکل اینجاست که بیشتر الگوریتم های sentiment analysis از ترم های ساده برای بیان احساس درباره یک محصول یا سرویس استفاده می کنند. ولی فاکتورهای فرهنگی، تفاوت های زبانی و محتواهای متفاوت تبدیل رشته ای از متن به یک احساس منفی یا مثبت بسیار مشکل می کنند. هرچه این رشته کوتاه تر باشد کار سخت تر می شود. اگرچه رشته متن های کوتاه ممکن است مشکل ایجاد کنند ولی sentiment analysisدر microblogging  نشان داده است که کلمه twitter  را می توان به عنوان یک شاخص معتبر برای احساس سیاسی در نظر گرفت. احساس سیاسی Tweet ارتباط نزدیکی به احزاب دارد و موقعیت سیاسی سیاست مدار نشان دهنده این است که محتوای پیام توئیتر چشم انداز سیاسی را نشان می دهد.

تکنیک های دسته بندی seniment
مراحل نشان داده شده در شکل بالا، مراحل و روش های تحلیل احساس هستند به اختصار در ادامه توضح داده می شوند.
انتخاب ویژگی در sentiment classification
اولین مرحله در دسته بندی احساس یا SC (مخفف sentiment classification) استخراج و انتخاب ویژگی های متن است. برخی از ویژگی های موجود عبارتند از:
Terms presence and frequency: این ویژگی ها کلمات، یا word n-grams یا تعداد تکرار آنها هستند. اگر کلمه ای در متن حاضر باشد به آن وزن باینری ۱ در غیر اینصورت ۰ می دهند یا از وزن های term frequency برای اینکه نشان دهند ویژگی چقدر مهم بوده استفاده می شود.
Parts of speech (POS): یافتن صفات، زیرا نشانه های مهمی برای نظرات هستند.
Opinion words and phrases: این کلمات اغلب برای بیان نظر استفاده می شوند مثل good، bad، like یا hate. از طرف دیگر برخی عبارات هم نشان دهنده نظر هستند مثل: cost me an arm and a leg. که مثلا نشان دهنده گران بودن است.
Negations: پیدا کردن یک کلمه منفی ممکن است جهت گیری نظر را عوض کند مثلا not good معادل است با بد.
انتخاب ویژگی را می توان به دو دسته روش های مبتنی بر lexicon که به یادداشت های انسان احتیاج دارند و روش های مبتنی بر آمار که روش های اتوماتیک هستند و متداول تر می باشند تقسیم کرد. روش های مبتنی بر lexicon اغلب با مجموعه کوچکی از کلمات seed آغاز می شوند، سپس این مجموعه را از طریق پیدا کردن مترادف ها یا منابع آنلاین برای رسیدن به یک لکسیکون یا دیکشنری بزرگتر راه اندازی می کنند (bootstrape).
تکنیک های شناسایی ویژگی یا کل سند را بصورت یک گروه از کلمات می بینند (Bag of Words (BOWs)) یا بصورت رشته ای که توالی کلمات داخل سند را نگهداری می کند. به دلیل سادگی فرایند دسته بندی از BOW  بیشتر استفاده می شود. متداول ترین مرحله انتخاب ویژگی حذف استاپ ورد ها و ریشه یابی است.
سه تا از متداول ترین روش های آماری انتخاب ویژگی عبارتند از:
Point-wise Mutual Information (PMI)
Chi-square (v2)
Latent Semantic Indexing (LSI)

تکنیک های Sentiment classification
در ادامه پس از کشف ویژگی SA هم از تکنیک های دسته بندی احساس استفاده می کند که در ادامه به طور مختصر به آنها اشاره میکنم:
تکنیک های SC را می توان به طور تقریبی به سه دسته تقسیم کرد:
machine learning approach
lexicon based approach
hybrid approach
رویکرد یادگیری ماشین از الگوریتم های یادگیری ماشین معروف و ویژگی های زبان شناختی استفاده می کند. رویکرد دوم یعنی مبتنی بر واژه نامه بر اساس sentiment lexicon، مجموعه ای از ترم های بیان احساسات شناخته شده و از پیش تعیین شده می باشد. این روش به دو روش مبتنی بر دیکشنری و مبتنی بر corpus تقسیم می شود که از روش های آماری و semantic برای پیدا کردن جهت گیری یا پلاریتی semantic استفاده می کنند. روش بعدی رویکرد ترکیبی است که هر دو رویکرد قبلی را ترکیب می کند و بسیار متداول است و روش lexicon در آن نقش کلیدی را در اکثر روش ها بازی می کند.
روش های دسته بندی متن با استفاده از رویکرد یادگیری ماشین را می توان به روش های یادگیری با ناظر و بی ناظر تقسیم کرد. روش های باناظر از تعداد زیادی اسناد آموزشی برچسب دار استفاده می کنند و روش های بدون ناظر را زمانی استفاده می کنیم که پیدا کردن این اسناد آموزشی مشکل باشد.
روش مبتنی بر لکسیکون مبتنی بر یافتن opinion Lexicon است که برای تحلیل متن استفاده می شود. در این رویکرد دو روش وجود دارد همان طور که گفته شد یک روش بر اساس دیکشنری است در جهت یافتن کلمات مربوط به نظردهی و کلمات Seed و سپس جستجو در دیکشنری برای یافتن مترادف ها و متضاد های آنها. روش دوم مبتنی بر corpus است که با لیستی از seed های opinion words ها شروع می کند و سپس در یک corpus بزرگ سایر opinion word ها را هم پیدا می کند تا به یافتن کلمات مربوط به opinion با رویکرد مختص به محتوا کمک کند. این کار را یا باروش های آماری یا باروش های semantic انجام می دهد.
فیلدهای مرتبط با sentiment analysis
برخی تاپیک ها هستند که در پرتو SA کار می کنند مثلا:
Emotion detection
Building resources
Transfer learning
پیام های بسیاری نشان دهنده نظرات درباره رویدادها، محصولات و سرویس ها، نقطه نظرهای سیاسی یا حتی احساسات نویسنده می باشند. Sentiment analysis در برنامه های کاربردی بسیاری از جمله تحلیل انعکاس رویدادها در شبکه های اجتماعی، تحلیل نظرات درباره محصولات و خدمات و درک بهتر جوانب ارتباطات اجتماعی در شبکه های اجتماعی آنلاین به کار گفته شده است. Online Social Networks یا (OSNها) تبدیل به پلتفرم های محبوب ارتباطی برای عموم برای گزارش کردن یا بیان افکار، نظرات و احساساتشان درباره همه چیز از رویدادهای اجتماعی گرفته تا مکالمات روزمره شده اند. سایز پایگاه های کاربری فعال و حجم داده های تولید شده روزانه در شبکه های اجتماعی آنلاین بسیار عظیم است. توئیتر که یک سایت یا شبکه اجتماعی میکرو بلاگینگ است ۲۰۰ میلیون کاربر فعال دارد که روزانه بیش از ۴۰۰ میلیون توئیت پست می کنند.بخش اعظمی از کاربران شبکه های اجتماعی محتویات مورد نظر خود را پابلیک یا عمومی می کنند مثلا در توئیتر ۹۰ درصد افراد این گونه اند. که این موضوع به جستجو کننده ها و شرکت ها این اجازه را می دهد که داده ها را با مقیاس بالا جمع آوری و آنالیز کنند. در نتیجه مطالعات زیادی تاپیک ها و نوشته ها و رویدادهای مورد توجه را در شبکه های اجتماعی آنلاین مورد بررسی قرار داده برای مثال رویدادهای سیاسی، نوسانات بازار سهام، شیوع بیماری، بلایای طبیعی و … . یکی از ابزارهای مهم مورد استفاده در این زمینه روشهای کشف sentiment های نمایش داده شده در پیام های شبکه های اجتماعی است. که با همان ترتیبی که قبلا توضیح داده شد و باهمان شیوه های یادگیری ماشین و… کار می کند. در ادامه باید گفت که اگرچه روش های مبتنی بر دیکشنری یا لکسیکون بر داده های برچسب دار مبتنی نیستند، ساخت یک دیکشنری مبتنی بر لکسیکال برای استفاده در مفاهیم گوناگون دشوار است. برای مثال در شبکه های اجتماعی آنلاین زبان عامیانه بسیار مرسوم است که در روشهای لکسیکال به ندرت پشتیبانی می شود. اطلاعات کمی در مورد  نحوه کار روشهای sentiment در شبکه های اجتماعی موجود است. در نتایج تحقیقاتی محدودی که موجود است نشان داده می شود که رویکردهای یادگیری ماشین (Naive Bayes، Maximum Entropy و svm) برای سایت هایی مثل توئیتر مناسبت ترند نسبت به روش های مبتنی بر لکسکال مانند LIWC. به طور مشابه روش های دسته بندی (SVM، Multinomial Naıve Bayes) برای توئیتز نسبت به SentiWordNet مناسبت ترند. با اینحال تصمیم گیری درباره اینکه کدام یک از روش های دسته بندی بهتر هستند یا آیا یک روش دسته بندی بهتر از روش های لکسیکال است در سناریوهای مختلف مشکل است.
Sentiment analysis به آن سوی تعداد لایک ها، share ها (به اشتراک گذاریها) یا کامنت هایی که روی یک آگهی تبلیغاتی، محصول جدید، پست وبلاگ و ویدئو گذاشته اید نگاه می کند تا بفهمد که مردم چه واکنشی به آن داشته اند. آیا این review مثبت بوده یا منفی یا مورد تمسخر واقع شده یا نسبت به آن بی تفاوت بوده اند.
کامنت ها، Share ها لایک ها، re-tweet ها، پین ها (در سایت پینترست) و مشغولیت های آنلاین معیارهای با ارزشی هستند که به ما نشان می دهند محصول ما یا تاپیک مورد نظر یا.. از نظر مردم چگونه است ولی اگر تنها به اعداد اکتفا کنیم ممکن است به ما امید غلط بدهد که محتوای ما برای محصول یا برند یا منظور مورد نظر ما خوب بوده است. ولی با کمک sentiment analysis می توان عمیق تر شد و بیشتر بررسی کرد و به کیفیت این نظرات هم توجه نمود.
معیارهای کیفی شامل نظرات، احساسات، میزان رضایت، کیفیت share ها، کامنت ها ، توئیت ها، پاسخ ها یا مکالمات و همین طور کیفیت مشغول بودن در سایت در طول زمان می باشند.
یک چارت sentiment analysis در شبکه های اجتماعی شبیه شکل پائین است.
با استفاده از مجموعه ای از ابزارهای مانیتورینگ ( مانند Google Analytics، Radian6 و …) می توان به مخاطبان گوش فرا داد و تشخیص داد که کدام پیامها دربردارنده فعالیت ها و خروجی های مورد نظر هستند.
در ادامه چند ابزار کاربردی برای بررسی Sentiment کابران آورده شده:
Meltwater
به tone کامنت ها دسترسی پیدا کرده و آگاهی جدیدی فراهم می کند که به درک مخاطب هدف کمک می کند.
Google Alerts
یک راه ساده و بسیار مفید برای مانیتور کردن کوئری های جستجو است. از آن می توان برای بررسی content marketing نیز استفاده کرد.
Google Analytics
یک ابزار قوی برای کشف اینکه کدام کانال بر مشترکین و خریداران شما بیشتر تاثیر می گذارد. ایحاد گزارش های متداول، یادداشت هایی برای نگهداری رکوردهای تفسیر نشده از بازار و عملیات طراحی وب و .. از فعالیتهایی است که می توان نام برد.

Tweetstats
یک ابزار جالب است که کمک می کند Twitter stat های خود را گراف کنید.

Facebook Insights
اگر بیش از ۳۰ لایک در صفحه  فیسبوک خود دارید می توانید محاسبه عملکرد آن را شروع کنید. تعداد کل لایک های صفحه، تعداد فن ها، لایک ها و آنلایک های جدید، بازدیدهای پیج و… را می توانید مشاهده نمایید.

LIWC
LIWC (Linguistic Inquiry and Word Count) یک ابزار آنالیز متن است که اجزای ساختاری، احساسی و شناختی یک متن داده شده را بر اساس استفاده از دیکشنری حاوی کلمات و مقوله هایی که دسته بندی شده اند، ارزیابی می کند. علاوه بر کشف تاثیر مثبت و منفی یک متن، LIWC مجموعه های دیگری از مقوله های sentiment هم ارائه می دهد. برای مثال کلمه Agree به مقوله کلمات زیر تعلق دارد:
assent, affective, positive emotion, positive feeling,
و  cognitive process.

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

SentiWordNet
این ابزار ابزاری است که در opinion mining به طور گسترده مورد استفاده قرار می گیرد و بر اساس یک دیکشنری لکسیکال انگلیسی به نام WordNet کار می کند. این دیکشنری صفات، اسامی، افعال و سایر کلاس های گرامری را به مجموعه هایی از مترادف ها به نام synset گروه بندی می کند. SentiWordNet سه امتیاز به synset های دیکشنری WordNet برای نشان دادن sentiment داخل متن نسبت می دهد: مثبت، منفی و خنثی. این امتیازات که بصورت ۰ و ۱ یا مقادیر تا ۱ هستند با استفاده از یک روش یادگیری ماشین semi-supervised به دست می آید. برای مثال فرض کنید از یک توئیت (به پست های روی توئیتر می گویند توئیت) synset زیر به دست آمده:
[bad,wicked, terrible] SentiWordNet به ترتیب به sentiment های مثبت، منفی و خنثی امتیازت ۰، ۰٫۸۵۰ و ۰٫۱۵۰ را اختصاص می دهد. SentiWordNet با یک دیکشنری لیبل دار ارزیابی می شود.

SASA
یکی دیگر از ابزارهای مبتی بر یادگیری ماشین SailAil Sentiment Analyzer (SASA) نام دارد. SASA مانند SentiStrengh بر اساس یادگیری مشاین کار می کند و ۱۷۰۰۰ توئیت لیبل دار را در انتخابات ۲۰۱۲ آمریکا ارزیابی کرد. این ابزار کد باز است و توسط Amazon Mechanical Turk توسعه داده شده که از این turker  ها خواسته شد تا پست های توئیتر را بر اساس مثبت، منفی، خنثی یا تعریف نشده دسته بندی کنند.

PANAS-t
PANAS-t یک مقیاس روانسنجی است برای بررسی نوسانات حالات کاربران توئیتر ارائه شده است. این روش از یکی از روش های شناخته شده روان شناسی به نام Positive Affect Negative Affect Scale استفاده می کند. PANAS-t مبتنی بر  مجموعه گسترده ای از لغات مرتبط با ۱۱ حالت روحی است:
شوخ بودن، اطمینان، آرامش، تعجب، ترس، غم، گناه، خصومت، کمرویی، خستگی، و توجه. این ابزار برای پیگیری هرگونه کاهش یا افزایشی در sentiment ها در طول زمان طراحی شده است.

منابع
http://www.cs.uic.edu/~liub/FBS/SentimentAnalysis-and-OpinionMining.html
http://en.wikipedia.org/wiki/Sentiment_analysis
http://homepages.dcc.ufmg.br/~fabricio/download/cosn127-goncalves.pdf
http://www.sciencedirect.com/science/article/pii/S2090447914000550
http://www.lct-master.org/files/MullenSentimentCourseSlides.pdf
http://www.iprospect.com/en/ca/blog/10-sentiment-analysis-tools-track-social-marketing-success/

——————————-

برگردان : هدی ابیضی

5 دیدگاه

  1. عالی بود… ممنون
    اگر امکان داره مطالب کامل تری در این زمینه احتیاج دارم. لطفا کمکم کنید

  2. بسیار ممنون مطلب مفیدی بود

  3. بسیارعالی
    من موضوع پایان نامه ارشدم تو همین زمینه هست اگ امکانش هست مطالب بیشری برای من ارسال کنید

  4. عالی بود … پایان نامه تحلیل احساس متن … زیاد وقتی ندارم لطفا اگه میشه کمکم کنید 🙁

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

دیدگاهتان را ثبت کنید

آدرس ایمیل شما منتشر نخواهد شدعلامتدارها لازمند *

*

x

شاید بپسندید

آیا در کارها حضور بشر لازم است؟

رشد تکنولوژی، نیاز به نیروی کار را انسانی را در بسیاری از ...