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

بسم الله الرحمن الرحیم

۱. مقدمه

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

۲. کارهای مرتبط

یکی از کارهای مهمی که باید انجام دهیم طبقه بندی متن های کوتاه2 است.
2.1 روش های دسته بندی
دسته‌بندی به عملیات یادگیری تابع f گفته می شود که هرمجموعه ویژگی x را به یکی از دسته‌های از پیش تعریف شده‌ی y نگاشت میکند. به این تابع مدل دسته بندی نیز می گویند که شامل مدل های توصیفی ومدل‌های پیشگویانه می‌باشد. مدل توصیفی، مدلی است که به عنوان ابزارتوضیحی برای تشخیص اشیا از دسته های مختلف به کار می رود و مدل پیشگویانه به مدلی گفته می شود که می تواند برچسب دسته یک رکورد شناخته نشده را تخمین بزند. روش‌های دسته بندی برای ساخت مدل‌های دسته بندی از مجموعه‌های داده‌ای به کار میروند. این روش‌ها دارای یک الگوریتم یادگیری برای توصیف مدل میباشند.مدل ساخته شده به وسیله ی این الگوریتم ها باید داده های ورودی را به خوبی تطبیق دهد و بتواند برچسب رکوردهایی را که تا کنون ندیده‌است، تخمین بزند. به این منظور ابتدا یک مجموعه آموزش که شامل داده‌های با برچسب معین است فراهم می شود، سپس از این مجموعه یک مدل دسته بندی تهیه می‌گردد.این مدل به مجموعه ی آزمون که شامل داده های با برچسب نا مشخص است، اعمال می شود. کارایی این مدل دسته بندی با بررسی تعداد تخمین‌های درست و غلطی که توسط مدل صورت گرفته ارزیابی می شود.

تصویری از نحوه ی دسته بندی

در ادامه به معرفی سه روش مهم دسته بندی اشاره شده است :
2.1.1ماشین بردار پشتیبانی 3
هدف این دسته الگوریتم ها[1] تشخیص و متمایز کردن الگوهای پیچیده در داده ها (از طریق کالسترینگ، دسته بندی، رنکینگ، پاکسازی و غیره)می باشد. مبنای کاری این نوع دسته بندی، دسته بندی خطی داده ها است و در تقسیم خطی داده ها سعی می شود خطی را انتخاب کنیم که حاشیه اطمینان بیشتری داشته باشد. این روش در سال‌های اخیر کارایی خوبی نسبت به روش‌های قدیمی‌تر برای طبقه‌بندی از جمله شبکه‌های عصبی پرسپترون نشان داده است.از الگوریتم ماشین بردار پشتیبان، در هر جایی که نیاز به تشخیص الگو یا دسته بندی اشیا در کلاس های خاص باشد می توان استفاده کرد.اگر داده های آموزشی جدایی پذیر خطی باشند، می توان دو ابر صفحه در حاشیه نقاط در نظر گرفت؛ به طوری که هیچ نقطه مشترکی نداشته باشند. سپس می بایست فاصله آنها را به حداکثر رساند. نزدیکترین داده های آموزشی به ابر صفحه های جدا کننده بردارپشتیبان نامیده می شوند.
ماشین بردار پشتیبان

2.1.2 k-نزدیک ترین همسایه4
در شناخت الگو، الگوریتم k-Nearest Neighbors (یا K-NN به اختصار)[2] یک روش غیر پارامتری مورد استفاده برای طبقه‌بندی و رگرسیون است. [3] در هر دو مورد، ورودی شامل K تا نزدیک ترین نمونه های آموزشی در فضای ویژگی است. خروجی بستگی به این دارد که K-NN برای طبقه بندی یا رگرسیون استفاده می شود.
در K-NN طبقه بندی، خروجی کلاس عضویت است. یک شی با رأی اکثریت از همسایگان خود طبقه بندی میشود، که شئ با رایج ترین مقدار میان K نزدیک ترین همسایگان خود (K یک عدد صحیح مثبت است، به طور معمول کوچک) به کلاس اختصاص داده‌ میشود. اگرk = 1 باشد، در ان صورت شی به سادگی به کلاسی با نزدیکترین همسایه واحد اختصاص داده میشود.
مثالی از الگوریتم k-نزدیک ترین همسایه

