بخشی از مقاله
چکیده
با گسترش اینترنت و استفاده روز افزون شبکه اجتماعی شاهد حجم زیادی از نظرات کاربران در مورد موضوعات مختلف هستیم و دسته بندی احساسات موجود در این اطلاعات امروزه یکی از برترین مباحث پژوهش است . حجم زیاد و ماهیت متغیر نظرات تشخیص بهترین ارزیابی را دشوار نموده است .پژوهشگران از تکنیک های یادگیری ماشین برای تحلیل و دسته بندی این اطلاعات استفاده کرده اند اما تعداد زیاد ویژگی ها و وجود ویژگی های بی ربط در این اطلاعات ، باعث افزایش زمان اجرا و کاهش دقت الگوریتم شده است.
در این مقاله به منظور رسیدن به نتیجه بهتر یک راهکار مبتنی بر استفاده از الگوریتم فاخته ، جهت انتخاب ویژگی های مطلوب از اطلاعات داده شده ، طراحی شده است و سپس با استفاده از تکنیک نزدیکترین k × همسایه احساسات به دسته بندی های مختلف تقسیم شده اند . نتایج حاصله نشان داده است که استفاده از این روش باعث افزایش دقت الگوریتم و همچنین کاهش زمان اجرای الگوریتم می شود و میتوان از این روش در حل مسائلی که دارای ویژگی های زیادی می باشد استفاده کرد.
.1 مقدمه
امروزه حجم اطلاعات موجود در اینترنت و بخصوص فضای مجازی در حال گسترش است . سایت هایی مانند ebay و amazon پیشنهاداتی در مورد محصولات مختلف ارائه می دهند . افراد با مراجعه به این سایت ها نظر خود را در مورد محصولات ارائه می کنند و از نظرات دیگران استفاده می کنند . یکی از محبوبترین روش هایی که میتوان متن را بر اساس تمایلات افراد دسته بندی کرد، طبقه بندی احساسات است .
با رشد روز افزون و تنوع شبکه های اجتماعی نظیر توییتر ، فیس بوک و وبلاگ ها فرصت ها و چالش های جدیدی در این حوزه بوجود می آید. بسیاری از این اطلاعات دارای ساختار استانداری نیستند و پردازش این حجم از اطلاعات بدون ساختار خارج از توان انسان است . بسیاری از این مطالب به زبان طبیعی نوشته شده اند و نیاز به یک پیش پردازش دارند تا بتوان آنها را بوسیله یک الگوریتم طبقه بند بخش بندی کرد.
دو روش اساسی برای طبقه بندی احساسات شامل : یادگیری ماشین و لغت مبنا است. بسیاری از تکنیک های یادگیری ماشین برای دسته بندی نظرات به دو بخش مثبت و منفی استفاده می شود. این تکنیک ها شامل Naïve Bayes,Maximum Entropy,Support Vector Machin می باشد . برای استفاده از این الگوریتم ها ، بر روی اطلاعات باید پیش پردازش انجام بشود که این عملیات شامل بهینه سازی و حذف ویژگی ها نامربوط می شود.
الگوریتم فاخته یک الگوریتم بهینه سازی است که میتواند برای بهینه سازی حجم زیادی از اطلاعات مورد استفاده قرار بگیرد و تا کنون از این الگوریتم در بحث بهینه سازی متن و استخراج ویژگی در احساسات استفاده نشده است . SVM یک تکنیک یادگیری ماشین است که برای مسائل طبقه بندی باینری استفاده می شود - Sangram Ashok Patil,2016 - × و مسئله ما نیز از نوع باینری است که دو دسته مثبت و منفی دارد. با ترکیب این دو الگوریتم ما به یک طبقه بند با دقت بالا دست می یابیم که در این مقاله به بررسی آن می پردازیم .
در این پژوهش ما از دیتابیس آمازون استفاده کردیم که شامل حجم زیادی از نظرات در مورد محصولات می باشد . ابتدا بر روی این اطلاعات یک پیش پردازش انجام دادیم و سپس یک دیتاست شامل n نظر و d ویژگی ایجاد کردیم . با اعمال الگوریتم فاخته در جهت پیدا کردن ویژگی های بهینه و سپس استفاد از الگوریتم svm برای دسته بندی نظرات به دقت 76 رسیدیم که این میزان دقت بیشتر از الگوریتم های دیگر بود.
.2 متدلوژی
الف . استخراج ویژگی
اولین گام در طبقه بندی احساسات بدست اوردن ماتریس ویژگی ها می باشد . اطلاعات ما بصورت جملات می باشد و نمی توان آنها را مستقیم به الگوریتم بهینه ساز داد در نتیجه اطلاعات را باید به شکل برداری تبدیل کرد . ما یک دیتاست از اطلاعات سایت آمازون که مربوط به نظرات کاربران درباره کتاب ها بود را دانلود کردیم و یک لیست از کلمات استفاده شده در نظرات ایجاد کردیم که این لیست به عنوان بردار ویژگی استفاده کردیم . در ابتدا یک عمل پاکسازی بر روی این ویژگی ها انجام دادیم که شامل حذف حروف اشاره و نشانه های غیرضروری بود . و در اخر یک ماتریس شامل 70 نظر مثبت و 70 نظر منفی ایجاد کردیم.
ب . انتخاب ویژگی با الگوریتم فاخته
تعداد ابعاد ماتریس ویژگی ما بسیار زیاد است و این باعث کاهش دقت الگوریتم و افزایش زمان اجرا می شود. بنابراین با استفاده از الگوریتم فاخته ویژگی های نامرتبط و غیر ضروری را حذف می نماییم. برای استفاده از این الگوریتم مراحل زیر باید انجام شود .منظور از تخم فاخته در اینجا ویژگی ها می باشد .
- 1 ایجاد محل زندگی اولیه فاخته
برای حل یک مسئله بهینه سازی، لازم است مقادیر متغیرهای مسئله به شکل یک ماتریس درایند.در الگوریتم بهینه سازی فاخته، این ماتریس محل زندگی نامیده میشود. در یک مسئله بهینه سازی Nvar ؛بعدی، یک محل زندگی ، ماتریس *Nٌ است که موقعیت فعلی فاخته را نشان می دهد. برای شروع الگوریتم بهینه سازی ، ماتریس محل زندگی Npop * Nvar ایجاد می شود . سپس یک تعداد تصادفی از تخم ها برای هر کدام از این محل های زندگی اولیه ، پیشنهاد می شود . برای مسئله طبقه بندی احساسات ما n زیرمجموعه از ویژگی ها ایجاد میکنم که به عنوان habbit تعریف می- شوند .
یکی دیگر از پارامترهای که در اینجا تعریف می شود. شعاع تخم گذاری ELR می باشد که بصورت زیر تعریف می شود که α عدد صحیح است که برای بدست آوردن مقدار ماکزیمم استفاده می شود .
- 2 روش تخم گذاری
هر فاخته در شعاع تخم گذاری خود شروع به تخم گذاری در لانه پرنده میزبان می کند که این عمل بصورت تصادفی انجام می شود. در این مرحله تخم های که شباهت کمتری به تخم پرنده میزبان دارند از بین می روند .
- 3 مهاجرت فاخته
پس از اینکه جوجه ها رشد کردن و بالغ شدن برای تخم گذاری به محل جدید و بهتر مهاجرت می کنند . در این محل ها تخم فاخته شباهت بیشتری به تخم پرنده میزبان دارد . پس از شکل گرفتن گروه های فاخته در مناطق مختلف جامعه با بیشترین سود به عنوان نقطه هدف برای سایر فاخته ها برگزیده می شود .
- 4 همگرایی
بعد از چند تکرار ، همه فاخته ها به بهترین محل با بیشترین شباهت به تخم پرنده میزبان و نیز بیشترین منابع غذا مهاجرت می کنند. این محل بیشترین سود ممکن را دارد .
بطور کلی فلوچارت الگوریتم بهینه سازی فاخته برای مسئله طبقه بندی احساسات بصورت شکل 1 می باشد .
شکل – 1 فلوچارت الگوریتم فاخته برای مسئله طبقه بندی احساسات
تکرار مراحل تا رسیدن به بهترین جواب
ایجاد n خانه - n زیر مجموعه از ویژگی ها -
ارزیابی بهترین محل ها - با استفاده از الگوریتم svm دقت طبقه بندی محاسبه می شود -
حذف بدترین محل ها و مهاجرت به سمت بهترین محل ها
.3 نتایج و بحث
با مقایسه سه الگوریتم GA, PSO و فاخته در پیدا کردن بهترین جواب در 100 تکرار به نتایج زیر دست یافتیم . تصویر 1 نمونه یک نمودار بهینه سازی برای GA در ×100تکرار را نشان میدهد . همانطور که در تصویر مشاهده می شود. در تکرار52ام به بهترین جواب رسیده است ؟