تشخیص لحن نظرات

وقتی برای یک محصول هزاران نظر توسط استفاده کننده‌ها قرار داده می‌شود، با چالش تحلیل این نظرات مواجهیم و اینکه بلاخره مخاطب چقدر از محصول ما راضی است. این مشکل وقتی شدیدتر می‌شود که مخاطب بی‌حوصله، نظرش را در چندین حرف توییت می‌کند و حالا ما باید بفهمیم که منظور مخاطب از این واژه‌های اختصاری و شکلک‌های خندان یا عصبانی چیست. بگذریم از مواقعی که برای خود انسان هم فهمیدن لحن نظر، چندان آسان نیست، مثل این یکی:

There's a thin line between likably old-fashioned and fuddy-duddy, and The Count of Monte Cristo ... never quite settles on either side.

ما در این پروژه می‌خواهیم که نظراتی را که پیرامون فیلم‌های مختلف داده شده است را در پنج دسته لحنی: «منفی، نسبتا منفی، خنثی، نسبتا مثبت و مثبت» دسته‌بندی نماییم.

مقدمه

شناسایی لحن1 که به آن نظرکاوی2 هم گفته می شود روشی است که در آن نظر، لحن، برآورد، گرایش و احساس مردم نسبت به موجودیت هایی مثل: محصولات ، خدمات، وقایع مورد مطالعه قرار می گیرد.
کاربردهای شناسایی لحن نظرات:
نظرات به دلیل تاثیر کلیدی که بر روی رفتار انسان می گذارد محور اصلی بیشتر فعالیت های بشر می باشد. هنگامی که ما میخواهیم یک تصمیمی بگیریم نیاز داریم که نظرهای دیگران را هم بدانیم. در دنیای واقعی شرکت ها و سازمان ها همواره به دنبال این هستند که نظرات مردم یا مشتریان را درباره ی محصولات و یا خدمات خود بدانند. مشتریان هم به دنبال این هستند که قبل از خرید یک محصول نظرات کاربرانی که قبلا از آن محصول استفاده کرده اند را بدانند و بر اساس آن اقدام به خرید یا عدم خرید آن محصول کنند. بدست آوردن نظرات مردم و مشتریان خود یک تجارت عظیم برای بازاریابی، روابط اجتماعی و حتی رقابت های انتخاباتی می باشد. در گذشته این اطلاعات از طریق برگه های نظرسنجی و یا آزمایش بر روی یک گروه خاص بدست می آمد ولی امروزه با گسترش روزافزون رسانه های اجتماعی (مثل بلاگ ها،توییتر و فیسبوک) افراد و سازمان ها از محتوای این رسانه ها برای تصمیم گیری استفاده می کنند و افراد دیگر لازم نیست که به نظر دوستان و آشنایان درباره یک محصول اکتفا کنند زیرا نظر و بحث های فراوانی درباره ی آن محصول در محیط وب وجود دارد. البته به خاطر فراوانی و تنوع سایت ها پیدا کردن و پایش سایت های مفید و چکیده گرفتن از اطلاعات موجود در آنها هنوز کاری دشوار و پیچیده می باشد، زیرا هر سایت به طور معمول دارای حجم زیادی از نظرات می باشد که برای انسان عادی استخراج و خلاصه سازی نظرات موجود سخت می باشد. در اینجاست که نیاز به یک سیستم شناسایی لحن نظرات احساس می شود. در سال های اخیر سیستم های تشخیص لحن نظرات در تقریبا تمام محدوده های ممکن از پیش بینی فروش محصولات و خدمات مشتریان گرفته تا پیش بینی وقایع اجتماعی و نتیجه انتخابات سیاسی پخش شده اند.
تعاریف پایه:
تعریف موجودیت3 e: یک موجودیت می تواند یک محصول، سرویس، موضوع، فرد، سازمان یا حتی یک واقعه باشد. و با دوتایی ( T , W ) نشان داده می شود که در آن T سلسه مراتبی از اجزا و زیر اجزای موجودیت و w مجموعه مشخصه های موجودیت e را نشان می دهند. همچنین هر یک از اجزا و زیر اجزا هم دارای یک مجموعه مشخصه می باشند. به طور مثال برای موجودیت دوربین مجموعه مشخصه W شامل: سایز ، وزن و کیفیت تصویر است و مجموعه اجزا T شامل لنز و باتری می باشد. برای راحتی کار از واژه ی جنبه (aspect) به جای دوتایی مجموعه اجزا و مشخصه های موجودیت استفاده می شود.
تعریف نظر: یک نظر شامل پنج تایی (e , a , s ,h , t) می باشد که در آن e نام موجودیت، a جنبه های موجودیت s، e لحن نظر بر روی جنبه ی a از موجودیت e h نظر دهنده و t زمانی است که نظردهنده h نظر خود را در مورد موجودیت e بیان میکند. هنگامی که نظر تنها در مورد یک موجودیت است برای a مقدار GENERAL قرار داده می شود.
هدف و وظایف کلیدی شناسایی لحن نظرات:
هدف پیدا کردن پنج تایی (e , a , s ,h , t) در یک سند d داده شده می باشد. ولی از آنجا که ما در این پروژه قصد داریم در مورد تشخیص لحن نظرات درباره ی فیلم صحبت کنیم در نتیجه می توان زیرمسئله‌های تشخیص نظردهنده، تشخیص موجودیت، تشخیص جنبه و زمان را برای ساده‌سازی حذف نموده و تنها لحن کلی یک نظر را بررسی نمود.
برای ادامه بحث بهتر است روش های زیر را برای استخراج ویژگی های متن تعریف کرد:
روش POS یا Position Of Speech :در این روش به یک از کلمات جمله یک تگ4 اختصاص داده می شود که نشان دهنده ی موقعیت کلمه در جمله است. این تگ ها می توانتد به صورت خیلی رسمی باشد مانند N, V, Adj, Adv, Prep. و یا به روش های دیگر مانند finer-grained که دارای 36 تگ PRP, PRP$, VBG, VBD, JJR, JJS … می باشند عمل کرد
بیشتر تکنیک های موجود برای دسته بندی در سطح سند از یادگیری با ناظر استفاده می کنند. البته تعدادی روش بی ناظر هم وجود دارد. که در قسمت کارهای مرتبط بیشتر توضیح داده خواهد شد.