2.1.3درخت تصمیم 5
درخت تصمیم یک ابزار برای پشتیبانی از تصمیم است که از درختان برای مدل کردن استفاده می‌کند. در آنالیز تصمیم، یک درخت تصمیم به عنوان ابزاری برای به تصویر کشیدن و آنالیز تصمیم، در جایی که مقادیر مورد انتظار از رقابت‌ها متناوباً محاسبه می‌شود، استفاده می‌گردد.
مشکل استفاده از درخت‌های تصمیم آن است که به صورت نمایی با بزرگ شدن مسئله بزرگ می‌شوند. همچنین اکثر درخت‌های تصمیم تنها از یک ویژگی برای شاخه زدن در گره‌ها استفاده می‌کنند در صورتی که ممکن است ویژگی ها دارای توزیع توأم باشند. ساخت درخت تصمیم در برنامه‌های داده کاوی حافظه زیادی را مصرف می‌کند زیرا برای هر گره باید معیار کارایی برای ویژگی‌های مختلف را ذخیره کند تا بتواند بهترین ویژگی را انتخاب کند [4]. با این حال می توان با استفاده از الگوریتم هایی درخت تصمیم بهینه ای در بازه ی زمانی قابل قبولی تشکیل داد.
مثالی از درخت تصمیم

2.2 مطالعات انجام شده
در این زمینه مطالعات متعددی انجام شده‌است که در ادامه به بررسی تعدادی از آن ها می‌پردازیم.

  1. در یکی از روش ها [5] از یک مجموعه اسناد بدون برچسب برای دسته بندی و طبقه بندی سند های کوتاه استفاده شده است. برای طبقه بندی از یک مدل فضای برداری به نمایندگی از اسناد کوتاه کمک گرفته و برای وزن دهی به اصطلاحات روش امتیازدهی TF-IDF انتخاب شده است، سند برچسب گذاری نشده می تواند به ارائه ارزش کلمات ( از لحاظ ارزش TF-IDF خود در این مجموعه بزرگی ) و احتمال توام کلمات کمک کند. و در نهایت از روش یادگیری ماشین برای پایان کار طبقه بندی استفاده می کنند. این روش زمانی مفید خواهد بود که مقدار زیادی اطلاعات درباره ی مشکل خاصی در وب، داشته باشیم.

  2. در روشی دیگر راه حلی را برای پرداختن به محدودیت مدل bag -of -words وقتی که در طبقه بندی متن های کوتاه استفاده می شود، مطرح میکند. در این روش به جای استفاده از یک مجموعه بزرگ از اسناد، از یک مجموعه ی کوچک از ویژگی هایی با دامنه خاص که از پروفایل نویسنده و متن استخراج شده‌است استفاده میکند. این رویکرد به صورت کارآمد متن را به یک مجموعه ی از پیش تعریف شده از کلاس‌های کلی مثل اخبار، رویداد‌ها و پیام خصوصی طبقه بندی میکند [6] .
    با توجه به محدودیت مجموعه ی داده ی این پروژه و تعریفی که از مسئله شد، نمی توان یک مجموعه اسناد را برای پشتیبانی از پیش بینی پیدا کرد. علاوه بر این نمیتوان به داده های پروفایل کاربران با توجه با مسائل خصوصی دسترسی داشت. بنابراین روش هایی که در مقاله ی دوم توصیف شد فقط می تواند راه تجزیه را نشان دهد و مشکل را تسهیل نماید.

