Technológia, Big Data kategória bejegyzései

Google Analytics, Hadoop cluster, SQL adatbázisok, stb, stb… Hogyan dolgozzunk fel sok adatot? Milyen technológiák léteznek? Mit válasszunk?

Big Data technológia. Játszótér – avagy hogy próbáljuk ki?

Sok cég (főleg külföldön) úgy kísérletezik a Big Data technológiákkal (Hadoop, MapReduce, Spark, etc…), hogy nincs is igazán szüksége rájuk. Sőt… A probléma az, hogy bár a legtöbb Big Data technológia open-source (aka. ingyenes), mégis sok pénzbe kerül már a kipróbálás is a szerverköltségek miatt, illetve a konfigolási idő miatt (emberi erőforrás).

De hogyan lehet “okosba” kipróbálni a Big Data technológiákat?

Nem kell feltétlen a céges büdzséből egy nagy szeletet lekanyarítani (szerverköltségre, insfrastruktúra-szetapolásra), hogy legyen egy játszóterünk. Több megoldás is létezik arra, hogy az ember ingyenesen kipróbálhassa a technológiákat:
Big Data technológia. Játszótér – avagy hogy próbáljuk ki? bővebben…

Az idei utolsó Big Data Tréning és Adatvezérelt Marketing Képzés

Meghirdettük, idén utolsó alkalommal:

BIG DATA KÉPZÉS – 11.27 – PÉNTEK
Jelentkezni itt tudsz: KLIKK!
big data utolso képzés
ADATVEZÉRELT MARKETING TRÉNING – 12.04 – PÉNTEK
Jelentkezni itt tudsz: KLIKK!
adatvezérelt marketing képzés utolsóGyere, jó lesz!

A robotok ébredése

“…Manapság az online világban nem csak mi vagyunk, emberek, hanem rajtunk kívül robotok és botnetek milliói is a miénkhez hasonló aktivitásokat hajtanak végre a különböző weboldalakon, alkalmazásokban, sokszor elég nagy kárt okozva ezzel az online reklámpiac szereplőinek. Mi azzal foglalkozunk, hogy olyan technológiát fejlesszünk ki, ami képes megkülönböztetni az emberi interakciókat a robotokétól…”

Nagy István

István Data Scientist-ként azon dolgozik az Enbrite.ly-ban, hogy megtisztítsák az online hirdetési piacot azoktól a robotoktól, akik lekattintják az online hirdetések nagy részét, ezzel kárt okozva a hirdetőknek, vagy akár a publishereknek is. Mindezt úgy, hogy a rengeteg hozzájuk érkező adatból be tudják azonosítani, hogy az adott online tevékenységet egy ember vagy egy robot végzi.
A B-DATA2 konferencián is erről fog beszélni – hogyan működik ez és milyen adatokból tudunk dolgozni.
A robotok ébredése bővebben…

A nagy Big Data félreértés

“A Big Data olyan mint a tiniknél a szex:

  1. mindenki erről beszél
  2. senki sem tudja igazán, hogy hogyan kell csinálni
  3. mindenki azt hiszi, hogy  a többiek csinálják
  4. ezért mindenki azt mondja, hogy ő is csinálja.”

(Dan Ariely)

Biztosan hallottad már a fenti mondást. Félig vicces, de félig igaz is. Manapság már a csapból is a Big Data folyik és ennek a legfőbb oka nem a technológia terjedése, hanem az, hogy az újságírók és a marketingesek rájöttek, hogy ennek a két szónak az említésével szinte bármit el lehet adni. A másik oldalról viszont a valódi adat-szakemberek ritkán írnak közérthető cikkeket a témában, hiszen őket a technológia érdekli.
Ezt az űrt szeretném betölteni ezzel a rövid kis cikkel. Mi az a Big Data? Érthetően, de marketing bullshit nélkül.

Small Data

Kezdjük onnan, hogy mi az a small data? Az adatelemzés alapjainak alapjait a népszámlálás teremtette meg, ahol már évszázadokkal ezelőtt is kérdezőbiztosok mindenféle érdekes dolgokat kérdezgettek az emberektől. Ennek a következő evolúciós lépcsője a kérdőívezés lett, ami mind a mai napig egy gyakran használt piackutatási módszer. Mi a baj a kérdőívezéssel? Egyrészt a mintavétel: még a legprecízebb, legkörültekintőbb mintavétel is tévedhet. Hogyan reprezentálhatná hűen 2.000 ember válasza egy millió ember gondolatait? Persze vannak korrekt statisztikai módszerek, de a hibázás lehetősége mindig fennáll. A másik probléma a válaszok minősége. Az emberek hazudnak és gyakran nem is tudják, hogy hazudnak. Ha Téged megkérdeznek, hogy mi a kedvenc színed, lehet, hogy ma azt mondod, hogy a piros… aztán 1 hét múlva rájössz, hogy amúgy az összes pólód sárga és elbizonytalanodsz. De addigra már leadtad a válaszodat, a nagy üzletemberek pedig már döntéseket hoztak az alapján.

Ezek tipikus small data-s problémák.

Majdnem Big Data

Ezekre a problémákra ad választ a big data-s gondolkodás mód. Ha big data alapon gondolkozunk, akkor nem megkérdezzük az embereket, hanem a megfigyeljük viselkedésüket. Így nem tudnak nekünk (és maguknak) hazudni. Emellett pedig nem csak 2.000 embert figyelünk meg, hanem az összeset.

Értelemszerűen ez a legkönnyebben a számítástechnikai és az ahhoz kapcsolódó területeken történhet meg, ahol minden kattintásból és egérmozgásból új adatsor születhet.

Ezen a logikán keresztül születtek meg az olyan ismert és használt projektek, mint a Google Analytics, a CrazyEgg vagy a Mixpanel.

Bár ezekben a projektekben minden felhasználó/látogató viselkedését letárolták, de még mindig nem számítanak Big Data-nak, mivel relatív még mindig elég kicsi adatmennyiségről és korlátok között mozgó, nem túl rugalmasan kezelhető adathalmazokról beszélünk (pl. csak az előre meghatározott riportokat lehet legyártani, nem lehet kettőt kombinálni)… De akkor mi a tényleg nagy?

Big Data

Az elmúlt évek (évtizedek) egyik fontos trendje volt, hogy az adattárolás ára folyamatosan és nagy erővel csökkent. Mára elértük azt az állapotot, hogy olyan olcsó adatot tárolni, hogy inkább elmentünk mindent és nem törlünk ki semmit. És ez a kulcsa a Big Data-nak! Letárolunk minden adatot, amit csak tudunk és nem törlünk ki belőle semmit, még évekre visszamenően sem. Ezt jellemzően már nem Analytics-szerű programokba pakoljuk, hanem saját adattáblákba (pl. SQL) vagy log-okba.

Így előbb vagy utóbb akkora adatbázisok jönnek létre, amivel egy számítógép már nagyon nehezen birkózik meg. Egy terabájtos nagyságú adathalmazt Excel-ben vagy SPSS-ben nyilván meg se próbálunk megnyitni. De egy rendes SQL lekérdezés is akár órákon, sőt napokon keresztül futhat rajta. Egész egyszerűen akármivel próbálkozik az ember (R, Python, etc.), azt látja, hogy elérte a számítási kapacitás tetejét és nem tudja értelmes időn belül feldolgozni az adatait.

És ekkor jönnek képbe a Big Data technológiák – aminek az alapja, hogy az adatainkon innentől fogva nem egy számítógép dolgozik, hanem akár több tíz vagy száz vagy még több. Legtöbbször ezek a cluster-ek könnyen és szinte végtelenül skálázódnak: minél több az adatunk, annál több erőforrást tudunk bevonni a feldolgozásába. Így újra normális idő alatt tudjuk elemezni az adatainkat. Viszont sok-sok számítógépet egybekötni és egyszerre dolgoztatni egy elemző script-en: új infrastruktúrát és új technológiát igényelt. Így született meg a Big Data technológiák széles tárháza és így kerültek be a köztudatba az olyan fogalmak, mint a Hadoop, a YARN, a Spark, a Pig és a többi divatos Big Data technológia.

Big Data evolúció cégen belül

Nézzük egy startup esetében, hogy működik a Big Data evolúció.

1. Először a korai szakaszban nincs adatelemző a cégnél, de nem akarnak vakon repülni. Ezért fel-setup-olnak egy Google Analytics-et, egy Mixpanel-t, meg egy CrazyEgg-et és nézegetik az adataikat.

