This is what we have for the experiment:
['الفساد, الصحة, اللإسكان, البطالة, الضرائب, البنزين, التعليم, الضمان, الترفيه, السعودة']
Conditions:
--- 1000-6000 Followers
--- location: list of Saudi cities (both in AR,EN)
--- No noise: fake followers, paid accounts and Ads
Experiment 1 : Collect
Experiment 2 : Stream
Experiment 3 : Search
Results summary: Experiment 1 : Collect - is the best in eliminating noise, if time is of no essence to get the tweets mentioning the keywords list then this is the best option. Experiment 2 : Stream - for general topic priorities, can be performed once a month. Experiment 3 : Search - if sentiments is needed on topics within a specific keyword with a moderate noise elimination, this option is the best.
Experiment 1 : Collect
Step 1. Choose main sample poll accounts:
@hashKSA @saudinews50 @ajelnews24 @alwatanNews24 @akhbaar24 @ksasociety @3ajel_ksa @saudi2society @sparegions
Step 2. Get the last 5000 followers from each account:
---------- AJELNEWS24-FOLLOWERS.TXT: 5001 ---------- 3AJEL_KSA-FOLLOWERS.TXT: 5003 ---------- AKHBAAR24-FOLLOWERS.TXT: 5000 ---------- ALWATANNEWS24-FOLLOWERS.TXT: 4999 ---------- HASHKSA-FOLLOWERS.TXT: 5000 ---------- KSASOCIETY-FOLLOWERS.TXT: 4999 ---------- SAUDI2SOCIETY-FOLLOWERS.TXT: 5004 ---------- SAUDINEWS50-FOLLOWERS.TXT: 5002 ---------- SPAREGIONS-FOLLOWERS.TXT: 5002 ---------- Total: 45010 followers
Step 3. Get common followers between accounts and look for abnormalities:
---------- Combinations equation: ---------- Cr = n! / r! (n - r)! ---------- Cr= 9! / 2! (9-2)! ---------- Cr= 362880 / 2 (5040) = 36
Step 4. Get Numbers of common followers from Step 3 (36 possibilities)
---------- 3AJEL_AJELNEWS24.TXT: 13 ---------- 3AJEL_AKHBAAR24.TXT: 82 ---------- 3AJEL_ALWATANNEWS24.TXT: 222 ---------- 3AJEL_HASHKSA.TXT: 20 ---------- 3AJEL_KSASOCIETY.TXT: 307 ---------- 3AJEL_SAUDI2SOCIETY.TXT: 51 ---------- 3AJEL_SAUDINEWS50.TXT: 10 ---------- 3AJEL_SPAREGIONS.TXT: 14 ---------- AJELNEWS24_AKHBAAR24.TXT: 394 ---------- AJELNEWS24_ALWATANNEWS24.TXT: 57 ---------- AJELNEWS24_HASHKSA.TXT: 1338 ---------- AJELNEWS24_KSASOCIETY.TXT: 86 ---------- AJELNEWS24_SAUDI2SOCIETY.TXT: 1 ---------- AJELNEWS24_SAUDINEWS50.TXT: 1335 ---------- AJELNEWS24_SPAREGIONS.TXT: 464 ---------- AKHBAAR24_ALWATANNEWS24.TXT: 254 ---------- AKHBAAR24_HASHKSA.TXT: 707 ---------- AKHBAAR24_KSASOCIETY.TXT: 454 ---------- AKHBAAR24_SAUDI2SOCIETY.TXT: 1 ---------- AKHBAAR24_SAUDINEWS50.TXT: 221 ---------- AKHBAAR24_SPAREGIONS.TXT: 210 ---------- ALWATANNEWS24_HASHKSA.TXT: 76 ---------- ALWATANNEWS24_KSASOCIETY.TXT: 837 ---------- ALWATANNEWS24_SAUDI2SOCIETY.TXT: 11 ---------- ALWATANNEWS24_SAUDINEWS50.TXT: 19 ---------- ALWATANNEWS24_SPAREGIONS.TXT: 26 ---------- HASHKSA_KSASOCIETY.TXT: 115 ---------- HASHKSA_SAUDI2SOCIETY.TXT: 2 ---------- HASHKSA_SAUDINEWS50.TXT: 690 ---------- HASHKSA_SPAREGIONS.TXT: 521 ---------- KSASOCIETY_SAUDI2SOCIETY.TXT: 13 ---------- KSASOCIETY_SAUDINEWS50.TXT: 43 ---------- KSASOCIETY_SPAREGIONS.TXT: 45 ---------- SAUDI2SOCIETY_SAUDINEWS50.TXT: 0 ---------- SAUDI2SOCIETY_SPAREGIONS.TXT: 0 ---------- SAUDINEWS50_SPAREGIONS.TXT: 292
Step 5. Analyze poll accounts for abnormalities :
Get accounts followers age Get retweets hops AJELNEWS24_HASHKSA have 1338 common followers out of 5000 (26.76%) AJELNEWS24_SAUDINEWS50 have 1335 common followers out of 5000 26.7%) If you want to make sure the accounts are good candidates for followers: Do Full Analysis: SAUDINEWS50 AJELNEWS24
Step 6. Combine followers accounts into one file from Step 2
Step 7. Remove bio data, Arabic text, emojis etc. from Step 6
Step 8. Remove duplicates accounts from Step 7
Step 9. Count Summary:
------ Number of accounts from step 6: AllFollowers.txt: 45010 Accounts ------ Number of accounts from step 8: C2ALLFOLLOWERS.TXT: 38329 Accounts ------ 45010 (Step 7) - 38329 (Step 8) = 6681 duplicate accounts found
Step 10. Get basic info from the 38329 accounts from Step 8:
---------- User Screen Name
---------- User Location
---------- User Tweets Count
---------- User Followers Count
---------- User Friends Count
---------- User Account Created Date
Result: Followers_STATS.csv
Step 11. Filter according to your criteria from Step 10, example:
-------- Pick only accounts with 1000-6000 Followers
-------- Pick only location information displayed
-------- location: Saudi Arabia, list of Saudi cities (both in AR,EN)
352 accounts that met the criteria from Step 11
Final_07_03_2022.pdf Final_07_03_2022.xlsx
Step 12. Then follow accounts in Final_07_03_2022.xlsx for keywords:
['الفساد, الصحة, اللإسكان, البطالة, الضرائب, البنزين, التعليم, الضمان, الترفيه, السعودة']
Time: The question when the random sample will talk about the keywords?
Step 13. Consider concentration: sample poll accounts based on a keyword:‘التعليم’
@mo3lmi @MOE_EPR @moe_gov_sa @MOE_HFB @MOE_HHL @MOE_JDH @MOE_MHC @MOE_NJR @moe_qsm @MOE_RYH @MOE_TIF @rt_teachers @Saudi_Teachers
Experiment 2 : Stream
Step 1. Stream Live Tweets for two days:
Streaming from 3/9/2022 10:22:12 PM to 3/11/2022 8:29:02 PM -------- Pick only location information displayed -------- location: Saudi Arabia, list of Saudi cities (both in AR,EN) Keywords: ['الفساد, الصحة, اللإسكان, البطالة, الضرائب, البنزين, التعليم, الضمان, الترفيه, السعودة'] Tweets count: 97885, TW_Location_Saudi_Arabia.xlsx
Step 2. Remove from Arabic text: Arabic list and emojis List etc. from Step 1
Step3. Get words frequencies:
[('الصحة', 6307), ('التعليم', 4846), ('وزارة', 2764), ('الضمان', 2587), ('العمل', 1732), ('البنزين', 1443), ('الحمد', 1112), ('الاجتماعي', 986), ('النادي', 866), ('خاص', 840), ('الخير', 781), ('الفساد', 780), ('تصفير', 749), ('بالرياض', 728), ('مدير', 718), ('بسب', 715), ('مفصوله', 708), ('التواصل', 706), ('دخل', 670), ('وزير', 639), ('يساوي', 629), ('يدركها', 626), ('فليحمد', 626), ('تكفون', 624), ('أسعار', 603), ('فتح', 583), ('نظام', 575), ('حافز', 574), ('وقت', 562), ('لاشيء', 549), ('وظائف', 534), ('العامة', 533), ('الدراسي', 529), ('نور', 526), ('تصميم', 526), ('تقديم', 523), ('سدادها', 518), ('الحر', 515), ('ارتفاع', 508), ('محطات', 501), ('واتساب', 493), ('تسجيل', 491), ('وظايف', 490), ('المرور', 485), ('اسنانك', 483), ('فالحكومي', 483), ('الفصل', 476), ('رب', 476), ('ورزق', 469), ('دعم', 468), ('شكرا', 463), ('طاقات', 463), ('الكليات', 461), ('الجامعات', 456), ('العظيم', 453), ('التسجيل', 453), ('الطوابير', 451), ('ريف', 449), ('تمهير', 448), ('قياس', 435), ('نقل', 434), ('البنوك', 433), ('عالج', 431), ('الكترونية', 428), ('أبشر', 424), ('التعليمية', 419), ('الرياض', 419), ('السعودية', 418), ('حسابات', 417), ('تغير', 414), ('نقدم', 412), ('هروب', 411), ('المحزن', 409), ('فاتورة', 409), ('التجارة', 408), ('الجوازات', 400), ('العدل', 398), ('البطالة', 396), ('العالمية', 395), ('اتصال', 393), ('التعقيب', 391), ('والقروض', 391), ('السعودي', 389), ('بلاغ', 389), ('وثيقه', 388), ('مدنية', 386), ('والتسجيل', 382), ('منظمة', 379), ('وانشاء', 378), ('بنكية', 378), ('عسكريةقطاع', 377), ('جدارةساند', 376), ('الضرائب', 373), ('الطلاب', 370), ('مباشرة', 365), ('المال', 362), ('الأمريكية', 354), ('شاهد', 345), ('الغة', 343), ('لحظة', 341)]
Step 4. Visualize words frequencies
Step 5. Filter based on conditions:
From 3/9/2022 10:22:12 PM To 3/11/2022 8:29:02 PM -------- Pick only accounts with 1000-6000 Followers -------- Pick only location information displayed -------- location: Saudi Arabia, list of Saudi cities (both in AR,EN) Keywords: ['الفساد, الصحة, اللإسكان, البطالة, الضرائب, البنزين, التعليم, الضمان, الترفيه, السعودة'] Tweets count: 4821, 1000-6000.xlsx
Step 6. Remove from Arabic text: Arabic list and emojis List etc. from Step 5
Step 7. Get words frequencies:
[('الصحة', 1483), ('التعليم', 914), ('الضمان', 598), ('مفصوله', 347), ('البنزين', 324), ('الخير', 286), ('تكفون', 281), ('سدادها', 235), ('رب', 222), ('الفساد', 210), ('وزارة', 189), ('فاتورة', 188), ('صعبه', 173), ('أهل', 168), ('الاجتماعي', 167), ('نت', 166), ('الحمد', 148), ('الكهرباء', 147), ('تراكم', 143), ('معسر', 141), ('صعبة', 141), ('العافية', 139), ('أسرة', 139), ('يناشدكم', 138), ('ظروفه', 138), ('المعشية', 138), ('الديون', 138), ('يناشد', 138), ('بمساعدته', 138), ('العمل', 137), ('مكتب', 133), ('وتفريج', 131), ('أسعار', 127), ('وهم', 127), ('الفزعه', 125), ('نسترجع', 124), ('بالسن', 123), ('مدير', 122), ('لعائله', 120), ('ضروفهم', 120), ('لايستطيعون', 120), ('حاجتها', 120), ('يساوي', 119), ('وزير', 119), ('كبيره', 119), ('يدركها', 118), ('فليحمد', 118), ('شهرين', 116), ('ويطلبون', 115), ('ورزق', 111), ('الخاص', 110), ('لاشيء', 107), ('نظام', 106), ('مطلقه', 106), ('الجمعة', 103), ('نور', 103), ('الدنيا', 103), ('العالمية', 102), ('إيجار', 102), ('السعودية', 100), ('بالرياض', 98), ('محطات', 96), ('يتيمه', 94), ('شكرا', 91), ('ارتفاع', 91), ('الطوابير', 90), ('بالنص', 89), ('كربته', 89), ('منظمة', 88), ('يارب', 87), ('ياهل', 87), ('جدة', 87), ('وحساب', 87), ('ثوب', 86), ('المال', 86), ('الرياض', 86), ('وماعندي', 82), ('التواصل', 81), ('بيضاء', 81), ('الجمعه', 79), ('لباس', 78), ('تغير', 78), ('السعودي', 78), ('العمر', 78), ('ساعه', 78), ('الأمريكية', 77), ('نعمة', 76), ('الح', 74), ('المواطن', 73), ('الدراسي', 73), ('اقسم', 73), ('الفصل', 72), ('افزعو', 72), ('كلمت', 72), ('مباشرة', 71), ('عاجزة', 71), ('والآخرة', 70), ('رمضان', 70), ('الطول', 70), ('استجابه', 70)]
Step 8. Visualize words frequencies
['الفساد, الصحة, البنزين, التعليم, الضمان'] is talked about more than ['اللإسكان, البطالة, الضرائب ,الترفيه, السعودة'] ['الصحة ,التعليم ,الضمان] is talked about more than ['البنزين ,الفساد] Compare Tweets count: 97885 (Step 1) with Tweets count: 4821 (Step 5) both have the same order: 1 ----------------------------- الصحة 2 ----------------------------- التعليم 3 ----------------------------- الضمان 4 ----------------------------- البنزين 5 ----------------------------- الفساد
Step 9. Words associated with keyword: ‘الصحة’
From Step 9 we didn't get what the sample want? or their sentiments towards 'الصحة'
Experiment 3 : Search
Step 1. Concentrate the search of a specific subject related to a keyword at a time:
For 'الصحة': وزارة الصحة + جهود + نعود بحذر + الصحة + كورونا + المستشفى + معاملة + مصابين + الكادر الطبي + تفشي + المستشفيات + التأخير Then remove the noise: افضل شركة نقل عفش + موعد القبول + منتج تنحيف + للتواصل + خدمات + شيخ روحاني + عاجل + أخبار_السعودية
Step 2. Filter according to your criteria from Step 1:
-------- Pick only accounts with 1000-6000 Followers -------- Pick only location information displayed -------- location: Saudi Arabia, list of Saudi cities (both in AR,EN)
Step 3. Split each word in a Tweet based on training set Negative.txt and Positive.txt
The results are promising with model prediction 83% correct: Result.TXT Can be improved by adding Saudi dialects in Negative.txt and Positive.txt This approach was used before here for YouTube Arabic comments
This third approach:
- Concentrate on specific subjects within each keyword on the list - Needs team brain-storming for specific subjects related to each keyword - BUT has moderate noise elimination