کارهای مرتبط

[9] یک الگوریتم بی ناظر ساده را برای کلاس بندی نظرات ارائه کرده و نظرات را به دو دسته ی پیشنهادی5 و غیر پیشنهادی6 تقسیم میکند. این الگوریتم با روش PMI-IR برای پیش بینی جهت گیری لحن7 عبارات داخل نظر با استفاده از اندازه گیری میزان شباهت دو کلمه یا عبارت به کار گرفته می شود. این الگوریتم 3 مرحله دارد:
مرحله ی اول: استخراج عبارات دارای قید و صفت. اگرچه یک صفتِ تنها میتواند نشان دهنده ی خوبی یا بدی باشد ولی ممکن است برای تعیین جهت گیری8 لحن کافی نباشد. به طور مثال عبارت غیر قابل پیش بینی 9 برای فرمان اتومبیل یک جهت گیری منفی ولی برای یک فیلم یک جهت گیری مثبت دارد. بنابراین الگوریتم دو کلمه ی متوالی را استخراج میکند که یکی از کلمات قید و یا صفت بوده و دیگری زمینه را فراهم میکند. برای استخراج این دو تایی ها از روش برچسب گذاری POS استفاده می شود. به این صورت که دو کلمه ی متوالی در صورتی از نظر استخراج می شوند که برچسب آن ها مطابق با یکی از الگوهای موجود در جدول زیر باشند.

شکل 1.

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

مرحله ی دوم: تخمین جهتگیری عبارات استخراج شده در مرحله ی اول. در این مرحله از الگوریتم PMI-IR استفاده می شود. PMI بین دو کلمه ی word1 و word2 به صورت زیر تعریف می شود:
توضیح تصویر