2. Megvan az első 10.000 felhasználó. A cégvezetés rájön, hogy a Mixpanel és a CrazyEgg kezd drága lenni, meg amúgy sem mutatnak elég részletes riportokat. Így elkezdenek saját SQL táblákat építeni és szabad szöveges log-okat gyártani. Ezt pedig valaki elemezgeti, különbözős SQL, Python vagy R script-ekkel.

3. Továbbra is növekszik a felhasználószám és az elemző(csapat) ekkor már arra panaszkodik, hogy 10-20 perc alatt sem futnak le az elemző script-jeik. Aztán, amikor elérik a több órás futás időket, rájönnek, hogy szükség lesz egy Big Data technológiára és elkezdik guglizni, hogy mi is az a Hadoop… :-)
Remélem ez a rövid összefoglaló segít eloszlatni egy kicsit a ködöt a Big Data mítosz körül. Ha pedig több tudásra van szükséged a témában, a szeptember 17-i Big Data tréningünkre még van 2 hely.

Hamarosan folytatom a témát egy új cikkel! Ha értesülni akarsz róla, iratkozz fel!

Tomi

Codecademy – új kurzus!

A Codecademy-t kifejezetten ajánlom mindenkinek, aki szeretne megtanulni programozni, de fogalma sincs arról, hogy hol kezdje. Ha elvégzed pl. a JavaScript kurzusukat, nem válsz majd profi JavaScript szakemberré. De legalább lesz némi fogalmad arról, hogy hogy épül fel egy ilyen nyelven íródott kód. Tudod majd olvasni ezt a kódot, sőt akár el tudsz indulni egy saját kis gyakorló projekttel is.

Codecademy: Command Line kurzus

https://www.codecademy.com/en/courses/learn-the-command-line

Nemrég jelent meg egy teljesen új kurzusuk, ami a “Learn the command line” nevet kapta. (Amúgy magával a nyelvvel találkozhatsz, “Bash”, “Unix”, “Shell” említések között is az online fórumokon). Egyrészről szerintem ez az első tanfolyam, amit az összes közül érdemes elvégezni. Másrészről pedig adatos vonatkozása is van. Mert hogy kis, szabad szöveges (tehát nem SQL) formátumú adathalmazokat command line-ban elég rugalmasan és gyorsan lehet feldolgozni.

Pl. ha van egy 1.000.000 soros és 15 oszlopos Excel-ed, akkor azzal a személyi számítógéped/laptopod már eléggé izzadni fog. Arról nem is beszélve, hogy iszonyatosan nehéz kezelni és pl. egy olyan parancsot, hogy szűrje ki azokat a sorokat, amiben szerepel az “alma” – esetleg még tegye ki ezeket egy új fájlba – kifejezetten bonyolult már megcsinálni benne. (Pedig összetettebb adatelemző projektekben ez egy elég fontos funkció lenne.)
Big Data technológiákat ráereszteni egy ilyen adathalmazra viszont tipikus “ágyúval verébre” szituáció lenne, hiszen azok 1 milliárd sor felett jönnek számításba.

Bash-ben (command line-ban) ugyanez 1 másodperc alatt végigvihető egy egysoros paranccsal.

Ennél persze jóval többet is tud – de ez kiderül a tanfolyamból, ami 3 órás és nem mellesleg még ingyenes is! :-)

Úgyhogy tényleg csak ajánlani tudom.

Hajrá!
Tomi

Tréningek: Big Data, Adatvezérelt Marketing újra!

Jön a szeptember – és szeptemberrel újra jönnek az Adatlabor képzések is!
Hasonlóan a korrábiakhoz, mindkét tréningünk létszámát maximáljuk 12 főben és mivel ez elég gyorsan beszokott telni, azt javasoljuk, ne habozz – hanem jelentkezz! : )

Szeptember 11. – Big Data Tréning

Tóth Zotya, Mester Tomi, big data tréning

Szeptember 18. – Adatvezérelt Marketing Tréning

tréning oktatók Németh Anna Pásztor Dávid Mester Tomi
Várunk szeretettel!

Tomi

Big Data könyv 1. rész – Mit érdemes olvasni?

A nyáron volt egy kis időm olvasgatni, így hát beszereztem több Big Data könyvet is!

Big Data Könyv 1 - Schönberger, Cukier1. Viktor Mayer-Schönberger & Kenneth Cukier: Big Data

