%cd ..
C:\Users\Talha\Documents\WinPython3\projects\News-Commentary-Tweets-of-Elites
import pandas as pd
import plotly.plotly as py
from plotly.graph_objs import *
from mykeys import tw
import networkx as nx
import itertools
get_party_representation()
get_party_activity()
plot_MP_activity()
df = pd.read_csv('data/TR-tweeps-En.csv',encoding='utf-8')
x = ['AKP', 'CHP', 'MHP', 'HDP','Independent']
df = df[df.profs.str.contains('|'.join(x))]
df
twhandle | name | fcnt | profs | |
---|---|---|---|---|
9 | abdulkadiraksu1 | Abdülkadir Aksu | 68 | AKP, MP |
11 | aberatconkar | Ahmet Berat Çonkar | 2 | MP, AKP |
12 | acaliskan40 | Abdullah Çalışkan | 22 | MP, AKP |
14 | ackilic76 | Akif Çağatay Kılıç | 2 | AKP, MP |
21 | adnankeskinCHP | Adnan Keskin | 10 | MP, CHP |
22 | afifd | Afif Demirkıran | 10 | MP, AKP |
24 | AhmetBOgutken | Ahmet Baha Öğütken | 10 | MP, AKP |
35 | Ahmet_Davutoglu | Ahmet Davutoğlu | 71 | MP, AKP |
45 | Akif_Hamzacebi | Akif Hamzaçebi | 0 | MP, CHP |
64 | aliozgunduz | Ali Özgündüz | 14 | Legist, CHP, MP |
66 | alirizaozturk33 | Ali Rıza Öztürk | 10 | MP, CHP, Legist |
67 | AliSahin501 | Ali Şahin | 11 | MP, AKP |
101 | Atalay_Besir | Beşir Atalay | 1 | MP, AKP |
103 | atillakart | Atilla Kart | 13 | CHP, MP |
113 | avhamzadag | Hamza Dağ | 2 | AKP, MP |
116 | av_idrissahin | İdris Şahin | 4 | MP, AKP |
120 | aydinsengul35 | Aydın Şengul | 1 | MP, AKP |
123 | aykanerdemir | Aykan Erdemir | 8 | MP, CHP |
125 | aykuterdogdu | Aykut Erdoğdu | 23 | MP, CHP |
127 | Ayla_Akat | Ayla Akat | 18 | MP, HDP |
129 | AylinNazliaka | Aylin Nazlıaka | 33 | MP, CHP |
170 | BelmaSatir | Mihrimah Belma Satır | 3 | MP, AKP |
183 | BilalMacit | Bilal Macit | 4 | MP, AKP |
185 | birgulaguler | Birgül Ayman Güler | 14 | MP, CHP |
190 | bkusoglu | Bülent Kuşoğlu | 6 | MP, CHP |
197 | bulenttezcanchp | Bulent Tezcan | 8 | MP, CHP |
198 | bulent_arinc | Bülent Arınç | 43 | MP, AKP |
206 | BurhanKuzu | Burhan Kuzu | 18 | MP, AKP |
213 | bybekirbozdag | Bekir Bozdağ | 33 | MP, AKP |
222 | CandanYceer | Candan Yüceer | 20 | MP, CHP |
... | ... | ... | ... | ... |
1063 | sinanaaygun | Sinan Aygün | 3 | MP, CHP |
1069 | SIRIN_UNAL | Şirin Ünal | 0 | MP, AKP |
1071 | sirsureyya | Sırrı Süreyya Önder | 11 | MP, HDP |
1075 | skulkuloglu | M.Şevki Kulkuloğlu | 6 | MP, CHP |
1086 | suatkilic | Suat Kılıç | 16 | MP, AKP |
1089 | suheylbatum | Süheyl Batum | 5 | MP, CHP |
1103 | S_Celebi | Süleyman Çelebi | 7 | MP, CHP |
1135 | ToprakBinnaz | Binnaz Toprak | 1 | MP, CHP |
1150 | TugrulTurkes | Tuğrul Türkeş | 0 | MP, MHP |
1151 | TulaySelamoglu | Tülay Selamoğlu | 3 | MP, AKP |
1158 | tuncelsebahat | Sebahat Tuncel | 7 | HDP, MP |
1162 | turgutdibek | Turgut Dibek | 4 | MP, CHP |
1165 | T_MenderesTurel | Menderes Türel | 5 | MP, AKP |
1185 | UmutOranCHP | Umut Oran | 9 | CHP, MP |
1194 | Vahit_Kiler | Vahit KİLER | 1 | MP, AKP |
1200 | vekilince | Muharrem İnce | 40 | MP, CHP |
1201 | veliagbaba | Veli Ağbaba | 8 | MP, CHP |
1203 | VeyselEroglu | Veysel Eroğlu | 11 | MP, AKP |
1208 | volkan_bozkir | Volkan Bozkır | 3 | MP, AKP |
1211 | Aysenurislam | Ayşenur İslam | 0 | AKP, MP |
1235 | yeniceriozcan | Özcan Yeniçeri | 3 | MP, MHP |
1251 | yramazanoglu | Yıldırım Ramazanoğlu | 4 | MP, AKP |
1253 | yukselozden | Yüksel Özden | 4 | MP, AKP |
1256 | yusufhalacoglu | Yusuf Halaçoğlu | 13 | MP, MHP |
1262 | Y_Akdogan | Yalçın Akdoğan | 11 | MP, AKP |
1271 | zelkifkazdal | Zelkif Kazdal | 3 | MP, AKP |
1274 | ZeybekciNihat | Nihat Zeybekçi | 1 | MP, AKP |
1282 | zkarahanuslu | Zeynep Karahan Uslu | 6 | MP, AKP |
1286 | _cevdetyilmaz | Cevdet Yılmaz | 5 | MP, AKP |
1288 | _fatihsahin | Fatih Şahin | 7 | MP, AKP |
167 rows × 4 columns
# group by titles
tweets = pd.read_csv('data/TR-tweets.csv',encoding='utf-8',parse_dates=['dt'])
tweets.twhandle = tweets.twhandle.str[1:]
title = tweets.groupby(by=['title','dt'])['twhandle']
# get monitored screen_names for each party
df = pd.read_csv('data/TR-tweeps-En.csv',encoding='utf-8')
groups = ['AKP', 'CHP', 'MHP', 'HDP','Independent']
group = {}
mps = set()
for p in groups:
group[p] = set(df[df.profs.str.contains(p)].twhandle.tolist())
mps.update(group[p])
# get number of MPs of each party for each title
news = {}
def get_twbyp(g,partililer):
tweeps = g.values.tolist()
return len([t for t in tweeps if t in partililer])
for p in groups:
news[p] = title.apply(lambda g: get_twbyp(g,group[p]))
#news[p] = title.apply(lambda g: len(group[p] & set(g.values))) # number of MPs for the title
#sum all commentated titles up,
polnews = pd.Series(index=news['Independent'].index,data=0)
for p in groups:
print (news[p].sum(),'comments made on',news[p][news[p]>0].size,'news by',p)
polnews = polnews.add(news[p])
print (polnews.sum(),'comments made on',polnews[polnews>0].size,'news by TBMM (any MP)')
6678 comments made on 2747 news by AKP 14228 comments made on 4925 news by CHP 3039 comments made on 2133 news by MHP 1140 comments made on 753 news by HDP 1915 comments made on 1471 news by Independent 27000 comments made on 6839 news by TBMM (any MP)
# for each party calculate diff = party - others
diff = {}
for p in groups:
diff[p] = 2*news[p] - polnews
# the most commentated events by all MPS
polnews.order(ascending=False).head(60)
title dt İşte demokratikleşme paketi 2013-09-30 55 Berkin Elvan yaşam mücadelesini kaybetti 2014-03-11 50 Öğretmenler günü kutlu olsun 2013-11-24 50 Mutlu yıllar Türkiye 2013-12-31 47 Cumhuriyet’in 90′ıncı yılı kutlu olsun 2013-10-29 44 Büyük Zafer’in 91′inci yılı 2013-08-30 41 Ramazan ayı başladı 2013-07-09 40 Kemal Kılıçdaroğlu’na Meclis’te yumruklu saldırı 2014-04-08 39 Bugün Dünya Engelliler Günü 2013-12-03 37 Nice 19 Mayıslara… 2013-05-19 36 Darbenin adı: 12 Eylül 1980 2013-09-12 36 Bugün Dünya Engelliler Günü 2014-12-03 36 24 Kasım Öğretmenler Günü kutlu olsun 2014-11-24 36 Mutlu yıllar Türkiye 2014-12-31 35 Çanakkale Zaferi’nin 99′uncu yıl dönümü 2014-03-18 35 Büyük Zafer’in 92′nci yılı 2014-08-30 35 Genç’ten Emine Erdoğan protestosu 2013-11-26 34 Başörtülü milletvekilleri Meclis’te 2013-10-31 33 Türkiye ateş çemberinde – nediyor.com 2013-05-11 33 Cumhuriyet’in 91′inci yılı kutlu olsun 2014-10-29 33 Fezlekeler okutulmadı; muhalefet ayaklandı 2014-03-19 32 MHP seçim bürosuna silahlı saldırı: 1 ölü 2014-01-26 32 Sivas’ta yaşamını yitirenler anıldı 2013-07-02 32 Nejat Uygur yaşamını yitirdi 2013-11-18 32 Paketten beklentiler farklı 2013-09-30 32 Bugün Mevlid Kandili 2014-01-12 32 Hacıbektaş saldırganı serbest 2013-08-18 31 Hatay’da bir eylemci daha yaşamını yitirdi 2013-09-10 30 Miraç Kandili kutlandı 2014-05-25 30 İşte kabinenin 10 yeni üyesi 2013-12-25 30 Yüz binler Berkin’i son yolculuğuna uğurladı 2014-03-12 30 Marmaray açıldı; ilk sefer yapıldı 2013-10-29 30 Mustafa Balbay tahliye edildi 2013-12-10 29 AK Parti’de Davutoğlu dönemi başladı 2014-08-27 29 12 Eylül’ün üzerinden 34 yıl geçti 2014-09-12 29 Başbakan canlı yayında ağladı 2013-08-22 28 19 Eylül Gaziler Günü kutlanıyor 2013-09-19 27 İstanbul’da 1 Mayıs: “142 gözaltı 90 yaralı” 2014-05-01 27 Ağaoğlu ve bazı bakan çocukları gözaltında 2013-12-17 27 Helikopter kazasının şehitleri uğurlandı 2013-12-18 27 Başbakan Menderes anılıyor 2013-09-17 27 Çanakkale Zaferi’nin 98′inci yıldönümü – nediyor.com 2013-03-18 27 Başbakan’dan Kazlıçeşme mesajları 2013-06-16 27 21 yıldır aydınlanmayan suikast 2014-01-24 27 “Büyük Rüşvet” Türkiye’yi sarstı 2013-12-18 27 17 Aralık’ın üzerinden 1 yıl geçti 2014-12-17 27 İnfial yaratan dövülme görüntüleri 2013-08-22 27 “Destek verenler de aynı familyadan” 2013-06-09 26 CHP 90 yaşında 2013-09-09 26 Twitter yanıtı: “Gayri milli suçlaması sığ eleştiri” 2014-04-25 26 Bugün çalışan gazetecilerin günü 2014-01-10 26 Kömür ocağında patlama: 300 madenci mahsur 2014-05-13 26 Erdoğan: “Anladığınız dilden yanıt veririz” 2013-06-09 25 Gezi’ye son kurban Eskişehir’den 2013-07-10 25 23 Nisan kutlu olsun 2014-04-23 25 Resmileşen Ergenekon’a ceza yağmuru 2013-08-05 25 Deniz Gezmiş ve arkadaşları anıldı – nediyor.com 2013-05-06 25 AK Parti: “Başbakan Erdoğan cumhurbaşkanı adayımız” 2014-07-01 25 Taksim’de gergin gece 2013-06-11 25 Çarşı hakim önünde: “Gücümüz olsa Kartal’ı şampiyon yapardık” 2014-12-16 25 dtype: int64
# Number of commentations on events by AKP MPs - Other MPs
diff['AKP'].order(ascending=False)
title dt AK Parti’de Davutoğlu dönemi başladı 2014-08-27 21 Başbakan Menderes anılıyor 2013-09-17 19 Genç’ten Emine Erdoğan protestosu 2013-11-26 18 Marmaray açıldı; ilk sefer yapıldı 2013-10-29 18 AK Parti 13′üncü yılını kutluyor 2014-08-14 18 AK Parti 11 yıldır iktidarda 2013-11-03 16 AK Partililerden “DirenÇözüm” atağı 2013-06-29 15 ODTÜ videosunun yankısı sürüyor 2013-09-05 14 Başörtülü milletvekilleri Meclis’te 2013-10-31 13 Adnan Menderes idam edilmesinin 53′üncü yılı 2014-09-17 12 IMF ve dış borç tartışması dolu dizgin – nediyor.com 2013-05-14 12 Çankaya Köşkü’nde devir teslim gerçekleşti 2014-08-28 11 AK Partili Şahin eşine veda etti 2014-11-28 11 Tartışmaların odağı Marmaray 2013-10-27 11 Yemin töreninde gerginlik; CHP’liler kitapçık fırlattı 2014-08-28 11 Erdoğan yemin etti; resmen 12′nci Cumhurbaşkanı 2014-08-28 11 Erdoğan’dan Köşk’te 30 Ağustos resepsiyonu 2014-08-30 9 Davutoğlu bin 245 delegenin imzasıyla aday 2014-08-27 9 Başbakan’dan CHP’ye ağır Mısır eleştirisi 2013-09-03 9 27 Mayıs Darbesi’nin 53′üncü yılı 2013-05-27 9 Berat Kandili kutlandı 2013-06-23 8 27 Mayıs’ın 54′üncü yılı 2014-05-27 8 Ankara-İstanbul YHT hattı bugün açıldı 2014-07-25 8 Maltepe mitingi için uçuş yasağı 2014-08-03 8 Başbakan’ın doğum günü kutlanıyor 2014-02-26 8 Başbakan “Kürdistan bölgesini” selamladı 2013-11-16 7 Halkalı’da aşura matemi 2013-11-13 7 Srebrenitsa’da 18 yıldır dinmeyen acı 2013-07-11 7 “Torba Kanun Tasarısı” Meclis’ten geçti 2014-09-10 7 Kılıçdaroğlu’ndan Başbakan’a sert sözler 2013-10-29 7 .. Berkin Elvan doğum gününde anılıyor 2015-01-05 -16 Meclis’te fezlekeler için genel görüşmeye ret 2014-03-19 -17 İstanbul’da 1 Mayıs: “142 gözaltı 90 yaralı” 2014-05-01 -17 Soruşturma Komisyonu: “Yüce Divan’a gerek yok” 2015-01-05 -17 Isparta’da kaza: 17 mevsimlik işçi öldü 2014-10-31 -17 Twitter’a erişim engellendi 2014-03-21 -17 “Büyük Rüşvet” Türkiye’yi sarstı 2013-12-18 -17 17 Aralık’ın üzerinden 1 yıl geçti 2014-12-17 -17 Olaylar Taksim çevresine sıçradı 2013-05-31 -17 BDP’li vekillerin tahliye talebi reddedildi 2013-12-16 -17 Kemal Kılıçdaroğlu’na Meclis’te yumruklu saldırı 2014-04-08 -17 Dört eski bakan için tek komisyon kurulacak 2014-05-06 -17 Eski bakan çocukları ve Zarrab tahliye edildi 2014-02-28 -18 Emniyette deprem; 5 şube müdürü değişti 2013-12-18 -18 16 yaşındaki liseli Erdoğan’a hakaretten tutuklandı 2014-12-24 -18 Gezi’ye son kurban Eskişehir’den 2013-07-10 -19 CHP 90 yaşında 2013-09-09 -20 İstifa eden Bayraktar: “Başbakan istifa etmeli” 2013-12-25 -20 Deniz Gezmiş ve arkadaşları anıldı 2014-05-06 -20 Ağaoğlu ve bazı bakan çocukları gözaltında 2013-12-17 -21 Madımak Katliamı’nın 21′nci yıl dönümü 2014-07-02 -21 21 yıldır aydınlanmayan suikast 2014-01-24 -21 Hatay’da bir eylemci daha yaşamını yitirdi 2013-09-10 -22 Sivas’ta yaşamını yitirenler anıldı 2013-07-02 -24 Twitter yasağına tepkiler çığ gibi 2014-03-21 -24 Deniz Gezmiş ve arkadaşları anıldı – nediyor.com 2013-05-06 -25 Çarşı hakim önünde: “Gücümüz olsa Kartal’ı şampiyon yapardık” 2014-12-16 -25 Fezlekeler okutulmadı; muhalefet ayaklandı 2014-03-19 -28 Mustafa Balbay tahliye edildi 2013-12-10 -29 Berkin Elvan yaşam mücadelesini kaybetti 2014-03-11 -44 dtype: int64
# Number of commentations on events by CHP MPs - Other MPs
diff['CHP'].order(ascending=False)
title dt Mustafa Balbay tahliye edildi 2013-12-10 27 21 yıldır aydınlanmayan suikast 2014-01-24 19 Deniz Gezmiş ve arkadaşları anıldı – nediyor.com 2013-05-06 19 CHP 90 yaşında 2013-09-09 18 Berkin Elvan yaşam mücadelesini kaybetti 2014-03-11 16 Ecevit 8′inci ölüm yıl dönümünde anılıyor 2014-11-05 16 Twitter yasağına tepkiler çığ gibi 2014-03-21 16 Madımak Katliamı’nın 21′nci yıl dönümü 2014-07-02 15 Karanlıkta 20′nci yıl – nediyor.com 2013-01-24 15 CHP 91 yaşında 2014-09-09 15 Sarısülük’ü öldürmekle suçlanan polis serbest 2013-06-24 14 Sivas’ta yaşamını yitirenler anıldı 2013-07-02 14 Ali İsmail ölümünün 1′inci yıl dönümünde anıldı 2014-07-10 14 Eskişehir Belediyesi’nde 5 tutuklama – nediyor.com 2013-01-28 14 Berkin Elvan doğum gününde anılıyor 2015-01-05 14 Fezlekeler okutulmadı; muhalefet ayaklandı 2014-03-19 14 16 yaşındaki liseli Erdoğan’a hakaretten tutuklandı 2014-12-24 14 Dört eski bakan için tek komisyon kurulacak 2014-05-06 13 Soruşturma Komisyonu: “Yüce Divan’a gerek yok” 2015-01-05 13 İsmet İnönü anıldı 2013-12-25 13 Deniz Gezmiş’in annesi yaşamını yitirdi 2014-11-20 13 TMMOB’ye ağır Gezi faturası 2013-07-10 13 Korkmaz davası 9 Ekim’e ertelendi 2014-07-14 12 Yalova’da CHP önde; AK Parti itiraz edecek 2014-06-01 12 Ecevit 7′nci ölüm yıldönümünde anılıyor 2013-11-05 12 Emniyette deprem; 5 şube müdürü değişti 2013-12-18 12 Erdal İnönü anılıyor 2014-10-31 12 İstanbul’da 1 Mayıs: “142 gözaltı 90 yaralı” 2014-05-01 11 17 Aralık soruşturmasına takipsizlik kararı verildi 2014-10-17 11 Basın özgürlüğünde Türkiye yine geriledi – nediyor.com 2013-05-03 11 .. Öğretmenler günü kutlu olsun 2013-11-24 -12 Paketten beklentiler farklı 2013-09-30 -12 Mutlu yıllar Türkiye 2013-12-31 -13 27 Mayıs Darbesi’nin 53′üncü yılı 2013-05-27 -13 Tartışmaların odağı Marmaray 2013-10-27 -13 Kobani için eylem çağrısı yapan HDP’ye tepki 2014-10-07 -13 Çankaya Köşkü’nde devir teslim gerçekleşti 2014-08-28 -13 Erdoğan yemin etti; resmen 12′nci Cumhurbaşkanı 2014-08-28 -13 27 Mayıs’ın 54′üncü yılı 2014-05-27 -14 Regaip Kandili kutlandı 2014-05-01 -14 Bugün Mevlid Kandili 2014-01-12 -14 MHP Genel Merkezi’ne arabalı saldırı 2013-08-24 -14 Adnan Menderes idam edilmesinin 53′üncü yılı 2014-09-17 -14 Suriye’den ürküten işkence fotoğrafları 2014-01-20 -14 AK Partililerden “DirenÇözüm” atağı 2013-06-29 -15 Başbakan “Kürdistan bölgesini” selamladı 2013-11-16 -15 IMF ve dış borç tartışması dolu dizgin – nediyor.com 2013-05-14 -16 ODTÜ videosunun yankısı sürüyor 2013-09-05 -16 Srebrenitsa’da 18 yıldır dinmeyen acı 2013-07-11 -17 Ramazan ayı başladı 2013-07-09 -18 AK Parti 13′üncü yılını kutluyor 2014-08-14 -18 AK Partili Şahin eşine veda etti 2014-11-28 -19 Başörtülü milletvekilleri Meclis’te 2013-10-31 -19 İşte demokratikleşme paketi 2013-09-30 -19 Miraç Kandili kutlandı 2014-05-25 -20 AK Parti 11 yıldır iktidarda 2013-11-03 -20 AK Parti’de Davutoğlu dönemi başladı 2014-08-27 -23 Marmaray açıldı; ilk sefer yapıldı 2013-10-29 -24 Başbakan Menderes anılıyor 2013-09-17 -25 Genç’ten Emine Erdoğan protestosu 2013-11-26 -26 dtype: int64
# Number of commentations on events by MHP MPs - Other MPs
diff['MHP'].order(ascending=False)
title dt Bahçeli’yi çılgına çeviren görüntü 2013-06-15 5 Bahçeli’den Başbakan’a ağır sözler 2013-06-22 5 MHP’den Ankara mitingi 2013-11-09 5 TRT spikerinden “yavru muhalefet” gafı 2014-01-25 5 Bahçeli’den açık tehdit – nediyor.com 2013-03-23 4 Eski TBMM Başkanvekili yaşamını yitirdi 2014-06-21 4 Bahçeli Elazığ’da sert konuştu 2013-09-15 4 Bahçeli’den Başbakan için ağır ifadeler 2013-10-26 4 Başbakan’dan Vali Coş’a destek: “Yedirmeyiz” 2013-11-12 4 “Türk ırkı yok” tartışması dinmiyor 2013-12-02 4 Alparslan Türkeş ölümünün 17′inci yılında anıldı 2014-04-04 3 Tahliye edilen Alan : “Ne kadar namussuz varsa…” 2014-06-20 3 Bahçeli’den AK Parti’ye ağır sözler 2014-02-07 3 Şırnak Valisi: “Başbakan ve Öcalan’ı takdir ediyorum” 2014-05-30 3 MHP Türkmenler için yardım kampanyası başlattı 2014-06-21 3 Bahçeli Başbakan’ın “61″ hesabına takıldı 2013-11-26 2 Asansör kazasıyla ilgili gözaltına alınan 9 kişi serbest 2014-09-07 2 AK Saray’ın ilk yabancı konuğu Papa olacak 2014-11-07 2 Yurt genelinde ayakkabı kutulu eylemler 2013-12-19 2 “Bakan Ala’nın kardeşi MEB’e atandı” iddiası 2014-01-11 2 MHP’li Engin Alan’ın milletvekilliği düşecek 2013-10-09 2 Mehmet Ali Şahin’den Bahçeli’ye sert eleştiri – nediyor.com 2013-04-21 2 TOKİ: “Kümbetin yanına yurdu biz yapmadık” 2014-08-19 2 Twitter’a erişebilmek için farklı yöntemler 2014-03-21 2 İstanbul Şişli’de “Bayrağa saygı” eylemi 2014-06-09 2 Erdoğan’a sahte suikast yapılacak iddiası 2014-01-30 2 MHP kurmaylarından selfie pozu 2014-04-24 2 MHP Ali İsmail Korkmaz’a sahip çıktı 2014-02-05 2 Zaman’dan hükümete yönelik ağır manşet 2013-11-15 2 Devlet Bahçeli fezleke kıskacında – nediyor.com 2013-04-10 2 .. Cumhuriyet’in 91′inci yılı kutlu olsun 2014-10-29 -27 21 yıldır aydınlanmayan suikast 2014-01-24 -27 12 Eylül’ün üzerinden 34 yıl geçti 2014-09-12 -27 Çanakkale Zaferi’nin 99′uncu yıl dönümü 2014-03-18 -27 Mutlu yıllar Türkiye 2014-12-31 -27 Türkiye ateş çemberinde – nediyor.com 2013-05-11 -27 AK Parti’de Davutoğlu dönemi başladı 2014-08-27 -27 Darbenin adı: 12 Eylül 1980 2013-09-12 -28 Hatay’da bir eylemci daha yaşamını yitirdi 2013-09-10 -28 Marmaray açıldı; ilk sefer yapıldı 2013-10-29 -28 Nice 19 Mayıslara… 2013-05-19 -28 Paketten beklentiler farklı 2013-09-30 -28 Hacıbektaş saldırganı serbest 2013-08-18 -29 Mustafa Balbay tahliye edildi 2013-12-10 -29 24 Kasım Öğretmenler Günü kutlu olsun 2014-11-24 -30 Nejat Uygur yaşamını yitirdi 2013-11-18 -30 Sivas’ta yaşamını yitirenler anıldı 2013-07-02 -30 Ramazan ayı başladı 2013-07-09 -30 Başörtülü milletvekilleri Meclis’te 2013-10-31 -31 Büyük Zafer’in 92′nci yılı 2014-08-30 -31 Genç’ten Emine Erdoğan protestosu 2013-11-26 -32 Bugün Dünya Engelliler Günü 2014-12-03 -34 Büyük Zafer’in 91′inci yılı 2013-08-30 -35 Kemal Kılıçdaroğlu’na Meclis’te yumruklu saldırı 2014-04-08 -35 Bugün Dünya Engelliler Günü 2013-12-03 -37 Mutlu yıllar Türkiye 2013-12-31 -39 Cumhuriyet’in 90′ıncı yılı kutlu olsun 2013-10-29 -40 Berkin Elvan yaşam mücadelesini kaybetti 2014-03-11 -42 Öğretmenler günü kutlu olsun 2013-11-24 -44 İşte demokratikleşme paketi 2013-09-30 -45 dtype: int64
# Number of commentations on events by HDP MPs - Other MPs
diff['HDP'].order(ascending=False)
title dt Mardin ve Hakkari’de duvar gerginliği 2013-11-07 5 “Demokrasi ve Barış Konferansı” sona erdi 2013-05-25 5 “Hayata Dönüş” utancının 13′üncü yılı 2013-12-19 5 Paris’teki 3′lü cinayetin üzerinden 2 yıl geçti 2015-01-09 4 3 PKK’lının cenazesi Diyarbakır’da – nediyor.com 2013-01-16 4 BDP yerel seçim stratejisini belirledi 2013-09-09 4 Van Belediye Başkanı serbest – nediyor.com 2013-03-29 3 HDP kongresinde Kürkçü kalp krizi geçirdi 2013-10-27 3 Öcalan’ın son fotoğrafı Twitter’da 2013-12-20 3 Ağrı’da oylar yeniden sayılıyor 2014-04-04 3 Mehmet Öcalan serbest bırakıldı 2013-08-04 3 Uludere raporu kabul edildi – nediyor.com 2013-03-27 3 HDP eş genel başkanları seçildi 2014-06-22 3 Paris cinayetlerinin yıl dönümünde gerginlik 2014-01-09 3 “Şanlıurfa’da sınırı geçen bir kadın öldürüldü” iddiası 2014-11-06 3 Demirtaş’tan TRT ekranında TRT’ye gönderme 2014-08-03 2 Öcalan’dan yeni mesaj 2013-10-14 2 BDP-HDP heyetinden İmralı açıklaması 2014-03-09 2 Demirtaş’ın adaylık dilekçesi TBMM’ye sunuldu 2014-07-01 2 13 faili meçhulden yargılanan Çitil’e beraat 2014-05-21 2 HDP Köşk adayını açıkladı: Selahattin Demirtaş 2014-06-30 2 Cizre’de 14 yaşındaki çocuk yaşamını yitirdi 2015-01-06 2 Askerden itiraf: “Köy yakma taburuyduk” 2013-11-10 2 BDP Eş Başkanı Demirtaş hastaneye kaldırıldı – nediyor.com 2013-03-11 2 BDP’li iki vekil tahliye edildi 2014-01-03 2 Gözaltına alınan HDP’liler serbest bırakıldı 2015-01-05 2 BDP’li vekiller HDP’ye katılma kararı aldı 2014-04-18 2 Ankara’da 2015 Bütçesi’ne karşı eylem 2014-12-13 2 IŞİD Suriye’de Kürtlerin yaşadığı bölgelere saldırıyor 2014-07-10 2 “PKK terörizmi” ifadesi rapordan çıkarıldı – nediyor.com 2013-04-23 2 .. Sivas’ta yaşamını yitirenler anıldı 2013-07-02 -28 Mutlu yıllar Türkiye 2014-12-31 -29 AK Parti’de Davutoğlu dönemi başladı 2014-08-27 -29 Mustafa Balbay tahliye edildi 2013-12-10 -29 Hacıbektaş saldırganı serbest 2013-08-18 -29 Kemal Kılıçdaroğlu’na Meclis’te yumruklu saldırı 2014-04-08 -29 Darbenin adı: 12 Eylül 1980 2013-09-12 -30 İşte kabinenin 10 yeni üyesi 2013-12-25 -30 Marmaray açıldı; ilk sefer yapıldı 2013-10-29 -30 Başörtülü milletvekilleri Meclis’te 2013-10-31 -31 Türkiye ateş çemberinde – nediyor.com 2013-05-11 -31 Genç’ten Emine Erdoğan protestosu 2013-11-26 -32 Bugün Mevlid Kandili 2014-01-12 -32 MHP seçim bürosuna silahlı saldırı: 1 ölü 2014-01-26 -32 Fezlekeler okutulmadı; muhalefet ayaklandı 2014-03-19 -32 Nejat Uygur yaşamını yitirdi 2013-11-18 -32 Cumhuriyet’in 91′inci yılı kutlu olsun 2014-10-29 -33 Çanakkale Zaferi’nin 99′uncu yıl dönümü 2014-03-18 -33 Bugün Dünya Engelliler Günü 2013-12-03 -33 2014-12-03 -34 Mutlu yıllar Türkiye 2013-12-31 -35 Büyük Zafer’in 92′nci yılı 2014-08-30 -35 Nice 19 Mayıslara… 2013-05-19 -36 Berkin Elvan yaşam mücadelesini kaybetti 2014-03-11 -36 24 Kasım Öğretmenler Günü kutlu olsun 2014-11-24 -36 Ramazan ayı başladı 2013-07-09 -40 Büyük Zafer’in 91′inci yılı 2013-08-30 -41 Cumhuriyet’in 90′ıncı yılı kutlu olsun 2013-10-29 -42 İşte demokratikleşme paketi 2013-09-30 -45 Öğretmenler günü kutlu olsun 2013-11-24 -48 dtype: int64
# Number of commentations on events by Independent MPs - Other MPs
diff['Independent'].order(ascending=False)
title dt “Kimse Yok Mu”nun yetkisi elinden alındı 2014-10-02 3 Cizre’de polise roketli saldırı: 2 yaralı 2015-01-07 3 Ankara’da 13 polise “usulsüz taltif” iddiasıyla gözaltı 2014-09-22 3 İETT’den Cemaat hamlesi: Fatih Üni. hattı kaldırıldı 2014-09-23 3 İBB’nin gündemi Fatih Koleji: Bayramda yıkım 2014-10-06 3 “Kimse Yok Mu” derneği kapatılıyor mu? 2014-09-29 3 Tuğluk: “PKK tarihinin en güçlü dönemini yaşıyor” 2014-08-26 2 PKK İzmir’de yol kesti 2014-05-30 2 IŞID’den petrol alındığı haberine Erdoğan’dan yalanlama 2014-09-16 2 Başbakan’a “Apo” tepkisi 2014-07-28 2 Saraç YÖK Başkanı’na hakaret mi etti? 2014-02-22 2 PKK’lı Karasu: “AK Partili bakan adeta bize yalvardı” 2014-11-28 2 Saray’ın maliyetini açıklayan Şimşek’e Erdoğan kızdı mı? 2014-11-07 2 Genelkurmay: “PKK Ağrı’da mahkeme kurdu” 2014-09-20 2 Şırnak’ta silahlı PKK’lılar yol kesti 2014-12-05 2 “THY 200 İranlı pilot alacak” iddiası Meclis’e taşındı 2014-09-16 2 Dışişleri’nden “dinleme” açıklaması 2014-09-01 2 “AK Saray’da bir koltuk 25 bin euro” iddiası 2014-11-30 2 PKK Muş’ta 10 çocuğu kaçırdı 2014-09-08 2 Şükür’ün adı bir stadyumdan daha söküldü 2014-04-13 2 Muş’ta PKK yanlıları yurt ve dershane yaktı 2014-08-24 2 PKK Cizre’de iki mahallede “özerklik” mi ilan etti? 2014-10-26 2 Dışişleri’nden açıklama: “Taraf’ın haberi asılsız” 2014-08-21 2 Yeni Şafak Aksoy ile yollarını ayırdı 2014-01-11 2 Ala: “Polis okullarının kapatılması şart” 2014-11-29 2 17 polis yanlışlıkla gözaltına alındı 2014-11-08 2 Karaman’dan iktidara: “Üzerimize bela yağacak” 2014-12-05 2 Akşam’ın “Ötüken” manşeti istifa getirdi 2014-04-14 2 Ankara’da “paralel yapı” iddiasıyla yeni operasyon 2014-10-21 2 Savcı: “Gerekirse 500 bin kişiyi gözaltına alırız” 2014-08-05 2 .. “Büyük Rüşvet” Türkiye’yi sarstı 2013-12-18 -27 Hacıbektaş saldırganı serbest 2013-08-18 -27 Mustafa Balbay tahliye edildi 2013-12-10 -27 Başbakan’dan Kazlıçeşme mesajları 2013-06-16 -27 Nejat Uygur yaşamını yitirdi 2013-11-18 -28 Paketten beklentiler farklı 2013-09-30 -28 İşte kabinenin 10 yeni üyesi 2013-12-25 -28 Bugün Mevlid Kandili 2014-01-12 -28 Sivas’ta yaşamını yitirenler anıldı 2013-07-02 -28 Büyük Zafer’in 92′nci yılı 2014-08-30 -29 AK Parti’de Davutoğlu dönemi başladı 2014-08-27 -29 Genç’ten Emine Erdoğan protestosu 2013-11-26 -30 Darbenin adı: 12 Eylül 1980 2013-09-12 -30 Çanakkale Zaferi’nin 99′uncu yıl dönümü 2014-03-18 -31 Türkiye ateş çemberinde – nediyor.com 2013-05-11 -31 Başörtülü milletvekilleri Meclis’te 2013-10-31 -31 Cumhuriyet’in 91′inci yılı kutlu olsun 2014-10-29 -31 24 Kasım Öğretmenler Günü kutlu olsun 2014-11-24 -32 Bugün Dünya Engelliler Günü 2014-12-03 -32 Kemal Kılıçdaroğlu’na Meclis’te yumruklu saldırı 2014-04-08 -33 Mutlu yıllar Türkiye 2014-12-31 -35 Bugün Dünya Engelliler Günü 2013-12-03 -35 Nice 19 Mayıslara… 2013-05-19 -36 Ramazan ayı başladı 2013-07-09 -38 Büyük Zafer’in 91′inci yılı 2013-08-30 -39 Cumhuriyet’in 90′ıncı yılı kutlu olsun 2013-10-29 -40 Mutlu yıllar Türkiye 2013-12-31 -41 Berkin Elvan yaşam mücadelesini kaybetti 2014-03-11 -44 Öğretmenler günü kutlu olsun 2013-11-24 -46 İşte demokratikleşme paketi 2013-09-30 -49 dtype: int64
G=nx.Graph()
# add vertices
for p in groups:
for politician in group[p]:
G.add_node(politician, group=p)
def updateG(group,G,politicians):
""" Create weighted edges """
edges = itertools.combinations(group.tolist(), 2)
for v1,v2 in edges:
if v1 not in politicians or v2 not in politicians:
continue
if G.has_edge(v1, v2):
G[v1][v2]['weight'] += 1
else:
G.add_edge(v1, v2, weight=1)
# add edges
title.apply(updateG,G,mps)
# print number of nodes and edges
print (G.number_of_nodes(),G.number_of_edges())
167 10236
# Exporting to be read by Gephi for better visualization
nx.write_gml(G,"data/nediyor_politics.gml")
See the interactive output here: TBMM Co-commentation Network Visualization
# calculate the likelihood of tie formation among parties
# AKP-AKP, AKP-CHP, AKP-MHP, AKP-HDP, AKP-Bagimsiz
G = nx.read_gml("data/nediyor_politics.gml")
def get_likelihood(g1,g2):
""" returns tie formation likelihood of group1 and group2"""
groups = ['AKP', 'CHP', 'MHP', 'HDP','Independent']
likelihoods = []
for politician in G:
if G.node[politician]['group'] != g1:
continue
g2weight = .0 # sum of edge weights of nbors whose party is g2
total = .0 # sum of all edge weights (all neighbors)
for nbor in G[politician]:
if G.node[nbor]['group'] == g2:
g2weight += G[politician][nbor]['weight']
total += G[politician][nbor]['weight']
if total > 0:
likelihoods.append(g2weight/total)
l = sum(likelihoods)/len(likelihoods)
print(g1+'-'+g2+' likelihood {:.2f}'.format(l))
return l
groups = ['AKP', 'CHP', 'MHP', 'HDP','Independent']
for g1 in groups:
for g2 in groups:
if groups.index(g1)>groups.index(g2):
continue
get_likelihood(g1,g2)
AKP-AKP likelihood 0.47 AKP-CHP likelihood 0.36 AKP-MHP likelihood 0.08 AKP-HDP likelihood 0.03 AKP-Independent likelihood 0.06 CHP-CHP likelihood 0.59 CHP-MHP likelihood 0.09 CHP-HDP likelihood 0.05 CHP-Independent likelihood 0.05 MHP-MHP likelihood 0.13 MHP-HDP likelihood 0.03 MHP-Independent likelihood 0.09 HDP-HDP likelihood 0.17 HDP-Independent likelihood 0.05 Independent-Independent likelihood 0.09
#community detection
import
def get_party_representation():
""" Plot Tweep Rate by (i) MP counts, (ii) Monitored MP counts """
#http://www.tbmm.gov.tr/develop/owa/milletvekillerimiz_sd.dagilim
chairs = {'AKP':312, 'CHP':125, 'HDP':27, 'MHP':52, 'Independent':13}
df = pd.read_csv('data/TR-tweeps-En.csv',encoding='utf-8')
groups = ['AKP', 'CHP', 'MHP', 'HDP','Independent']
group = {}
mps = set()
for p in groups:
group[p] = set(df[df.profs.str.contains(p)].twhandle.tolist())
mps.update(group[p])
y1=[int((len(group[p])*1.0/chairs[p])*100+0.5) for p in groups]
y2=[len(group[p]) for p in groups]
trace1 = Bar(x=groups, y=y1, name='Percentage of MPs normalized by # of chairs')
trace2 = Bar(x=groups, y=y2, name='Plain number of MPs monitored')
data = Data([trace1, trace2])
layout = Layout(autosize=True,
title='Members of TBMM monitored',
barmode='group',
legend=Legend(xanchor='right',yanchor='top', y=1,traceorder='normal'),
yaxis=YAxis(title='MPs monitored by nediyor.com'),
#yaxis2=YAxis(title='Percentage of MPs',side='right',overlaying='y',anchor='x')
)
fig = Figure(data=data, layout=layout)
return py.iplot(fig,filename='MPs monitored by nediyor.com')
def get_party_activity():
""" Plot Twitter Usage normalized by (i) MP counts, (ii) Monitored MP counts """
# plot commentating activity of parties
df = pd.read_csv('data/TR-tweeps-En.csv',encoding='utf-8')
x = ['AKP', 'CHP', 'MHP', 'HDP','Independent']
df = df[df.profs.str.contains('|'.join(x))]
mparty = dict(zip(df.twhandle, df.profs.map(lambda mp: [p for p in x if p in mp][0])))
tweets = pd.read_csv('data/TR-tweets.csv',encoding='utf-8',parse_dates=['dt'])
tweets['twhandle']=tweets['twhandle'].str[1:]
tweets = tweets.rename(columns={'twtext':'twcnt'})
tweeps = tweets.groupby(by='twhandle')['twcnt'].count().order(ascending=False)
poltweeps = tweeps[tweeps.index.isin(df.twhandle)]
vekil = pd.DataFrame.from_dict(mparty,orient='index')
vekil.index.name = 'twhandle'
vekil.columns = ['party']
df = pd.DataFrame(poltweeps).join(vekil)
#http://www.tbmm.gov.tr/develop/owa/milletvekillerimiz_sd.dagilim
parties = {'AKP':312, 'CHP':125, 'HDP':27, 'MHP':52, 'Independent':13}
mpc = sum(parties.values())
# Parties' newsworthy tweet counts normalized by MP counts
perMP = {}
for p,cnt in parties.items():
perMP[p] = df[df.party == p].twcnt.sum()/float(cnt)
# Parties' newsworthy tweet counts normalized by MPs with Twitter accounts
perTweep = {}
for p,cnt in parties.items():
perTweep[p] = df[df.party == p].twcnt.sum()/float(df[df.party == p].shape[0])
x = ['AKP', 'CHP', 'MHP', 'HDP','Independent']
y1 = [int((perMP[p] * 100) + 0.5) / 100.0 for p in x]
y2 = [int((perTweep[p] * 100) + 0.5) / 100.0 for p in x]
#tweep/mp ratio
# y = [df[df.profs.str.contains(p)].shape[0] for p in x]
texts = []
for p in x:
twpset = poltweeps.index.tolist()
text = u''
for i,twp in enumerate(twpset):
#twp = '<a href="http://twitter.com/'+twp[1:]+'">'+ twp +'</a>'
text+= ' '+ twp if (i+1) % 10 != 0 else '<br>'+twp
texts.append(text)
trace1 = Bar(x=x, y=y1, name='normalized by MP counts') #, text = texts
trace2 = Bar(x=x, y=y2, name='normalized by curated tweep counts')
data = Data([trace1, trace2])
layout = Layout(autosize=True,
title="Newsworthy Tweet Counts",
barmode='group',
legend=Legend(x=0, y=1,traceorder='normal'),
yaxis=YAxis(title='Number of newsworthy tweets per MP'),
annotations=Annotations([
Annotation(
text='Code and datasets are available on <a href="https://github.com/oztalha/News-Commentary-Tweets-of-Elites">github.com/oztalha</a><br>'\
'Two years of curated tweets are scraped from <a href="http://nediyor.com/">nediyor.com</a>',
showarrow=False,
x=0.01,
y=0.85,
xref='paper',
yref='paper',
xanchor='left',
yanchor='top',
align='left'
),
]))
fig = Figure(data=data, layout=layout)
return py.iplot(fig, filename='Newsworthy Tweet Counts of Turkish Parties')
def plot_MP_activity():
# plot commentating activity of these politicians
df = pd.read_csv('data/TR-tweeps-En.csv',encoding='utf-8')
x = ['AKP', 'CHP', 'MHP', 'HDP','Independent']
df = df[df.profs.str.contains('|'.join(x))]
mparty = dict(zip(df.twhandle, df.profs.map(lambda mp: [p for p in x if p in mp][0])))
tweets = pd.read_csv('data/TR-tweets.csv',encoding='utf-8',parse_dates=['dt'])
tweets['twhandle']=tweets['twhandle'].str[1:]
tweeps = tweets.groupby(by='twhandle')['twtext'].count().order(ascending=False)
poltweeps = tweeps[tweeps.index.isin(df.twhandle)]
partycolors = {'AKP':'orange', 'CHP':'red', 'MHP':'green', 'HDP':'purple','Independent':'cyan'}
colors = [partycolors[mparty[x]] for x in poltweeps.index]
data = Data([Bar(
x=poltweeps.index,
y=poltweeps.values,
marker=Marker(color=colors)
)])
layout = Layout(autosize=True, margin=Margin(b=111),
yaxis=YAxis(title='# of news commentated (Jan 2013 - Jan 2015)'),
title="News commentated by Members of TBMM (curated by nediyor.com)")
fig = Figure(data=data, layout=layout)
return py.iplot(fig,filename="TBMM as News Commentators")
tweets = pd.read_csv('data/TR-tweets.csv',encoding='utf-8',parse_dates=['dt'])
tweets['twhandle']=tweets['twhandle'].str[1:]
tweeps = tweets.groupby(by='twhandle')['twtext'].count().order(ascending=False)
poltweeps = tweeps[tweeps.index.isin(df.twhandle)]
for k,v in mparty.items():
if v == 'Independent':
print(k)
idrisbal Mv_MCetin hakansukur ErtugrulGunay
for p,cnt in parties.items():
print(p,df[df.party == p].twcnt.sum(), df[df.party == p].shape[0])
Independent 1915 4 MHP 3039 13 HDP 1139 17 CHP 14205 58 AKP 6677 74