تعدين بيانات Twitter: دليل لتحليلات البيانات الضخمة باستخدام Python

نشرت: 2022-03-11

البيانات الضخمة في كل مكان. فترة. في عملية إدارة مشروع تجاري ناجح في يومنا هذا وفي عصرنا الحالي ، من المحتمل أن تصطدم به سواء أعجبك ذلك أم لا.

سواء كنت رجل أعمال يحاول مواكبة العصر أو معجزة ترميز تبحث عن مشروعهم التالي ، سيعطيك هذا البرنامج التعليمي نظرة عامة موجزة عن ماهية البيانات الضخمة. سوف تتعلم كيف ينطبق عليك ، وكيف يمكنك البدء بسرعة من خلال Twitter API و Python.

ثعبان بيثون يقرأ تويتر

ما هي البيانات الضخمة؟

البيانات الضخمة هي بالضبط ما تبدو عليه — الكثير من البيانات. لوحدك ، لا يمكن أن تمنحك نقطة واحدة من البيانات الكثير من التبصر. لكن تيرابايت من البيانات ، جنبًا إلى جنب مع النماذج الرياضية المعقدة وقوة الحوسبة الصاخبة ، يمكن أن تخلق رؤى لا يستطيع البشر إنتاجها. القيمة التي توفرها تحليلات البيانات الضخمة للأعمال التجارية غير ملموسة وتتجاوز القدرات البشرية كل يوم.

تتمثل الخطوة الأولى لتحليلات البيانات الضخمة في جمع البيانات نفسها. يُعرف هذا باسم "التنقيب عن البيانات". يمكن أن تأتي البيانات من أي مكان. تتعامل معظم الشركات مع غيغابايت من بيانات المستخدم والمنتج والموقع. في هذا البرنامج التعليمي ، سنستكشف كيف يمكننا استخدام تقنيات التنقيب عن البيانات لجمع بيانات Twitter ، والتي يمكن أن تكون أكثر فائدة مما تعتقد.

على سبيل المثال ، لنفترض أنك تدير Facebook وتريد استخدام بيانات Messenger لتقديم رؤى حول كيفية الإعلان بشكل أفضل لجمهورك. لدى Messenger 1.2 مليار مستخدم نشط شهريًا. في هذه الحالة ، البيانات الضخمة عبارة عن محادثات بين المستخدمين. إذا كنت تقرأ محادثات كل مستخدم بشكل فردي ، فستتمكن من الحصول على فكرة جيدة عما يحلو لهم ، وستكون قادرًا على التوصية بالمنتجات لهم وفقًا لذلك. باستخدام تقنية التعلم الآلي المعروفة باسم معالجة اللغة الطبيعية (NLP) ، يمكنك القيام بذلك على نطاق واسع مع أتمتة العملية بأكملها وتركها للآلات.

هذا مجرد مثال واحد من الأمثلة التي لا حصر لها حول كيف يمكن للتعلم الآلي وتحليلات البيانات الضخمة أن تضيف قيمة لشركتك.

لماذا بيانات تويتر؟

تويتر منجم ذهب للبيانات. على عكس المنصات الاجتماعية الأخرى ، فإن تغريدات كل مستخدم تقريبًا عامة تمامًا ويمكن سحبها. هذه إضافة ضخمة إذا كنت تحاول الحصول على كمية كبيرة من البيانات لتشغيل التحليلات عليها. بيانات Twitter هي أيضًا محددة جدًا. تتيح لك واجهة برمجة تطبيقات Twitter إجراء استعلامات معقدة مثل سحب كل تغريدة حول موضوع معين خلال العشرين دقيقة الماضية ، أو سحب تغريدات مستخدم معين غير مُعاد تغريدها.

يمكن أن يكون أحد التطبيقات البسيطة لذلك هو تحليل كيفية تلقي شركتك في الجمهور العام. يمكنك جمع آخر 2000 تغريدة تذكر شركتك (أو أي مصطلح تريده) ، وتشغيل خوارزمية لتحليل المشاعر عليها.

يمكننا أيضًا استهداف المستخدمين الذين يعيشون على وجه التحديد في موقع معين ، وهو ما يُعرف بالبيانات المكانية. يمكن أن يكون التطبيق الآخر لذلك هو تعيين المناطق على الكرة الأرضية التي تم ذكر شركتك فيها أكثر من غيرها.

