آخر مشاريعي البرمجية: نوتبوك لجمع وتحليل البيانات من تويتر

كأي مشروع بالبيانات كان الدافع الإجابة على أسئلة مثل: من أين متابعيني؟ كيف أداء تغريداتي؟ من اتابع؟

في هذه السلسلة ساشرح كيفية تجميع البيانات وتحليلها لإجابة مثل تلك الأسئلة بلغة بايثون https://colab.research.google.com/drive/1cwefy0vNKHjW_XUZeyvKvc0U-no3gKGt#scrollTo=EaGv0ePkydNz
يتكون النوتبوك من ٦ أجزاء
(موضحة في الصورة)

١) الاعداد: تحميل المكتبات و الربط مع قوقل درايف لتخزين البيانات
٢) تجميع البيانات
٣) تحليل التغريدات
٤) تحليل المتابعين
٥) تحليل من اتابع
٦) تحليل زمني
اهم المكتبات المستخدمة
- مكتبة tweepy لاستخدام واجهة برمجية (API) لتويتر بلغة بايثون
- مكتبة pandas لمعالجة البيانات في جداول
- مكتبة matplotlib للرسوم البيانية
- مكتبة google.colab للربط مع قوقل درايف
- مكتبة datetime لمعالجة بيانات التواريخ
- مكتبة time لحساب الوقت
تجميع البيانات مكون من ٤ أجزاء
١) التوثيق مع API تويتر
٢) الدوال المساعدة: حفظ البيانات في ملف json و التعامل مع حدود API تويتر
٣) دوال تجميع البيانات: التغريدات و معلومات المتابعين و من اتابع و بيانات زمنية عن حسابي
٤) تنفيذ عملية تجميع البيانات
للتوثيق مع تويتر
١) تحتاج فتح حساب مطوّر (developer) على تويتر. يكفي الحساب العادي المجاني (standard)
https://developer.twitter.com/en/apply-for-access

٢) استخدم الكلمات السرية الممنوحة لك بعد فتح حساب المطوّر للتوثيق مع API تويتر
http://docs.tweepy.org/en/v3.5.0/auth_tutorial.html

الان تستطيع طلب البيانات من تويتر بطريقة برمجية
الاستخدام المجاني لAPI تويتر يحد كمية البيانات التي تستطيع جمعها كل ١٥ دقيقة كما أني احيانا واجهت مشاكل في الاتصال بالAPI ولذلك احتجت دالة لتجاوز هذه الحدود باستخدام صيغة try-except المخصصة للتعامل مع الexceptions التي قد توقف عمل البرنامج
شرح مبسط ل try-except
اولا الexception هو حدث يطرأ خلال تنفيذ البرنامج يؤدي إلى تعطيل طريقة عمل البرنامج عن المتوقع

تحت try ضع الأوامر التي تريد تنفيذها

تحت except حدد نوع الاستثناءات التي تريد معالجتها دون إيقاف البرنامج (في هذه الحالة حدود API تويتر)
الان نستطيع كتابة دوال لجمع البيانات دون توقف البرنامج بسبب حدود الAPI

نصائح عامة:
- ابحث قبل التنفيذ فقد تجد من سبقك بكتابة برنامج مشابه فتستطيع الاستفادة منه
- اقرأ دليل المكتبات والAPIs لتتعرف على الإمكانيات وطرق تحسين البرنامج مثل كيفية تحميل مجموعة من المعلومات دفعة واحدة
تحليل التغريدات
١) افحص البيانات قبل التحليل لتتعرف على خواصها
٢) قمت بتصنيف التغريدات الى: تغريدة او رد أو ريتويت
٣) التحليل: تحديد عدد التغريدات حسب نوعها، معدل التفضيل حسب نوع التغريدة، تحديد أفضل ١٠ تغريدات حسب التفضيل، و رسم بياني يوضح التغريدات و التفضيل
تحليل المتابعين
١) تعرف على بيانات المستخدم المتوفرة في API تويتر
https://developer.twitter.com/en/docs/tweets/data-dictionary/overview/user-object
٢) ركزت على تحليل المتابعين حسب الموقع وبعد فحص البيانات حددت كلمات تساعد على تصنيف الموقع
٣) قمت بعدة محاولات بفحص المواقع المصنفة تحت Other لتنقيح الكلمات المحددة واضافة كلمات غير مستخدمة
تحليل من اتابع
١) مشابه لتحليل المتابعين إلا أني هنا استخدمت الموقع الإلكتروني و بروفايل المستخدم للتصنيف
٢) استخدمت API تويتر لالغاء متابعتي (unfollow) لكل الحسابات المصنفة تحت الرياضة
أخيرا رسم بعض البيانات الزمنية حيث ان تويتر لا توفر معلومات زمنية عن عدد المتابعين أو من اتابع لذلك برمجت دالتي لحفظ هذه البيانات
في الختام
- هناك برامج ومنصات جاهزة لتحليل بيانات تويتر (بعضها من تويتر نفسها) لكن هذه كانت تجربة جيدة وتعلمت منها الكثير
- هذه دوال ليست مثالية وقد تكون بعض البيانات مصنفة بطريقة خاطئة لكنها تزال أفضل من لا شيء
- ارحب باستخدامكم للنوتبوك ونقدكم ونصحكم عن كيفية تحسينه 🌹
You can follow @yakhoja.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: