Prezidentská kampaň v datech

Blanka Kubešová
11 min readDec 10, 2017

--

Tento příspěvek je výstupem projektu zpracovávaného v rámci Digitální akademie Lite, která probíhala od října do prosince 2017 v Brně. Digitální akademie je projekt pořádaný organizací Czechitas a byl podpořen grantem od společnosti Google.org.

Proč jsem si vybrala toto téma?

O tématu pro můj projekt jsem dlouho neměla jasno. Nenapadalo mě žádné zajímavé téma a ani jsem neměla tolik zkušeností se zpracováním dat, abych si dokázala představit, co se z jakých dat dá získat za zajímavé informace. Před akcí Meet Your Mentor, kde mělo proběhnout přiřazení k mentorům, jsem si pročítala jejich medailonky a zaujalo mě, že jeden z nich nabízel ke zpracování data z článků a diskusí na českém internetu. Zaujalo mě to natolik, že jsem k jeho stolečku na Meet Your Mentor šla hned jako k prvnímu. Vzhledem k tomu, že jsem v té době byla ještě plná dojmů z právě proběhlých voleb a diskusí o nich, když jsem se pak během rozhovoru s mentorem dozvěděla, že se jejich firma zabývá dokonce monitorováním ruské propagandy, byl tento mentor mým jasným favoritem. Myslím, že i jeho naše debata zaujala. Když nám po skončení akce bylo oznámeno, ke komu jsme byly přiřazeny, měla jsem obrovskou radost, že se mým mentorem stal právě Tomáš Hrabal z firmy Dataweps.

Později, když jsem přemýšlela, na co konkrétně se v datech z článků a diskusí podívat, zvolila jsem aktuální téma předvolební kampaně kandidátů na prezidenta ČR. A protože ne všechno se dá vyčíst z toho, o čem lidé na internetu mluví, rozhodla jsem se na téma podívat komplexněji a v projektu zpracovat také data z transparentních účtů prezidentských kandidátů. K tomu mě inspiroval jeden domácí úkol z kurzu Pythonu, který jsem absolvovala ve firmě Engeto, kde jsme měli stáhnout data z transparentního účtu Miloše Zemana.

Cíl projektu

Cílem projektu bylo zpracovat data z příspěvků na internetu o kandidátech na prezidenta ČR. Dalším cílem bylo stáhnout a zpracovat data z jejich transparentních účtů a všechna data vizualizovat.

Volba prezidenta ČR 2018

Volba prezidenta ČR bude probíhat v lednu 2018. První kolo proběhne 12. a 13.1., a pokud v prvním kole nebude nikdo zvolen, druhé kol bude probíhat 26. a 27.1. Oficiálně byly volby vyhlášeny 28.8.2017. Kandidáti museli odevzdat kandidátní listiny do 7.11.2017, což je 66 dnů před dnem voleb. Ministerstvo vnitra potom 24.11.2017 potvrdilo devět kandidátů . V boji o Hrad se utkají Jiří Drahoš, Pavel Fischer, Petr Hannig, Marek Hilšer, Michal Horáček, Jiří Hynek, Vratislav Kulhánek, Mirek Topolánek a Miloš Zeman.

Jak zjistit, o čem se mluví na internetu?

Firma Dataweps, kde pracuje můj mentor, vyvinula nástroj na monitorování online médií, sociálních sítí a diskusí — SocialWatch. Tento nástroj sleduje a zaznamenává obsah zpravodajských serverů, diskusí pod články, fór a dalších webů. Monitoruje také Facebook, Twitter a Instagram. Jeho využití je například pro sledování činností konkurence, reakcí zákazníků nebo influencerů nebo pro mareketingové analýzy a strategie. Sledování sociálních sítí a online diskusí je čím dál důležitější složkou marketingu. Na internetu se ale nemluví pouze produktech a firmách, ale také o lidech, a proto se dá SocialWatch dobře využít například pro sledování průběhu předvolební kampaně. Firma Dataweps už dříve spolupracovala na monitorování zmínek o politických stranách při volbách do Poslanecké sněmovny 2017.