كما ترى ، يمكن أن تكون بيانات Twitter بابًا كبيرًا في رؤى عامة الناس ، وكيف يتلقون موضوعًا. يمكن أن يؤدي ذلك ، جنبًا إلى جنب مع الانفتاح والحد من المعدل السخي لواجهة برمجة تطبيقات Twitter ، إلى نتائج قوية.

نظرة عامة على الأدوات

سنستخدم Python 2.7 لهذه الأمثلة. من الناحية المثالية ، يجب أن يكون لديك IDE لكتابة هذا الرمز. سأستخدم PyCharm - Community Edition.

للاتصال بواجهة برمجة تطبيقات Twitter ، سنستخدم مكتبة Python تسمى Tweepy ، والتي سنقوم بتثبيتها قليلاً.

ابدء

حساب مطور تويتر

من أجل استخدام واجهة برمجة تطبيقات Twitter ، يتعين علينا إنشاء حساب مطور على موقع تطبيقات Twitter.

  1. قم بتسجيل الدخول أو إنشاء حساب Twitter على https://apps.twitter.com/.
  2. إنشاء تطبيق جديد (الزر أعلى اليمين)
    موقع الزر لإنشاء تطبيق
  3. املأ صفحة إنشاء التطبيق باسم فريد واسم موقع ويب (استخدم موقع ويب عنصرًا نائبًا إذا لم يكن لديك واحدًا) ووصف المشروع. اقبل الشروط والأحكام وانتقل إلى الصفحة التالية.
    استمارة إنشاء التطبيق
  4. بمجرد إنشاء مشروعك ، انقر فوق علامة التبويب "المفاتيح ورموز الوصول". يجب أن تكون الآن قادرًا على رؤية سر العميل ومفتاح العميل.
    موقع مفتاح Twitter API والسر
  5. ستحتاج أيضًا إلى زوج من رموز الوصول. قم بالتمرير لأسفل واطلب تلك الرموز المميزة. يجب أن يتم تحديث الصفحة ، ويجب أن يكون لديك الآن رمز وصول وسر رمز وصول.
    نموذج يوضح رموز الوصول

سنحتاج إلى كل ذلك لاحقًا ، لذا تأكد من إبقاء علامة التبويب هذه مفتوحة.

تركيب Tweepy

Tweepy هي أداة مدعومة بشكل ممتاز للوصول إلى Twitter API. يدعم Python 2.6 و 2.7 و 3.3 و 3.4 و 3.5 و 3.6. هناك طريقتان مختلفتان لتثبيت Tweepy. أسهل طريقة هي استخدام pip .

باستخدام Pip

ما عليك سوى كتابة pip install tweepy في جهازك الطرفي.

باستخدام جيثب

يمكنك اتباع التعليمات الموجودة في مستودع Tweepy على GitHub. الخطوات الأساسية هي كما يلي:

 git clone https://github.com/tweepy/tweepy.git cd tweepy python setup.py install

يمكنك أيضًا استكشاف أي مشكلات في التثبيت وإصلاحها.

المصادقة

الآن بعد أن أصبحت لدينا الأدوات اللازمة جاهزة ، يمكننا البدء في البرمجة! يتطلب خط الأساس لكل تطبيق سننشئه اليوم استخدام Tweepy لإنشاء كائن API يمكننا استدعاء الوظائف به. من أجل إنشاء كائن API ، يجب علينا أولاً أن نصادق أنفسنا بمعلومات المطور الخاصة بنا.

أولاً ، دعنا نستورد Tweepy ونضيف معلومات المصادقة الخاصة بنا.

 import tweepy consumer_key = "wXXXXXXXXXXXXXXXXXXXXXXX1" consumer_secret = "qXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXh" access_token = "9XXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXi" access_token_secret = "kXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXT"

حان الوقت الآن لإنشاء كائن API الخاص بنا.

 # Creating the authentication object auth = tweepy.OAuthHandler(consumer_key, consumer_secret) # Setting your access token and secret auth.set_access_token(access_token, access_token_secret) # Creating the API object while passing in auth information api = tweepy.API(auth)

سيكون هذا هو أساس كل تطبيق نقوم بإنشائه ، لذا تأكد من عدم حذفه.

مثال 1: الجدول الزمني الخاص بك