értékelés: 2/10
Őszintén: nagyon megbántam, hogy rászántam az időmet erre az írásra. 200 oldalon keresztül sztorizgat, hasonlatokat hoz – néha nem is Big Data-ról – és a tényleges tartalmát kb 5 oldalban össze lehetne foglalni. A stílusa élvezhetetlen, nagyon szájbarágós, folyamatosan ismételgeti önmagát – ráadásul olyan dolgokban (korreláció vs. kauzalitás), amiben nem is feltétlenül van igaza. A jó történeteket (Google Flue Trends, Netflix, Amazon, etc.) egyébként már mind-mind olvashattuk online a kiemelt hírek között is az elmúlt 10 évben.
Azoknak ajánlom, akik szeretnének egy új – trendi – társalgási témát bedobni az esti borozgatásokhoz a baráti társaságban… De gyakorlatiasságra vagy arra, hogy megtudd, mi az a Big Data, ne számíts! (Ez csak azért szomorú, mert – megtévesztő módon – ez a könyv címe.)

Big Data könyv 2 - Lean Analytics2. Croll & Yoskovitz: Lean Analytics

értékelés: 9/10
Ellentétben az előző könyvvel, ezt 100%-osan ajánlom mindenkinek, aki adatvezérelten akar akármilyen bizniszt felépíteni. Nem kifejezetten Big Data könyv, sokkal inkább adatstratégiáról szól, de nagyszerű gondolatindító. Ha big data-val fogsz dolgozni üzleti fókusszal, akkor egyértelműen alapmű. Ha pedig ugyanezt teszed, de technológiai fókusszal, akkor ez a minimum, amit látnod kell az üzleti oldalról.
A könyv legnagyobb előnye, hogy nagyon-nagyon gyakorlatias. 31 fejezeten keresztül leírja az összes módszertant, illetve tesztelési, elemzési és egyéb praktikákat, amelyeket a menő “data-driven” cégek már kipróbáltak és sikerrel alkalmaznak. Minden fejezet végén megkapod a saját kis “házi feladatodat”, így rövid távon gyakorlatba ültetheted a tudást.

Big Data Könyv 3 - I heart logs3. Jay Kreps: I heart Logs

értékelés: 8/10
Ha az előző írás a startégiai, akkor ez a technológiai alapmű. Jay Kreps a LinkedIn adatinfrastruktúráját építette fel és közben olyan Big Data technológiát támogató open-source projekteket hozott létre, mint a Kafka, a Samza vagy az Azkaban. Ebből sejtheted, hogy nagyjából a füzet minden szava arany. Sajnos elég rövid (50 oldal), de egyúttal tömör és lényegretörő is. Mire a végére jutsz, biztosan érteni fogod, hogy mi az a log, mi köze van ennek a Big Data-hoz és hogy hogyan kell összedrótozni egy normális adatinfrastruktúrát. Betekintést kaphatsz abba, amit a LinkedIn anno a saját bőrén tanult meg – ami nem csak érdekes, de iszonyatosan hasznos is.

A könyveket itt veheted meg:
I heart Logs: http://shop.oreilly.com/product/0636920034339.do
Lean Analytics: http://leananalyticsbook.com

Ha pedig tréningen vagy képzésen ismerkednél meg az alapokkal:

Big Data Képzés: KLIKK!
Adatvezérelt Marketing Képzés: KLIKK!

Tomi

Vendégblog: A kis herceg és a Big Data – így kezdj neki

Pusztai Ádám Big Data cikkEheti vendégbloggerünk Pusztai Ádám, aki az adatlaboros egyetemista képzésünket is látogatta. Ádám egyébként Veszprémben végzett vegyészmérnökként, emellett pedig a Big Data az egyik fő érdeklődési területe… A következő profi összefoglalója a Honnan (és hogyan) tanuljunk a Big Data-ról címet is kaphatta volna.


“Ami igazán lényeges, az a szemnek láthatatlan.”
A kis herceg remekül összefoglalta az adatelemzés és adatbányászat lényegét. Az utóbbi időben egyre inkább érdekel ez a téma, ezért gondoltam, hogy utánanézek, ki mit mond róla, és ha beleásnám magam, akkor hogyan kezdjem el. Tuti recept szerintem nincs, de én így álltam neki:

Gyűjtögetés
A taktika az volt, hogy felütöttem a Google-t a “big data”, “how to start big data learning”, “big data 101” címszavaknál, és gondolkodás nélkül megnyitottam az összes első oldalas találatot. Ezek között voltak hasznos oldalak, kevésbé hasznosak, egyáltalán nem témába illőek (rossz SEO), és voltak összegyűjtött listák is.

Ezeket a találatokat bedobáltam egy dokumentumba, de ebben a formában teljesen használhatatlan volt, úgyhogy elkezdtem rendszerezni.  Ezután már csak azt kellett kitalálni, melyikkel résszel kezdjem.

A terv
Úgy gondoltam, egy kis ráhangolódás nem árt, ezért először olyan TED videókat kerestem, amik kapcsolódnak a témához. Itt találsz 13 előadást az adatokról, ebben a videóban pedig Hans Rosling elképesztő statisztikáit láthatod (mozgó bogyók, úristen mennyire menő!).
Többször is előkerült ez az infografika azzal a tanáccsal, hogy vallásos áhítattal kövessem. Nem mondom, hogy így van, de néha kelet felé fordítom és napjában ötször ránézek.

Első lépésként olyan forrásokat kerestem, amik helyre teszik a fejemben azt, hogy a Big Data mire jó, milyen technikákkal lehet és érdemes nekifogni ilyen elemzéseket végezni, és ehhez milyen technikai háttér szükséges részemről. Az ajánlások alapján a következő könyveket szereztem be (mindegyik ingyenesen elérhető):

Egyelőre az első hármat olvasom, aztán majd kiderül, hogy a keményebb programozás témájú könyvek hogy mennek. Annak érdekében, hogy ne csak könyvekből kelljen kihámoznom a lényeget, találtam online kurzusokat mind általánosan Big Datára, mind pedig programozásra is. A következőket ajánlom:

Online kurzusok / Big Data:

Online kurzusok / Programozás:

A végén járok a Codecademy-s Pythonnak és a CodeSchool-os R-nek, a Datacamp lesz a következő utánuk. Mindkét nyelv tetszik, sokban hasonlítanak a Matlabra, amit az utóbbi években használtam (nem feltétlen adatbányászatra).

Trello tábla gyűjtemény
Egy elvetemült figura készített egy hatalmas gyűjteményt, külön táblákra rendszerezve az ő forrásait, aszerint, hogy melyik cikk, online kurzus, könyv, blog, képregény(?), és a többi. Itt megtalálod.

Gyakorolni, gyakorolni, gyakorolni
Megvan a tudás a fejedben, a rendszerek a lelki szemeid előtt, most ki kellene próbálni mindezt. De hogyan? Ha nincs kéznél egy irdatlan méretű adatbázisod, ne ess pánikba, ilyeneket is találtam:

  • Quandl: ingyenes/korlátozott hozzáférés rengeteg adatbázishoz: https://www.quandl.com/
  • egyéb gyűjtemények:

A versenyszellem is segíthet. A Kaggle olyan oldal, ahova adatelemzős feladatokat töltenek fel (például a GE, az Amazon, vagy a Microsoft), és benevezhetsz a saját algoritmusaiddal és megoldásaiddal az adott contest-re, magyar szemmel nézve nagyon szép díjazásokért. Ráadásul még tutorial oldaluk is van, érdemes rápillantani arra is.

Alapok, technikák, gyakorlás – nekem ez a tervem a nyárra. Te hol tartasz?

Pusztai Ádám

Top-Adatelemző/BI eszközök (, amelyekről nem gondolnád, hogy ingyenesek)

Micsoda!? Ingyenes A/B tesztelő szoftver? Ingyenes hírlevél motor? Ingyenes funnel-metrika/KPI-metrika építő eszköz?
Nos, igen. Létezik. Minden cégnek és minden projektnek más-más adatelemző/big data/BI eszközcsomag az optimális. Azonban vannak tool-ok, amelyek mindenkinek alapvetés kellene, hogy legyenek. A vicc pedig az, hogy ezek ingyenesek. Legalábbis egy bizonyos cégméretig. Pl. ott az Optimizely – mindenki csak annyit tud róla, hogy kb 30.000$-nál kezdődik az éves előfizetésük, de azt már kevesen tudják, hogy 50.000 egyedi látogató/hó méretig (ami lássuk be, nem kevés) teljesen ingyenes. Nézzük szépen sorban a legmenőbb eszközöket, amelyeknek hasonlóan barátságos az árazási modelljük.