SocialWatch umožňuje nejen data vyhledávat, ale zároveň je i zpracovat, vyfiltrovat si potřebné informace a nakonec vše vyexportovat.

Náhled do pracovního prostředí nástroje SocialWatch

Jak jsem postupovala

V nástroji SocialWatch je možné si vytvářet témata a k nim klíčová slova. Pro můj projekt jsem zvolila dva způsoby vyhledávání. V prvním jsem vyhledávala jednotlivé kandidáty pouze podle jména a ve druhém jsem zvolila složitější zadání kombinace klíčových slov tak, aby se vyhledané příspěvky týkaly kandidáta v souvislosti s prezidentskou volbou. SocialWatch vyhledává slova podle jejich kořenů, takže není potřeba při zadávání vyhledávacích příkazů řešit skloňování. Je ale potřeba zohlednit diakritiku. Moje vyhledávací příkazy vypadaly následovně. Vyhledávání zmínek pouze podle jména: (jméno OR jmeno) AND (příjmení OR prijmeni). Vyhledávání zmínek podle jména v souvislosti s prezidentskou volbou: ((jméno OR jmeno) AND (příjmení OR prijmeni)) AND (prezident AND ((kandidát OR kandidat)OR volba)).

Vytváření témat a přiřazování klíčových slov v nástroji SocialWatch

Časový rozsah, ze kterého jsem zmínky zpracovávala, byl 6 měsíců, od 1.6.2017 do 30.11.2017. Pro většinu kandidátů bylo možné vyhledaná data exportovat rovnou do Excelu. U dvou, kde bylo zmínek více, mi export udělal Product Owner tohoto produktu Adam Tomeček.

Získaná data nebylo potřeba moc čistit. Některé drobné úpravy jsem provedla v Excelu. Hlavně jsem přidala sloupec, který identifikoval, o kterém kandidátovi je daná zmínka. Pak jsem data vizualizovala v PowerBI. Abych mohla pracovat s daty všech 9 kandidátů dohromady, jejich data jsem v PowerBI spojila.

O kom se mluví nejvíc?

Vizualizace jsem rozdělila do tří stran reportu PowerBI. Na první straně je celkový přehled zmínek. V grafu jsou zobrazené počty zmínek v čase a je možné vyfiltrovat jednotlivé kandidáty. Koláčové grafy ukazují celkový počet zmínek o kandidátovi a typ zmínek, tedy jestli šlo o zmínky na Facebooku Twitteru, na zpravodajském serveru, v diskusi nebo jinde. Třetí koláčový graf ukazuje počet Like, sdílení a komentářů u příspěvků. Lze omezit časové rozpětí zobrazovaných dat. Po najetí na grafy se zobrazují další podrobnosti.

Ukázka reportu — počty zmínek o kandidátech

Na druhé straně reportu jsou tři tzv. Treemap grafy. První ukazuje počet zmínek z jednotlivých zrojů. V detailu je zobrazeno o kterých kandidátech. Druhý graf ukazuje naopak počty zmínek o jednotlivých kandidátech a v detailu zdroje, které o kandidátovi píší. Třetí graf zobrazuje počet zmínek od konkrétních autorů. Je možné ze seznamu vybrat konkrétní zdroj, autora nebo kandidáta, případně omezit časové rozmezí.

Ukázka reportu — zdroje a autoři

Na třetí straně reportu tzv. Ribbon chart přibližuje, které zdroje psaly o kandidátech v jednotlivých dnech. Dva koláčové grafy potom ukazují celkový počet zmínek z konkrétních zdrojů a od konkrétních autorů. Sloupcový graf specifikuje typ zmínek. Stejně jako na předchozích stranách je možné filtrovat kandidáta nebo omezit časový rozsah.

Ukázka reportu — zdroje a autoři v čase