في هذا المثال ، سنقوم بسحب أحدث عشر تغريدات من موجز Twitter الخاص بك. سنفعل ذلك باستخدام وظيفة home_timeline() لكائن واجهة برمجة التطبيقات. يمكننا بعد ذلك تخزين النتيجة في متغير ، والتكرار خلالها لطباعة النتائج.

 # Using the API object to get tweets from your timeline, and storing it in a variable called public_tweets public_tweets = api.home_timeline() # foreach through all tweets pulled for tweet in public_tweets: # printing the text stored inside the tweet object print tweet.text

يجب أن تبدو النتيجة كمجموعة من التغريدات العشوائية ، متبوعة بعنوان URL للتغريدة نفسها.

غرد المحتويات والروابط على المحطة

غالبًا ما يؤدي اتباع رابط التغريدة إلى نقلك إلى التغريدة نفسها. سيعطينا اتباع الرابط من التغريدة الأولى النتيجة التالية:

غرد أن الرابط الأول من الصورة السابقة مرتبط به

لاحظ أنه إذا كنت تقوم بتشغيل هذا من خلال Terminal وليس IDE مثل PyCharm ، فقد تواجه بعض مشكلات التنسيق عند محاولة طباعة نص التغريدة.

JSON وراء النتائج

في المثال أعلاه ، قمنا بطباعة النص من كل تغريدة باستخدام tweet.text . للإشارة إلى سمات محددة لكل كائن تغريدة ، يتعين علينا إلقاء نظرة على JSON الذي تم إرجاعه بواسطة Twitter API.

النتيجة التي تتلقاها من Twitter API هي بتنسيق JSON ، وتحتوي على قدر كبير من المعلومات المرفقة. من أجل التبسيط ، يركز هذا البرنامج التعليمي بشكل أساسي على سمة "النص" لكل تغريدة ، والمعلومات حول مكبر الصوت (المستخدم الذي أنشأ التغريدة). بالنسبة للعينة أعلاه ، يمكنك رؤية كائن JSON الذي تم إرجاعه بالكامل هنا.

إليك نظرة سريعة على بعض السمات التي يجب أن تقدمها التغريدة.

بعض السمات التي أرجعها Twitter API

إذا كنت ترغب في العثور على تاريخ إنشاء التغريدة ، فيمكنك الاستعلام عنها باستخدام print tweet.created_at .

يمكنك أيضًا أن ترى أن كل كائن تغريدة يأتي مع معلومات حول مكبر الصوت.

سمات المستخدم التي تم إرجاعها بواسطة Twitter API

للحصول على سمة "الاسم" و "الموقع" لمكبر الصوت ، يمكنك تشغيل print tweet.user.screen_name print tweet.user.location .

لاحظ أن هذه السمات يمكن أن تكون مفيدة للغاية إذا كان تطبيقك يعتمد على البيانات المكانية.

المثال 2: تغريدات من مستخدم معين

في هذا المثال ، سنقوم ببساطة بسحب آخر عشرين تغريدة من مستخدم من اختيارنا.

أولاً ، سنقوم بفحص وثائق Tweepy لمعرفة ما إذا كانت هناك وظيفة من هذا القبيل. مع القليل من البحث ، وجدنا أن وظيفة user_timeline() هي ما نبحث عنه.

وثائق لأمر الخط الزمني للمستخدم

يمكننا أن نرى أن وظيفة user_timeline() لديها بعض المعلمات المفيدة التي يمكننا استخدامها ، على وجه التحديد id (معرف المستخدم) count (كمية التغريدات التي نريد سحبها). لاحظ أنه لا يمكننا سوى سحب عدد محدود من التغريدات لكل استعلام نظرًا لحدود معدل Twitter.

لنحاول سحب آخر عشرين تغريدة من حساب تويترNyTimes.

محتويات حسابNyTimes على Twitter وقت كتابة هذا التقرير

يمكننا إنشاء متغيرات لتخزين كمية التغريدات التي نريد سحبها (العد) ، والمستخدم الذي نريد سحبها منه (الاسم). يمكننا بعد ذلك استدعاء دالة user_timeline بهاتين المعلمتين. يوجد أدناه الرمز المحدث (لاحظ أنه كان يجب عليك الاحتفاظ بالمصادقة وإنشاء كائن واجهة برمجة التطبيقات في الجزء العلوي من التعليمات البرمجية الخاصة بك).

 # Creating the API object while passing in auth information api = tweepy.API(auth) # The Twitter user who we want to get tweets from name = "nytimes" # Number of tweets to pull tweetCount = 20 # Calling the user_timeline function with our parameters results = api.user_timeline(id=name, count=tweetCount) # foreach through all tweets pulled for tweet in results: # printing the text stored inside the tweet object print tweet.text

