پیش‌بینی آب و هوا از طریق توئیتر

تغییرات پروژه از ابتدا تا تاریخ 1394/08/30

# مقدمه
توئیتر  به  یک منبع اصلی اطلاعات هم در زندگی روزمره و هم در مطالعات علمی تبدیل شده است. به عنوان یک شبکه ی اجتماعی مردم در آن به بیان واقعیات ، ابراز احساس و گسترش دانش می پردازند. و آن ها را در قالب نوشته های کوچک [^microblog]  که ما به آن توئیت می گوییم  مطرح می کنند. توئیتر به عنوان یک رسانه ی جدید، داده ها را در یک چارچوب قانونی برای حمایت از تحقیقات دانشگاهی به اشتراک می گذارد.
آب و هوا یکی از شایع ترین عناوینی است که مردم در توئیتر به آن اشاره  می کنند. با مطالعه ی این که کاربران  توئیتر  چگونه  درباره ی  آب و هوا صحبت می کنند
می توانیم دانشی درباره ی احساسات مردم نسبت به یک پدیده ی آب و هوایی خاص و علاوه بر آن حمایت های سیاسی دولت در این زمینه، به دست بیاوریم.
اولین قدم برای این کار طبقه بندی توئیت هایی است که درباره ی آب و هوا هستند. در این مطالعه  ما روش هایی  را  برای دسته بندی  آب و هوا  از طریق مجموعه داده توئیتر پیدا می کنیم. 
طبقه بندی توئیت ها بر اساس دسته بندی آب و هوای آن ها در ابعاد مختلف به چالش کشیده شده است :
 + اول این که  توییت ها اسناد بسیار  کوتاه  با بیان روزانه  هستند و امکان اشتباه  گرامری و دستوری دارند. بنابراین  برخی از روش های  سنتی طبقه بندی  متن 
 که برای اسناد رسمی بزرگ به خوبی کار می کنند، ممکن است هنگام استفاده از آن برای حل این مشکل عملکرد ضعیفی داشته باشد. 
 
+ دوم  مشکل طبقه بندی  چند کلاسی  است. در  واقع  در  مجموعه داده ای ما دسته بندی آب و هوا بر اساس 12 مورد است که این می تواند در میزان دقت  و فراخوانی  روی دسته ها  و کلاس های مختلف برای به دست آوردن نتیجه ی مطلوب کلی، اهمیت داشته باشد. بنابراین به یک  روش که برای مقابله با این دو مشکل به خوبی طراحی شده، نیاز است.

# مجموعه داده[^Data set]

مجموعه داده ای که برای این پروژه استفاده می شود از پایگاه داده توئیتر [3] گرفته شده است. تعداد کل توییت ها 55316 است. این توییت ها به عنوان متن های مرتبط با آب و هوا انتخاب شده اند و توسط انسان ها با 12 مشخصه برچسب زده شده اند. دسته بندی ها در جدول زیر آورده شده است  :

|  12  |  11  |   10   | 9  |  8   |  7   |  6  |  5   |  4  |  3 |  2  |  1  |   ID   | 
|:----:|:----:|:------:|:--:|:----:|:----:|:---:|:----:|:---:|:--:|:---:|:---:|-------:|
|other|wind|tornado|sun |storm |snow | rain | humid| hot|  dry  | clod | cloud|category|

هر مورد توییت شامل 5 قسمت است : مشخصه توییت، محتوای توییت، حالت کاربر، شهر، برچسب آب و هوا. به صورت رندم 80 % از نمونه ها برای آموزش[^train] و بقیه برای آزمودن در نظر گرفته شده است. این مقادیر در جدول زیر آورده شده است : 

 |   Test set    | Training set | Total set|   Item   |
 |:--------:|:--------:|:------------:|--------------:|
 |  11057   |   44256  |     55316    |NumberOfExample|