Mixpanel
mixpanel logoVan Google Analytics-ed? Szuper. Mi hiányzik belőle? Pl. az egyedi mérések és definíciók. Vagy az, hogy minden egyes felhasználót/felhasználói szegmenst vagy csoportot e-mail cím szerint láss. Vagy az, hogy ha egy user-ed eljutott valameddig a vásárlásban, de utána abbahagyta folyamatot, autamatikusan kapjon egy visszacsábító e-mail-t (, aminek a tartalmát akár A/B tesztelheted is)?
Ezt mind-mind tudja a Mixpanel. Sőt ennél még sokkal többet. Gyakorlatilag mindent, amit egy saját big data adatbázissal meg tudsz csinálni.
Az ára pedig 25.000 egyedi felhasználóig ingyenes.
Implementálás – megfelelő szakértelemmel – pár óra.mixpanel
Optimize.ly
Optimizely logoA/B tesztelő motor. A legjobb. Komolyan, az Adatlaborral sok ügyfélnél, sok fajta A/B tesztelő eszközt használtunk és végül az Optimizely mellett tettük le a voksunkat. (A VWO a második a sorban, de ott gyakran váratlan bug-okba, kis hibákba futottunk, ami bizony elég idegesítő tud lenni.) Ami csábító benne, hogy WYSIWYG, azaz “What you see is what you get” (azt kapod, amit látsz), tehát ha egy egyszerűbb tesztet össze akarunk dobni, akkor nem kell programoznunk, hanem elég egy grafikus felületen dobozokat tologatnunk.
Emellett kb. minden integrálható bele, pl. a fent említett Mixpanel, de a Google Analytics, a CrazyEgg, a Mouseflow és minden egyéb tool is.
Persze egy-két trükkel és best practice-szel még jobban ki tudjuk aknázni a tudását (pl. honlapátirányításos A/B teszt), de ha az árazáshoz jutunk megint meglepő fordulatot látunk (ahogy fent is írtam):
50.000 egyedi user/hó méretig ingyenes. (Ha pedig ezt túlléped, egyszerűen csak leáll a teszt.) Ebben az a szép, hogy 50.000 user-ből 100-ból 99 projektben már simán jönnek ki szignifikáns eredmények, úgyhogy ennél nagyobb motorra – legalábbis magyar viszonylatban – nincs is szükség.

Mouseflow
A Mouseflow-val 3 dolgot tehetsz meg:
1. Felveszed a látogatóid egérmozgását és visszanézed.
2. Ezekből kattintási/egérmozgatási hőtérképet készítesz.
3. Görgőzési hőtérképet készítesz.
Mind a három iszonyatosan fontos ahhoz, hogy megértsd, hogy mi miért és hogyan történik a honlapodon. Meglepődnél, hogy mennyire máshogy rajzolódik ki egy-egy kattintáshőtérkép egy-egy CTA gomb körül, ahhoz képest ahogy az a dizájnered vagy a Te fejedben megjelenik. Itt egy rövid videó a Mouseflow-ról:

A Mouseflow-nak is van ingyenes verziója, amiért 100 képernyőfelvételt nézhetsz végig havonta. Ez amúgy önmagában érdekes és hasznos is, azért egy hőtérképre inkább jobb a small csomagjuk (1000 felvétel/hó 15$-ért) vagy esetleg a medium (10000 felvétel/hó 60$-ért).
Implementálás – kb. 10 perc. :-)

Összefoglalás
Ez a 3 eszköz általában minden igényesebb adatelemzési/online termékkutatási projektnél jelen van. Azt hozzá kell tenni, hogy alternatíváik vannak. Egyrészről, amit tudni kell, hogy egy bizonyos méret után a házon belül fejleszett big data eszközök már jobban megérik anyagilag. Másrészt pedig más ár-érték arányban az alábbi tool-ok szolgálhatnak még jó példaként:
1. Mixpanel helyett: KISSmetrics
2. Optimizely helyett: VWO
3. Mouseflow helyett: ClickTale vagy CrazyEgg

Ha arra vagy kíváncsi, hogy hogyan lehet ezeket az eszközöket stratégiailag is alkalmazni, ne hagyd ki a ma esti (hétfő 04.13. 19:00) Big Data Adatstratégia webináriumunkat!

