Přejdi na obsah Přejdi na navigaci

ÚvodBlogDelfíni na Data Fesťáku 2015

Delfíni na Data Fesťáku 2015

27.11. – 29.11. jsme se zúčastnili Data Fesťáku v Hradci Králové. Kromě řady moc zajímavých přednášek a workshopů měli všichni možnost vybrat si některou ze sad dat, které dodali partneři akce (namátkou anonymizovaný soubor transakcí platebních karet České Spořitelny, léčebné zákroky realizované Fakultní Nemocnicí HK nebo přepis projevů v poslanecké sněmovně) a vytvořit nad nimi analýzu dle vlastního uvážení pomocí produktů dodaných technologickými partnery.

My jsme zvolili cestu lehce odlišnou, rozhodli se za dva večery provést textovou analýzu monitorující sentiment příspěvků, které účastníci píší na fesťákový Slack (chatovací platforma pro týmovou spolupráci). Jak se nám to povedlo, nebo nepovedlo, si můžete přečíst v následujícím textu. Pro úplnost podotýkám, že neprodáváme licence žádné z popisovaných technologií a většinu jsme měli v ruce poprvé, takže nejde o marketingový bullshit.

V první řadě jsme příspěvky ze Slacku potřebovali dostat někam, kde bychom je mohli analyzovat. Abychom se nemuseli trápit s instalací databáze a dalších nástrojů, což by nám taky mohlo zabrat většinu času, zvolili jsme cloudový ETL nástroj Keboola Connections. První nápad, tedy přímé exportování dat ze Slacku do CSV a jejich následné nahrávání, jsme zavrhli, částečně kvůli složité struktuře extraktu obsahujícího desítky souborů a částečně kvůli nutnosti hlásit se do Slacku a ručně spouštět export pokaždé, když chceme čerstvá data. Rozhodli jsme se tedy data získávat pomocí API, které Slack pro tyto účely poskytuje, a protože jsme to dělali poprvé v životě, vyprosili jsme si pomoc konzultanta z Kebooly. Vytvořit pomocí Generic REST Extractoru proces pro stahování dat mu trvalo cca 40 minut, z čehož myslím většinu zabralo vyřešení autentifikace. Výsledný skript (nebo spíše konfigurační JSON), který stahuje uživatele, chatovací kanály, pro každý kanál historii zpráv a reakcí na zprávy (likes apod.) vypadá následovně. Ve finále pár řádků (z bezpečnostních důvodů jsem odmazal části tokenů).

Slack API

Nahraná data jsme lehce transformovali pomocí SQL skriptů a jazyka R a poslali k analýze sentimentu aplikaci Geneea NLP Analysis, kterou je taktéž možné volat přes Keboola Connection. Nastavení nebyla žádná raketová věda.

Geneea NLP Analysis

Geneea vygenerovala tabulky, které pro každou zprávu obsahovaly:

Data jsme tedy měli pohromadě a zbývalo vrhnout se na vizualizaci. Pro tu jsme si vybrali Tableau. Keboola Tableau Writer nám vygeneroval potřebný datový soubor a uložil jej na Google Drive, odkud si jej pevný klient Tableau bez problémů převzal. Celý proces jsme v Keboole automatizovali tak, že pro získání aktuálních informací stačilo jedním kliknutím tlačítka spustit Orchestraci.

Keboola Orchestration

A teď k samotné vizualizaci. Měli jsme na ni vyhrazené nedělní dopoledne, ale protože nás organizátoři trochu vypekli a o pár hodin posunuli termín prezentací, mnoho jsme nestihli. To, co jsme vytvořili, vypadalo následovně.

20 příspěvků s nejvíce negativním sentimentem (za vulgarity se omlouvám, ale taková je realita a je alespoň vidět, že Geneea engine funguje solidně).

Negativní sentiment

 

20 příspěvků s nejvíce pozitivním sentimentem. Výsledek je dost ovlivněný používáním „smajlíků“, které export přepisuje do textu, nicméně i to je realita většiny online diskuzí.

Pozitivní sentiment

Distribuce příspěvků v čase podle sentimentu. Zaměřte se na 27.11. 19:00, kdy oficiálně začala Hackathonová část, 28.11. 6:00, kdy se jedinému týmu, který byl vzhůru, podařil průlom, nebo 28.11. 19:00, kdy jsme účastníky požádali, ať na Slack více píšou, ať máme co analyzovat.

Distribuce příspěvků podle sentimentu

Průměrný sentiment příspěvků podle týmů ve srovnání s celkovým počtem příspěvků. Je vidět, že tým Snow Spořka byl jak nejaktivnějším týmem, tak i týmem s nejlepší náladou.

Sentiment podle týmů

Celková distribuce příspěvků podle sentimentu. Zde zase vidíme, jaká byla celková nálada na hackathonu a i když si občas někdo zabrblal, celková nálada byla velmi pozitivní.

Distribuce sentimentu

Poslední vizualizaci jsme udělali v nástroji Gephi v kombinaci s jazykem R. Schéma ukazuje celkový počet citací účastníků (velikost uzlu), kdo koho kolikrát citoval/adresoval (tloušťka čáry a šipky) a průměrný sentiment citací (barva uzlu).

Citace účastníků

 

Zcela popravdě řečeno, výsledky jsou výrazně ovlivněné tím, že použitý model v Geneea NLP Analysis byl „učen“ na novinových článcích, které se chovají o dost jinak, než internetové diskuze. I z toho důvodu byla velká část příspěvků (cca 80%) neskórována - měla neutrální sentiment 0. Tyto záznamy jsme do vyhodnocení nezahrnovali.

Celkem jsme na projektu pracovali ve dvou a každý na něm strávil cca 12 hodin času. Osobně jsem byl překvapený, kolik se nám toho v daném čase povedlo - sestavit kompletní ETL proces včetně analýzy sentimentu (byť díky jinému modelu ne úplně dokonalé) fungující na zmáčknutí tlačítka + vytvořit základní sadu reportů by i ve formě POC bylo v řadě korporací na týdny.

Přesvědčil jsem se, že cloudové ETL a analytické nástroje mají své výhody a opodstatnění jako doplněk k nástrojům klasickým. Nemohou sice podle mého názoru nahradit datový sklad a prostředí BI aplikací (např. unifikaci zákazníků z několika systémů a alokaci nákladů do jejich transakcí včetně historizace bych v cloudu opravdu dělat nechtěl), ale můžou být extrémně užitečné pro velmi rychlé analýzy, u kterých je předem obtížné odhadnout ROI. Další velké využití vidím pro integraci dat z cloudových aplikací jako je Salesforce, Facebook, Zendesk a podobně, kterou předpřipravené connectory výrazně zjednodušují. Výsledky je možné rovnou analyzovat, případně je v dedikovaných datamartech kombinovat s informacemi z datového skladu o produktech, segmentech, profitabilitě a průběhu marketingových kampaní a získat tak komplexní pohled na chování zákazníka a fungování firmy.

Celý Data Fesťák byla parádní akce, za níž moc děkuji hlavním organizátorům z Kebooly a České Spořitelny, ale i všem ostatním a účastníkům, kteří vytvořili skvělou atmosféru.. a doufám, že se za rok zase uvidíme.

Jakub Holubec

Zpět na výpis rubriky