# کارهای مرتبط
یکی از کارهای مهمی که باید انجام دهیم طبقه بندی متن های کوتاه[^short text classificatio] است. در این زمینه مطالعات متعددی انجام شده است که در ادامه به بررسی تعدادی از آن ها می پردازیم. 
+ در  یکی از روش ها [1]  از  یک  مجموعه  اسناد بدون برچسب برای دسته بندی و طبقه بندی سند های کوتاه استفاده کردند. آن ها از یک مدل فضای برداری به نمایندگی از سند  کوتاه  کمک گرفتند  و  از  امتیازدهی  TF-IDF برای وزن دهی  به  اصطلاحات استفاده کردند،سند برچسب گذاری نشده می تواند به ارائه ارزش کلمات ( از لحاظ ارزش TF-IDF خود در این مجموعه بزرگی )  و احتمال توام کلمات کمک کند. و در نهایت  از روش  یادگیری ماشین  برای پایان کار طبقه بندی استفاده می کنند. این روش زمانی مفید خواهد بود که مقدار زیادی اطلاعات درباره ی مشکل خاصی در وب، داشته باشیم.
+ در [2] روشی را برای پرداختن به محدودیت مدل bag -of -words   وقتی که در  طبقه بندی  متن های  کوتاه استفاده می شود، مطرح می کند. او به جای استفاده از یک مجموعه بزرگ از اسناد، از   یک   مجموعه ی کوچک از ویژگی هایی با دامنه خاص که از پروفایل نویسنده و متن استخراج  شده است استفاده می کند. این رویکرد به صورت کارآمد متن را به یک مجموعه ی از پیش تعریف شده از کلاس های کلی مثل اخبار، رویداد ها و پیام خصوصی طبقه بندی می کند. 

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

# انتخاب ویژگی ها  :

ابتدا با تعریف  برچسب گذاری اجزای کلام  [^pos-tagging]  آشنا می شویم  این کار درواقع عمل  انتساب  برچسب به کلمات تشکیل‌دهندهٔ یک متن یا یک پیکره است. این برچسب‌گذاری براساس نقش آن کلمه در متن، مانند اسم، فعل، قید، صفت، و غیره صورت می‌گیرد. بعضی کلمات ممکن است یک یا چند برچسب داشته‌باشند. برای انتخاب ویژگی ها دو روش زیر وجود دارد :

1. بدون برچسب گذاری bag-of-words :
ما باید مجموعه ای از ویژگی ها را بر اساس امتیازTF-IDFاستخراج کنیم. به منظور کاهش بیش برازش  [^over-fitting . بیش برازش یعنی اگرچه مدل روی داده ی استفاده شده برای یادگیری بسیار خوب نتیجه می‌دهد، اما بر روی داده ی جدید دارای خطای زیاد است و  وقتی اتفاق می افتد که مدل به جای بیان روابط اصلی، نویزها و خطاهای تصادفی را مدل کند. ]  و بهبود پیچیدگی زمانی، ویژگی های انتخاب شده را پیاده سازی می کنیم  و با استفاده از جستجوی رو به جلو[^Forward search]، تعداد مناسب این ویژگی ها را انتخاب می کنیم.

2. برچسب گذاری bag-of-words:
بعد از اعمال برچسب گذاری مجموعه ی ویژگی ها شامل تعدادی اسم، فعل، قید و صفت می شود. برای این کار مراحل زیر را دنبال می کنیم : 
      +  ابتدا تعداد مناسب برای اسم را انتخاب می کنیم که بیشترین بازده را در نتیجه ی طبقه بندی داشته باشد.
      +  سپس تعداد مناسبی که برای اسم  به دست اورده ایم نگه می داریم و تعداد مناسب فعل ها را پیدا می کنیم طوری که بیشترین بازده را در نتیجه
           ی طبقه بندی داشته باشد.
      +  تعداد مناسبی که برای اسم وفعل به دست اورده ایم نگه می داریم و به دنبال بهترین تعداد برای صفت می رویم.
      +  و در نهایت تعداد مناسب قید را طوری به دست می اوریم که بیشترین بازده را در نتیجه طبقه بندی داشته باشد.

 
 ما بر اساس روش اول یعنی bag-of-word  بدون برچسب گذاری پیش خواهیم رفت. که در ادامه به توضیح بیشتر و روش کار می پردازیم.
