بخشی از مقاله

چکیده

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

-1 مقدمه

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

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

-1-1  توئیتر چیست و چرا توئیتر را انتخاب کردیم.

micro-blogging یک روش سریع ارتباط میباشد که در سال های اخیر معروف شده است. این سرویس به کاربر اجازه میدهد پیغامهای کوتاه خود رابین دوستان خود منتشر کنند.Twitter1، Qaiku2، FriendFeed3 ،Tumblr4 نمونههایی از میکروبلاگ ها میباشند. در این مقاله ما توئیتر را انتخاب کردیم که یکی از معروفترین سرویسهای میکروبلاگ میباشد. با بیش از 100 میلیون کاربرکه علاوه بر خصوصیات میکروبلاگ یک شبکه اجتماعی محسوب میشود که بین کاربران تعاملات خاصی مثل following و follower تعریف شده است.

.1-1-1 برخی خصوصیات توئیتر

کوتاهی متن: یکی از دشواریهای کار، طول محدود توئیت ها میباشد. در توئیتر حداکثر طول هر پست 140 کاراکتر میباشد. در حوزه دستبندی متن، متن های کوتاه دچار خلوتی داده میباشند که فرایند کسلاسبندی را دشوارتر میکند

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

درنتیجه فرهنگ لغت خیلی بزرگی خواهیم داشت که اکثر لغات در فرهنگ لغات شناختهشده مثل wordNet1 وجود ندارد و به عنوان OOV2 شناخته می شوند. همچنین ضروری می باشد که بتوانیم تشخیص دهیم کدام کلمات، کیبورد هستند و برای دسته بندی مفید میباشند و کدام کلمات عمومی و شبیه به StopWords هستند و باید حذف شوند.

همچنین غیررسمی بودن زبان باعث می شود نتوانیم از ابزار و روش هایی که برای متون رسمی تابه حال ارائهشده است استفاده کنیم ابزارهایی مثل POS3 Tagger و Tokenizer زبان های مختلف: توئیتر توسط کاربران در سرتاسر دنیا استفاده میشود بنابراین باید روشی برای فیلتر کردن توئیت های یکزبان خاص داشته باشیممثلاً روشی که بتواند توئیت های عربی و فارسی را از هم تمیز دهد.

غلط املایی:

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

-2 مروری برکارهای انجامشده

با توجه به جدید بودن و داغ بودن موضوع در سال های اخیر کنفرانس 4 CLEFدر قالب مسابقه ای به این موضوع پرداخته است و اکثر مقالات در دسترس کارهایی هستند که در این مسابقه شرکت کرده اند. در ادامه خلاصه ای از بهترین کارهای انجام شده در این کنفرانس را مرور خواهیم کرد و روش های ارائه شده را ازنظر اجرایی بودن در زبان فارسی بررسی خواهیم کرد.

در کنفرانس CLEF در سال های 2012 و 2013 در زیر بخشی به نام فیلترینگ در قسمت [2] [1] Replab به این موضوع پرداخته شده است. هدف مسابقه فیلتر کردن توئیت های مربوط به یک کمپانی میباشد که به صورت با ناظر و آماده کردن داده آموزش و آزمایش برگزارشده است. به صورت کلی همه گروه های شرکت کننده با استفاده از روشهای یادگیری ماشین به حل این مسئله پرداخته اند و تنها تفاوت آن ها در قسمت استخراج خصیصه ها میباشد.

در ادامه کار سه گروه اول این مسابقه در سال 2013 را بررسی میکنیم گروه POPSTAR چندین گروه خصیصه را استخراج کرده اند ازجمله محاسبه tf-idf5 در 1gramو2gram و 3gram، محاسبه شباهت بین متن توئیت با توئیت های هرکدام از دامنه ها با استفاده از کلاس بندی که به کمک tf-idf محاسبه شده در مرحله قبل آموزش دیده است.محاسبه شباهت کلمات با متن توئیت، شباهت وبی: محاسبه شباهت بین متن توئیت و صفحه رسمی و ویکیپدیای کمپانی، استفاده ازFreebase 6 به عنوان یک منبع بزرگ برای تشخیص میزان مرتبط بودن کلمات در هر کمپانی که این خصیصهمثلاً در فارسی امکان استفاده از آن وجود ندارد.[3]

گروه LIA با چندین روش مختلف به حل مسئله پرداخته است. ابتدا به کمک tf-idf و Gini index یک 7 SVMرا آموزش میدهند و از آن برای تشخیص کلاس هر توئیت استفاده میکنند.درروشی دیگر از یک الگوریتم boosting استفاده میکنند بهگونهای که برای مقابله با تنک بودن داده ها به صورت تکراری بعد از تشخیص کلاس هر توئیت آن توئیت را به داده آموزش اضافه میکنند و کار تشخیص کلاس مابقی را ادامه میدهند. درروش دیگری که ارائه کردن از فاصله کسینوسی وکتور توئیت ها برای تشخیص کلاس آنها استفاده میکنند.[4]

گروه SZTE از 1gramو 2gram برای تشخیص بهتر عبارات 8 کمک گرفته است. همچنین این گروه علاوه بر خصیصه های معمولی که در گروه های دیگر نیز استفاده شده است یک خصیصه جدید استخراج کرده است.این گروه به کمک الگوریتم LDA9 ابتدا توئیت های آموزش و آزمایش را گروهبندی کرده و سپس از توزیع هر توئیت در گروههای مختلف به عنوان یک خصیصه بهره گرفته هست همچنین به ازای هر کلمه توئیت تعداد گروه هایی را که آن کلمه در آن گروهها قرار میگیرد نیز بهعنوان یک خصیصه در نظر گرفتهشده است.[5]

CLEF2012 به نحوی دیگر مسئله را تعریف کرده است در آن مسابقه داده آموزش و داده آزمایش با یکدیگر متفاوت بودن بهگونهای که شرکت کننده ها باید روشی را ارائه میکردند که به کمک داده آموزش داده های آزمایش که مربوط به یک شرکت دیگر میبود را شناسایی کنند درواقع یک روش نیمه ناظر را شرکت کننده ها باید استفاده میکردند که در سال 2013 این روش اصطلاح شد و ازاین جهت از مرور کارهای 2012 خودداری میکنیم.[2]

-3 مجموعه داده

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

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

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

-4 روش ما

روش کلی کار بهصورت شکل 1 میباشد.که در ادامه هر یک از بخشهای آن را توضیح خواهیم داد.

-1-4  داده

از دیتاست فراهمشده که در بخش قبل توضیح داده شد استفاده کردیم.

Tokenizer -2-4

با توجه به اینکه زبان توئیت بازبان دیگر دامنهها متفاوت میباشد نمیتوانیم از توکنایزرهای موجود برای متنهای معمولی استفاده کنیم هرچند در زبان فارسی حتی توکنایزری برای متنهای بلند و معمولی نیز در دسترس عموم نیست لذا برای این منظور به کمک regular expression و زبان جاوا قطعی کدی را آماده کردیم که یک توئیت را بهعنوان ورودی گرفته و اجزای سازنده آن را در چند کلاس مختلف قرار میدهد و بهعنوان خروجی برمیگرداند.کلاس کلمات:تمام توکن هایی که تنها شامل کاراکتر حروف الفبایی باشند در این کلاس قرار میگیرد. کلاس غیر کلمات: تمام توکن های غیر کلمهای در این کلاس قرار میگیرند مثل تاریخ، اعداد و رقم، شکلکها و...

-3-4 پیشپردازش دادهها

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

استخراج URL

تمام آدرسهای موجود در توئیت ها را استخراج و معادل آنها یک ثابت در نظر گرفتی.م - مثلاً . - URL

حذف اشارهگرها

در توئیت ها به کمک کاراکتر # اشخاص را میتوانیم در متن توئیت تگ کنیم. تمام اشخاص تگ شده در متن توئیت ها را با ثابت USERNAME جایگزین کردیم.

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید