تحليل المشاعر على تويتر
تحليل آراء الناس في العمل عن بُعد خلال جائحة كوفيد-19 من خلال هاشتاقَي #WorkFromHome و#العمل_عن_بعد، بالاعتماد على MongoDB.
مشروع جماعي

المشكلة
مع جائحة كوفيد-19 انتقلت جهات كثيرة للعمل عن بُعد، وكان السؤال: هل الناس مرتاحون لهذا التحول أم يفضّلون العودة إلى المكاتب؟
الحل
جمع تغريدات هاشتاقَين عن العمل عن بُعد، وتخزينها في MongoDB Atlas، وتصنيفها حسب المشاعر، ثم عرض النتائج في رسوم بيانية توضح نسبة الآراء الإيجابية والسلبية.
النتائج الموثّقة
- #WorkFromHome: النسبة الأعلى كانت للتغريدات الإيجابية.
- #العمل_عن_بعد: أغلب التغريدات غير متعلقة بالموضوع، والسلبية أعلى قليلًا من الإيجابية.
كيف يعمل
تويتر مصدر ضخم لآراء الناس اليومية، لذلك اخترنا هاشتاقَين عن العمل عن بُعد، واحدًا بالإنجليزي وآخر بالعربي، وصنّفنا التغريدات حسب المشاعر لنعرف نسبة الآراء الإيجابية والسلبية.
نُفّذ المشروع بفريق من خمسة أعضاء خلال ثمانية أيام، من 1 إلى 8 أبريل 2020.
مراحل العمل
- البيئة: تثبيت Red Hat Enterprise Linux، ثم خادم MongoDB 4.2 وواجهة الأوامر (Mongo Shell)
- قاعدة البيانات السحابية: إعداد عنقود على MongoDB Atlas، مع ضبط قائمة عناوين IP المسموحة ومستخدمي قاعدة البيانات، وربطه بـ MongoDB Compass
- جمع البيانات: تنزيل التغريدات حسب الهاشتاق، وحذف الأعمدة غير المطلوبة، وتحويلها إلى JSON
- التحميل: سكربت JavaScript يُشغَّل من Mongo Shell لإدخال المستندات في المجموعة (collection)
- التحليل: Python 3 وMiniconda وJupyter Notebook
- العرض: لوحة رسوم بيانية على MongoDB Charts
التحديات
- الوصول إلى Twitter API: كانت الخطة جمع التغريدات لحظيًا عبر الواجهة البرمجية، لكن طلب الوصول بقي قيد المراجعة حتى موعد التسليم، فاعتمدنا أداة ويب لتنزيل التغريدات يدويًا
- الرسوم في Jupyter: واجهنا مشاكل في رسم البيانات المطلوبة، فاستخدمنا Jupyter للتحليل وMongoDB Charts للعرض
ما تعلّمته
- أن يكون عندك دائمًا خطة بديلة جاهزة عندما يكون موعد التسليم ضيقًا
- الفرق بين قواعد البيانات العلائقية (SQL) وغير العلائقية (NoSQL)، وكيف يخزّن MongoDB البيانات كمستندات JSON بمرونة
- الفرق بين خادم MongoDB وواجهة الأوامر Mongo Shell
- أن العنقود في Atlas يتكوّن من ثلاث عُقد: عقدة رئيسية واحدة تستقبل الكتابة وعقدتان ثانويتان تحملان نسخة من البيانات، وتحلّ إحداهما محل الرئيسية عند تعطّلها
أبرز المزايا
- جمع التغريدات من هاشتاق إنجليزي وآخر عربي
- تنظيف البيانات وتحويلها من جداول إلى مستندات JSON
- تخزين البيانات على MongoDB Atlas السحابية
- إدارة قاعدة البيانات واستعراضها عبر MongoDB Compass
- تصنيف كل تغريدة: إيجابية أو سلبية أو غير ذات صلة
- تحليل البيانات في Jupyter Notebook باستخدام Python
- لوحة رسوم بيانية للنتائج عبر MongoDB Charts
- مراقبة أداء عُقد قاعدة البيانات من لوحة Atlas
لقطات الشاشة