Analyzovala jsem dva soubory dat. První z vyhledávání zmínek pouze podle jmen kandidátů a druhý z vyhledávání jména v souvislosti z prezidentskou volbou. V prvním souboru bylo celkově 195769 zmínek, ve druhém 23697 zmínek. V obou souborech má nejvíce zmínek Miloš Zeman, větší podíl, téměř 75 % ale zabírá, pokud se vyhledává pouze jméno. Ve vyhledávání jména v souvislosti s volbou už je to jen zhruba polovina všech zmínek. Michal Horáček je na druhém místě, co se týká počtu zmínek, pokud vyhledáváme pouze jméno, v souvislosti s volbou ho však v počtu zmínek předběhne Jiří Drahoš. Zajímavé je, že zmínek jména bylo nejvíce na Facebooku, zmínek jména v souvislosti s volbou bylo nejvíce v kategorii news, tedy články na zpravodajských serverech. Je to dáno pravděpodobně tím, že na Facebooku se diskutuje stručněji a diskutující uvádí pouze jméno kandidáta bez určení, v jaké souvislosti o něm mluví. Pokud se podíváme na zdroje příspěvků, asi dvě třetiny zmínek jména Miloš Zeman pochází ze tří stránek na Facebooku, které nesou jméno Miloše Zemana. Stejně tak zmínky jména Michala Horáčka pochází asi z 90 % z jeho stránky na Facebooku. Jména v souvislosti s volbou už jsou ale zmiňována spíše zpravodajskými servery. Například jméno Jiřího Drahoše není žádnou stránkou na Facebooku dominantně zmiňováno.

Na následujících odkazech je možné si celé reporty proklikat. Doporučuji :-)

Zmínky o kandidátech na prezidenta ČR — jméno

Zmínky o kandidátech na prezidenta ČR — jméno v souvislosti s volbou

Financování prezidentské kampaně — transparentní účty

Oficiálně byl termín voleb vyhlášen 28.8.2017 a zároveň v tento den začala volební kampaň. Každý kandidát může za kampaň utratit nejvýše 40 mil. Kč. Pokud prezident nebude zvolen v prvním kole, dva postupující kandidáti můžou utratit každý dalších 10 mil. Kč. Dodržování těchto pravidel má na starost Úřad pro dohled nad hospodařením politických stran a politických hnutí. K financování kampaně můžou kandidáti využívat pouze transparentní účty. Devět kandidátů na prezidenta ČR má svoje transparentní účty u 4 bank.

Jak jsem scrapovala účty

Jak už jsem zmínila, nápad zařadit do projektu i data z transparentních účtů jsem dostala na základě inspirace domácím úkolem z předchozího kurzu Pythonu, který jsem navštěvovala. Tedy měla jsem z čeho vycházet. A myslela jsem si, že kód jen trochu upravím a stáhnu data z účtů všech kandidátů. Tak jednoduché to ale nebylo. Kód fungoval jen na stránku Fio banky. S pomocí mentora jsme tedy kód upravovali tak, aby fungoval i na účet u Komerční banky. Při tom jsem se naučila, co je to xpath a jak s nimi pracovat. Když už kód tahal ta správná data, doplnila jsem ještě stránkování, protože zatím kód vždy stáhl jen data aktuálně zobrazená na stránce. S účty u České spořitelny nebyla práce až tak náročná, protože mají přehlednou stránku pro developery, kde je možné získat API klíč a hrát si s daty právě z transparentních účtů. Data se pak dají stáhnout ve formátu JSON. Když už jsem si myslela, že mám hotovo, zjistila jsem, že kód pro Fio banku sice stahuje datum, částku a jméno dárce, ale nestahuje zprávu pro příjemce, která je u některých darů vlastně to nejzajímavější. Tak jsem i tento kód přepsala pomocí xpath a s mentorem jsme doladili, co nefungovalo. Dalším problémem bylo, že Fio banka umožňuje zobrazit a stáhnout nanejvýš 2000 záznamů. Na účtu Miloše Zemana je ale příspěvků přes 23000. Připsala jsem tedy ještě část kódu, aby se záznamy stahovaly po jednotlivých dnech. Data z účtů jsou sbírána od 1.1.2017 do 30.11.2017. Většina účtů vnikla teprve v průběhu tohoto období. Ukázky kódů jsou na konci tohoto dokumentu.