يجب أن تبدو نتائجنا كما يلي:

محتويات الجدول الزمني للمستخدم لـNyTimes

يمكن أن تتضمن التطبيقات الشائعة لهذا النوع من البيانات ما يلي:

  • إجراء تحليل على مستخدمين محددين وكيفية تفاعلهم مع العالم
  • العثور على المؤثرين على Twitter وتحليل اتجاهات المتابعين وتفاعلاتهم
  • مراقبة التغييرات في متابعي المستخدم

مثال 3: البحث عن التغريدات باستخدام كلمة رئيسية

لنقم بمثال أخير: الحصول على أحدث التغريدات التي تحتوي على كلمة رئيسية. يمكن أن يكون هذا مفيدًا للغاية إذا كنت ترغب في مراقبة الموضوعات المذكورة على وجه التحديد في عالم Twitter ، أو حتى لترى كيف يتم ذكر عملك. لنفترض أننا نريد أن نرى كيف ذكر موقع Twitter Toptal.

بعد الاطلاع على وثائق Tweepy ، يبدو أن وظيفة search() هي أفضل أداة لتحقيق هدفنا.

توثيق لأمر البحث

أهم عامل هنا هو q —معامل الاستعلام ، وهي الكلمة الأساسية التي نبحث عنها.

يمكننا أيضًا تعيين معلمة اللغة حتى لا نحصل على أي تغريدات من لغة غير مرغوب فيها. دعونا نعيد فقط التغريدات باللغة الإنجليزية (“en”).

يمكننا الآن تعديل الكود الخاص بنا ليعكس التغييرات التي نريد إجراؤها. نقوم أولاً بإنشاء متغيرات لتخزين معلماتنا (الاستعلام واللغة) ، ثم استدعاء الوظيفة عبر كائن API. دعنا أيضًا نطبع اسم شاشة المستخدم الذي أنشأ التغريدة في حلقتنا.

 # Creating the API object while passing in auth information api = tweepy.API(auth) # The search term you want to find query = "Toptal" # Language code (follows ISO 639-1 standards) language = "en" # Calling the user_timeline function with our parameters results = api.search(q=query, lang=language) # foreach through all tweets pulled for tweet in results: # printing the text stored inside the tweet object print tweet.user.screen_name,"Tweeted:",tweet.text

يجب أن تبدو نتائجنا كما يلي:

نتائج البحث عند الاستعلام عن Toptal

فيما يلي بعض الطرق العملية التي يمكنك من خلالها استخدام هذه المعلومات:

  • قم بإنشاء رسم بياني مكاني حول المكان الذي يتم فيه ذكر شركتك أكثر من غيرها حول العالم
  • قم بإجراء تحليل المشاعر على التغريدات لمعرفة ما إذا كان الرأي العام لشركتك إيجابيًا أم سلبيًا
  • قم بإنشاء رسوم بيانية اجتماعية لأكثر المستخدمين شيوعًا الذين يغردون عن شركتك أو منتجك

يمكننا تغطية بعض هذه الموضوعات في مقالات مستقبلية.

خاتمة

تعد واجهة برمجة تطبيقات Twitter مفيدة للغاية في تطبيقات التنقيب عن البيانات ، ويمكن أن توفر رؤى واسعة حول الرأي العام. إذا كانت واجهة برمجة تطبيقات Twitter وتحليلات البيانات الضخمة أمرًا لديك اهتمام إضافي به ، فأنا أشجعك على قراءة المزيد حول إرشادات تحديد الأسعار في Twitter API و Tweepy و Twitter.

قمنا بتغطية أساسيات الوصول والسحب فقط. يمكن الاستفادة من واجهة برمجة تطبيقات Twitter في مشاكل البيانات الضخمة المعقدة للغاية ، والتي تشمل الأشخاص والاتجاهات والرسوم البيانية الاجتماعية المعقدة للغاية بحيث يتعذر على العقل البشري استيعابها بمفرده.

الموضوعات ذات الصلة: تحليل الشبكة الاجتماعية في R و Gephi: الحفر في Twitter