2.3چالش های پیش رو
طبقه بندی توئیت ها بر اساس دسته بندی آب و هوای آن ها در ابعاد مختلف به چالش کشیده شده‌است :

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

  • دوم مشکل طبقه بندی چندکلاسی است. در واقع در این مجموعه داده دسته بندی آب و هوا بر اساس 24 مورد است که میتواند در میزان دقت و فراخوانی روی دسته ها و کلاس‌های مختلف برای به دست آوردن نتیجه ی مطلوب کلی، اهمیت داشته باشد. بنابراین به یک روش که برای مقابله با این دو مشکل به خوبی طراحی شده، نیاز است.
    2.4 روش انجام کار
    انتخاب ویژگی ها
    ابتدا با تعریف برچسب گذاری اجزای کلام 6 آشنا می شویم این کار درواقع عمل انتساب برچسب به کلمات تشکیل‌دهندهٔ یک متن یا یک پیکره است. این برچسب‌گذاری براساس نقش آن کلمه در متن، مانند اسم، فعل، قید، صفت، و غیره صورت می‌گیرد. بعضی کلمات ممکن است یک یا چند برچسب داشته‌باشند. برای انتخاب ویژگی ها دو روش زیر وجود دارد :

  • بدون برچسب گذاری bag-of-words :
    ما باید مجموعه ای از ویژگی ها را بر اساس امتیازTF-IDFاستخراج کنیم. به منظور کاهش بیش برازش 7 و بهبود پیچیدگی زمانی، ویژگی های انتخاب شده را پیاده سازی می کنیم و با استفاده از جستجوی رو به جلو8، تعداد مناسب این ویژگی ها را انتخاب می کنیم.

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

    • ابتدا تعداد مناسب برای اسم را انتخاب می کنیم که بیشترین بازده را در نتیجه ی طبقه بندی داشته باشد.

    • سپس تعداد مناسبی که برای اسم به دست اورده ایم نگه می داریم و تعداد مناسب فعل ها را پیدا می کنیم طوری که بیشترین بازده را در نتیجه
      ی طبقه بندی داشته باشد.

    • تعداد مناسبی که برای اسم وفعل به دست اورده ایم نگه می داریم و به دنبال بهترین تعداد برای صفت می رویم.

    • و در نهایت تعداد مناسب قید را طوری به دست می اوریم که بیشترین بازده را در نتیجه طبقه بندی داشته باشد.

در پردازش متن نمی توان کل متن را به الگوریتم های مختلف دسته بندی بدهیم بنابراین باید ویژگی هایی را از متن استخراج کنیم 9. برای این کار مدل برداری فضا 10را پیاده سازی می کنیم . مدل فضای برداری [8,9] یکی از مدل های بازیابی اطّلاعات است کـه در سـطح وسـیعی به کار می رود در این مدل، هرمقوله اطّلاعاتی ـ شامل متون ذخیـره شـده و هـر تقاضای اطّلاعاتی زبان طبیعی ـ به صـورت مجموعـه بردارهـایی از اصـطلاحات نگهـداری میشوند.
به طور نظری، این اصطلاحات میتوانند از واژگان کنترل شده انتخاب شـوند. بـه خاطر وجود مشکلاتی در تهیه این واژگان، اصطلاحات از متون استخراج میشوند. معمولاً برای کاهش اندازه واژگان از ریشه واژه ها استفاده می شود. همچنـین معمـولاً از واژه هـای بازدارنـده 11 نظیـر an ,of ,the ,.... صـرف نظـر مـی گـردد.
از تمـام واژه هـای موجـود در مدارک، یک مجموعه واژگان به وجود می آید. هر مـدرک بـه صـورت بـرداری از تمـام واژگان نمایانده می شود.
مدل فضای برداری، شیوه ای است برای نمایش مدارک از طریق واژه هـای موجـود در آنها. این مدل ، یک تکنیک استاندارد در بازیابی اطّلاعات است . بر اساس مـدل فـضای برداری، میتوان تصمیم گرفت که کدام مدارک شبیه به یکـدیگر و یـا بـه کلیـدواژه هـای جستجو شبیه هستند. سپس از فرکانس کلمه [10,11] یعنی تعداد تکرار کلمه درمتن 12 به عنوان وزن کلمه و به عنوان اندازه گیرنده برای ایجادمجموعه ویژگی ها استفاده می کنیم. به عبارت دیگر ما فرکانس کلی کلمه را برای هر کلمه ای که درمجموعه ی آموزش به نظر می رسد با استفاده از روش 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 در توییت مورد نظر است .

۳. آزمایش ها :

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

3.1 مجموعه داده13
مجموعه داده‌ایکه برای این پروژه استفاده می‌شود از پایگاه داده توئیتر [7] گرفته شده‌است البته با اعمال تغییراتی که این تغییرات در ادامه توضیح داده می شوند.. تعداد کل توییت‌ها در مجموعه آموزش 77947 است. هرتوییت علاوه بر مشخصه، محتوا، حالت و شهر، شامل 24 برچسب می‌باشد که به 3 دسته تقسیم می شود. این توییت‌ها به عنوان متن های مرتبط با آب و هوا انتخاب شده‌اند وتوسط انسان ها با 24 مشخصه برچسب زده شده‌اند. دسته بندی ها در تصویر زیر آورده شده‌است:

دسته بندی برچسب های توئیت ها در مجموعه داده