Data ze všech účtů jsem ukládala ve formátu csv. Pak jsem je v Excelu čistila a upravovala, a to tak, aby byly zvlášť příjmy a výdaje, včetně jmen dárců, jmen příjemců plateb, zpráv u plateb a počtů plateb. Některé z těchto kroků by šly pravděpodobně vyřešit už v kódu při stahování, ale z důvodu, že už se pomalu blížil konec akademie, a čas tlačil, zvolila jsem Excel, nástroj, se kterým mám nejvíce zkušeností. Připravené soubory jsem nahrávala do PowerBI. Vizualizovala jsem data každého kandidáta zvlášť a potom od všech kandidátů dohromady.

Kdo má nejštědřejší dárce a kdo nejvíce utrácí

Do prvního reportu jsem zařadila data z účtů všech kandidátů najednou. Grafy zobrazují, jak v čase rostou příjmy a výdaje kandidátů a kolik už celkově obdrželi a použili prostředků.

Report — Příjmy a výdaje celkem

Ukázka — celkové příjmy a výdaje

Dále jsem vizualizovala data z účtu každého kandidáta zvlášť. Data z většiny účtů jsem vizualizovala ve formě dvoustránkového reportu. Na první stránce jsou dva Treemap grafy zobrazující příjmy podle velikosti darů od jednotlivých dárců a výdaje podle toho, komu bylo zaplaceno a za jakým účelem. Další graf ukazuje pohyby na účtu a pak jsou zobrazeny celkové příjmy a výdaje v poměru k maximálním 40 mil. Kč. U některých kandidátů jsou zajímavá také čísla o počtu plateb. Zobrazení lze časově omezit.

Na druhé stránce reportu jsou příjmy dle zpráv pro příjemce, tedy co kandidátovi vzkázali jednotliví dárci. Druhý graf ukazuje výdaje opět podle popisu, za co byly peníze utraceny. Ve spodní části reportu je graf zobrazující příjmy podle počtu plateb, protože někteří dárci posílají platby opakovaně. Poslední graf ukazuje výdaje z pohledu počtu plateb určitému příjemci. V případech, kdy jména příjemců nebyla dostupná, jsou počty plateb vztaženy k účelu platby. U kandidátů, kde byl dostatek plateb, je na třetí stránce reportu WordCloud ze zpráv pro příjemce.

U kandidátů, u kterých bylo záznamů velmi málo, jako například u účtu Michala Horáčka ve Fio bance, má report jinou strukturu. U účtu Miloše Zemana zase nebyly žádné výdaje, takže i u něj se struktura reportu liší. Navíc u účtu Miloše Zemana je zajímavé se podívat na počty příspěvků, protože někteří dárci posílají i tisíce plateb. A někteří je posílají pravidelně, což ukazuje detailně graf na čtvrté stránce reportu. Za povšimnutí stojí i vzkazy od dárců, proto se zobrazují jako detail po najetí na některé grafy.

Zajímavosti

Nejštědřejší dárce má Jiří Drahoš. Celkově už mu zaslali 27,52 mil. v 1294 příspěvcích. Většina kandidátů u výdajů neuvádí příjemce plateb. Pokud uvádí, stejně není jasné, o koho se přímo jedná, jako například firma Whenever s.r.o., které často platí Jiří Drahoš. Také Pavel Fischer už poslal asi 1,6 mil. s popisem “Pavel Fischer — prezidentská kampaň”, ale bez bližšího určení. Kandidáti však jméno příjemce povinně uvádět nemusí.

