برنامج نصي صغير من Python 3 لتنزيل التغريدات العامة من حسابات Twitter إلى تنسيق مناسب لأدوات إنشاء النص بالذكاء الاصطناعي (مثل gpt-2-simple لضبط GPT-2).
يمكنك عرض أمثلة للتغريدات التي تم إنشاؤها بواسطة الذكاء الاصطناعي من مجموعات البيانات التي تم استردادها باستخدام هذه الأداة في المجلد /examples
.
أولاً، قم باستنساخ هذا المستودع على نظامك وتثبيت التبعيات باستخدام الأوامر التالية:
git clone https://github.com/sdelgadoc/download-tweets-ai-text-gen-plus.git
cd download-tweets-ai-text-gen-plus
pip3 install -r requirements.txt
استخدمت الإصدارات السابقة من هذا الكود مكتبات استخراج البيانات لجمع التغريدات. منذ ذلك الحين، جعل تويتر عملية استخراج البيانات أكثر صعوبة مع توفير واجهات برمجة تطبيقات أكثر قوة لجمع التغريدات. ردًا على ذلك، قمنا بنقل هذا الرمز ليتم تشغيله فقط مع واجهة برمجة التطبيقات الخاصة بتويتر.
لمواصلة الإعداد، قم بإنشاء تطبيق Twitter حتى تتمكن من الوصول إلى Twitter API. بمجرد إنشاء تطبيق، قم بإنشاء رموز الوصول، وأدخلها في قسم ملف keys.py
الموضح أدناه.
keys = { 'consumer_key' : "" ,
'consumer_secret' : "" ,
'access_token' : "" ,
'access_token_secret' : "" }
أخيرًا، انتقل إلى صفحة بيئات التطوير الخاصة بـ Twitter API، وقم بإنشاء بيئة تطوير لواجهة برمجة التطبيقات للأرشيف الكامل، وأدخل اسم البيئة في قسم label
في ملف keys.py
الموضح أدناه.
label = ""
يتم تشغيل البرنامج النصي عبر واجهة سطر الأوامر. بعد cd
المضغوط في الدليل حيث تم تخزين البرنامج النصي في الوحدة الطرفية، قم بتشغيل:
python3 download_tweets.py < twitter_username > 100
على سبيل المثال، إذا كنت تريد تنزيل 100 تغريدة (بدون إعادة تغريد/ردود/تغريدات اقتباس) من مستخدم Twitter @santiagodc، فقم بتشغيل:
python3 download_tweets.py santiagodc 100
ملحوظة: الطبقة المجانية لـ Twittter API لها حد تجميع يصل إلى 5000 تغريدة شهريًا، لذا قم بتعيين حد للتغريدات لتجنب تجاوز الحد الخاص بك بسرعة كبيرة
يمكن للبرنامج النصي أيضًا تنزيل التغريدات من أسماء مستخدمين متعددة في وقت واحد. للقيام بذلك، قم أولاً بإنشاء ملف نصي (.txt) يتضمن قائمة أسماء المستخدمين. ثم قم بتشغيل البرنامج النصي الذي يشير إلى اسم الملف:
python3 download_tweets.py < twitter_usernames_file_name > 100
سيتم تنزيل التغريدات إلى ملف CSV ذي عمود واحد بعنوان <usernames>_tweets.csv
.
المعلمات التي يمكنك تمريرها إلى واجهة سطر الأوامر (موضعيًا أو صريحًا) هي:
@
في نص التغريدة [الافتراضي: خطأ]#
علامة تصنيف في نص التغريدة [الافتراضي: خطأ]تضيف معلمة المشاعر فئة المشاعر إلى نص التغريدة. تسمح هذه المعلومات للمستخدم بتدريب وإنشاء نص بمشاعر مختلفة عن طريق تغيير المعلمة.
تنسيق الإخراج باستخدام تنسيق النص "البسيط" هو كما يلي:
[ Sentiment category ]
[ Tweet text for the tweet that was collected ]
تقبل معلمة المشاعر عددًا صحيحًا يحدد عدد فئات المشاعر التي يتم إرجاعها. فئات المشاعر لمختلف المعلمات المحتملة هي كما يلي:
يدعم الكود جمع التغريدات بتنسيق لتدريب الذكاء الاصطناعي الذي يمكنه الرد على التغريدات الأخرى. يعتمد تنسيق الإخراج على التنسيق المستخدم لتدريب مجتمع Subreddit Simulator Reddit.
تنسيق الإخراج هو ما يلي:
**** ARGUMENTS
ORIGINAL or REPLY: Whether the tweet is an original tweet or a reply
SENTIMENT: If the sentiment parameter is used, text describing the tweet text's sentiment
**** PARENT
[ Tweet text for the topmost tweet in a reply thread ]
**** IN_REPLY_TO
[ Tweet text for the tweet that is being responded to ]
**** TWEET
[ Tweet text for the tweet that was collected ]
لتجميع التغريدات بصيغة الرد هذه عن طريق تشغيل العبارة التالية:
python3 download_tweets.py < twitter_username > None True False False False 3 reply
من خلال تحديد تاريخ، سيقوم البرنامج النصي بتنزيل التغريدات من timeframe
للقيمة حتى الوقت الحاضر. سيقوم افتراضيًا بتنزيل كل تغريدة من مستخدم (أو مستخدمين) معينين بدءًا من يوم 22 مارس 2006، وهو اليوم الذي تم فيه إرسال أول تغريدة على الإطلاق. تعتبر معلمة timeframe
دقيقة، حيث تتيح لك تحديد السنة والشهر واليوم والساعة والدقيقة المطلوبة لتنزيل التغريدات منها بهذا الترتيب. يبدو التنسيق الذي تقبله معلمة timeframe
مثل YYYYMMDDHHMM
.
يحتوي gpt-2-simple على حالة خاصة لملفات CSV ذات العمود الواحد، حيث سيقوم بمعالجة النص تلقائيًا للحصول على أفضل تدريب وتوليد. (أي بإضافة <|startoftext|>
و <|endoftext|>
إلى كل تغريدة، مما يسمح بإنشاء تغريدات مستقلة)
يمكنك استخدام دفتر الملاحظات التعاوني هذا (المحسّن من دفتر الملاحظات الأصلي لحالة الاستخدام هذه) لتدريب النموذج على تغريداتك التي تم تنزيلها، وإنشاء كميات هائلة من التغريدات منه. لاحظ أنه بدون الكثير من البيانات، قد يتم تجاوز النموذج بسهولة؛ قد ترغب في التدرب على steps
أقل (على سبيل المثال 500
).
عند الإنشاء، ستحتاج دائمًا إلى تضمين معلمات معينة لفك تشفير التغريدات، على سبيل المثال:
gpt2 . generate ( sess ,
length = 200 ,
temperature = 0.7 ,
prefix = '<|startoftext|>' ,
truncate = '<|endoftext|>' ,
include_prefix = False
)
سانتياغو ديلجادو (@santiagodc) استنادًا إلى download-tweets-ai-text-gen بواسطةminimaxir
معهد ماساتشوستس للتكنولوجيا
لا يرتبط هذا الريبو بشركة Twitter Inc.