3.2مراحل پیاده سازی
در این قسمت به توضیح مراحل پیاده سازی پرداخته‌ شده‌است.
3.2.1دسته بندی
در پیاده سازی پروژه از روش دسته بندی "ماشین بردار پشتیبان" که در بخش های قبلی به توضیح آن پرداختیم استفاده شده است.

clf.fit(X, lable)

همانطور که مشاهده می‌کنید به دو پارامتر نیاز است پارامتر اول با تعیین مجموعه بردار توئیت‌ها تعیین می‌شود و پارامتر دوم با تعیین برچسب هر بردار
مشخص می‌شود.
بنابراین در ادامه مراحل به دست آوردن این دو پارامتر بیان می شود.
برای پیاده سازی این پروژه هر بخش به طور جدا پیاده سازی شده است. پروژه شامل 4 فایل اصلی readFile.py ، reduce_data.py و feature_withPosTag.pyو evaluation.pyمی باشد.این کار باعث شد خطایابی و رفع اشکالات کد در حین پیاده سازی راحت تر انجام شود.

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

my train my test train
38947 38947 77947

3.2.2.2مرحله دوم استخراج ویژگی ها
قدم بعدی استخراج ویژگی ها از داده ی مسئله است. باید کلماتی مهم و کلیدی از متن استخراج شود که با توجه به وجود یا عدم وجود آن ها در هر توییت برداری به ازای هر توییت ساخته شده و برای آموزش به ماشین یادگیری داده شود. برای تعیین کلمات کلیدی از ارزش tf-idf آن ها استفاده شده است.برای این کار ابتدا کلمات بازدارنده از بین کلمات موجود حذف می شود. سپس میتوان از بین کلمات باقی مانده با استفاده از برچسب گذاری اجزای کلام تنها کلماتی که نقش های خاصی در جمله دارند از جمله صفت ، قید و اسم را نگه داشته و بعد ارزش tf-idfآن ها را به دست اورد. برای پیاده سازی این قسمت ازاین مطالباستفاده شده است.

  • JJ = صفت

  • NN = اسم

  • RB = قید

  • VB = فعل

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

3.2.2.3مرحله ی سوم تشکیل بردار هر توییت
بعد از به دست اوردن مجموعه ویژگی ها از بین تعدادی که موجود است هر بار با انتخاب k کلمه اول فایل که بیشترین ارزش را دارند مجموعه ی bag of word را تشکیل داده و با استفاده از آن بردار متناظر با هر توییت را با توجه به وجود یا عدم وجود کلمات این مجموعه در هر توییت تشکیل میدهیم.
تا این مرحله پارامتر اول تعیین شد.
3.2.2.4مرحله ی چهارم
در این مرحله کافیست برچسب های هر توییت را به شکل قابل استفاده برای ماشین تبدیل کنیم .در فایل داده های مربوط به آموزش 24 ستون مقابل هر توییت قرار دارد که مقادیر اعشاری بین صفر تا یک دارند. که در پیاده سازی برای ساختن رشته ی برچسب هر توییت مقادیر بیشتر از 0.5 را برابر یک و مقادیر کمتر از 0.5 برابر صفر در نظر گرفته شده اند.
همان طور که در بخش "مجموعه داده" گفته شد سه دسته برای هر توییت در نظر گرفته شده است. یعنی هر توییت سه برچسب مختلف داردکه هر بار با یکی از این برچسب ها اموزش داده میشود کد مربوط به این قسمت در این فایلقرار داده شده است.
3.2.2.5مرحله پنجم ارزیابی
در این مرحله 5 مقدار برای k در نظر گرفته شده و نتایج حاصل برای هر 3 دسته به طور جداگانه بررسی می شود.

جدول 3.2.2.5.1درصد پیش بینی درست دسته S

k=800 k=600 k=300 k=150 k = 50
73.4713 73.4713 73.6355 73.5616 73.6766

بهترین مقدار k برای این دسته برابر است با 50.

جدول 3.2.2.5.2درصد پیش بینی درست دسته W

k=800 k=600 k=300 k=150 k = 50
90.9947 90.9947 90.9947 90.9947 90.9947

با توجه با اینکه مقادیر ثابت ماند یعنی مقدار k تاثیری در پیش بینی مقادیر این دسته ندارد. و با احتمال خوبی نزدیک به ۹۰ درصد پیش بینی درست انجام میشود.

جدول 3.2.2.5.3درصد پیش بینی درست دسته K

k =800 k =600 k =300 k =150 k = 50
69.2751 69.2751 69.6579 69.6795 69.8447

بهترین مقدار k برای این دسته برابر است با 50.

نتیجه آزمایش
مقدار k هر چه بیش تر می شود درصد پیش بینی های درست به مرور کم می شود. پس هر چه مقدار k متعادل تر انتخاب شود، هم امکان بیش برازش کمتر است و هم نتایج مطلوب تر خواهد بود.

۴. کارهای آینده

از آن جا که سرعت ماشین یادگیری به کار گرفته شده در این پروژه با افزایش حجم داده ها پایین می آید از ماشین هایی با سرعت بالاتر مثل libsvm که با زبان c پیاده سازی شده و نسبتا سریع می باشد و یا روش هایی که به نوعی سرعت پردازش را بالا ببرد می توان استفاده کرد.
برای بالا بردن دقت از روش های دیگر برای ایجاد مجموعه ویژگی ها جهت هدفمند تر بودن آن ها استفاده کرد.
در مجموعه ی دادگان این مسئله برچسب ها مقادیر اعشاری دارند اما در این پیاده سازی مقادیر بیشتر از 0.5 معادل با یک و کوچکتر معادل با صفر در نظر گرفته شده است. یکی از کارها هم می تواند این باشد که از روشی استفاده شود تا دقیقا از همان مقادیر اعشاری استفاده شود.

۵. مراجع

[1] Christopher J. C. Burges. "A Tutorial on Support Vector Machinesfor Pattern Recognition ", Data Mining and Knowledge Discovery, 1998.
[2] Altman, N. S. "An introduction to kernel and nearest-neighbor nonparametric regression ". The American Statistician, 1992.
[3] Y. Yuan and M.J. Shaw. "Induction of fuzzy decision trees ", Fuzzy Sets and Systems, 1995.
[4] What can a machine learn from tweets about the weather. (2013, December 1). Retrieved November 5, 2015, from
[5] 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.
[6] Sriram, Bharath. "Short text classification in twitter to improve information filtering", Proceedings of the 33rd
international ACM SIGIR conference on Research and development in information retrieval, 2010.
[7] www.kaggle.com/c/crowdflower-weather-twitter
[8].گراسمن، دیوید و افیر فریدر."بازیابی اطلاعات،الگوریتم ها و روش های اکتشافی"ترجمه ی جعفر مهراد و سارا کلینی .انتشارات کتابخانه ای.1384.
[9] Baeza Yates, R. Ribeiro. "Modern information Retrieval ", Addison Wesley, 1999.
[10] Salton, G., Yang, C.G., Yu, C.T. "A Theory of Term Importance in Automatic Text Analysis ", Journal of
the ASIS, 1975.
[11] Salton, G.Buckley. "Term weighting Approaches in Automatic Text Retrieval ", Information Processing and
Management, 1988.

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

۷. پاورقی


  1. microblog

  2. short text classificatio

  3. Support Vector Machine-SVM

  4. k-nearest neighbors

  5. Desition Tree

  6. pos-tagging

  7. over-fitting . بیش برازش یعنی اگرچه مدل روی داده ی استفاده شده برای یادگیری بسیار خوب نتیجه می‌دهد، اما بر روی داده ی جدید دارای خطای زیاد است و وقتی اتفاق می افتد که مدل به جای بیان روابط اصلی، نویزها و خطاهای تصادفی را مدل کند.

  8. feature extraction

  9. Vector Space Model

  10. Stop words

  11. Term frequency

  12. Data set

تایید شده

سلام
ممنون از زحمتی که برای این فاز کشیدید:) چند نکته درباره کار شما وجود دارد که در ادامه آن ها را عرض خواهم کرد:

  • مهمترین مساله‌ای که در کار شما دیده می‌شود، نحوه‌ی فصل‌بندی و ساختار نوشتارتان است. شاید قراردادن «۲.مجموعه‌ی داده» به عنوان یک بخش خیلی جالب به نظر نرسد یا برای خواننده سخت باشد که ارتباط بین «کارهای مرتبط» و «انتخاب ویژگی‌ها» را به درستی درک کند(احتمالا انتخاب ویژگی‌ها باید یک زیر بخش از کارهای مرتبط می‌شد). سعی کنید یکبار دیگر مساله را در ذهن خودتان مرور کنید و پیش از این‌که درگیر نوشتن متن و بیان جزییات شوید، به این که از ابتدا تا انتهای کار، چه کارهایی را قرار است انجام دهید(نه به شکل دقیق) فکر کنید. حتما ساختاری بهتر، برای بیان موضوع و انجام پروژه پیدا خواهید کرد.

  • در مقدمه سعی کنید قبل از این‌که چالش‌های کار را مطرح کنید، مساله را به خوبی شرح دهید.

  • موارد نگارشی مانند نیم‌فاصله‌ها را اصلاح کنید.

  • در مورد ارجاعات، یک ساختار یکسان و استاندارد را رعایت کنید. در متن هم به نظرم بهتر است به جای گفتن در [2] مثلا بگویید: « در روش فلان که .... است[2]» یا «سیریام[2] روش ....».

  • جدول‌ها باید شماره و توضیح داشته باشند.

  • بهتر بود روشی که در انتخاب ویژگی‌ها توضیح داده‌اید را تا انتها توضیح می‌دادید. ظاهرا فقط بخش استخراج ویژگی‌های آن را توضیح داده‌اید.

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