Dárci Jiřího Drahoše

U Patra Hanniga stojí za povšimnutí výdaje ve výši pouhých 1,55 Kč. Jde o korunové a halířové platby, které dárcům vrátil. Michal Horáček má na svém účtu ve Fio bance pouze několik plateb. Svoji kampaň si však financuje sám a má další transparentní účet u ČSOB. Tam jsou výpisy v pdf a analýzu dat z nich jsem v rámci tohoto projektu nedělala. U Vratislava Kulhánka je zajímavé, že mu kampaň z velké části financuje jeden člověk Ing. Pavel Sehnal. Z jeho účtu odešlo už 157 plateb v hodnotě asi 1,75 mil. za účelem “Přípravné práce” bez další specifikace. Tento kandidát také nemá možnost napsat při zasílání daru zprávu pro příjemce, je ale možné napsat poznámky, se kterými ve vyhodnocení dat pracuji.

Pravidelní dárci Miloše Zemana

Nejzajímavější je ale bezesporu účet Miloše Zemana. Na jeho účet přišlo už přes 23000 plateb. Nejaktivnější dárce je Jan Maixner, který poslal 6404 plateb, ve kterých poslal celkově 64,04 Kč. Příspěvky posílá pravidelně, 100 plateb každý všední den. Dalšími aktivními dárci jsou Vratislav Dřínek s 2560 a Jan Vaňáček s 1470 halířovými platbami. Tito přispívali v určitém období 20 a 18 platbami každý den. Tisíc plateb v jeden den zaslal Martin Bobek, stálo ho to 10 Kč a ve zprávě pro příjemce zveřejnil inzerát na prodej auta.

WordCloud ze vzkazů dárců Miloše Zemana

Reporty z účtů jednotlivých kandidátů:

Závěr

Jsem ráda, že jsem mohla pracovat na tomto projektu s Tomášem Hrabalem, kterému bych tímto chtěla moc poděkovat za jeho čas, trpělivost, rady a nápady. Dále bych chtěla poděkovat jeho kolegům Adamovi Tomečkovi a Jendovi Perlovi za konzultace a v neposlední řadě taky celé firmě Dataweps za příjemnou atmosféru.

V průběhu práce jsem více pronikla do Pythonu, se kterým jsem sice nezačínala, ale zatím jsem ho nikdy nepoužívala pro práci na reálném projektu. Projekt mi pomohl se zorientovat ve struktuře webové stránky, naučila jsem se stránky scrapovat a pracovat s “xpathami”. Při čištění a úpravě dat jsem využila některé triky, které nás v průběhu Akademie naučil Pavel Lasák. Velmi se mi líbil nástroj PowerBI a určitě ho budu využívat i v budoucnu. I psaní toho blogového příspěvku mě bavilo mnohem víc, než jsem čekala, takže možná není poslední :-)

V průběhu práce na mém projektu se ukázalo, že firma Dataweps naváže na spolupráci, kterou měla v průběhu voleb do Poslanecké sněmovny 2017, a budou ve spolupráci s organizací Transparency International pokračovat i při monitorování zmínek na internetu týkajících se volby prezidenta ČR. Moje data a vizualizace tedy poslouží k sestavení dashboardu pro tuto organizaci. Dashborad by nemusel obsahovat pouze informace o zmínkách na internetu, ale také data z transparentních účtů. V plánu je napojení nástroje SocialWatch přímo na PowerBI a zautomatizování vizualizací zmínek, stejně tak jako zautomatizování získávání dat z účtů.

Já sama bych si chtěla data v lednu po volbě aktualizovat. Jelikož mě práce na tomto projektu hodně bavila, ráda bych si nechala ještě nějakou dobu přístup k nástroji SocialWatch a případně ještě vytvořila nějaké další vizualizace třeba na jiná témata.

Digitální akademie byla skvělá! :-) Škoda, že byla tak krátká!

Ukázky kódů na scrapování stránek transparentních účtů

--

--