Mester Tomi

Ha Arany és Petőfi miatt vagy itt…

… akkor jó helyen jársz. Az Adatlabor csinálta a kutatást. (inspirácóért köszönet Kajtár Róbertnek) Itt megmutatok néhány technikaibb háttér-infot az elemzésről. Röviden újra összefoglalom az eredményeket. (Ha a kódolás részét túl bonyolultnak érzed, ugord át nyugodtan.) A kutatás célja az volt, hogy kiderítsük, melyik költőnknek a legnagyobb a szókincse, azaz melyik költőnk használ legtöbb »egyedi« szót verseiben. Az eredmények röviden:

egyedi szavak egyedi szótövek leírt szavak egyedi szótő arány
1 Arany János 59697 ~16.000 287425 20.77%
2 Vörösmarty Mihály 43938 ~12.000 214104 20.52%
3 Petőfi Sándor 32855 ~9.600 154721 21.23%
4 Ady Endre 30243 ~10.400 124574 24.28%
5 Babits Mihály 27116 ~11.000 398003 6.81%
6 József Attila 19635 ~8.200 62811 31.26%

Tehát, ahogy azt magyar órán is megtanulhattuk: Arany János a nyertesünk.

Több részletet: az origo-s cikkben olvashatsz.

Nézzük a technikai hátteret az egész mögött.
1. Milyen technológiát válasszunk?
Ez nem volt nehéz döntés. Csak egy gondolat: a Big Data nagyjából 1 milliárd sornyi adatnál kezdődik és mivel ennyit együtt sem írtak költőink, bár használhatnánk Big Data script-eket, ez amolyan ágyúval verébre megoldás lenne.
Egyébként Apache Pig-ben egy szószámláló script kb így néz ki hozzá:

A = load './input.txt';
B = foreach A generate flatten(TOKENIZE((chararray)$0)) as word;
C = group B by word;
D = foreach C generate COUNT(B), group;
store D into './wordcount';

(Forrás: itt)

A másik nyelv a Python lehetne, de az igazság az, hogy ilyen “kicsi” (pár százezer sor) adatmennyiséggel még egy egyszerű Bash script is megbirkózik és ott lényegesen rövidebb a kód:

cat text.txt \
|tr -d '[:punct:]' \
|sed 's/[[:upper:]]*/\L&/' \
|tr ' ' '\n' \
|wc -l

Az első sor beolvassa az adott szöveget, a második kiveszi a központozást, a harmadik gondoskodik arról, hogy a kisbetű-nagybetű ne számítson külön szónak (pl. mondat eleji “Kalap” és mondatközepi “kalap”) – a negyedik sor, minden szót egy új sorba tesz, az utolsó pedig megszámolja, hogy hány sorunk van.

Ha az egyedi szavakra vagyunk kíváncsiak, ki kell szednünk a szóismétléseket és minden egyedi szót csak egyszer számolni. Ehhez beteszünk az utolsó előtti sorba még egy kódot.

cat text.txt \
|tr -d '[:punct:]' \
|sed 's/[[:upper:]]*/\L&/' \
|tr ' ' '\n' \
|sort -u \
|wc -l

A szótövezés (azaz a “kalaptól” és “kalapban” szavak hasonlóságának felismertetése) egy kicsit bonyolultabb folyamat, úgyhogy abba nem is nagyon mennék bele.

Még a top 100 kifejezés listának a kódja lehet érdekes. Ez írja ki, hogy pl. mi volt az Ady Endre által legtöbbször leírt száz szó.

cat text.txt \
|tr -d '[:punct:]' \
|sed 's/[[:upper:]]*/\L&/' \
|tr ' ' '\n' \
|sort |uniq -c |sort -nr| head -100

Ha csak a Toldit elemezzük, akkor a legtöbbször használt kifejezések (az ún. stop-word-öket, mint pl. “a”, “az”, “hogy”, “is”, stb… eltávolítva):

65 Toldi
54 Miklós
29 jó
28 király
27 György
21 Isten
19 szépen

Egyébként a kutatás relatív egyszerű volt, az egész elemző script tokkal vonóval 40 sor — de jellemzően maga az adat megszerzése (versek lekérése) és letisztítása volt ebből 35 sor, a számláló megírása pedig 5.

Ígérem, ez volt a legtechnikaibb cikkünk! :-)

Tomi