در پردازش متن نمی توان کل متن را به الگوریتم های مختلف دسته بندی بدهیم  بنابراین  باید  ویژگی هایی  را  از متن استخراج کنیم  [^feature extraction]. برای این کار ما مدل برداری فضا [^Vector Space Model]را پیاده سازی می کنیم  مدل فضای برداری [5و4] یکی از مدل های بازیابی اطّلاعات است کـه در سـطح  وسـیعی به کار می رود در این مدل، هرمقوله اطّلاعاتی ـ شامل متون ذخیـره شـده و هـر تقاضای اطّلاعاتی زبان طبیعی ـ به صـورت مجموعـه بردارهـایی از اصـطلاحات نگهـداری میشوند.
به طور نظری، این اصطلاحات میتوانند از واژگان کنترل شده انتخاب شـوند. بـه خاطر وجود مشکلاتی در تهیه این واژگان، اصطلاحات از متون استخراج میشوند. معمولاً برای کاهش اندازه  واژگان از ریشه واژه ها  استفاده می شود. همچنـین  معمـولاً  از  واژه هـای  بازدارنـده [^Stop words]  نظیـر an ,of ,the ,.... صـرف نظـر مـی گـردد.
از تمـام واژه هـای موجـود در مدارک، یک مجموعه واژگان به وجود می آید. هر مـدرک بـه صـورت بـرداری از تمـام واژگان نمایانده می شود.
مدل فضای برداری، شیوه ای است برای نمایش مدارک از طریق واژه هـای موجـود در آنها. این مدل ، یک تکنیک استاندارد در بازیابی اطّلاعات  است . بر اساس مـدل فـضای برداری، میتوان تصمیم گرفت که کدام  مدارک  شبیه به یکـدیگر و یـا بـه کلیـدواژه هـای جستجو شبیه هستند. سپس  از فرکانس کلمه  [6,7] یعنی  تعداد تکرار کلمه درمتن [^Term frequency]  به عنوان وزن کلمه و به عنوان اندازه گیرنده برای ایجادمجموعه ویژگی ها استفاده می کنیم. به عبارت دیگر ما فرکانس کلی کلمه را برای هر کلمه ای که درمجموعه ی آموزش  به نظر می رسد با استفاده از روش TFمحاسبه می کنیم وk کلمه ای که بالاترین ارزش را در TF به دست آوردند به عنوان ویژگی های خود انتخاب می کنیم  ${f_{1},f_{2},...,f_{k}}$  و در مجموعه ی  bag-of-word  قرار می دهیم . مقدار k را با انجام ازمایش های مختلف و بررسی نتایج باید انتخاب کنیم بنابراین از مقادیر کم شروع کرده و به تدریج آن را افزایش می دهیم تا به یک دقت نسبی برسیم این مقدار نباید به اندازه ای بزرگ باشد که  بیش برازش رخ دهد. از آن جا که ما در پایگاه داده ی خود با تعدادی جمله رو به رو هستیم نه یک متن، بنابراین برای انجام این کار کل جملات را در کنار هم به عنوان یک متن در نظر می گیریم و سپس از روش TFبرای به دست اوردن ارزش کلمات جهت استخراج ویژگی ها در این متن استفاده می کنیم .
سپس  یک بردار فضا را به نمایندگی از هر توییت به دست می اوریم به صورت زیر :   
$t_{i}=(w_{1},w_{2},...,w_{k})$
که در آن هر یک از ابعاد ازw  نشان دهنده ی ارزش TF ویژگی  f  در توییت مورد نظر است .

# آزمایش‌ها

# کارهای آینده

# مراجع

[1].Zelikovitz, Sarah, and Haym Hirsh. Improving short text classification using unlabeled background knowledge to assess
       document similarity. Proceedings of the Seventeenth International Conference on Machine Learning. 2000.
[2].Sriram, Bharath, et al. Short text classification in twitter to improve information filtering. Proceedings of the 33rd
        international ACM SIGIR conference on Research and development in information retrieval. ACM, 2010.
[3]. https://www.kaggle.com/c/crowdflower-weather-twitter
[4].گراسمن، دیوید و افیر فریدر."بازیابی اطلاعات،الگوریتم ها و روش های اکتشافی"ترجمه ی جعفر مهراد و سارا کلینی .انتشارات کتابخانه ای.1384. 
[5]. Baeza - Yates, R. Ribeiro- Neto, B, Modern information Retrieval, Addison Wesley, 1999.
[6]. Salton, G., Yang, C.G., Yu, C.T. (1975) A Theory of Term Importance in Automatic Text Analysis, Journal of
        the ASIS,26:1,33-44.
[7]. Salton, G. (1988) Buckley, C., Term weighting Approaches in Automatic Text Retrieval, Information Processing and
        Management, 24:5, 513-523.


#پاورقی