تایید شده

سلام،
موضوع انتخاب شده بسیار جذاب می‌باشد.

  • اولین مسئله‌ این که در مطالعات انجام شده و در پیاده سازی به bag of words اشاره کردید، اما توضیح مناسبی و حتی پیوند مفیدی برای توضیح آن نیاورده اید.

  • بخش بندی پروژه در قسمت آزمایش ها اشکال دارد و بجای ۳ بخش ۴ نوشته شده است مثل : 4.1 مجموعه داده

  • بهتر بود که نمونه ای از داده هاتون نشون میدادید.

  • خیلی بهتر بود اگر نتیجه‌ی پیاده سازی های خودتون رو در این فاز در قالب جدول گزارش میکردید، مثلا درباره‌ي مقدار k، تعداد کلمات با ارزش گفتید و خوب میشد اگه برای چند k امتحان میکردید و گزارش میدادید. ضمنا جهت انتخاب بهترین k روش‌هایی وجود دارد مثل elbow method که میتونید راجع بهش تحقیق کنید.

  • من سعی کردم برای دیدن دقتتون کد رو اجرا کنم ولی بخاطر حجم داده ها، در گیتهاب نبود، بهتر بود پیوندی به داده ها که توی سایت kaggle هست میدادید.

  • بنظرم پروژه شما یک بخش پیش پردازش کم داره مثلا توییت هایی که ریتوییت شدن با @ مشخص میشوند و میشه برای بهبود نتایج همچین تمیز کاری هایی کرد :) ، پروژه هایی مثل این موضوعات خوبی در این قسمت معرفی کردن.

  • مسئله آخر ویژگی هایی هست که شما انتخاب کردید، که بنظر من خیلی کم هستند، برای نمونه از چیز هایی مثل WordNet, Word2Vec , شکلک (emoji) های موجود در متن، NGram و … میشه استفاده کرد.
    موفق باشید.

تایید شده

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

تایید شده

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

رد شده

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

رد شده

پروژه تقریبا کامل است نکته ای که باید به آن اشاره کنم این است که بهتر بود بخشی در مقاله برای بهبود نتایج آزمایشات در نظر می گرفتید !
موفق باشید

رد شده

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

رد شده

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

تایید شده

خسته‌نباشید

  • در این فاز انتظار داشتیم که روش پیاده سازی خودتان را بهبود بدهید. بهتر بود که دسته‌بندی را با چند روش(که توضیح هم داده‌اید) پیاده‌سازی می‌کردید و نتایج را قرار می‌دادید و یا با تغییر فیچرها آزمایش را تکرار می‌کردید.

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

  • بهتر بود توضیح می دادید داده ها رندم کاهش داده‌اید.
    َ* در مورد پارامتر k در ازمایش‌ها تقریبا توضیحی نداده‌اید از کدها متوجه آن شدم که البته هیچ تاثیری هم روی نتایجتان نداشته است. وقتی پارامتری تاثیری ندارد بهتر بود برای سرعت بیشتر فقط با ۵۰ تست‌ها را انجام‌ می‌دادید. در ارزیابی بهتر بود معیارهایی مانند دقت، فراخوانی و F1 را محاسبه می‌کردید، همچنین نتایج خود را تحلیل نکرده‌اید مثلا به چه دلیل دسته K دقت کم و W دقت زیادی دارد.

  • مرتب بنویسید. لینک ها در متن خوب نیستند
    در کل تلاشتان خوب بوده است.
    موفق باشید