که در این فرمول (P(word1 & word2 احتمال وقوع همزمان کلمه ی word1 با word2 را نشان میدهد. کسر داخل فرمول وابستگی آماری میان دو کلمه را نشان میدهد. جهت گیری هر عبارت به صورت زیر محاسبه میشود:
توضیح تصویر

مرحله ی سوم: محاسبه ی میانگین جهت گیری لحن عبارات در نظر داده شده و کلاس بندی آن نظر با عنوان پیشنهادی و یا غیر پیشنهادی.

[15] گاهی محدودیت های موجود برای ترکیب های عطفی مشکلاتی برای تعیین جهت گیری لحن این ترکیبات ایجاد میکند. به طور مثال جمله ی:
The tax proposal was simplistic and well-received by the public.
نادرست است به خاطر اینکه صفت “simplistic” دارای جهت گیری منفی و صفت “well-received” دارای جهت گیری مثبت می باشد و ما از کلمه ی “and” زمانی استفاده می کنیم که هر دو صفت دارای یک جهت گیری باشند. در این مقاله برای حل این مشکل از یک الگوریتم یادگیری با ناظر 4 مرحله ای زیر استفاده میکند:
مرحله ی اول: همه ی ترکیب های عطفی از نظر داده شده استخراج می شوند.
مرحله ی دوم: از یک الگوریتم یادگیری با ناظر استفاده میکند برای اینکه مشخص کند ترکیب عطفی داده شده دارای جهت گیری یکسانی است و یا دارای جهت گیری های مخالف هم هستند. خروجی این مرحله یک گراف است که نودها صفات و رابطه ی بین نودها نشان دهنده ی یکسانی یا مخالف بودن جهت گیری لحن بین آن هاست.
مرحله ی سوم:یک الگوریتم خوشه بندی 10 ساختار گراف را برای تولید دو زیرمجموعه صفات پردازش می کند.
مرحله ی چهارم: از آنجا که می دانیم به طور کلی صفات مثبت از صفات منفی بیشتر استفاده می شوند، خوشه ی با میانگین تکرار بیشتر را به عنوان جهت گیری لحن مثبت کلاس بندی می کنیم.

[6] این مقاله گفتگوهای آنلاین درباره فیلم ها را دنبال میکند. و با استناد به اینکه معمولا مردم تمایل دارند برای بیان لحن خود از یک سری عبارات مشخص استفاده کنند، کلاس پیام ها را با گشتن به دنبال مجموعه عبارات مشخصی که نشان دهنده ی لحن نویسنده ی آن، در رابطه با فیلم است مشخص میکند. این مجموعه عبارات می تواند شامل عبارات زیر باشند:
“great acting”, “wonderful visuals”, “terrible score”, “uneven editing”
که این عبارات باید به صورت دستی در یک لغت نامه خاص وارد شوند، و لحن معادل هر عبارت را هم باید به صورت دستی وارد کرد. این لغت نامه برای هر زمینه متفاوت می باشد و برای زمینه های جدید یک لغت نامه دیگر لازم است.

[1] در این مقاله برای کلاس بندی نظرات از سه الگوریتم یادگیری Naïve Bayes ، Maximum Entropy و SVM استفاده می شود. برای پیاده سازی این الگوریتم ها بر روی سند داده شده باید از یک چارچوب استاندارد پیروی کنیم: فرض می کنیم {f1 , f2 , … , fm} شامل m ویژگی از پیش تعیین شده ای باشند که میتوانند در یک سند ظاهر شوند. و (ni(d تعداد دفعاتی باشد که ویژگی fi در سند d رخ می دهد. در این صورت سند d را میتوان به صورت بردار زیر نمایش داد:

توضیح تصویر

روش اول: Naïve Bayes :
در این روش برای تعیین کلاس سند داده شده d از فرمول زیر استفاده می شود:
توضیح تصویر

که( P( c | d به صورت زیر بدست می آید:
توضیح تصویر

در این فرمول (P(d نقشی در تعیین کلاس *c ندارد. و برای تعیین (P( d | c می توان با فرض اینکه ویژگی ها مستقل از هم هستند به رابطه ی زیر رسید:
توضیح تصویر

اگر چه شرط مستقل بودن ویژگی ها در دنیای واقعی برقرار نمی باشد ولی این روش هنوز به طرز شگفت آوری خوب عمل میکند.

روش دوم Maximum Entropy:
در این روش برای تخمین ( P( c | d از روش زیر استفاده می کند:

توضیح تصویر

که در آن (Z(d یک تابع نرمال و λ یک پارامتر وزن دار است طوری که λ نشان دهنده ی این است که ویژگی fi به کلاس c اشاره میکند و (Fi,c( d , c هم به صورت زیر تعریف می شود:
توضیح تصویر

این روش هیچ فرضی مبنی بر مستقل بودن ویژگی ها نمی کند و به همین دلیل برای مواقعی که نمی توان چنین فرضی نمود از روش naïve Bayes بهتر عمل می کند.

روش سوم SVM :
ایده اصلی پشت پروسه ی آموزش، پیدا کردن یک هایپرپلن11 است که با بردار w ⃗ نشان میدهند که این هایپرپلن نه تنها بردار های d یک کلاس را از کلاس های دیگر جدا میکند بلکه بزرگترین هایپرپلن ممکن را پیدا می کند. برای این کار فرض می کنیم {c(j )∈ {1 ,-1 کلاس درست سند di باشد. پاسخ میتواند به صورت زیر باشد:

توضیح تصویر

آزمایش‌ها

دسته بندی در سه فاز انجام شده که در فاز اول، با استفاده از داده های آموزشی، دیکشنری استخراج می شود و سپس از آن برای ساختن بردار ویژگی استفاده می شود. بردار ویژگی با استفاده از تکنیک TF-IDF برای هر نمونه تولید می شود.در فاز دوم بردارهای تولید شده توسط تکنیک PCA 12 به ابعاد کوچکتری کاهش داده می شوند تا عملیات دسته بندی سریع تر انجام شود. و در نهایت در فاز سوم، الگوریتم های دسته بندی توسط مجموعه داده تولید شده تست می شوند و نتایج آنها با هم مقایسه می شود.

فاز اول: استخراج ویژگی

در فاز اول باید با استفاده از داده های خام، بردار ویژگی را برای هر نمونه تولید کنیم. برای انجام این کار ابتدا تمام کلمات را به همراه تعداد تکرار آنها استخراج می کنیم و سپس بردار ویژگی را تولید می کنیم. نحوه ی کار در ادامه خواهد آمد. در این بخش از تکنیک های زیر استفاده شده است :
Bag of words
TF-IDF
برای پیاده سازی قسمت های مختلف آن از زبان جاوا13 استفاده شده است، زیرا این زبان کتابخانه های کاملی برای کار با متن ارائه می دهد.
تهیه دیکشنری
در این مرحله تمام متون آموزشی مورد ارزیابی قرار گرفته و تمامی کلمات استفاده شده در آنها به همراه تعداد تکرار کلمات استخراج می شود.
بهینه سازی دیکشنری
اگر بخواهیم برای هر متن بردار ویژگی به طول دیکشنری تشکیل دهیم، تعداد زیادی عناصر اضافی وجود خواهد داشت و بسیاری از ویژگی ها صفر خواهند بود. در این قسمت از مدل bag of words استفاده می کنیم. در این مدل به جای تمام کلمات، تعدادی از آنها انتخاب می شوند. برای مثال کلمه ای مانند is نمی تواند نشان دهنده نوع یک متن باشد پس می توان آنرا از بردار ویژگی حذف کرد. کلماتی که ویژگی های زیر را دارند از بردار ویژگی حذف می شوند :
Auxiliary verbs، conjunctive words، “so”، “too”،...
ساخت بردار tf-idf
پس از استخراج دیکشنری و محاسبه فرکانس تکرار هر کلمه، برای ساخت بردار ویژگی هر نمونه از فرمول های زیر استفاده می کنیم:

توضیح تصویر

توضیح تصویر

فاز دوم: کاهش ابعاد

پس از آنکه دیتاست آماده شد، در فاز دوم ابعاد نمونه ها را کاهش می دهیم تا در مراحل بعدی الگوریتم ها در زمانی معقول اجرا شوند. مجموعه داده در ابتدا 17370 ویژگی دارد که برای دسته بندی بسیار سنگین می باشد. برای کم کردن ابعاد از الگوریتم PCA استفاده می کنیم. پیاده سازی این الگوریتم در dimensionality toolbox for matlab آمده است. با استفاده از این ابزار ابعاد نمونه ها را به 100 ، 500 و 1000 بعد کاهش می دهیم. حال مجموعه داده های جدید را در فایلی با نام reduced ذخیره می کنیم تا در گام بعد برای دسته بندی استفاده شود.

فاز سوم:آزمایش الگوریتم های دسته بندی

در این فاز، مجموعه داده آموزش و تست آماده شده است و می توان الگوریتم های دسته بندی را تست کرد. برای تست دسته بندها از توابع آماده متلب استفاده می کنیم. دسته بندهای زیر مورد آزمایش قرار گرفته اند :
·K-Nearest Neighbor
·Naïve Bayes
·Decision Tree
·Neural Network
·Support Vector Machine
دسته بند K-Nearest Neighbor:برای پیاده سازی این دسته بند از تابع knnclassify() استفاده می کنیم. مقادیر k را در بازه 1 تا 100 طبق جدول زیر در نظر می گیریم. به عنوان تابع فاصله هم، از 4 نوع فاصله زیر استفاده می کنیم :
Euclidean
Cityblock
Cosine
Correlation

توضیح تصویر

همانطور که در جدول زیر مشاهده می شود این دسته بند برای معیار فاصله cosine و k=50 بهترین عملکرد را دارد.
توضیح تصویر

دسته بند Naïve Bayes
برای پیاده سازی این دسته بند از NaiveBayes در متلب استفاده می کنیم. برای احتمال پیشین کلاس ها دو حالت زیر را در نظر می گیریم :
Empirical : احتمال پیشین هر کلاس بر اساس تعداد تکرار آن کلاس در داده های آموزشی
Uniform : احتمال پیشین کلاس ها برابر با هم

به عنوان توزیع فیت14 شده بر داده ها هم از دو حالت زیر استفاده می کنیم :
Normal
Kernel
همانطور که مشاهده می شود این دسته بند با توزیع kernel و احتمال Uniform بهترین عملکرد را دارد:

توضیح تصویر

دسته بند Neural Network
دسته بندی را بر روی تمام dataset های موجود انجام می دهیم. تعداد نورون های لایه مخفی هم بین مقادیر 5 تا 1000 مانند جدول تست شده و 1000 بهترین نتیجه را دارد.
توضیح تصویر

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

دسته بند Support Vector Machine
از کتابخانه libsvm استفاده می کنیم. مقدار C را از بین مقادیر 0.0001 تا 100000انتخاب می کنیم. هسته را به دو صورت در نظر می گیریم :
·Linear
·RBF
توضیح تصویر

بهترین حالت برای دو هسته را روی داده های اصلی تست می کنیم:
توضیح تصویر

جمع بندی
در جدول زیر بهترین عملکرد تمام دسته بندها آمده است. همانطور که مشاهده می شود دسته بند KNN و SVM بهترین عملکرد را داشته اند.
توضیح تصویر

کد مربوط به پروژه نیز در این لینک قابل مشاهده است.

کارهای آینده

همانطور که مشاهده می شود، بهترین الگوریتم دقت 64% را بدست آورده است که این نمی تواند پاسخ مناسبی باشد. با توجه به اینکه تعداد زیادی از دسته بندهای موجود تست شده اند به نظر می رسد با dataset موجود نمی توان به دقت بهتری دست یافت. برای بهبود کیفیت دسته بندی باید در فاز اول و دوم بردار ویژگی های دقیق تری را استخراج کنیم. و یا با استفاده از روشی مانند n-gram ساختار دقیق تری از متون را در بردار ویژگی منعکس کنیم. برای این کار میتوانیم به جای روش unigram که در فاز آزمایش استفاده شده از روش های bigram و trigramm استفاده کرد. به این ترتیب که در مدل زبانی bigram متون به صورت دو کلمه دو کلمه بررسی میشوند و تعداد تکرار برای هر دو کلمه ی متوالی در دیکشنری قرار داده می شود. در حال که در مدل زبانی trigram متون به صورت سه کلمه سه کلمه مورد بررسی قرار میگیرند و تعداد تکرار برای هر عبارت سه کلمه ای در دیکشنری قرار میگیرد. [16] نشان میدهد که برای برچسب زنی اجزای کلام در زبان فارسی میتوان با استفاده از روش های آماری n-gram ، مدل مخفی مارکوف و ترکیب آنها با دانش زبانی نتیجه بهتری بدست آورد.

مراجع

[1] Pang, Bo, Lillian Lee, and Shivakumar Vaithyanathan. "Thumbs up? Sentiment Classification using Machine Learning Techniques."
[2] Liu, Bing, and Lei Zhang. "A survey of opinion mining and sentiment analysis." Mining Text Data. Springer US, 2012. 415-463.
[3] Recursive Deep Models for Semantic Compositionality Over a Sentiment Treebank, Richard Socher, Alex Perelygin, Jean Wu, Jason Chuang, Chris Manning, Andrew Ng and Chris Potts. Conference on Empirical Methods in Natural Language Processing (EMNLP 2013).
[4] Bespalov, Dmitriy, Bing Bai, Yanjun Qi, and Ali Shokoufandeh. Sentiment classification based on supervised latent n-gram analysis. In Proceeding of the acmconference on information and knowledge management (ciKm-2011). 2011
[5] Li, Shoushan, Sophia Yat Mei Lee, Ying Chen, Chu-Ren Huang, and Guodong Zhou. Sentiment classification and polarity shifting. In Proceedings of the 23rd international conference on computational Linguistics (coLing -2010). 2010
[6] Tong, R.M. 2001. An operational system for detecting and tracking opinions in on-line discussions. W or king Notes of the A CM SIGIR 2001 Workshop on Operational Text Classification (pp. 1-6).New York, NY: ACM
[7] Mullen, Tony and Nigel Collier. Sentiment analysis using support vector machines with diverse information sources. In Proceedings of emnLP-2004. 2004
[8] Paltoglou, Georgios and Mike Thelwall. a study of information retrieval weighting schemes for sentiment analysis. In Proceedings of the 48th annual meeting of the association for computational Linguistics (acL-2010). 2010
[9] Turney, Peter D. thumbs up or thumbs down?: semantic orientation applied to unsupervised classification of reviews. In Proceedings of annual meeting of the association for computational Linguistics (acL-2002). 2002
[10] Mejova, Yelena and Padmini Srinivasan. exploring Feature Definition and Selection for Sentiment classifiers. In Proceedings of the Fifth international aaai conference on Weblogs and Social media (icWSm-2011). 2011
[11] Gamon, Michael, Anthony Aue, Simon Corston-Oliver, and Eric Ringger. Pulse: mining customer opinions from free text. advances in intelligent Data analysis Vi, 2005: pp. 121–132
[12] Abbasi, Ahmed, Hsinchun Chen, and Arab Salem. Sentiment analysis in multiple languages: Feature selection for opinion classification in web forums. acm transactions on information Systems
[13] Dasgupta, Sajib and Vincent Ng. mine the easy, classify the hard: a semi-supervised approach to automatic sentiment classification. In Proceedings of the 47th annual meeting of the acL and the 4th iJcnLP of the aFnLP (acL-2009). 2009 (toiS), 2008. 26(3)
[14] Daniel Jurafsky & James H. Martin. Speech and Language Processing: An introduction to speech recognition, computational linguistics and natural language processing.
[15] Hatzivassiloglou, V, & McKeown, K.R. Predicting the semantic orientation of adjectives. Proceedings of the 35th Annual Meeting of the A CL and the 8th Conference of the European Chapter of the A CL (pp. 174-181). New Brunswick, NJ: ACL.
[16] علی فارسی نژاد ، بهرام وزیر نژاد. برچسب زن اجزای کلام تقویت شده بهبود یافته با دانش زبانی .

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



  1. Semantic

  2. Opinion mining

  3. Entity

  4. Tag

  5. Semantic Orientation

  6. Orientation

  7. Unpredictable

  8. clustering Algorithm

  9. Hyperplane

  10. Principal Component Analysis

  11. Java

  12. Fit

ارزیابی آشنایی با مساله 1393/08/17
محسن ایمانی
  • تعریفی که شما از مسئله تشخیص لحن نظرات بیان نموده‌اید یک تعریف خاص می‌باشد که همانطور که ذکر فرمودید شامل شش زیرمسئله خواهد بود. ارائه راهکار برای هر کدام از این شش زیر مسئله خود دارای روش‌ها و چالش‌های متفاوتی می‌باشد. به همین خاطر پیشنهاد بنده این است که طبق تعریف اولیه مسئله، فرض بر این باشد که لحن نظرات در مورد یک فیلم قرار است مورد سوال است. پس زیرمسئله‌های تشخیص نظردهنده، تشخیص موجودیت، تشخیص جنبه و زمان را برای ساده‌سازی حذف نموده و تنها لحن کلی یک نظر در مورد فیلم مورد نظر خواهد بود.

  • بهتر بود در فاز اول و در انتهای مقدمه راهبرد و مسیری که برا ی حل مسئله مد نظر شماست را نیز به طور مختصر و کلی معرفی می‌کردید.

  • بهتر بود یک دسته‌بندی کلی در مورد روش‌های با ناظر و بی‌ناظر تشخیص لحن جمله ارائه می‌دادید و روش‌های مختلف را با توجه به مراجعی که جمع‌آوری نموده‌اید نام می‌بردید.

  • شما مراجع زیاد و مناسبی را جمع آوری کرده‌اید اما در متن خود از تعداد اندکی از آن‌ها استفاده کرده‌اید. البته در این فاز انتظار مطالعه و استفاده از همه مراجع نیز وجود ندارد ولی انتظار می‌رود بتوانید در طول پروژه از تمامی این مراجع استفاده کنید.

  • ساختار ارجاع به مراجع خود در متن را به صورت یکی از استانداردهای ارجاع درآورید. ضمنا این کار را هر جایی که از مرجعی نقل قول کرده‌اید انجام دهید.

ارزیابی مطالعه کارهای مرتبط 1393/09/15
تایید شده

شما تعدادی از مراجع را به دقت بررسی کرده‌‌اید و توانسته‌اید که روند کلی مراجع مورد نظر را بفهمید. همچنین مراجع بررسی شده مراجع مناسب و معتبری هستند.
می‌توانید بعضی از توضیحات نوشته شده را خلاصه‌تر کنید. در مورد کارهای دیگران بهتر است مرحله‌ها و ایده اصلی نوشته شود و نیاز نیست که به صورت کامل هر کدام توضیح داده شود. پیشنهاد می‌کنم به جای توضیح زیاد یک منبع‌‌، ایده اصلی منابع بیشتری را توضیح دهید. همچنین مراجع بررسی شده همگی قدیمی هستند. بهتر است علاوه بر مراجع معتبر چند مرجع جدیدتر را هم بررسی کنید.
نحوه ارجاع به منابع اگر به طریقی باشد که پس از حذف شماره ارجاع به متن آسیب نرسد بهتر است، مثلا به جای عبارت "[9] یک الگوریتم بی ناظر ساده را... " می‌توان از عبارت "ترنی [9] یک الگوریتم بی ناظر ساده را... " استفاده کرد.
قالب بخش مراجع شما ایراد دارد.پیشنهاد می‌کنم که برای نوشتن مراجع یک قالب استاندارد را انتخاب کنید و تمام مراجع را در همان قالب بنویسید.
بهتر است که رابطه‌ها و جدول‌ها را به صورت متنی قرار دهید و از گذاشتن تصویر رابطه‌ها خودداری کنید. به جای واژه‌های کلاس و کلاس‌بندی می‌توانید از واژه‌های دسته و دسته‌بندی استفاده کنید.

محسن ایمانی

شما در این پژوهش‌نامه توانسته‌اید هدف این فاز که ارائه یک دید کلی نسبت به انواع روش‌های حل مسئله می‌باشد را محقق سازید. اما بهتر است برای فاز آینده نکات زیر را مورد توجه قرار دهید:

  • یکی از اصلی‌ترین بخش‌های تشخیص لحن استخراج خصیصه‌ها می‌باشد که از چه خصیصه‌هایی و به چه صورت استفاده شود. به نظرم لازم بود بخش استخراج خصیصه‌ها به صورت مفصل‌تر شرح داده می‌شد.

  • بهتر بود کارهای مرتبط معرفی شده در قالب یک دسته‌بندی ارائه می‌شدند. مثلا روش‌های مبتنی بر یادگیری و روش‌های غیر مبتنی بر یادگیری، و یا روش‌های یادگیری با ناظر و روش‌های یادگیری بی‌ناظر. به این ترتیب خواننده راحت‌تر می‌توانست انواع روش‌ها را دسته‌بندی نموده و شباهت‌ها و تفاوت‌های آن‌ها را درک کند.

  • چیزی که به خواننده در مطالعه کارهای مرتبط بسیار کمک می‌کند، مقایسه بین روش‌ها و یا حداقل بیان ویژگی‌ها، چالش‌ها و یا کاستی‌های هر روش است که باعث می‌شود خواننده بتواند بعد از مطالعه این بخش روش مناسب را تشخیص داده و یا دلیل استفاده از روش انتخابی شما را درک نماید؛ که جای این مسئله در پژوهش‌نامه شما خالیست.

به عنوان یک پیاده‌سازی اولیه و شروع کار می‌توانید از پیاده‌سازی زیر که مربوط به مسابقه تشخیص لحن kaggle می‌باشد استفاده کنید:
An entry to kaggle's 'Sentiment Analysis on Movie Reviews' competition

ارزیابی گزارش نتایج آزمایش 1393/10/13

با عرض سلام
این پروژه خوب پیاده سازی شده. استفاده از چندین دسته بند نشان می دهد که وقت زیادی صرف پیاده سازی آن شده..
همچنین جدول ها و نمودار ها به خواننده در مقایسه کردن این دسته بند ها کمک زیادی می کند.
اما چند نکته قابل توجه است :
-بهتر بود در کدها توضیحات کمی بیشتر بود تا خواننده کد ها راحتتر بتواند متوجه شود.
-در جدول آخر که مقایسه بین خطاهای دسته بند ها رو نشان می دهد احساس می کنم خطای knn اشتباه نشان داده شده است .
-بهتر بود کمی هم درباره ی داده ها و نوع آن صحبت می شد.
.
. در کل این پروژه خوب پیاده سازی شده است ...
با آرزوی موفقیت

محسن ایمانی

کار شما در این بخش بسیار خوب و کامل بود. اما نکات زیر را برای فاز آینده مورد توجه قرار هید:

  • مجموعه داده‌ی آموزشی و ارزیابی که کار روی آن صورت گرفته است را معرفی نمایید.

  • به نظر می‌رسد برای بهبود نتایج خود لازم است در بخش استخراج خصیصه‌ها، خصیصه‌های بهتر و پیچیده‌تری را نسبت به tfidf انتخاب نمایید. (برای این کار می‌توانید به مراجع خود رجوع کرده و ببینید آن‌ها از چه خصیصه‌های برای این کار استفاده کرده‌اند.)

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

تایید شده

براي نوشتن اين پروژه خسته نباشيد عرض مي كنم خيلي دقيق روند كار توضيح داده شده از توضيح بي جا و اضافي خود داري شده است فقط چند نكته اي كه به نظرم مي رسد اين است كه : ١- موقع رفرنس دهي معمولا در پايان پاراگراف به آن اشاره مي شود نه در آخر ٢- فرمول ها را كاش به جاي عكس گرفتن تايپ مي كرديد ٣- براي بهبود نتايج كاري انجام نگرفته است در حالي كه فاز آخر پروژه به اين اختصاص داشته است.

رد شده

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

تایید شده

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

تایید شده

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

تایید شده
  • فاز‌های قبل از فاز « آزمایش» به خوبی نوشته شده است و فردی که هیچ دیدی نسبت به این موضوع ندارد می‌تواند با یک بار مطالعه، کلیت آن را متوجه شود.

  • نگارش مقاله هم به خوبی صورت گرفته ولی برخی اصول نگارشی مانند نیم‌فاصله رعایت نشده است که با توجه به نگارش خوب مقاله، خیلی به چشم نمی‌خورد.

  • بهتر بود توضیح می‌دادید چرا برای این مسئله‌ی خاص(فیلم‌ها) فقط لحن کلی یک نظر را بررسی می‌کنید و از دیگر پارامتر‌های موجود در پنج تایی (e , a , s ,h , t) استفاده نمی‌کنید.

  • در فاز آزمایش بهتر بود کارهایی که انجام می‌دهید + فرمول‌های استفاده شده را بیشتر توضیح می‌دادید تا روند انجام این کار شفاف‌تر می بود.
    نتیجه‌گیری: در کل مقاله به صورتی نوشته شده که با یک بار مطالعه می‌توان روند کلی آن را متوجه شد و تا جای ممکن سعی شده است جزئیات مورد نیاز مسئله ذکر شود. مشکلات کوچکی نیز در مسئله وجود داشت که ذکر شد.

محسن ایمانی

شما در این فاز عملا کار جدیدی انجام نداده‌اید و تلاشی برای بهبود نتایج قبلی خود نکرده‌اید. همچنین هیچ‌کدام از نکات منفی فاز قبل را هم که بیان شده بود برطرف نکرده‌اید. در کل نقاط ضعف این پژوهش را می‌توان به صورت زیر بیان نمود:

  • مجموعه داده آموزش و ارزیابی معرفی نشده است.

  • تلاشی برای بهبود مورد نظر در فاز آخر صورت نگرفته است. انتظار می‌رفت آن چیزی را که به عنوان کارهای آینده بیان کرده‌اید (و یا هر تلاش دیگری برای بهبود نتایج) را در فاز آخر پیاده‌سازی کرده و نتایجش را گزارش می‌کردید.

  • گزارشی از میزان دقت کارهای مرتبط با پژوهش خود ارائه نکرده و به خواننده دیدی از این که میزان دقت روش‌های ارائه شده در این پژوهش در چه حدودی هستند ارائه نکرده‌اید.