SVEUČILIŠTE U SPLITU EKONOMSKI FAKULTET SPLIT DIPLOMSKI RAD Big Data i semantička analiza: Iskorištavanje vrijednosti nestrukturiranih podataka u poslovanju MENTOR: STUDENT: Doc. dr. sc. Maja Ćukušić univ.bacc.oec. Živko Krstić BROJ INDEKSA: 2120542 Split, Svibanj 2014. Sadržaj Sažetak .......................................................................................................................................................... 3 Summary ....................................................................................................................................................... 3 1. Uvod ...................................................................................................................................................... 4 1.1 Problem istraživanja ..................................................................................................................4 1.2 Predmet istraživanja ..................................................................................................................5 1.3 Istraživačke hipoteze .................................................................................................................6 1.4 Ciljevi istraživanja .......................................................................................................................8 1.5 Metode istraživanja .........................................................................................................................8 1.6 Doprinos istraživanja ......................................................................................................................9 1.7 Sadržaj diplomskog rada............................................................................................................ 10 2. Big Data ................................................................................................................................................. 12 2.1 Uvod u Big Data ........................................................................................................................... 12 2.1.1 Volume .................................................................................................................................... 14 2.1.2 Variety ...................................................................................................................................... 15 2.1.3 Velocity .................................................................................................................................... 16 2.1.4 Veracity .................................................................................................................................... 17 2.1.5 Value ........................................................................................................................................ 18 2.2 Hadoop okruženje ....................................................................................................................... 19 2.2.1. HDFS i MapReduce ............................................................................................................. 19 2.2.2. Ostali projekti u Hadoop okruženju ................................................................................ 22 2.2.3. PANDORA Big Data arhitektura ....................................................................................... 26 2.3 Prednosti i nedostaci Big Data tehnologije ........................................................................... 28 3. Semantička analiza ............................................................................................................................. 31 3.1 Uvod u semantičku analizu ........................................................................................................ 31 3.2 Problemi semantičke analize ..................................................................................................... 33 3.3 Glavne operacije i tehnike semantičke analize ..................................................................... 35 3.3.1 IO............................................................................................................................................... 35 3.3.2 Obogaćivanje........................................................................................................................ 36 1 3.3.3 Obrada teksta ........................................................................................................................ 37 3.3.4 Frekvencije .............................................................................................................................. 38 3.3.6 Vizualizacija ........................................................................................................................... 39 4. Semantička analiza nestrukturiranih podataka poduprta Big Data tehnologijom ............. 40 4.1 Sinergija Big Data tehnologije i semantičke analize ............................................................ 40 4.2 Od tekstualne informacije do numeričke informacije ......................................................... 41 4.2.1. Izazovi velikih podataka ..................................................................................................... 41 4.3 Analiza TripAdvisora .................................................................................................................... 44 4.3.1. Model TripAdvisor po kategorijama ............................................................................... 45 4.4 Analiza Facebooka ....................................................................................................................... 49 4.5 Analiza Twittera ............................................................................................................................ 51 4.6 Iskorištavanje rezultata analize u procesu odlučivanja ....................................................... 52 4.6.1. Prikaz nekih dijelova aplikacije ......................................................................................... 53 5. Istraživanje ............................................................................................................................................ 56 5.1. PANDORA projekt ....................................................................................................................... 56 5.1.1. Kreiranje projekta u PANDORI ......................................................................................... 58 5.1.2. Prikupljanje podataka i vizualizacije podataka ............................................................. 60 5.1.3. Budućnost projekta ............................................................................................................. 61 5.2. Model za semantičku analizu ................................................................................................... 62 5.2.1. Semantički model pomoću rječnika ................................................................................ 63 5.2.2. Semantički model strojnog učenja .................................................................................. 72 5.3 Rezultati istraživanja .................................................................................................................... 74 Zaključak .................................................................................................................................................... 78 Literatura .................................................................................................................................................... 80 Popis slika i tablica................................................................................................................................... 82 Zahvala ....................................................................................................................................................... 83 2 Sažetak U ovom će se radu prezentirati nekoliko pojmova poput Big Data, Semantička analiza, nestrukturirani podaci te njihova sinergija na projektu koji je nastao u Hrvatskoj (Zagreb). Osim teorijskog dijela, u radu su prezentirani i konkretni modeli izrađeni u alatu KNIME-e, koji se pokazao korisnim za potrebe semantičke analize. Kao rezultat ovakvog modela dobiveni su kvalitetni i vrijedni podaci (pomoću rječnika ili pomoću strojnog učenja ovisno o svrsi) koji su ekonomski iskoristivi što se i potvrdilo tokom ovog rada. Na temelju ovakvih podataka poslovna organizacija može ostvariti konkurentsku prednost prepoznavanjem novih trendova prije svojih konkurenata ili poboljšanjem svog proizvoda ili usluge pomoću dobivenih informacija. Ključne riječi: Big Data, semantička analiza, KNIME, strojno učenje, nestrukturirani podaci Summary In this paper concepts such as Big Data, Semantic analysis, unstructured data and their synergy are presented based on a project that originated from Croatia (Zagreb). In addition to the theoretical part of this paper concrete models will be presented developed using the software KNIME-e, which proved to be useful for sentiment analysis. The result of this model are quality data and valuable data (using a dictionary or using machine learning depending on purpose) were obatained that are economically exploitable as it was confirmed during this work. Based on these data business organization can gain a competitive advantage by identifying new trends before their competitors or improve a product or a service using the obtained information. Keywords: Big Data, sentiment analysis, KNIME, machine learning, unstructured data 3 1. Uvod 1.1 Problem istraživanja U ovom radu spomenut će se nekoliko relativno novih pojmova koji su već počeli mijenjati današnje poslovanje. Radi se o pojmovima Big Data i semantička analiza. U istraživačkom radu I , koji je autor napisao zajedno s kolegom1 za potrebe studija na Ekonomskom fakultetu u Splitu, istražen je potencijal ove teme, a ovim diplomskim radom se proširuju ova dva pojma te se ukazuje na konkretne primjene u poslovnim organizacijama. Iako se autori još ne mogu dogovoriti koja je konkretna definicija pojma Big Data, često se u literaturi spominju tzv. V-ovi u nastojanju da se opiše kompleksnost pojma. Većina autora, kao i oni koji će se citirati u ovom radu koristi 4 V-a : Volume, Variety, Velocity i Veracity. Big Data rješenja su idealna za analizu ne samo strukturiranih podataka, koje su poslovne organizacije navikle analizirati, već i nestrukturiranih i polustrukturiranih podataka koji često dolaze iz različitih izvora. U ovom radu obratit će se posebna pažnja na nestrukturirane podatke. Konkretno će se spominjati tekstualni podaci s društvenih mreža i popularnih internet stranica. Smatra se da su veliki podaci idealni kada je potrebno analizirati sve podatke za koje se smatra da su relevantni za bolje shvaćanje klijenata. Drugi pojam koji se spominje je semantička analiza. Cilj semantičke analize je shvaćanje značenja određenog lingvističkog inputa. Dakle, podaci se prikupljaju, tekst se pretvara u broj te se dobiveni rezultati koriste u daljnjoj poslovnoj analizi, što dovodi do povećanja vrijednosti postojećih analiza i outputa, jer su nam dosad ovi podaci bili nedostupni (barem malim i srednjim poslovnim organizacijama). Semantika se bavi analizom značenja te stoji u središtu lingvističke potrage prema razumijevanju prirode jezika i jezične sposobnosti. Sentiment analysis ili analiza mišljenja je područje znanosti koje analizira ljudska mišljenja, osjećaje, pohvale, stavove i emocije prema različitim proizvodima, uslugama, organizacijama, osobama, problemima, događajima i njihovim atributima. Dakle, u ovom radu će se semantičkom analizom analizirati mišljenja ljudi objavljena na društvenim mrežama te internetskim stranicama. Oba pojma (Big Data i semantička 1 Hrvoje Gabelica i Živko Krstić (2013) : Primjena Big Data podataka i rudarenja teksta u suvremenom poslovanju, Hrvatska, Istraživački rad 4 analiza) su otprije poznata i postoje relativno dugo, no zadnjih godina je razvojem Big Data tehnologije došlo do smanjenja cijene ovakvog tipa analize te iskorištavanja potencijala nestrukturiranih podataka. Posebno treba obratiti pažnju na ekonomsku iskoristivost ovakvog tipa nestrukturiranih podataka (tekstualni podaci) u suvremenom poslovanju. Većina autora se bavi tehnološkim problemom te tehnološkoj izvedivosti ovakvog tipa analize, dok je ekonomski aspekt često nepravedno zanemaren. 1.2 Predmet istraživanja Danas, tvrtke sve više pažnje posvećuju data-driven načinu razmišljanja i poslovanja. Odnosno, njihove su odluke vođene podacima. Potrebe u pogledu podataka značajno rastu; tvrtke zahtijevaju sve više što kvalitetnijih i što raznovrsnijih podataka, s ciljem proširenja svoje analize i stjecanja šireg pogleda na svoje klijente. Postavlja se pitanje: da li je moguće doći do kvalitetnih podataka koji mogu doprinijeti donošenju odluka u suvremenom poslovanju? Doprinos će se analizirati kroz prizmu tehnološkog i ekonomskog pristupa. Analizirat će se mogućnosti Big Data tehnologije koje podupiru ovakav tipa analize, izrada modela za semantičku analizu i odabir optimalne te iskoristivost za potrebe poslovnog odlučivanja. Kako bi se analiziralo stanje ovakvog tipa analize, koristit će se konkretni projekt financiran od Europske Unije, koji zadovoljava sve navedene kriterije, a ujedno ga izvodi i hrvatska tvrtka Poslovna Inteligencija d.o.o. Obradit će se cijeli put potreban za semantičku analizu. Sve od prikupljanja podataka, njihove pohrane, ETL-a, modeliranja, kreiranja outputa, te iskorištavanja outputa prilikom donošenja odluka. Čest je problem da se prilikom implementacije dosegne trenutak iskorištavanja outputa prilikom donošenja odluka, pri čemu često dolazi do odgađanja ili propadanja samog projekta. Izvori ovog problema također će biti utvrđeni u ovom radu. 5 1.3 Istraživačke hipoteze Važan dio rada posvećen je postavljanju odgovarajućih istraživačkih hipoteza. Kao što Belak piše2, hipoteza (grč. hypothesis, pretpostavka) je prihvaćanje pretpostavke na kojoj se temelji neki zaključak, koja služi napretku istraživanja i objašnjavanja, a da nije dokazana iz drugih načela te da nije potvrđena (verificirana) iskustvom. Dakle, cilj je postavljane hipoteze dokazati, odnosno ne odbaciti. Dolje navedenim istraživačkim hipotezama trebala bi se, temeljem aplikativnog istraživanja, potvrditi istinitost. Hipoteze su: Ho: Semantička analiza nestrukturiranih podataka poduprta Big Data tehnologijom je iskoristiva za potrebe poslovnog odlučivanja H1: Semantička analiza nestrukturiranih podataka poduprta Big Data tehnologijom nije iskoristiva za potrebe poslovnog odlučivanja Da bi utvrdili da li je semantička analiza nestrukturiranih podataka poduprta Big Data iskoristiva za potrebe poslovnog odlučivanja potrebno je utvrditi da li model koji se dobije semantičkom analizom ima dovoljno kvalitetan output, koji se može iskoristiti za potrebe poslovnog odlučivanja. Dakle, u ovom radu će se ispitivati i ove podhipoteze: Ho: Podaci dobiveni semantičkom analizom nestrukturiranih podataka poduprtom Big Data tehnologijom su kvalitetni. H1: Podaci dobiveni semantičkom analizom nestrukturiranih podataka poduprtom Big Data tehnologijom nisu kvalitetni. Kvaliteta podataka dobivenih semantičkom analizom nestrukturiranih poduprtom Big Data tehnologijom će se utvrditi : 2 Belak, S. (2005). Uvod u znanosti. Šibenik: Visoka škola za turistiĉki menadţment u Šibeniku 6 podataka vremenom koje je potrebno od početka analize do kreiranja outputa na temelju analize, količinom resursa koji su potrebni za ovaj vid analize pomoću točnosti modela. Navedene hipoteze će se analizirati, odnosno prihvatiti ili odbaciti temeljem podataka koji će biti prikupljeni aplikativnim istraživanjem (znanstveno istraživanje). Znanstveno aplikativno istraživanje je teorijski ili eksperimentalni rad koji se poduzima radi stjecanja novih znanja, a koji je usmjeren na rješavanje nekog praktičnog zadatka. Poduzima se ili radi ispitivanja moguće primjene rezultata temeljnih istraživanja ili utvrđivanja novih metoda ili postupaka za postizanje određenog cilja. Navedeno će biti implementirano pri analizi PANDORA projekta poslovne organizacije Poslovna Inteligencija d.o.o.. Mogućnosti Big data tehnologija bit će prikazane metodom studije slučaja, u kojoj će biti obrađeni korišteni resursi te će biti ispitano da li studija podržava semantičku analizu tj. sve ono što je za nju potrebno. Nestrukturirani podaci će biti prezentirani kroz primjer tekstualnih podataka. Ovi podaci se prikupljaju s internetskih stranica te društvenih mreža. Dakle prikazat će se semantička analiza nestrukturiranih podataka poduprta Big Data tehnologijom na primjeru studije slučaja. Koristit će se primjeri streamova sa TripAdvisora, Twitter i Facebooka. Konkretno radi se o komentarima s TripAdvisora i Facebooka te tvitovima s Twittera3. Radi se o idealnom primjeru nestrukturiranih podataka iz realnog svijeta. Semantička analiza će biti prikazana kroz konkretan model u open-source softverskom alatu KNIME. Iskoristivost za potrebe poslovnog odlučivanja će ovisiti o kvaliteti informacija koje će biti dobivene semantičkom analizom i točnosti modela koji je izrađen u KNIME-u. Kvaliteta podrazumijeva vrijeme, resurse i točnost modela. 3 Ana Mihanović, Hrvoje Gabelica, Živko Krstić (2014) : Big Data and Sentiment Analysis: Online Reviews vs. Social Media, Hrvatska, MIPRO konferencija 7 1.4 Ciljevi istraživanja Cilj istraživanja je potvrditi ranije navedenu hipotezu i podhipotezu. Interpretiranjem hipoteza ciljevi se svode na dolaženje do zaključka da je semantička analiza nestrukturiranih podataka poduprta Big Data tehnologijom iskoristiva za potrebe poslovnog odlučivanja. Ostvarenje ciljeva bit će postignuto primjenom metodološkog okvira koji je detaljnije pojašnjen u sljedećem poglavlju. Okosnica istraživanja biti će provođenje aplikativnog istraživanja na konkretnom primjeru projekta tvrtke Poslovna Inteligencija d.o.o. te vrednovanja dobivenih rezultata. Dobiveni rezultati trebali bi poslužiti u svrhu što bolje preciznijeg konstatiranja zrelosti Big Data tehnologije i semantičke analize tekstualnih podataka za isporuku kvalitetnih podataka za potrebe poslovnog odlučivanja na primjeru projekta ove tvrtke. 1.5 Metode istraživanja Teorijski dio rada temelji se na pregledavanju stručne i znanstvene literature. Radi se o literaturi koja predstavlja sekundarne podatke tj. postojeće podatke iz raznih izvora. Znanstvena metoda je skup različitih postupaka kojima se znanost koristi u znanstvenom istraživačkom radu da bi istražila i izložila rezultate znanstvenog istraživanja te sa tako naziva svaki način znanstvenog istraživanja koje osigurava sigurno, sređeno, sustavno i točno znanje, a u okviru izrade teorijskog i praktičnog dijela rada koristiti će se slijedeće metode znanstveno – istraživačkog rada, prilagođene prema teorijskom okviru: Induktivno – deduktivna metoda koja uključuje način zaključivanja iz općih postavki do konkretnih pojedinačnih zaključaka te zaključivanje o općim sudovima temeljem pojedinačnih ili posebnih činjenica. Metode analize i sinteze koje uključuju raščlanjivanje složenih pojmova, sudova i zaključaka na jednostavnije sastavne dijelove te izučavanje svakog dijela za sebe, ali i u odnosu na druge dijelove, osim predstavlja postupak znanstvenog istraživanja putem spajanja dijelova ili elemenata u cjelinu, odnosno sastavljanja jednostavnih misaonih elemenata u složene, a složenih u još složenije. 8 Metoda apstrakcije i konkretizacije je misaoni postupak (apstrakcija) kojim se namjerno odvajaju nebitni, a ističu bitni elementi i osobine. Zajedno sa apstrakcijom, najčešće se provodi i metoda konkretizacije – suprotno apstrakciji. Metoda dokazivanja i opovrgavanja koje za svrhu ima utvrditi istinitost pojedinih spoznaja inkorporiranjem gotovo svih metoda, ali i suprotno. Metoda deskripcije odnosno postupak jednostavnog opisa ili očitavanja činjenica, te empirijsko potvrđivanje njihovih veza i odnosa. Metoda komparacije koja predstavlja postupak kojim se uočava i uspoređuje sličnost i zajednička obilježja dvaju ili više događaja, pojava ili objekata. Uspoređivat će se modeli tvrtke Poslovna Inteligencija s modelima najbolje prakse (u KNIME alatu). Metoda modeliranja - izgrađuje se neki stvarni ili idealni znakovni sustav (model) koji može zamijeniti predmet koji se istražuje i dati određenu informaciju o njemu. Modelirat će se stream za Twitter, Facebook i TripAdvisor. Dakle, kod TripAdvisora će se analizirati komentari, kod Twittera tvitovi s ključnim riječima za određena područja (hoteli, kozmetika...), te komentari sa javnih stranica preuzetih s Facebooka. 1.6 Doprinos istraživanja Doprinos ovog istraživanja se ostvaruje utvrđivanjem iskoristivosti semantičke analize nestrukturiranih podataka poduprtih Big Data tehnologijom za potrebe poslovnog odlučivanja. Pri tome će se koristiti primjer iz Hrvatske, a koji je primjenjiv i na ostale poslovne organizacije, koje se susreću sa sličnim problemima. Većina poslovnih organizacija je upoznata s poslovnom analitikom i njenom moći prilikom donošenja odluka, a mnoge od njih žele svoju poslovnu analizu proširiti i na viši nivo, nazovimo ga evolucijski nivo, informacijske skale. U prijelazu im može pomoći semantička analiza nestrukturiranih podataka i Big Data tehnologija. Big Data tehnologija pohranom i upravljanjem velikim količinama nestrukturiranih podataka, a semantička analiza shvaćanjem značenja određenih riječi i njihovog utjecaja na kvalitetu analize značenja 9 riječi, rečenica, konkretno u ovom slučaju komentara na internetskim stranicama, tvitova s Twittera i komentarima s Facebooka. Mnoge poslovne organizacije, što će se pokazati i u radu, imaju strah prema novim tehnologijama. Nadalje, određeni broj istih, pa čak i velikih organizacija, ne sudjeluju u Big Data projektima. Postoji mogućnost da takvim organizacijama rezultati ovog rada budu poticaj za ulazak u ovo područje ili možda za upravo suprotno - za shvaćanje ekonomske neiskoristivosti ovakvih informacija u ovom trenutku, što vodi ka uštedi truda, vremena te naposljetku i novca. Također, cilj je pokazati da Hrvatska prati svjetske trendove u ovom području, no s obzirom da se radi o relativno mladom polju ima i dosta prostora za napredak, što je promatrano i kao pozitivna činjenica. 1.7 Sadržaj diplomskog rada U okviru prvog poglavlja nalazi se uvodni dio diplomskog rada. On se sastoji od temeljnih odrednica rada, poput problema, predmeta i ciljeva istraživanja, korištenih metoda i ostvarenog doprinosa navedene tematike. Osim toga, u ovom se dijelu nalazi i struktura odnosno sadržaj diplomskog rada. U slijedećem poglavlju se razrađuje pojam Big Data. Prije svega, objasnit će se značenje samog pojma, V-ovi u Big Data, kratka povijest razvoja Big Data tehnologije. Nakon toga detaljno se prikazuje Hadoop okruženje koje je okosnica kako Big Data projekata tako i predmeta istraživanja ovog rada. To poglavlje je podijeljeno u dva dijela: HDFS i MapReduce. Radi se o dva ključna pojma za razumijevanje Big Data i principa rada te razlike u odnosu na dosadašnje sustave. Za kraj ovog poglavlja ostavljaju se prednosti i nedostaci Big Data tehnologije. U trećem se poglavlju obrađuje semantička analiza. Za početak se govori o osnovnim pojmovima semantičke analize te nakon toga slijede problemi koji su specifični za ovaj vid analize. Zatim slijede glavne operacije nad tekstom i tehnike semantičke analize. Zadnji dio su područja primjene semantičke analize. Ovaj dio rada važan je kako bi se dobila šira slika primjene semantičke analize. 10 U četvrtom poglavlju se govori o sinergiji dva pojma: Big Data i semantička analiza. Zatim se ulazi u detalje kako teče proces pretvorbe tekstualnih informacija u numeričke informacije. Za kraj ovog poglavlja se ostavlja pogled na dosadašnji razvoj ove analize, gdje se nalazi sada te što se može očekivati u budućnosti. Ovdje se radi o teorijskim pretpostavkama, a u sljedećem poglavlju dolaze studije slučaja, gdje će se vidjeti kako to sve konkretno izgleda u alatu KNIME. Studije slučaja se nalaze u petom poglavlju i obuhvaćaju dio u kojem se objašnjava konkretan projekt pod nazivom „PANDORA“. Zatim se prezentiraju modeli korišteni za semantičku analizu u svrhu tog projekta. Studije slučaja su podijeljene redom: Analiza TripAdvisora, analiza Facebooka te analiza Twittera. Modeli su izrađeni u alatu KNIME. Te za kraj se ostavlja testiranje početnih hipoteza te prezentacija rezultata istraživanja. Konačno, u sedmom poglavlju nalazi se zaključak diplomskog rada, nakon koje slijedi korištena literatura, popis slika, tablica i prilozi. Kako bi cjelina bila zaokružena na samom početku rada nalazi se sažetak na hrvatskom i engleskom jeziku. 11 2. Big Data Big Data vrlo je važan termin rada te projekta koji će se objasniti tokom cijelog teksta. Semantička analiza može se provoditi i bez Big Data, no u ovom radu će se utvrditi njen značaj. Semantička analiza, koja je ipak ključni pojam će se objasniti u kasnijim dijelovima rada, a ovdje će biti prikazan temelj kako bi se analiza mogla izvesti u obliku koji je odrađen na PANDORA projektu. Big Data4 nije pojam nastao zadnjih godina i nešto što se dosada nije koristilo, no Big Data je nešto što je već sada dovelo do promjena u načinu poslovanja i razmišljanja, a o čemu se konkretno radi, saznat će se u narednim potpoglavljima. 2.1 Uvod u Big Data Big Data tehnologije nikako se ne razmatraju bez osvrta na V-ove. Različiti autori preferiraju različite V-ove, ali zajednički elementi su ovih 5 V: Volume, Variety, Velocity, Veracity, Value, koji su korišteni i u okviru istraživanja obrađenog u ovom radu. Objašnjenje navedenih termina u ovom dijelu dovest će do lakšeg prepoznavanja u kasnijem dijelu rada. Iako se semantička analiza može provesti i bez Big Data tehnologije, za svrhe ovog projekta je ipak potrebna Big Data tehnologija. Prije svega, ovakav tip tehnologije služi kako bi određena aplikacija ili model upravljali velikim količinama podataka, dakle prvi V – Volume. Prije pojašnjenja svakog od V-ova bitno je istaknuti nekoliko točaka koje su karakteristične za Big Data. Kad se govori o Big Data ili velikim podacima nužno je na početku istaknuti nekoliko točki koji ga opisuju : Big Data se smatra pogodnim za analizu nestrukturiranih podataka što je i tema ovog rada. U projektu PANDORA govori se o nestrukturiranim podacima s društvenih mreža (Twitter, Facebook, Pinetrest) ili s web stranica (TripAdvisor, booking.com, hotels.com itd.). Dakle, gledajući PANDORA projekt radi se o velikim 4 Chris Eaton et al. (2013) : Understanding Big Data, Analytics for Enterprise Class Hadoop and Streaming Data, USA, McGrawHill 12 količinama podataka kojima korisnik putem aplikacije može pristupiti, čime Volume dobiva na važnosti već na samom početku. Kao što je napomenuto u prvoj točki, Big Data pomaže kod upravljanja nestrukturiranim podacima, dakle njihovom strukturom, a ne samo veličinom. Kao što će biti govora kasnije, radi se o tekstualnim podacima proizašlih s Web-a i radi se o tekstualnim podacima. Big Data tehnologija pomaže u situacijama u kojima tradicionalni načini to nisu u stanju. Ukoliko raste količina nestrukturiranih podataka koje treba analizirati i ukoliko se analiza želi obaviti u realnom vremenu, zasigurno se dolazi do područja u kojem je jedino rješenje Big Data tehnologija. Sinergija tradicionalnih načina analize te „Big Data“ analize. Dakle, radi se o outputu koji je generiran pomoću Big Data tehnologije, a koji se kasnije može iskoristiti u tradicionalnim skladištima podataka te koji može pomoći da se dobije potpunija slika. Ukoliko se proces odradi na kvalitetan način s jasnom vizijom što se želi ispitati (npr. analiza mišljenja o našoj usluzi). Može se doći do izbjegavanja nepotrebnih troškova, povećavanja zadovoljstva kupaca no o ovome će se nešto više govoriti u kasnijem dijelu teksta kada se bude prezentirao točan output generiran od strane PANDORA. Zaključak prethodnih točki je efikasna, brza i jednostavna analiza za krajnjeg korisnika, prilikom koje se više ne analizira samo jedan mali uzorak (nekoliko tisuća dokumenata) cjelokupne populacije već je moguće analizirati gotovo sva mišljenja kupaca o usluzi jedne poslovne organizacije na društvenim mrežama i web stranicama. 13 2.1.1 Volume O Big Data i V-ovima sam nešto više pisao zajedno s kolegom u radu koji je objavljen na skladistenje.com (naziv: Big Data Istraživački rad). Tada je također spomenuta važnost svakog od V-ova te je detaljno objašnjen svaki do njih no više s apstraktnije razine. Ovdje se već spomenula važnost Voluma5- količine podataka koja pristiže. Na primjer, Twitter se u 2013. godini nalazio među top deset najposjećenijih web stranica prema wikipedii, a u 2014.godini je imao Alexa traffic rank (kombinira jedinstvene posjetitelje i preglede stranica) 12, te Google Display Network AD Planner (jedinstvenih posjetitelja prema Google-u) 15. Facebook je imao rang 2 i prema wikipedii i prema Alexa rangu, dok je prema Googleu bio 1. Osim ovih podataka gdje se može vidjeti važnost svake od ovih stranica, dovoljno govori i podatak da Twitter prema podacima iz 2014.godine6 imao oko 645 milijuna korisnika, oko 58 milijuna tvitova dnevno (prosjek), a u sekundi se generira 9 100 tvitova. Prema istom istraživanju, Facebook je imao oko 1,3 milijarde korisnika koji su aktivni na mjesečnoj bazi te je imao porast od 22% što se tiče broja korisnika gledajući razdoblje iz 2012.godine i 2013.godine. Facebook, također ima oko 54 milijuna stranica (Facebook Pages), dok se svako 20 minuta pošalje 3 milijuna poruka. Sve navedeno jasno dokazuje što je projekt PANDORA mogao očekivati od svojih izvora te da je nužno sustavno i pravovremeno razmišljanje o upravljanju tako velikim količinama podataka. Kao rješenje je izabrana Big Data tehnologija od kojih će se neke objasniti u dijelu Hadoop okruženja. Korisnika možda zanima samo 5000 ili 10 000 tvitova, no u skladu sa željama korisnika koje ponekad mogu biti raznolike i zahtjevne, nužno je napraviti cijeli sustav koji bi bio u stanju prihvatiti toliku količinu podataka da bi se kasnije mogla provesti analiza nad njima. 5 Michael Manoochehri (2014) : Data just right, Introduction to Large-Scale Data & Analytics, USA, Pearson Education 6 www.statisticbrain.com 14 2.1.2 Variety U ovom se dijelu govori o raznolikosti pristiglih podataka, a tu se prije svega misli na nestrukturirane podatke. Podaci Nestrukturirani podaci Tekstualni podaci Strukturirani podaci Netekstualni podaci Slika 1. Prikaz vrste podataka Na slici iznad se može vidjeti konceptualna podjela podataka s tim da je u ovom slučaju, za potrebe ovog rada, zanimljiva grana nestrukturiranih podataka i to tekstualnih podataka (to je ono čime će se ovaj rad baviti). Osim tekstualnih može se vidjeti da postoje netekstualni nestrukturirani podaci, a oni predstavljaju grafike i slike (fotografije, ilustracije, X-zrake, MRI...). Ono što se može očekivati od PANDORA projekta je mogućnost analize podataka iz različitih izvora u nestrukturiranom obliku te u različitim formatima nad kojima je potrebno provesti parsiranje u svrhu dobivanja željenih podataka. Ono što je također bitno naglasiti je pojam nestrukturiranih podataka, koji može navesti čitatelja na zaključak da se radi o podacima koji nemaju strukturu, no podaci zaista imaju strukturu, ali njihove komponente nemaju (komentari, slike ...). 15 2.1.3 Velocity Treće V je Velocity tj. brzina. Radi se o brzini pristizanja podataka. Kao što se može primijetiti tokom pisanja teksta, dolazi do ispreplitanja V-ova te su zapravo u ovom slučaju povezani. Analizom društvenih mreža javlja se i problem pod nazivima 5 V – volume, variety, velocity, veracity, value. Što se brzine tiče, već je navedena kratka statistika u dijelu Volume koje opisuje dnevna i godišnja kretanja brojeva društvenih mreža. Tako primjerice Twitter ima 9 100 tvitova u sekundi. Radi se uistinu o velikom broju tvitova kojeg treba analizirati. Naravno, korisnika neće zanimati svih 9 100 tvitova iz te sekunde, već dosta manji broj, ali treba prilikom izrade aplikacije to imati na umu. Nastavno na to i jesu razvijani budući planovi projekta PANDORA, ali je takav trend u svijetu7, promatranje tehnologija koje pomažu pri dobivanju real-time analiza. Navedenim se kompleksnost modela može povećati. Neki od načina kako postići iznad navedeno su Storm, koji je razvijen od strane Twittera ili možda Spark. Na slici ispod prikazana je mogućnost hvatanja u koštac s brzinom pomoću tehnologije. Radi se o grani koja predstavlja Speed sloj (Storm), a druga grana koja se već spominjala bi bila Batch sloj (Hadoop). Lambda arhitektura8 pruža uvid u razlike između ova dva sloja. Dakle, ovdje se radi o hibridnoj arhitekturi. Batch sloj pruža konstantan uvid u prikupljene podatke, koji su uvijek nešto „stariji“, dok speed sloj pruža uvid u podatke gotovo uživo (near real-time). Vrši se upit nad oba sloja te se rezultati spajaju čime se dobiva near real-time pogled na kompletne podatke. Hadoop i Storm se mogu zamijeniti i nekim drugim tehnologijama no ovdje su izabrani oni, jer su cilj PANDORA projekta. Slika 2. Lambda arhitektura 7 Ralph Kimball : Newly Emerging Best Practices for Big Data, White paper, Kimball Group Nathan Marz and James Warren (2014): Big Data - Principles and best practices of scalable realtime data systems, USA, Manning 8 16 2.1.4 Veracity Prema Zikopoulosu9 trećina rukovodećih ljudi koji u poslovanju donose odluke ne vjeruje svojim informacijama. Ova činjenica govori da bi se trebala obratiti pažnja na kvalitetu i podataka i informacija koji se dobivaju. Prije svega se pritom misli na nesigurne podatke koji pristižu, podatke koji su nedosljedni, nejasni, dakle koliko su istiniti ti podaci koje dobivamo. Također, ono što je veoma bitno je činjenica koliko se može vjerovati semantičkim modelima da dobro rade svoj dio zadatka. Stoga je nužno konstantno pratiti kako model, ali i cijeli sustav funkcionira te stalno biti u potrazi za nelogičnostima koje bi sustav mogao generirati. Što se semantičkog modela tiče, bilo da se odabere metodu rječnikom ili strojnim učenjem, optimizacija je nešto čemu treba težiti. Pogotovo kad se govori o strojnom učenju10. Najmanja promjena u modelu može dovesti do pada ili rasta točnosti modela, zatim je nužno utvrditi kako se naučeni model ponaša na novim podacima, kako različiti algoritmi rade te koliko njihova sposobnost prepoznavanja polariteta varira što vrijeme odmiče, koji je najbolji algoritam za date podatke itd. Ono što također predstavlja problem su prazne vrijednosti, nečistoće koje se pojavljuju u podacima, izazov filtracije određenih jezika na kojima su dokumenti napisani. Nepravedno se premalo pažnje pridaje upravo ovom V-u. Potrebno je konstantno raditi na unaprijeđenju kvalitete podataka i modela te veliku pažnju obratiti na nečistoće u podacima. Korisnici bi osim sumarne statistike koliko imaju pozitivnih, a koliko negativnih ili možda neutralnih dokumenata, htjeli znati i kako model točno radi. Je li moguće pratiti izračune polariteta te konkretno na veoma detaljnoj razini, kako je koji dokument klasificiran – sve su to pitanja na koja treba odgovoriti. 9 Paul Zikopoulos et al. (2013) : Harness the Power of Big Data, The IBM Big Data Platform, USA, McGrawHill Haralambos Marmanis and Dimitry Babenko (2009) : Algorithms of the Intelligent Web, USA, Manning 10 17 2.1.5 Value Većina autora spomene navedena četiri V-a, ali zaborave gotovo i najvažnije „V“ (ekonomski gledano), a to je Value. S obzirom da je cilj ovog rada potvrditi ili osporiti hipotezu da li je semantička analiza potpomognuta Big Data tehnologijama ekonomski iskoristiva, Value ili vrijednost se čini kao logičan izbor petog slova V. Pod terminom „vrijednost“ smatra se poslovna vrijednost te oportunitetni trošak ili trošak propuštene prilike. Koji je poslovni trošak korištenja Big Data tehnologije koja ima sposobnost upravljanja nestrukturiranim podacima, koji je poslovni trošak nekorištenja jedne takve tehnologije te koji je potencijalni dobitak ukoliko ta tehnologija urodi plodom i pruži izvrsne rezultate? Odgovori na ova pitanja nastoje se pronaći kroz ovaj rad i to kroz prikazivanje mogućnosti Big Data tehnologije te semantičke analize, ispitivanje ekonomske isplativosti informacija koje se generiraju kroz ovakvu sinergiju tehnologija i metoda. Moguće je napraviti najbolji sustav s tehnološke strane ili najbolji sustav koji prati Lambda arhitekturu, koji koristi najbolje prakse u izradi semantičkog modela, ali ako taj sustav pruža korisniku informacije koje mu ne trebaju onda mu je i vrijednost mala, baš kao i trud i usklađivanje sustava da se bavi s problemima V-ova. Ono što je svakako put budućnosti poslovnih organizacija je snažnija fokusiranost na svoje korisnike/kupce, a jedan od načina ostvarenja ovog puta i cilja je iskorištavanje današnje tehnologije u pronalasku vrijednosti u podacima koji se već nalaze na webu i koji su generirani od strane samih korisnika. Uistinu se radi o potencijalno vrijednoj kolekciji mišljenja koja postoji na webu i koja je spremna za analizu te iskorištavanje kako bi se dobila prevaga u odnosu na konkurenciju. 18 2.2 Hadoop okruženje Obično kad se govori o Big Data tehnologijama govorimo uglavnom o Hadoopu11. Hadoop je Apache projekt, pisan u Javi te se smatra računalnim okruženjem ili ekosustavom koji je baziran na HDFS-u i MapReduceu. Ova dva pojma su sama srž Hadoopa, no osim njih u okruženje spadaju i mnogi drugi te se upravo zbog toga ovaj sustav i zove Hadoop okruženje. 2.2.1. HDFS i MapReduce HDFS ili Hadoop Distributed File System dijeli podatke u blokove te ih kopira i pohranjuje na servere u Hadoop klasteru. Navedeno bi značilo da jedan individualni podatak može biti podijeljen i u nekoliko manjih blokova koji se repliciraju na više servera unutar tog cijelog Hadoop klastera. Zadana veličina tih blokova je 64 MB (default) i to je veličina koja se koristi za potrebe projekta PANDORA, no ta veličina može biti i veća. 64 MB je relativno velika veličina blokova, no s obzirom da su tema veliki podaci (Big Data), veličina je očekivana. Pohrana se odvija tako da se poveća sigurnost i pouzdanost, a cijela logika navedenog smještanja podataka se odvija zahvaljujući NameNode-u (on se brine gdje će se podaci smjestiti umjesto nas). S obzirom da je on „single point of failure“ bitno je raditi backup metapodataka klastera. Dakle, NameNode služi kao tragač tj. Hadoop ga kontaktira s ciljem pronalaska određenih podataka, s obzirom da on zna lokaciju pohrane, to i uradi te ih šalje aplikaciji koja ih pokreće lokalno na tim nodovima. HDFS zadužen je za svoj dio posla, a MapReduce12 se bavi skalabilnošću. MapReduce se sastoji od dva elementa, a dvije se riječi ujedno i nalaze u njegovom nazivu: Map - uzima određeni set podataka i konvertira ih u neki drugi set podataka, prilikom čega od individualnih podataka dobijemo tuples (key/value parove); Reduce – uzima output od map-a kao input i kombinira te tuples u manji set tuples. Više o ovome će biti prikazano grafički na primjeru tekstualnih podataka. 11 12 Tom White (2012): Hadoop - The Definitive Guide, USA, O'Reilly Srinath Perera & Thilina Gunarathne (2013) : Hadoop MapReduce Cookbook, UK, Packt Publishing 19 Slika 3. Mapiranje riječi u rečenici Dakle, u ovom ilustrativnom primjeru postoje dva tvita koja se žele analizirati. Dakako da se radi o jednostavnijem primjeru, jer se želi prikazati samo način Map-a i Reduca, jer je u stvarnoj situaciju broj tih tvitova je dakako veći. Primjerice, cilj je prebrojati sve riječi u tvitovima koji su se prikupile (u ovom slučaju samo dva tvita). Da bi to postigli cijeli zadatak (brojanja riječi u tvitovima) dijeli se na dva dijela. Gornja slika prikazuje prvi dio u kojem se uzimaju tvitovi te se mapira broj riječi koja se nalaze u tvitovima (bez stop words – najčešće riječi u engleskom jeziku, više o ovome u kasnijim dijelovima rada). Slika 4. Reduce naše dvije rečenice Drugi korak je da se u jedan map kombiniraju mapovi proizašli iz promatranih tvitova. Ovaj dio se zove Reduce. Reduce izgleda kao na slici iznad. Dakle, cijeli proces je distribuiran na manje zadatke koji poboljšavanju brzinu obavljanja zadatka. Također, ako se u cijelu priču ubaci i HDFS, tada se dobije slika ispod. 20 13 Slika 5. MapReduce & HDFS S obzirom da HDFS ima više podatkovnih nodova na kojima se vrši podjela i pohrana podataka na blokove, moguće je iskoristiti računalnu snagu svakog od tih nodova te provesti zadatke na njima. Dakle, svaki nod može provesti map ili reduce zadatke, a s obzirom da svaki podatkovni node sadrži više podataka moguće je i očekivati izvršavanje više zadataka u isto vrijeme za različite podatkovne blokove. Osim njih, bitnu ulogu imaju i još dva pojma, a to su : JobTracker – komunicira s NameNodeom kako bi dodijelio MapReduce zadatke (task) određenom nodu unutar klastera, prilikom čega bi idealno bilo da se taj zadatak dodijeli nodovima koji imaju potrebne podatke ili se bar nalaze u istom racku. TaskTracker – pokreće i prati odvijanje MapReduce zadataka u klasteru. Također, kontaktira JobTrackera u vezi dodijeljenih zadataka i ako određeni zadatak ne uspije, njegov status se šalje JobTrackeru, koji zatim taj isti zadatak dodjeljuje nekom novom nodu unutar klastera. 13 www.techspot.co.in 21 2.2.2. Ostali projekti u Hadoop okruženju14 U ovom dijelu će se objasniti ostali, no ne manje bitni, projekti koji se nalaze u Hadoop okruženju. Prije toga bitno je naglasiti da se za svrhe projekta PANDORA koristi Big Data platforma Cloudera. Prema Talend15 istraživanju (n=95) na pitanje: Koju od Big Data tehnologija planirate koristiti ili već koristite, za Clouderu je odgovorilo 12% ljudi što se ne čini mnogo no ispred nje su jedino Apache Hadoop kao samostalna instalacija s 28% te Amazon Web Services sa 13 %. Pig je platforma koja služi za analizu velikih setova podataka te se radi o višem jeziku kojem je svrha upravo takva analiza podataka, no potrebna mu je i infrastruktura koja mu pomaže u procesu. Paralerizacija je temelj Pig-a te mu pomaže u ophođenju s velikim podacima. Pig-ov kompajler proizvodi Map-Reduce zadatke koji su već bili spominjani. Njegov jezik zvan Pig Latin koji se sastoji od : Jednostavnost – Bilo da se govori o jednostavnijim ili nešto složenijim zadacima koji se pretvaraju u „data flow sequences“, dobivamo jednostavnost pisanja, razumijevanja te održavanja. Optimizacija – Načinom na koji se zadaci rade dopušta se sustavu da automatski optimizira izvršenje te se tako pruža korisnicima veći fokus na semantiku umjesto na efikasnost. Proširivost – Korisnik može kreirati svoje funkcije koje imaju posebnu namjenu. Nekoliko puta je spomenut njegov cilj, a to je pojednostavljivanje procesa i izvršavanja Map i Reduce zadataka. Dakle, za Pig su bitni PigLatin (njegov jezik) te okruženje koje mu omogućava izvršavanja. Neki koraci koji mu omogućuju navedeno su : LOAD (Učitava podatke), TRANSFORM (manipulacija podacima), DUMP (prikaži rezultat na ekranu) TE STORE (spremi rezultat za daljnju analizu). 14 15 Apache Foundation web stranica - http://apache.org/ Talend Survey Results (2012) : How big is Big Data adoptation?, USA 22 Hive Ovaj dio Apache obitelji omogućava postavljanje upita nad velikim količinama distribuiranih podataka koji su se smjestili u Hadoopu. Radi se o upitima koji su veoma slični SQL-u, dapače gotovo su identični, no ipak postoje određene razlike kao i ograničenja ovog jezika. Radi se o HiveQL-u (Hive Query Language - HQL), te je osmišljen kako bi olakšao posao ljudima koji se već godinama bave SQL-om, kako bi se lakše snašli u ovoj Big Data okolini. Hive je veoma koristan i najčešće korišten za Batch obradu te ne pruža real-time upite i nije dizajniran za OLTP. Radi se o veoma skalabilnom dijelu Hadoop-a (iskorištava Hadoop klaster), proširivom (MapReduce dio te tzv. UDF(custom scalar functions), UDAF (agregations), UDTF(table functions)). Radi se o vrijednom dijelu Hadoopa, koji je uvelike olakšao posao na PANDORA projektu zajedno sa svojim Hcatalogom. Hcatalog je upravljački sloj za Hadoop koji pruža korisniku da s raznim alatima (MAPReduce, Pig) lakše čita, ali i piše podatke. Ukoliko korisniku ne trebaju veoma brzi odgovori (response) na upite onda je Hive idealan, u suprotnom može predstavljati probleme. HBase je Hadoopova distribuirana, skalabilna baza podataka. Pokreće se nad HDFS-om te je veoma koristan za parsirane podatke, a u slučaju PANDORE se radilo o parsiranim tekstualnim podacima s web stranica i društvenih mreža. Zbog različitih izvora podataka koji su parsirani te pohranjeni u različite HBase tablice, napravljen je i in-house node za KNIME koji ima mogućnost učitavanja tih podataka u KNIME te je posebno dizajniran ovisno o tablici koju bi trebao učitati. Pod pojmom „baza podataka“ obično se podrazumijevaju najpoznatije relacijske baze podataka, no ovdje ipak nije riječ o njima. HBase sadrži maser node koji upravlja klasterom te region server koji pohranjuje dijelove tablica i vrši operacije nad podacima. Još je bitno naglasiti da u odnosu na tradicionalne načine pohrane podataka, ima mogućnost pohranjivanja obitelji stupaca zajedno (column family), a kod tradicionalnih sustava se 23 stupci određenog retka pohranjuju zajedno. Shema Hbasea je veoma fleksibilna i podložna promjenama te je column family moguće veoma lako izmijeniti. Kad se gleda šira slika, HBase se koristi kad je potreban slučajan (random), realtime pristup velikim podacima za čitanje ili pisanje, a njegov cilj je okupljanje velikih tablica s milijunima redaka i milijunima stupaca. Neke od karakteristika su mu skalabilnost, konzistentnost, dostupnost (više nodova i kontinuirani pristup podacima), sigurnost, SQL pristup pomoću Impale ili Hive-a, itd. Impala služi za vršenje SQL upita i pokreće se zajedno s Apache Hadoopom. S obzirom da Poslovna Inteligencija koristi Clouderu, bila im je potrebna i Impala zbog nekih od svojih prednosti za vršenje SQL upita. Radi se o MPP (massively parallel processing) SQL sustavu za vršenje upita na podacima pohranjenim na Hadoopu. Neke od karakteristika Impale su MPP, mogućnost vršenja interaktivne analize na podacima pohranjenim na HDFS-u i Hbaseu (pogotovo korisno za PANDORA projekt), sigurnost, SQL sintaksa itd. Impala je integrirana s Hadoopom kao i ostali te koristi iste podatke i podatkovne formate, metapodatke, sigurnost i resurse koje koriste i ostali iz Apache Hadoop obitelji. Ono što se isticala kao prednost Impale prilikom reklamiranja jest njena korisnost da pruži analitičaru ili znanstveniku podataka bolju analizu nad podacima koji su pohranjeni u Hadoopu i to pomoću SQL-a i alata poslovnog izvještavanja. Prednost Impale su zasigurno SQL upiti te mogućnost izvršavanja obrade i interaktivnih upita nad velikim podacima i to koristeći se istim sustavom, istim podacima i istim metapodacima bez potrebe za migracijom podataka u posebne sustave dizajnirane samo za to. ZooKeeper služi za upravljanje ovim velikim sustavom i baš kao što mu ime kaže, on je čuvar „životinja“ (Pig, Hive, Impala ...) u zoološkom vrtu (Hadoop). Kao što se može pretpostaviti, radi se o centralizaciji upravljanja informacijama, centralizacija imenovanja i sinkronizaciji različitih dijelova. Radi se opet o uslugama koje koriste distribuirane aplikacije. 24 U Big Data okruženju različiti programi se pokreću na različitim računalima te je koordinacija svih tih programa koji se odvijaju na različitim računalima u ovlasti ZooKeepera. Iako je moguće napraviti distribuirani sustav bez Zookeepera (što je i bio slučaj), ZooKeeper olakšava razvojnim inženjerima da se više koncentriraju na logiku same aplikacije umjesto na koncept distribuiranog sustava ili koordinaciju među različitim aplikacijama. ZooKeeper je razvijen od strane Yahoo organizacije zajedno s Pigom te s obzirom da je, kao što možete primijetiti, ekipa (Pig, Hive) u Hadoop okruženju nazvana po životinjama bilo logično očekivati ovakav naziv, iako se neki od prijedloga bili CatHerder, jer se u ranijim istraživanjima upravljanje distribuiranim procesima usporedilo kao s čuvanjem mački, ali s obzirom da su gore imali i Pig te ostale, ZooKeeper je finalni izbor. ZooKeeper je nekada bio podprojekt Hadoopa, a sad je na najvišoj razini projektne hijerarhije. 25 2.2.3. PANDORA Big Data arhitektura Nakon obrade glavnih komponenti Big Data ekosustava, vrijeme je za prikaz PANDORA arhitekture16 te navedenih termina u okviru iste. Slika 6. PANDORA Big Data arhitektura Kao što se može primijetiti iz slike 6., na dnu se nalaze termini u dijelu (TIER 1 - Storage). Dakle, navedeno Hadoop okruženje je, kao što je i očekivano, temelj ovog projekta, na koji se grade ostali slojevi. S lijeve strane se mogu vidjeti neki od izvora podataka koji su podijeljeni na dva dijela: Web sadržaj (TripAdvisor te ostale web stranice) te društvene 16 Big Data Analytics as a Service Solution – PANDORA Flyer (objavljeno na web stranici PANDORE) 26 mreže (Facebook, Twitter te Pinterest- on se neće detaljno objašnjavati, ali analiza je gotovo identična Facebook-ovoj). Ovisno o kojim se podacima govori, u drugom sloju postoji crawling (ako se radi o web sadržaju) te streaming (ako se radi o društvenim mrežama). Zatim, u istom sloju pod nazivom (TIER 2 - Engine) slijede transformacije i redukcije (filtriranje, parsiranje, mapiranje, agregiranje) i ovaj dio se uglavnom radi u Pentaho programu. Nakon toga slijedi semantička analiza koja se izvodi u KNIME-u, a koja će detaljno biti objašnjena u dijelu istraživanja. Na kraju dolazi organizacija i prezentacija podataka. U sloju tri (TIER 3 - Access) postoje tri stvari, a to su operativno upravljanje i nadzor (administracija i konfiguracija, upravljanje korisnicima i pravima, automatizacija procesa i nadzora), konfiguracija sadržaja i mapiranje (postavljanje izvora sadržaja, mapiranje i parsiranje sadržaja, upravljanje semantičkim slojem) i pristup podacima, analizi i vizualizaciji (pristup sirovim podacima. Izvještavanje, analiza i vizualizacija te nadzor rezultata). Više o navedenim dijelovima bit će izneseno u istraživačkom dijelu rada. Ono što je također zacrtani cilj je mogućnost pristupa PANDORA aplikaciji preko računala, mobitela, tableta te ostalih uređaja i iz više preglednika bez ikakvih problema. Kao što se može vidjeti iz arhitekture, logično je da se krenulo prvo s Big Data tehnologijama, jer one predstavljaju stup semantičke analize na ovaj način i ovog projekta. U sljedećem podpoglavlju Big Data tehnologija će se raspravljati o prednostima i nedostacima te tehnologije, a nakon toga će se govoriti o semantičkoj analizi, sinergiji semantičke analize i Big Data tehnologije te će se na kraju prezentirati kako to sve izgleda i u zadnjem sloju. 27 2.3 Prednosti i nedostaci Big Data tehnologije U ovom dijelu će se obraditi neke od prednosti i nedostataka Big Data tehnologije, ali i infrastrukture i ljudi koji su potrebni za njenu uspješnu implementaciju. Prema TWDI istraživanju17 na pitanje koje su potencijalne barijere u implementaciji Big Data tehnologije (n=325), kao razlog broj jedan naveden je nedostatak vještina i osoblja potrebnog za Big Data analitiku. Navedeno je često komentirano u brojnim člancima kao uistinu razlog broj jedan za neuspjeh ili uopće neodlazak u implementaciju Big Data tehnologije. S obzirom da se radi o relativno novoj tehnologiji tj. tehnologijama, veliki je i nedostatak za kadrom koji je osposobljen za rad s Big Data te su s toga tvrtke natjerane na improvizaciju, prekvalifikaciju već postojećih radnika, dodatno obrazovanje, dodatni troškovi kako bi imali eventualne dobitke u budućnosti. Uslijed navedenog, troškovi rastu. Iako se radi o open-source projektima i dalje postoje troškovi koji mogu biti dosta veliki. Govori se i o troškovima osoblja te njihove edukacije te oportunitetnom trošku, a ne samo o trošku hardwarea. Kao još neki od razloga18 ističu se nedostatak podrške od strane upravitelja, nedostatak poslovnih slučajeva te ponovno poslovni troškovi. Na kraju se postavlja sljedeće pitanje: Da li je Big Data svojevrsni problem za jednu organizaciju? 30% ispitanika je na ovo odgovorilo da Big Data smatraju problemom, a kao jedan od ključnih razloga ističe se Volume. No, s druge strane čak 70% ispitanika vidi priliku u Big Data tehnologijama. Slika 7. TWDI istraživanje 17 18 Philip Russom (2011) : TWDI Best Practices Report - Big Data Analytics Philip Russom (2011) : TWDI Best Practices Report – Managing Big Data 28 Graf na Slici 7 prikazuje veoma zanimljive rezultate. Naime, 40% ispitanika prakticira neke od oblika napredne analitike, ali ne pomoću Big Data tehnologije, 34% to radi pomoću nje, a 23% uopće ne posjeduje nikakav oblik napredne analitike, a ni ne koriste Big Data. Slika 8. Vještine analitičara i količina podataka U drugoj knjizi19 se spominju određene vještine koje razlikuju analitičare, a koje su potrebne da tvrtka iskoristi informacije koje želi dobiti. Neki smatraju da se radi o previše vještina koje se zahtijevaju od jedne osobe te da se potrebno koncentrirati na jedno područje, a ostala poznavati, dok drugi govore da se radi o više ljudi koji moraju imati sve ove vještine kako bi tvorili jedan znanstveni tim koji bi bio specijaliziran samo za podatke. Razlog zašto se ovo pitanje spominje je što navedneo može riješiti put za potragom kvalificiranog kadra što je, jasno, značajan problem te ujedno i govori koliko se tvrtke zapravo bave velikim podacima. Tako se vidi da se petabajtima rijetko tko bavi, pa čak i da 19 Harlan Harris et al. (2013) : Analyzing the Analyzers, An Introspective Survey of Data Scientists and Their Work, USA, O'Reilly 29 to vrijedi za terabajte. No, ovo ne znači da Big Data problem ne postoji već da poslovne organizacije čeka mnogo truda i rada da krenu na pravi Big Data put. Drugi izvještaj od European Communications, koji je specijaliziran za telekomunikacijsku industriju, govori da raste razumijevanje Big Data tehnologije, ali i dalje izostaje implementacija. Tako prema njihovoj anketi 91% ispitanika (140 senior telekomunikacijskih upravitelja ) smatra da bi Big Data trebao biti strateški prioritet u telekomunikacijskoj industriji, ali opet ih je samo 54% izjavilo da je Big Data uistinu strateški cilj njihove organizacije. U ovom izvještaju kao barijere se spominje i osoblje, no u znatno manjem postotku nego u prošlom izvještaju (3%), a više kao barijere vide nerazumijevanje potencijala, nedostatak kvalitetnih podataka, ponovno troškovi itd. Kada im se postavilo pitanje da li imate dovoljno kvalitetnih ljudi za iskorištavanje podataka koje posjedujete, njih 63% ih je reklo da ne posjeduju, što ponovno ističe koliko su ljudi zapravo važni. Na kraju koliko god bilo nedostatak, prednosti Big Data tehnologije se više ističu. Nedostaci su premostivi, a koristi od Big Data tehnologije su višestruki. Ono što se očekuje od poslovne organizacije da u budućnosti urade kako bi iskoristili Big Data jest obuka ljudi, kontrola troškova, ali najbitnije je prepoznavanje važnosti Big Data tehnologije te njenih mogućnosti u pogledu napretka organizacije. Također, vrlo je važno pitanje što takva tehnologija može uraditi ako je mi ne iskoristimo, a konkurentska tvrtka to učini. 30 3. Semantička analiza Nakon što je obrađen dio Big Data tehnologije, naglasak je na dijelu fokusiranom na semantičku analizu. Iako će detaljan model biti prezentiran u dijelu istraživanja, ovdje će se prikazati neki osnovni koncepti semantičke analize, analize mišljenja koji će nam pomoći da boje razumijemo sam model u KNIME-u. Obradit će se i osnovni pojmovi, problemi koji se vežu uz semantičku analizu te načini rješavanja istih, neke operacije koje su karakteristične za nju, tehnike te kako je to izgledalo u prošlosti, kako izgleda danas te što nas očekuje u budućnosti. 3.1 Uvod u semantičku analizu Semantička analiza20 ili analiza mišljenja je računalna znanost koja se bavi proučavanjem ljudskih mišljenja, stavova, emocija prema određenim entitetima, individuama, događajima, temama. Radi se o tehnički zahtjevnom zadatku, ali praktički gledano, veoma korisnom zadatku. Gledajući s ekonomske strane, ako se uzme u obzir da je većina poslovnih organizacija prihvatila paradigmu da je kupac u centru pozornosti i da se trebaju shvatiti potrebe kupca kako bi ih mogli zadovoljiti, to nam ukazuje na važnost analize mišljenja koja će se u ovom radu prezentirati. Potencijalni kupci žele znati 21 i mišljenja ostalih kupaca prije nego što odu u neku državu te posjete određeni hotel. Ovo će se vidjeti i na primjeru TripAdvisora. Ovdje se kao alternativa ističu prednosti Big Data tehnologije opisane u prethodnom dijelu te napredak u semantičkoj analizi koje upućuju na mogućnost iskorištavanja informacija koje „stoje“ na webu i čekaju analizu. Treba se postaviti pitanje koliko se na ovom mjestu nalazi vrijednih informacija o uslugama, proizvodima, reklamacijama, o osoblju te koliko se nalazi potencijalnog prostora za napredak. Ono što je zanimljivo jest činjenica da prilikom ljudskog pretraživanja tog sadržaja (npr. čitamo tuđa mišljenja o određenom odmorištu), ljudi često budu pristrani tj. obraćaju više pažnje onim mišljenjima koja im odgovaraju. 20 21 Charu C. Aggarwal and ChengXiang Zhai (2012) : Mining Text Data, USA, Springer Charu C. Aggarwal (2011): Social Network Data Analytics, USA, Springer 31 Ljudi, također imaju ograničenja kojih najčešće nisu svjesni, a koja dolaze do izražaja kod velike količine informacija. Sve navedneo dovodi do toga da je veoma bitno razviti kvalitetan, automatiziran sustav koji radi sumu svih mišljenja koja nas zanimaju i koji prevladava probleme pristranosti i ograničenja koja imaju ljudi prilikom rada na istom ovom problemu. Kao što je bilo govora, osim web stranica, obrađivat će se i društvene mreže koje su same po sebi dosta kompleksne te se mogu svrstati u nekoliko kategorija. Tablica 1. Vrste društvenih mreža Category Representative Sites Wiki Wikipedia, Scholarpedia Blogging Blogger, LiveJournal, WordPress Social News Digg, Mixx, Slashdot Micro Blogging Twitter, Google Buzz Opinion & Reviews ePinions, Yelp Question Answering Yahoo! Answers, Baidu Zhidao Media Sharing Flickr ,Youtube Social Bookmarking Delicious, CiteULike Social Networking Facebook, LinkedIn, MySpace PANDORA se bavi Facebookom, Twitterom i Pinterestom, ali u ovom radu će se objasniti detaljno Facebook i Twitter. Društvene mreže znaju biti dosta teška za analizu zbog korištenja slenga, zbog 140 slova na Twitteru te ostalih ograničenja. No, informacije koje se mogu dobiti od društvenih mreža mogu biti itekako vrijedne za jednu tvrtku, organizaciju pa i državu. Zanimljivo bi bilo da se indeks nacionalne sreće mjeri pomoću na primjer semantičke analize. 32 3.2 Problemi semantičke analize Postoji nekoliko načina semantičke analize, a u ovom dijelu navest će se oni koji su korišteni za potrebe PANDORE. Osnovna podjela koja će se koristiti u ovom radu je podjela prikazana na slici ispod. Semantička analiza Analiza strojnim učenjem Analiza rječnikom Nadzirano učenje Nenadzirano učenje Slika 9. Podjela semantičke analize Dakle, semantičku analizu/analizu mišljenja je moguće provesti na dva načina. Prvi je analiza strojnim učenjem, koja se dijeli na nadzirano (supervised) i nenadzirano (unsupervised) učenje. Razlika je u tome što se prilikom strojnog učenja u nadziranom algoritmu daju točni dokumenti koji su pozitivni, a koji su negativni (gledajući u kontekstu naše studije slučaja) te algoritam na temelju toga uči i raspoznaje razliku. U slučaju nenadziranog algoritam sam mora pronaći određenu strukturu u tim dokumentima i podijeliti dokumente na recimo dva klastera (na temelju te strukture i razlike između dokumenata). Nenadzirano učenje je teže evaluirati, dok za nadzirano postoje oznake koje se mogu uspoređivati ( ono što je algoritam naučio i kakvo je stvarno stanje). Navedeno se radi particioniranjem (podjela na train i test set), gdje jedan dio podataka služi za učenje, a drugi za validaciju naučenog. Također, moguće je koristiti i crossvalidation o kojoj će konkretno biti govora u dijelu istraživanja. 33 Inače, strojno učenje je grana umjetne inteligencije, a bavi se izradom i proučavanjem sustava koji uče iz podataka zahvaljujući određenim algoritmima. Najčešće se dijeli na dva dijela koja su navedena gore, no uz njih se koriste i kombinacije oba te se kriju pod nazivom semi-supervised learning. Također je veoma popularno i tzv. reinforcement learning (pokušava se shvatiti kako okolina reagira na određene akcije te se pomoću prikupljenog znanja pokušava maksimizirati kumulativna nagrada). Drugi dio semantičke analize je analiza rječnikom22. Analiza rječnikom koristi ručno izgrađen rječnik u kojem uz svaku riječ stoji njen polaritet23 (pozitivna, negativna). Dalje, u analizi se koristi taj rječnik te se kombinira s frekvencijama za izračun SentimentScore-a što će se također konkretno vidjeti u dijelu istraživanja. U pogledu ove grane postoje tri podjele: ručni pristup, pristup baziran rječnikom i pristup baziran na corpus (skup svih dokumenata). Pristup baziran rječnikom iterativno uzima određeni uzorak riječi koje se ručno označavaju (stavljaju im se polariteti) te se tim riječima traže sinonimi i antonimi u WordNet-u čime se povećava inicijalni rječnik. Dakle, radi se o kombinaciji malog uzorka riječi i online rječnika. No, na primjer riječ tiho može u kontekstu zvučnika i automobila imati različito značenje i to se pokušava riješiti pristupom baziranim na corpusu. Ovaj pristup uzima pridjeve za koje zna da imaju određeni polaritet (beautiful - pozitivan) i povezuje ih sa susjednim pridjevima te i za njih pretpostavlja da imaju isti polaritet. Ovo ide na pretpostavku da ljudi koriste pridjeve istog polariteta u jednom mišljenju te se rijetko događa npr. ”This car is beautiful and difficult to drive”. Ručni pristup se najčešće koristi s automatiziranim metodama, jer uzima previše vremena te su se više objasnila ta dva pojma. 22 Stefano Baccianella, Andrea Esuli, and Fabrizio Sebastiani (2010) : SENTIWORDNET 3.0: An Enhanced Lexical Resource for Sentiment Analysis and Opinion Mining, Italia, Istituto di Scienza e Tecnologie dell’Informazione Consiglio Nazionale delle Ricerche Via Giuseppe Moruzzi 1 23 Namrata Godbole, Manjunath Srinivasaiah & Steven Skiena (2007) : LargeScale Sentiment Analysis for News and Blogs, USA, Proceedings of the International Conference on Weblogs and Social Media ICWSM 34 3.3 Glavne operacije i tehnike semantičke analize U ovom potpoglavlju će se obraditi neke od glavnih operacija i tehnika koje se koriste za semantičku analizu te će biti usklađene sa terminologijom iz KNIME-a kako bi se lakše u dijelu istraživanje pronašli dogovarajući dijelovi koji će biti spomenuti ovdje. Kako bi se postigla jedna smislena analiza potrebno nam je nekoliko koraka, a ti koraci su: IO Enrichment -obogaćivanje Preprocessing - obrada Frequencies – izračunavanje frekvencija Transformation - transformacije Visualization – vizualizacije 3.3.1 IO Prvi na popisu je IO i njegov zadatak je parsiranje dokumenata. Tekst te njegova struktura ukoliko je dostupna se moraju izvući i prikazati u obliku podatkovne strukture koju KNIME može obraditi. Dakle, prilikom parsiranja određeni node u KNIME-u učitava tekst određenog formate te kreira Dokument (DocumentCell- poseban zapis teksta koji KNIME prepoznaje kao format da nad njime može vršiti obradu i rudarenje teksta) za svaki od tih dokumenata. Mogu se parsirati formati DML, SDML, PubMed (XML format), PDF, Word (Microsoft), te flat podaci. Za svaki od ovih može se pronaći odgovarajući node u KNIME-u. 35 Slika 10. Izgled tablice nakon pretvorbe HBase podataka u Document Kao što se vidi iz slike iznad, svaki parsirani dokument je jedan redak unutar stupca Document (KNIME-u čitljiv format). Ovaj Document zapis kasnije može u sljedećim fazama proći proces obogaćivanja, transformacije, obrade tj. sve ono što je potrebno da od njega dobijemo kvalitetan output semantičke analize. Sljedeći bitan node je „Strings to Documents“ koji omogućava da se neki csv file, xls ili xlsx (Microsoft Excel) file može učitati te pretvoriti u dokument. Način, na koji ovo radi je tako da se uzme svaki stupac jednog redka te se to sve spoji u jedan dokument, a kasnije pomoću drugog noda „Document Data Extractor“ se može neke od tih atributa ponovno vratiti. Ovo je veoma korisno ukoliko se uzme u obzir da se može na primjer vratiti riječima iz nekog mišljenja njen polaritet (pozitivno, negativno) te se ovaj način i koristi u analizi mišljenja pomoću KNIME-a. „Strings to Documents“ se koristi i prilikom učitavanja podataka pomoću HBase readera u projektu PANDORA, jer se svi podaci kao što se spomenulo dohvaćaju, parsiraju te spremaju u HBase te se učitavaju pomoću ovog noda u KNIME, a zatim se pomoću noda „Strings to Documents“ pretvaraju u dokument čime počinje prvi korak, koji je ujedno i temelj za daljnju analizu. 3.3.2 Obogaćivanje Obogaćivanje podrazumijeva dodavanje semantičke informacije dokumentu. Semantička informacija može biti produkt named entity recognition i tagging. Dakle, radi se o nodovima koji dodjeljuju POS tagove ili prepoznaju standardne entitete u dokumentima. 36 Znači, radi se o entitetima poput imena osoba, organizacija, lokacije, miomedicinski nazivi (nazivi gena ili proteina) i kemijskih struktura. Ulaz za potrebe ovakve analize je format podatke Document, a izlaz je također Document, ali je ovaj put obogaćen za oznaku i to na onoj riječi koja je prepoznata kao jedan od entiteta. To je što se tiče entiteta, a što se tiče POS označavanja, on stavlja Part of Speech oznake (imenica, glagol, pridjev ...). Svi ovi tagovi se kasnije mogu izvući iz dokumenta ili se corpus (kolekcija dokumenata) može filtrirati po recimo POS tageru, gdje se traži da se samo prikažu imenice. Označivači u KNIME-u su : Abner tagger – koristi se za biomedicinsko označavanje (geni, proteini). Dictionary tagger – označava ono što pronađe u rječniku koji sami kreiramo ili koji preuzmemo s interneta OpenNLP NE tagger – označava osobe i organizacije Oscar tagger – koristi se za označavanje kemijskih entiteta POS tagger – Part of Speech označavanje (glagoli, imenice...) Stanford tagger – POS oznake za Francuski, Njemački i Engleski jezik WildCard tagger – označava određene regularne ekspresije ili wildcard Ukoliko se pronađu određene riječi koje sadrže neku oznaku, za njih se može postaviti da su nepromjenjivi tj. da se na njih u kasnijim fazama obrade teksta ne mogu vršiti nikakve izmjene (posebno potrebno u biomedicini). Također, moguće je ukloniti konflikte između oznaka pa tako ako smo pomoću Abner označivača označili riječ kao „inetrleukin 7“, a pomoću rječnika kao samo „interleukin“. Rješavanjem konflikta će ostati samo „interleukin“. 3.3.3 Obrada teksta U ovom dijelu semantičke analize se obrađuje tekst na način da se filtriraju ili manipuliraju one riječi za koje se smatra da ne pomažu u semantičkoj analizi. Govorimo o filterima poput filtriranja „stop words“-a, brojeva, interpunkcija ili veoma malih riječi. Također, 37 moguće je svest riječi na njihov korijen pomoću stemming, no o njemu nešto više u ostalim dijelovima. Ova obrada teksta se izvodi nad riječima proizašlim iz BoW noda. BoW dakle izvlači sve riječi iz dokumenta (Bag of Words) te pomoću njega dobijemo dva stupca (prvi s term – riječ i drugi s Document (tvit, mišljenje itd.)). U fazi obrade tekst u KNIME-u je moguće koristiti širok spektar filtere i nodova za manipulaciju, ali će se spomenuti samo neki najbitniji za potrebe ovog rada. Case converter N Chars Filter Number Filter POS Filter Porter Stemmer Punctuation Erasure RegEx Filter Stop Word Filter O većini ovih filter će biti govora u dijelu istraživanja, jedino je možda bitno spomenuti da je RegEx Filter također veoma koristan, a nije toliko korišten za potrebe PANDORE. RegEx nam pomaže da filtriramo pomoću nekih regular expressionsa (izraza). Neki od izraza koje je nužno spomenuti u ovom dijelu su Deep preprocessing (služi za obradu oba stupca BoW-a, u suprotnom se samo obrađuje term- riječ), Apending (čuva originalni dokument prije nego što je vršena obrada za kasniju usporedbu) i unmodifiable policy (ignorira prethodno označene nepromijenjene oznake). 3.3.4 Frekvencije Nakon obrade teksta slijedi proces izračuna frekvencija. Najpoznatije su : TF – Term frequency IDF - inverse document frequency ICF - inverse category frequency Chi-squared keyword extractor 38 Keygraph keyword extractor Ovo će se detaljno prikazati u dijelu istraživanja, no ICF se ne koristi za potrebe PANDORE, a pruža izračunavanje frekvencija na razini kategorija, te Chi-squared keyword extractor se nije koristio, a izračunava Chi-square za potrebe saznavanje važnosti riječi, kao što je i očekivano. 3.3.5 Transformacija Transformacija se može kretati od početka modela pa sve do kraja, ali kad bi se spomenuli neki najvažniji nodovi i pojmovi u ovoj grupaciji nodova to bi bili : BoW creator (Bag of Words) – izvlači riječi iz dokumenata Document Data Extractor – veoma koristan, a koristi se za izvlačenje informacija iz dokumenata koje ostaju skrivena, a u kasnijim dijelovima modela ih trebamo (u našem slučaju se radi o polaritetu riječi) Term vector ili Document vector – kreiraju se vektori od dokumenata ili od term podataka (riječi), veoma korisno prilikom primjene algoritama za strojno učenje Term to string – pretvorba term (riječi) u format string ili imamo obrnuto string to term Strings to Document – veoma vrijedno za potrebe analize pretvara npr. tvitove ili mišljenja u document format 3.3.6 Vizualizacija Što se vizualizacije tiče moguće ju je odraditi u KNIMEu, ali s obzirom da je PANDORA projekt koja koristi web sučelje za prezentacijski sloj tj. vizualizacije, KNIME tu ne pomaže. No, postoje nodovi za vizualizacije pomoću oblaka (tag cloud), Document Viewer za jednostavnu vizualizaciju dokumenata. Također, alat koji se pokazao korisnim (na projektu PANDORA) za ovakve oblike vizualizacija je Tableau, no nakon uspješno odrađene semantičke analize, vizualizacija dođe kao zadnji korak. To ne znači da joj ne treba pridavati malo pažnje, dapače, no ukoliko imamo lošu analizu tada nam ni najljepši način vizualizacije ne može pomoći. 39 4. Semantička analiza nestrukturiranih podataka poduprta Big Data tehnologijom U ovom dijelu će se spojiti dva prethodna poglavlja te će se dobiti uvid zbog čega su korisni za ovaj rad. Konkretno će se objasniti proces pretvorbe24 „sirovih“ tekstualnih podataka u iskoristive informacije. Te informacije mogu biti numerička ili kvalitativne, a u ovom slučaju će se prikazati obje. 4.1 Sinergija Big Data tehnologije i semantičke analize U drugom dijelu se prikazala Big Data tehnologija. Big Data nije nov pojam, ali je došlo do pojave kompletnih rješenja (iako još dosta bugovitih) koji omogućuju i malim te srednjim organizacijama da se bave onim što je dosada bilo dostupno jedino velikim organizacijama. Imao sam priliku upoznati nekoliko poslovnih organizacija koje koriste neke od Big Data tehnologija u Republici Hrvatskoj i te tehnologije im uistinu pomažu da ostvare nešto što do sada nisu imali priliku, a to je upravljati sve većim količinama podataka. Također, u ovom radu će se prezentirati projekt poslovne organizacije Poslovna Inteligencija. Jedan od razloga izostanka Big Data tehnologije u Hrvatskoj je nedostatak kadra, što je i opisano u ovom radu kao jedan od ključnih razloga neulaska u Big Data projekte. S obzirom da se govori o nestrukturiranim podacima25 u ovom radu te će se još prikazati i primjeri s web stranica i društvenih mreža. S obzirom da imaju veliku bazu svojih korisnika te se na dnevnoj bazi generiraju velike količine podataka logično je očekivati da nam je za njihovu analizu potrebna određena vrsta tehnologije koja može to analizirati i pohraniti. Dakle, govorimo o Big Data tehnologiji. Više o ovoj sinergije će se prikazati u samom procesu pretvorbe „sirovih“ podataka u korisne informacije u sljedećem poglavlju. 24 Steven Bird, Ewan Klein & Edward Loper (2009): Natural Language Processing with Python, USA, O'Reilly Ronen Feldman, and James Sanger (2007) : Text Mining Handbook: Advanced Approaches in Analyzing Unstructured Data, UK, Cambridge University Press 25 40 4.2 Od tekstualne informacije do numeričke informacije Možda bi prikladiniji naziv za ovo poglavlje: od „sirovih“ podataka do korisnih informacija, ali cilj je prikazati fundamentalnu pretvorbu dohvaćenog teksta u broj koji ima smisleno značenje (informacija)26 te koji se može iskoristiti za svrhe poslovanja na razne načine. 4.2.1. Izazovi velikih podataka Nakon što ustanovimo da imamo previše podataka za izbor i da je potrebno da se odgovori na nekoliko pitanja ukoliko se želi proizvesti kvalitetna analiza. Neka od tih pitanja su: Kako pohraniti podatke ? Dakle, ovdje se govori o fizičkoj pohrani pristigli podataka. Također, bitno je osigurati podjelu tih podataka na skalabilan i ekonomičan način. U sljedećim poglavljima ovog rada će se vidjeti da je Poslovna Inteligencija odabrala upravo Big Data tehnologije da se bave ovim pitanjima, a konkretno za ovaj pomaže HBase. Koji format podataka izabrati Sljedeće na što se treba obratiti pažnja, je odabir formata. Želi li se osigurati veliki raspon različitih formata ili se želi koncentrirati na manji broj. Žele li se formati koji će biti razumljivi i prosječnim korisnicima ili se želi da budu razumljivi samo razvojnim inženjerima, programerima. Konkretno, u PANDORA projektu se koriste XML, JSON, CSV te drugi, ali prikazat će se razlika između ova tri: 26 Fern Halper (2013) : TWDI Checklist Report – How to gain insight from text 41 Slika 11. Prikaz razlike između formata Kako prezentirati podatke Treće pitanje na koje se treba dati odgovor je kako će korisnici pristupiti podacima. U slučaju PANDORE pitanje je bilo kako će korisnici pristupati rezultatima analize, hoće li imati uvid u podatke, što će sve moći raditi s tim podacima. Korisnici ovog projekta imaju mogućnost dohvaćanja podataka, pohranjivanja i analiza. Znači, mogu birati što da dohvate te s kojih stranica da dohvate podatke. Ti podaci se pohranjuju u HBase te korisnik može uz nekoliko klikova napraviti analizu mišljenja. Svi podaci su prikazani u tabličnom obliku tako da su shvatljivi i krajnjem korisniku. Ključno je znati i razumjeti što se želi postići s proizvodima koji se žele napraviti ili s informacijom koja se proizvela. Ukoliko se zna što se želi da krajnji korisnik dobije od informacije ili ukoliko se zna što se može korisno napraviti s tom informacijom, ostvaren je prvi korak prema uspješnom završetku projekta. Tvrtke, pogotovo tehnološke, ulaze u Big Data projekte samo da su u skladu s trendovima. Dakle, koncentrirani su više na tehnologiju, nego na krajnjeg korisnika takve analize. Nakon što su dohvaćeni podaci pohranjeni u obliku koji se želi, potrebno je te podatke (u našem slučaju) obraditi tj. pripremiti za potrebe analize. U žargonu semantičke analize radi se o pojmu „preprocessinga“. Osim obrade podataka nužno je i „obogatiti podatke“ bilo određenom oznakom (označavaju se riječi s oznakom- pozitivna, negativna ili označavaju 42 se riječi PartOfSpeech tagom koji označava u dokumentima imenice, glagole, pridjeve tj. sve što mi označimo da pronađe). Kad se govori o obradi podataka tj. konkretno o zasebnim riječima iz dokumenata, onda se govori o uklanjanju svega onoga što se ne želi da bude input semantičke analize ili ono za što se smatra da će uštedjeti i vrijeme i prostor, a neće bitno ugroziti točnost našeg modela. Nakon tih faza u praksi semantičke analize se koristi izračunavanje frekvencija od kojih su najpoznatije term frequencies (TF) te inverse document frequencies (IDF), no postoje i ostale. U daljnjem tekstu koristiti se TF-IDF frekvencija za potrebe naše semantičke analize. Ukoliko se za potrebe analize mišljenja odabere strojno učenje27 imamo i dodatne korake odabira algoritma koji najbolje rade na danim podacima. Ovim korakom se stvari kompliciraju, jer se mora paziti na još više faktora. Na kraju krajeva najviše vremena se potroši na optimizaciju modela strojnog učenja tj. pronalazak odgovarajućih parametara, te obraća se pažnja na mogući „overfitting“. No, i ovdje je znanost pokazala da najjednostavniji modeli pokazuju veoma dobre rezultate. Pretežno se u ovom slučaju misli na Naive Bayes. Veoma jednostavan algoritam, ali se u praksi, te u ovom projektu pokazao kao veoma dobar reprezentant mišljenja korisnika. Ovi koraci su spomenuti u ranijem dijelu teksta, te će se i kasnije na primjerima modela u KNIME-u prikazati, no nužno je da se dobije tijek podataka na jednom mjestu. Za kraj, preostaje nam odabir načina korištenja proizvedenih informacija bilo da se govori o onim pomoću rječnika ili pomoću strojnog učenja ili čak pomoću oba pristupa. Vizualizacija tih podataka predstavlja finalnu komunikaciju s korisnicima i ona treba biti što jednostavnija, a opet što informativnija. Ono što je bitno za primijetiti da se cijeli ovaj dugotrajan proces izrade radi kako bi se praktički u slučaju PANDORE dobio jedan stupac u HBase-u koji može poprimiti samo tri 27 Willi Richert and Luis Pedro Coelho (2013) : Building Machine Learning Systems with Python, UK, PacktPublishing 43 vrijednosti (Pozitivan, Negativan, Neutralan). Također, cijeli ovaj kompleksni sustav stoji skriven od krajnjeg korisnika te u nekoliko klikova korisnik možete doći do rezultata analize, a da i ne zna što se nalazi u pozadini. To i treba biti cilj svake današnje analize. Jednostavnost, brzina, te vrijednost za korisnika. 4.3 Analiza TripAdvisora TripAdvisor je najveća stranica za putovanja na svijetu28 koja omogućava putnicima da planiraju svoja putovanja. Osim planiranja pružaju korisnicima uvid u komentare ostalih putnika o lokacijama, restoranima, hotelima itd. Tako korisnik može vidjeti sve o svojoj potencijalnoj destinaciji na jednom mjestu te na temelju tih informacija donijeti odluku. TripAdvisor ima prema podacima (njihova web stranica) iz 2013. godine 260 milijuna korisnika, te više od 150 milijuna komentara o 3.7 milijuna smještaja, restorana ili raznih ostalih atrakcija. U svim ovim brojkama lako je prepoznati da se stvari mogu zakomplicirati ako ovom problemu pristupite na tradicionalan način, ali rješenje koej se nudi je Big Data tehnologija. Ako se uzme u obzir da se ovim podacima u PANDORI mogu pridodati i društvene mreže sve postaje još kompleksnije i Big Data se pruža kao izbor za potrebe semantičke analize. Ono što je karakteristično za TripAdvisor (iz PANDORA perspektive) je činjenica što korisnik sam može birati koji hotel želi te koje podatke o tom hotelu želi. Također, u sklopu PANDORE, ali na samim počecima je napravljen i model posebno za TripAdvisor29 koji pruža i kategorizaciju komentara po određenim kategorijama. Taj model će se prikazati u ovom dijelu, jer je u sljedećem poglavlju prikazan dio koji je više generalan, dakle radi klasifikaciju na pozitivan, negativan, neutralan. 28 Prema : comScore Media Metrix for TripAdvisor Sites, Worldwide, December 2013 Lada Banić, Ana Mihanović i Marko Brakus (2013) : Sentiment Analysis in Product Evaluation, Hrvatska, MIPRO konferencija 29 44 4.3.1. Model TripAdvisor po kategorijama U ovom modelu će se prikazati sustav koji prikuplja mišljenja ljudi o određenim hotelima s web-a, evaluira ih, agregira te pruža jednostavne i kumulativne informacije o tim mišljenjima krajnjim korisnicima. Ove informacije mogu biti korisne onim korisnicima koji žele odabrati najbolji hotel za svoj smještaj, te žele pročitati i tuđa mišljenja, ali nemaju vremena za čitanje svakog pojedinog. Ovaj sustav im pruža sumarnu statistiku outputa semantičkog modela te korisnik dalje ukoliko želi može svako ocjenjeno mišljenje pregledati. Dakle, pruža mu se kako sumaran tako i detaljan uvid. Bitno je napomenuti da se ovaj model koristi i za druge web stranice osim TripAdvisora (poput hotel.com, laterrooms.com, booking.com). Slika 12. Sustav za evaluaciju mišljenja Prvi korak je dohvaćanje podataka sa weba tj. u ovom slučaju s TripAdvisora korištenjem sitemap.org formata te RSS feedova. Najefikasnije rješenje je dohvaćanje sitemaps.org tj. XML formata, koji je spomenut nešto ranije. Kao što se može vidjeti iz slike, Poslovna Inteligencija je koristila Apache Nutch za potreba dohvaćanja tj. crawlinga. Sljedeći koraci su kao što se može vidjeti ekstrakcija mišljenja iz podataka, detekcija eventualnih duplikate te detekcija jezika. Nakon toga sve (mišljenja) se puni u HBase tablice. 45 Što se tiče podataka u TripAdvisoru je najčešće prikazano 5 mišljenja na jednoj stranici. Prilikom ekstrakcije mišljenja treba proći kroz nekoliko koraka: 1. Za svako dohvaćeno mišljenje kreira se jedinstveni identifikator prije unosa u HBase 2. Dohvaćaju se sljedeći podaci o hotelima: Naziv hotela Država Grad Ulica 3. Mišljenja o hotelima također uključuju: Tekst mišljenja Datum kad je objavljeno mišljenje o hotelu Jezik na kojem je pisano mišljenje Odabran je ovakav pristup s razlogom da prilikom agregacije mišljenja po hotelima ne dođe do krivih rezultata, gdje bi potencijalno hoteli istog naziva spadali u istu grupu. Detekcija jezika služi i da se prilikom analize mišljenja zna koji rječnika treba koristiti. Kraj ovog sustav predstavlja KNIME, gdje je izrađen cjelokupni semantički model zasnovan na rječniku. Izgled modela je prikazan na slici ispod. Slika 13. TripAdvisor model u KNIME-u 46 KNIME je jednostavan i ono bitnije open-source proizvod koji ima više od 1000 nodova (modula), a za nas je bitna ekstenzija koja omogućuje analizu teksta unutar KNIME-a. Analiza mišljena u KNIME-u se sastoji od 3 koraka, u ovom slučaju: Čitanje podataka iz HBase-a Učitavaju se samo oni podaci koji imaju oznaku da nisu do sada evaluirani te je moguće učitati koliko se god redaka želi, ali najčešće se radi o brojci od 10 000- 30 000 radi optimiziranje performansi KNIME-a. Razvoj rječnika i implementacija Ovo je veoma bitan korak, jer kvaliteta rječnika utječe na kvalitetu analize mišljenja. Rječnik se radi na riječima preuzetim iz mišljenja koji su dohvaćeni samo za potrebe izrade rječnika. Naravno, radi se o veoma vremenski intenzivnom procesu. Svaka riječ je dobila ocjenu od 1 do 5 za svaku od četiri kategorije (urednost, usluga, ugođaj i općenita). o Urednost- misli se na urednost sobe, kupaonice, hotela o Usluga- misli se na uslugu osoblja o Ugođaj – Misli se na lokaciju hotela, količinu buke te slične karakteristike o Općenita – Svi ostali termini koji ne spadaju u ostale kategorije Bodovanje mišljenja Prilikom učitavanja mišljenja u KNIME svako mišljenje se tretira kao zaseban dokument. O ovome će biti više u daljnjem tekstu ovog rada, točnije u sljedećem poglavlju. Svaka riječ koja je pronađena u mišljenjima te u rječniku dobiva svoju kategoriju te ocjenu ovisno o tome kako je navedeno upravo u rječniku. Ukoliko se pronađe nekoliko riječi iz rječnika unutar jednog dokumenta uzima se prosječna ocjena. Ta prosječna ocjena se zatim upisuje ponovno u HBase. Dakle, output ove analize je evaluirano mišljenje koje sadrži prosječnu ocjenu za svaku kategoriju te su mišljenja agregirana po hotelima. Ovakva evaluacija se provodi periodički. 47 Dakle, ovdje se radi o analizi mišljenja pomoću rječnika, ali su riječi ocjenjene za sve četiri kategorije. U dijelu istraživanja će se prikazati modeli koje je moguće primijeniti i na TripAdvisor jedino što će u tom slučaju svako mišljenje dobiti tri vrijednosti: pozitivno, negativno i neutralno. Tablica 2. Prikaz TripAdvisor podataka Key PID Date Review Lang Grade x x x Review1 en 5 x x x Review2 en 4 x x x Review3 sk 1.5 x x x Review4 pl 2 Ovo je izgled tablice nakon što se podaci učitaju iz Hbasea te prva tri stupca nam ne pomažu u određivanju mišljenja korisnika, ali nam pomažu kasnije. Stupac review je stupca u kojem se nalazi pripadajući tekst tj. mišljenje objavljeno na TripAdvisoru. Zatim ide stupac u kojem se nalazi jezik, te stupac u kojem se nalazi ocjena. Slika 14. Primjer stvarnih mišljenja na TripAdvisoru po kategorijama 48 4.4 Analiza Facebooka Facebook30 je jedna od najpopularnijih društvenih mreža sa svojih preko 1,2 milijarde korisnika. Facebook, zajedno sa svojim Instagramom je ujedno i najpopularnije mjesto za objavljivanje fotografija te se prema zadnjim podacima doda oko 14 milijuna fotografija dnevno. Ovdje se mogu prepoznati svi Big Data problemi kao i kod TripAdvisora, samo što se ovdje situacija još više komplicira uslijed ubrzanog rasta objavljenih statusa, komentara, fotografija. Tablica 3. Prikaz tablice nakon učitavanja podataka s Facebook-a Key Text PageID PageName PostID Time Type UserID Likes x Liked and shared x BestHotels x x Comment x 0 x Thanks love you x BestTrips x x Comment x 5 x Just voted x ExploreCroatia x x Comment x 1 x Great colors x BeautifulCroatia x x Comment x 0 Nas konkretno zanima tekstualni dio te evaluacija mišljenja osoba na Facebooku. Korisnik dakle može unijeti u aplikaciju PageID ili naziv stranice s koje želi dohvatiti podatke te napraviti semantičku analizu nad tim podacima. Više o samom modelu i njegovom radu u dijelu istraživanja. Iz tablice se može vidjeti da se na početku nalazi jedinstveni identifikator koji je prethodno spomenut, a pomaže prilikom razlikovanja mišljenja. Najbitniji dio je stupac text, što zapravo predstavlja tekstualni sadržaj s Facebooka. Ovaj sadržaj može biti komentar, post ili nešto drugo te je njegov tip naveden u stupcu type. Ono što je korisno je stupac PageName koji govori s koje se stranice povlače podaci te kao dodana vrijednost analizi je i broj „likova“ u zadnjem stupcu. Osim ovih vrijednosti tu su i PageID, PostID, UserID koji pomaže prilikom detektiranja osoba koje su komentirale, gdje su komentirale te zahvaljujući stupcu time i kad su komentirale. 30 Matthew A.Russell (2014) : Mining the Social Web, Data mining Facebook, Twitter, LinkedIn, Google+, Github, and more, USA, O'Reilly 49 Tablica iznad predstavlja primjer koji je kreiran za ovo potrebe kako bi se razumjeli podaci koji se nalaze u Hbasu te kako bi se upoznali s podacima koji se korsite za potrebe analize. Dakle, ne radi se o realnim brojkama i vrijednostima, ali su nazivi stupac realni. Facebook pruža mogućnost analize nebrojene količine podataka, ali uz te velike mogućnosti dolaze i velika odgovornost. Prije svega što se tiče privatnosti korisnika s Facebookove strane. Slika 15. Model za Facebook Model izgleda kao na slici iznad. Koraci su gotovo identični u ovom modelu i u modelu za analizu Twittera. Naravno, kad se detaljnije pogleda u model, onda se mogu uočiti neke razlike. No, tih razlika nema previše, jer se radi o tekstu, a manje je bitno da li on dolazi sa Facebooka, Twittera ili možda TripAdvisora. Na samom početku se nalazi node koji se zove HBase Facebook Reader i to je node koji je izrađen od strane Poslovne Inteligencije. Prilikom učitavanja podataka iz tog noda podaci izgledaju kao u tablici koja je prikazana na početku ovog potpoglavlja. U dijelu tagging dolazi do spajanja s rječnikom napravljenim za svako domensko područje (uređaje, hotele, kozmetiku itd.). Nešto više i detaljnije o ovom modelu će biti govora u dijelu istraživanja. 50 4.5 Analiza Twittera Twitter31 je također društvena mreža te ujedno i usluga koja pruža mikroblogging što cijeloj priči o analizi mišljenja daje jedan novi kontekst. Ono što je karakteristično za Twitter32 je njegovo pravilo od 140 znakova, gdje svaki tvit ne smije imati više od 140 znakova. Ovo komplicira analizu, jer ljudi koriste skraćenice, žargone i traže sve moguće načine kako da u što manje znakova stave svoju poruku. Ukoliko se uračunaju i linkovi koji se nalaze unutar tvita, stvar se dodatno komplicira. Zato postoje i pristupi u znanosti koji uzimaju i smajliće kako bi odredili kontekst tvita. Taj pristup nije predmet ovog rada, ali pruža još jednu opciju prilikom analize. Jedino razlika je što kod Facebooka (kad gledamo Hbase reader) imamo PageName filter, a kod Twittera se filtracija vrši po ključnim riječima. Ključna riječ možete biti bilo koja riječ koja se nalazi u tvitu. Dakle, u odnosu na Facebook, model je gotovo identičan, jedina razlika je inicijalni node koji služi za učitavanje tvitova tj. Reader koji je napravljen za ovo svrhe. Također, razlika je i u rječnicima koji se stavljaju, a ovise o domenskom području, jer je za svako područje izgrađen zaseban rječnik. Što se tiče Twitter tablice, ona izgleda poput tablice ispod: Tablica 4. Izgled tablice nakon učitavanja podataka iz HBase Twitter Readera Key UserScreenName Date Text Keyword x Mich x This is best gift ever ... iPhone iPhone x John x Lumia looks really cool Lumia x Mary x I have new Lumia <3 Lumia x Lucy85 x I started crying to my mom... I whant iPhone :/ iPhone 31 Matthew A.Russell (2014) : Mining the Social Web, Data mining Facebook, Twitter, LinkedIn, Google+, Github, and more, USA, O'Reilly 32 Alexander Pak, Patrick Paroubek (2010) : Twitter as a Corpus for Sentiment Analysis and Opinion Mining, France, Universit´e de Paris-Sud 51 Dakle, ponovno se na početku nalazi key, te datum. Ovdje se korisnik zove UserScreenName, a razlike su i u tome što se koriste ključne riječi (keyword) pomoću kojih se pronašao taj tvit umjesto PageName kao u Facebooka. Tvit je ponovno u stupcu text. Dakle, ovdje su se pretraživali tvitovi koji sadrže riječi iPhone i Lumia (ujedno i ključne riječi). Ponovno, radi se o primjernim podacima koji nisu stvarni, ali izgled stupaca i tablice je realan. 4.6 Iskorištavanje rezultata analize u procesu odlučivanja Ovo je može se reći jedan od bitnijih dijelova analize. Ovo jekorak koji se događa nakon analize. Odgovara se na pitanje kako korisnici informacija proizašlih iz semantičkog modela iskorištavaju te informacije i reagiraju na njih. Tvrtke žele znati što više o svojim kupcima, klijentima, korisnicima te pokušavaju pronaći što više kvalitetnijih podataka kako bi im u tome pomogli. Kad se kaže kvalitetnijih, prvenstveno se misli na one podatke koji pomažu da se shvati ponašanje kupaca te da onda na temelju tih obrazaca ponašanja može pravodobno reagirati. Bilo da se reagiranje odnosi na pravovremeni odgovor na ukazane nedostatke na određenom proizvodu, da se dobiju mišljenja ljudi na beta verzije proizvoda i prije nego što se izbaci na tržište ili jednostavno da se može ponuditi određeni popust tim kupcima na temelju onoga što se saznalo iz tih podataka. Ovakav tip informacija pomaže i kao što se već spominjalo, potencijalnim turistima (korisnicima) da donesu odluku koje je idealno mjesto za njihov budući odmor. Dok, hoteli u drugu ruku mogu vidjeti svoj rang te se uspoređivati s konkurencijom te dobiti uvid u točno one podatke kojih ih zanimaju. Na primjer, određeni hotel želi znati što kupci komentiraju po pitanju čistoće u hotelu ili žele vidjeti koliko negativnih tvitova je generirano o njihovo hotelu i u kojem razdoblju. Kad imate kvalitetne podatke iz više izvora i kad imate dobar semantički model mogućnosti su raznolike. Kasnije, će se vidjeti kako izgleda output jednog semantičkog modela te koliko je taj output kvalitetan i ekonomski iskoristiv. 52 4.6.1. Prikaz nekih dijelova aplikacije Ovdje će se prikazati neki dijelovi aplikacije koji pomažu korisnicima da odaberu što ih zanima, te vide rezultate svoje semantičke analize na temelju kojih kasnije mogu donositi neke odluke. Također, prikazat će se neke i od vizualizacija te će se u ovom dijelu prikazati zbog čega je sve ovo prethodno bilo rađeno. Slika 16. Primjer izgleda završne vizualizacije koju vidi krajnji korisnik (Maybelline vs Nivea) Na ovoj slici može se vidjeti sumarna statistika te usporedba dvije ključne riječi za određene tvitove koji su izabrani za potrebe testiranja aplikacije. Ne radi se o velikoj količini podataka, ali je korisno da se prikaže izgled finalne vizualizacija. Dakle, s lijeva se nalazi ukupni broj pozitivnih, negativnih te neutralnih tvitova za ključnu riječ Maybelline, a na desnoj strani isto to za ključnu riječ Nivea. Linija predstavlja prosječnu ocjenu koja se izračunava na temelju omjera polariteta tvitova za svaku ključnu riječ, a u kutu se nalazi i prikaz strukturnog kruga. 53 Slika 17. Druga vizualizacija podataka Na ovoj vizualizaciji može se vidjeti prikaz ocjena po nešto više kategorija za dva hotela. Također na vrhu se nalazi izbor vremenskog razdoblja za koje se želi obaviti usporedba. Ovakav oblik vizualizacije pomaže da se uoče oni hoteli koji odskaču tj. da se utvrde razlike između hotela za svaku pojedinu kategoriju u jednom veoma jednostavnom prikazu. Slika 18. Opcije prilikom dohvaćanja podataka 54 Ovdje se može vidjeti kako izgledaju mogućnosti za dohvaćanje podataka (crawling). Veoma je interesantna vremenska dimenzija. Sljedeći korak PANDORA projekta je realtime analiza pomoću STORM-a. Već na temelju ovakvih analiza moguće je vidjeti da su podaci koje proizvodi ova semantička analiza ekonomski korisni za poslovne organizacije te im mogu pomoći u kreiranju budućih planova, ali im mogu pomoći i da reagiraju na vrijeme ukoliko uoče neke nagle promjene u zadovoljstvu svojih korisnika. Ono što se dalje postavlja kao pitanje je : Koliko je kvalitetna semantička analiza tj. koliko je kvalitetan dobiveni output, a kako bi se otkrio odgovor na to pitanje potrebno je detaljnije razraditi izradu semantičke analize, a o tome više u dijelu istraživanja. Pandora je projekt koji je predstavljen tržištu 2014.godine. Radi se o finalnom rješenju kojem je cilj omogućiti svojim korisnicima informacije o njihovim proizvodima i uslugama te analizu onog što ostali korisnici govore o njima. Za potrebe PANDORA projekta korištene su tehnologije navedene u drugom poglavlju Big Data, operacije i tehnike objašnjene u trećem poglavlju Semantička analiza, te modeli i metode korišteni u ovom poglavlju. Prethodna poglavlja zajedno sa svojim metodama, i resursima će se prikazati u dijelu istraživanja, gdje će se moći vidjeti točna primjena svakog od njih. Radi se uglavnom o open-source softwareima, no hardware korišten za potrebe PANDORE te ljudi, su bili veliki dio troškova izrade. Ono što je karakteristika PANDORE je činjenica da će Poslovna Inteligencija nuditi svoje rješenje kao uslugu ostalim korisnicima čime olakšavaju prikupljanje kvalitetnih informacija te koncentraciju na on najvažnije pitanja na koje se želi dobiti odgovor. 55 5. Istraživanje 5.1. PANDORA projekt Projekt PANDORA33 je projekt koji je u trenutku pisanja ovog rada i dalje u fazi izrade, no projekt sam kao takav je do sada već pomaknuo granice poslovne analize u RH, ali i šire. U ovom dijelu rada će se detaljno predstaviti neki dijelovi ovog projekta koji su zanimljivi za ovaj rad. Prije svega prikazat će se Big Data tehnologije i semantički modeli, te će se prikazati sinergija ta dva pojma u jednom praktičnom primjeru. Ovaj projekt je u 2014. godini ponuđen tržištu (verzija 2 u izradi), te će se prikazati dosadašnja postignuća ovog projekta. Sam PANDORA projekt je osmišljen kao proizvod koji nudi potencijalnom korisniku brojne mogućnosti te pruža vrijedne informacije, koje su im do sada bile nedostupne. Proizvod je osmišljen tj. podijeljen u tri faze: Crawling (dohvat podataka), Extraction (punjenje baza podataka dohvaćenim podacima), Analysis (semantička analiza). Dakle, korisniku se nudi sloboda izbora na kojim podacima (pristiglih s raznih stranica) će se odraditi semantička analiza. Ovo je sve moguće zahvaljujući templateima, koji su unaprijed pripremljeni kako bi korisnik uz par klikova mogao doći do svog cilja. Slika 19. Faze PANDORE 33 PANDORA – web stranica (www.pandora-insight.com) 56 Prije detaljnijeg ulaska u svaku od ovih faza, prikazat će se sve ono što prethodi ovim procesima. Prije svega za početak je nužno prikazati logičku arhitekturu PANDORE 34. Na slici 20. postoje dva ključna početna koraka, a to su crawling i streaming. Crawling se vrši zahvaljujući Apache Nutch i templateima koji su izrađeni za svaku interesnu stranicu (TripAdvisore i slične). Streaming se odnosi u slučaju Poslovne Inteligencije na društvene mreže, dakle dohvaćanje podataka s Facebooka, Twittera te Pinteresta. Hadoop, Hbase te ostale Big Data tehnologije tj. Hadoop ekosustav predstavljaju drugu točku arhitekture. Iako se Big Data tehnologija upleće u cjelokupnu arhitekturu u ovoj točki predstavlja ključ uspjeha za daljnji tijek analize. Treća točka je semantička analiza podataka koji se nalaze u Hadoopu, zahvaljujući modelima izrađenim u KNIME-u. Osim KNIME-a testirali su se statistički jezik R, programski jezik Python, te zadnja inovacija H20. Svaki od ovih ima svoje prednosti te mane. Za potrebe ovog rada je izabran KNIME, jer predstavlja zasad finalno rješenje Poslovne Inteligencije te zbog toga što je grafički alat koji je pogodan za prikaz svih koraka semantičke analize. Sljedeći je korak agregacija bilo po rewievima ili streamovima, što zapravo ovisi o izboru korisnika na samom početku tj. u prvoj točki arhitekture. Te na kraju dolazi prezentacijski sloj, koji sadrži paletu grafičkih prikaza semantičke analize izrađene nad dohvaćenim podacima u prethodnim koracima. Za sada je izrađen portal na koji korisnik pristupa svojim login podacima te ima pristup prezentacijskom sloju gdje mu se pružaju mogućnosti izbora crawlinga različitih stranica i streaminga (društvenih mreža). 34 Detailed Technical Specifications FAIR – ( INTERNO ) 57 PI Big Data - Arhitektura Internet Facebook Twitter 1 Streaming Crawling 6 Smartphone Portal Filtering 2 3 Hadoop Sentiment Analysis 4 Aggregation 5 Presentation layer Slika 20. Logička arhitektura PANDORE 5.1.1. Kreiranje projekta u PANDORI Ovdje se govori o kreiranju projekta od strane korisnika i odvija se u tri koraka 35: Imenovanje projekta, dodavanje sadržaja i revidiranje te izrada projekta. Sadržaj podrazumijeva podatke koji će se crawlati ili streamati. Sadržaj dohvaćenih stranica (crawling) se sastoji od XML dokumenata s Xpath ekpresijama podataka (služe za navigaciju kroz elemente i atribute dohvaćenih XML dokumenata) koji će se ekstraktirati iz webstranica, sadrži naziv sadržaja te dostupnost (javna ili privatna). Sadržaj streamanih dokumenata se sastoji od ključnih riječi te korisničkih imena za određeno streamanje. Slika 21. Prvi korak izrade projekta 35 Description of Pandora demo application – basic functionality and scenarios ( INTERNO ) 58 Gornja slika je važna, jer je svaki sadržaj vezan uz određeni proizvod (kozmetika, hoteli ...). Ovo se radi zbog toga što se za svaku opciju primjenjuje drugi semantički model. Također, svi proizvodi imaju različite atribute prilikom mapiranja (hoteli imaju gradove i države, dok uređaji imaju naziv brenda i veličinu ekrana). Mapiranje (mapping) je bitno jer se zapravo radi o strukturi metapodataka koja govori aplikaciji kako da ekstraktira podatke s određenih web stranica. Proizvod sadrži već izrađene template (predloške) koji su napravljeni od strane administratora te su označeni kao javni. Ako korisnik želi kreirati vlastite predloške to se obavlja u nekoliko koraka: odabir URL-a, odabir elemenata web stranica te se označavaju kao atributi (Naziv hotela, grad ...), odabir sličnih linkova za druge proizvode (ubrzavaju proces), odabir dostupnosti (javno ili privatno) te imenovanje mapiranja. Slika 22. Mapiranje hotela 59 5.1.2. Prikupljanje podataka i vizualizacije podataka Prikupljanje se odvija ukoliko su prethodni koraci odrađeni te se može obaviti ad hoc. Također se pruža opcija izrade rasporeda obavljanja dohvata podataka (dnevno, tjedno, mjesečno). U slučaju ad hoc prikupljanja, Pandora (aplikacija) dohvaća informacije o sadržaju (mapiranje u slučaju web stranica, a ključne riječi i parametre u slučaju streaminga) te započinje proces crawlinga ili streaminga ovisno o izboru korisnika. Slika 23. Primjer dnevnog i tjednog dohvata podataka Nakon dohvata podataka, ekstrakcije korisnih podataka i analize, zadnji korak je vizualizacija rezultata analize. Struktura te procesi potrebni kako bi došli do tih jednostavnih vizualizacija je veoma kompleksna. Trenutno aplikacija podržava nekoliko načina vizualizacije podataka, no prikazat će se samo način vizualizacije koji se trenutno nalaze u produkciji. Ovo možete vidjeti na slici ispod. Ovdje se radi o vizualizaciji tvitova (dakle streaming podataka) za proizvode kategorizirane pod „kozmetika“. Konkretno, za potrebe ovog rada prikazana je usporedba brandova Maybelline i Nivea (ključne riječi) na testnim podacima koji su dohvaćeni 06. veljače 2014. godine zahvaljujući Twitter API. Na temelju grafa se vidi da su pozitivni tvitovi prevladavajući kod oba branda, no nivea ima nešto veći broj negativnih tvitova. Bitno je također naglasiti da je ovo analiza rađena zahvaljujući semantičkom modelu koji je baziran na rječniku. Naravno, radi se o rječniku koji je izrađen posebno za kozmetičke proizvode, jednako kao što i ostali proizvodi imaju svoj rječnik. Ovo se radi kako bi se što bolje obuhvatio kontekst te specifičnosti pojedinog proizvoda. Dolje možete vidjeti i primjere tvitova koji se prikazuju odmah ispod grafa, a glavna vijest taj dan je bilo novo zaštitno lice branda Maybelline. Također, na grafu se 60 mogu vidjeti i prosječne vrijednosti (izračunava se prosječna ocjena na temelju broja pozitivnih, negativnih i neutralnih tvitova.) Slika 24. Izgled vizualizacije za Twitter - usporedba Maybelline i Nivea 5.1.3. Budućnost projekta Sve ovo što se opisivalo se odnosi na tzv. batch obradu, no tvrtka Poslovna Inteligencija je odlučila u 2. verziju ubaciti „speed layer“ tj. STORM koji je već spomenut u prethodnim dijelovima teksta. Dakle, testno je implementiran STORM, besplatan i open source sustav koji omogućava distribuiranu i „realtime“ (uživo) analizu. Ukoliko ova poslovna organizacija uspije integrirati Storm u 2. verziju PANDORE, doći će do porasta vrijednosti njihovih informacija, jer što je informacija starija to joj vrijednost pada. U ovom slučaju korisnik će imati mogućnost uživo pročitati mišljenje svojih kupaca što se može iskoristiti u daljnjem poslovanju. Dosadašnje analize su bile uskraćene za ovaj tip informacija, a pomoću ovakve analize korisnici će moći vidjeti veoma kvalitetne informacije o svojim proizvodima, mišljenja ljudi te pravodobno reagirati. Sama vrijednost ovakvih informacija za svrhe poslovanja je jasna, 61 no sljedeći koraci su podizanje kvalitete semantičkih modela. Ovdje se prije svega misli na izradu optimalnog rječnika, koji može prepoznati polaritet (pozitivno, negativno ili neutralno) tekstualnog dokumenta proizašlog s neke web stranice ili društvenih mreža. S druge strane također, pronalazak optimalnog algoritma (strojno učenje), koje neće dovesti do overfittinga ili čak underfittinga (iako je ovo rjeđe). 5.2. Model za semantičku analizu U ovom dijelu će se prikazati glavni semantički model poslovne organizacije Poslovna Inteligencija, koji je baziran na analizi pomoću rječnika. Osim glavnog modela, prikazat će se i usporedba sa modelom baziranom na strojnom učenju. Kao što je ranije bilo spomenuto, model je izrađen u KNIME-u. KNIME se pokazao kao veoma dobar izbor za analizu teksta zbog svojih funkcionalnosti koji čine ovakav oblik analize jednostavnijim. KNIME Labs je ekstenzija napravljena kao odgovor na potrebe nešto naprednijih korisnika KNIME-a. Tako u sklopu KNIME Labsa se nalaze neki Ensemble algoritmi (stabla), funkcionalnosti za analizu društvenih mreža, funkcionalnosti vizualizacija podataka na kartama (Open street map), optimizacijske funkcionalnosti, paralelna obrada, integracija sa Pythonom i R-om te funkcionalnosti potrebne za tekstualnu obradu pod nazivom „Text processing“. KNIME Textprocessing mogućnost pruža učitavanje, obradu, rudarenje i vizualizaciju tekstualnih podataka na veoma jednostavan način. Pružaju se funkcionalnosti iz područja: Obrada prirodnog jezika (NLP- Natural Language Processing) Rudarenja teksta Pretraživanja/dohvat informacija (information retrieval) 62 Obrada teksta i analiza se odvijaju u KNIME-u u 6 koraka (dotakli smo ih se već u prethodnim poglavljima): I. IO – učitavanje i parsiranje podataka II. Enrichment (obogaćivanje) – podrazumijeva označavanje riječi iz rječnika (Dictionary tagger), označavanje imenica, glagola, pridjeva u dokumentima (POS tagger – ne uključuje hrvatski) III. Preprocessing – filtracija i manipulacija (uklanjanje točki, zareza, riječi manjih od X slova, stemming, ili čak filtracija po POS tagu – npr. filtracija samo glagola i pridjeva) IV. Frequencies – ekstrakcija ključnih riječi, izračunavanje TF-a, IDF-a V. Transformation – BoW (Bag of Words), izrada vektora VI. Visualization – tag cloud/word cloud (prikaz oblaka s riječima te ih je moguće obojati po polaritetu) 5.2.1. Semantički model pomoću rječnika Slika 25. Glavni model u KNIME-u U ovom dijelu rada će se predstaviti konkretan modelu u KNIME-u. Pratit će se po koracima koji su navedeni ranije, kako bi što jasnije dobili dojam što to model točno radi. Prije svega bitno je uočiti na donjoj slici da Poslovna Inteligencija ne koristi parsere koji su uključeni u KNIME-u (IO faza) već je izrađen (in-house) početni „node“ koji učitava podatke iz HBase-a. Taj početni „node“, uključujući rječnike za svaki proizvod posebno36, je jedina razlika između analize podaka s TripAdvisora, Twittera ili Facebook-a. O 36 Bruno Ohana & Brendan Tierney (2009) : Sentiment Classification of Reviews Using SentiWordNet, Ireland, Dublin Institute of Technology, 9th. IT & T Conference 63 rječnicima će se nešto detaljnije u narednom dijelu rada, a sada će se prikazati kako se dohvaćaju podaci iz Hbase-a. Slika 26. HBase Twitter Reader Kao što se može vidjeti iz slike, potrebno je unijeti nekoliko parametara, koji su veoma intuitivni. Za početak se bira koliko se tvitova želi analizirati (Max rows to retrieve). Zove se maksimalno redaka, jer je moguće povući i manje od željenog broja ukoliko u HBase nema željena brojka tvitova (npr. želimo 100 000, a zapravo ih u HBasu imamo 80 000 ). S obzirom da se analizirani podaci ponovno upisuju u HBase postoji parametar (kućicaretrieve only nonevaluated rows) koji nam pomaže da povućemo samo one tvitove koje dosada nismo ocijenili. Sljedeće je mogućnost povlačenja samo engleskih tvitova što obično uvijek stoji označeno, jer se koraci u obradi teksta odnose samo na engleski jezik. Pored naziva tablice, Zookeeper IP-a i Porta, možda najbitniji parametar je keywords filter. U našem primjeru je stavljena ključna riječ hotels, no to može biti bilo koja druga riječ ili riječi (npr. iPhone, Nokia). Ključna riječ može biti bilo koja riječ koja se pojavljuje u tvitu. Nakon što se unesu svi ključni parametri prelazi se na korak kreiranja Dokumenata (poseban oblik tekstualnog podatka (string) koji sadrži neke dodatne atribute). Dodatni atributi mogu biti: naslov, autor, izvor, kategorija (koristi se najčešće za označavanja polariteta tvita u nekim drugim analizama, a ovdje se njime označava ključna riječ), datum. 64 Slika 27. Pretvorba String - Document Ovi atributi su skriveni kad se gleda output, no moguće ih je u kasnijim fazama ekstraktirati, što će se i prikazati u daljnjem tekstu. Također, eliminirani su sve eventualne prazne vrijednosti u koraku prije. Prije nego što se krene u obogaćivanje teksta (II. faza), izbačeni su svi stupci tj. atributi koji nam ne trebaju. Zatim se dolazi do prvog metanoda pod nazivom „Tagging“ i to je zapravo faza obogaćivanja u kojem se označavaju riječi koje su pozitivne i negativne na temelju rječnika. Na slici ispod se može vidjeti da se prvo učitava rječnik (kao što je napomenuto, različit je za sve proizvode). Nakon učitavanja dolazi do grananja na dvije strane. Jedna strana sadrži samo pozitivne riječi, a druga samo negativne riječi. Zatim slijedi node koji ostavlja samo stupac s riječima, a sve drugo se eliminira (u ovom slučaju eliminira se stupca koji sadrži polaritet). Nakon toga spajaju se tvitovi prvo s pozitivni riječima, a zatim s negativnim riječima i svaka riječ koja se nalazi u rječniku i u tvitu dobiva oznaku ovisno o tome koju je oznaku imala u rječniku (pozitivno ili negativno). Pozitivne riječi dobivaju oznaku PERSON, a negativne riječi oznaku TIME. Nazivi ovih oznaka mogu biti i drukčiji, no ovdje su izabrani ovi. 65 Slika 28. Označavanje riječi na temelju rječnika Nakon faze obogaćivanja slijedi faza transformacije, a u ovom slučaju se radi samo o nodu BoW (Bag of Words), koji rastavlja tvitove na riječi te se tako točno zna koje se riječi nalaze u kojim tvitovima. Tablica 5. Primjer autora Riječ Tvit Very Very beautiful hotel !!! beautiful Very beautiful hotel !!! hotel Very beautiful hotel !!! !!! Very beautiful hotel !!! I I hate this hate I hate this this I hate this I hate this Ovo je veoma jednostavan pristup no pokazao se veoma dobrim prilikom analize mišljenja, a kod strojnog učenja se i algoritam Naive Bayes koji je također jednostavan pokazao dobrim, što još jednom potvrđuje da je u ovim slučajevima bolje ciljati jednostavnost bez nepotrebne komplikacije. 66 Slika 29. Faza obrade teksta BoW nam služi kao početni korak za fazu obrade teksta (preprocessing). Kao što se može vidjeti iz gornje tablice mogu se pojaviti točke, zarezi, smajlići, brojevi kao riječi i u fazi obrade teksta uklanjamo sve te znaove, riječi za koje se ne želi da se pojave u daljnoj analizi. Dosta radova je napisano na temu analize mišljenja koja koristi smajliće 37, no u ovoj metodologiji se oni brišu prilikom uklanjanja točki, zareza (punctuation erasure). Također, brišu se brojevi, sve riječi koje sadrže manje od 3 slova (N Chars filter), zatim se sve riječi konvertiraju u mala slova kako bi se uklonile riječi koje imaju isto značenje, ali ih računalo nije prepoznalo zbog razlike u ispisivanju riječi (Hotel i hotel – isto značenje, ali ih BoW tretira kao dvije riječi). Slijedeće je filter pod nazivom Stop word Filter. Njegova svrha je da eliminira one riječi koje su veoma česte u engleskom jeziku i ne doprinose prilikom tekstualne analize. Njihovom eliminacijom ubrzavamo proces analize, jer se ne gubi vrijeme na njih prilikom analize. 37 Efthymios Kouloumpis, TheresaWilson & Johanna Moore (2011) :Twitter Sentiment Analysis: The Good the Bad and the OMG!, ICWSM, The AAAI Press 67 Tablica 6. Lista čestih riječi - Stop word Filter and of below about but at to against if by from between or through up out because during down on as before in off until after for over while above with under into again Nakon eliminacije najčešćih riječi model se ponovno grana na dvije grane: jedna koja radi stemming, a druga koja pronalazi tzv. intensifiers and downtoners. Za stemming se koristi Porterov Stemmer. Stemmeri svode riječi na njihov korijen te se time smanjuje broj riječi. Ovo znači pretvorbu kao u ovom primjeru: Tablica 7. Primjer Porterovog stemminga Optional -> option Practical -> practic Recruter –> recrut Resources -> resourc Hotels -> hotel Druga grana traži riječi koje dovode do porasta ili pada važnosti nekih riječi. Dakle, pomoću lag Column traži se riječ (riječ s popisa intensifiera ili downtonera) koja prethodi nekoj riječi (npr. very prethodi good) te se u slučaju pojave ovih riječi (u ovom primjeru je riječ o intensifieru) pomoću rule enginea povećava/smanjuje ocjena pod nazivom ChangePolarity. Inače sve riječi imaju ovu ocjenu 1, ali one riječi kojima prethode intensifier ili downtoner riječi, dobiju promjenu te ocjene ovisno o kojem tipu riječi se radi (itensifier ili downtoner). Ovaj način nije bez mana, ali pomaže da se pronađu neke najočitije kombinacije poput: excellent hotel, not good. 68 Primjer promjene ocjene ChangePolarity na temelju modela Poslovne Inteligencije: Tablica 8. Lista riječi koje mijenjaju polaritet Riječ Promjena not -1 very 2 never -1 bad -2 best 2 Zadnji node u fazi obrade teksta je Joiner koji spaja ove dvije grane po row ID-u (inner join). Sljedeća faza što nam dolazi je faza izračunavanja frekvencija. Ovo je ključna faza u analizi mišljenja i ovom prikazanom semantičkom modelu. Slika 30. Izračunavanje frekvencija Prvi korak je svim riječima izračunati TF (term frequencies), zatim IDF (Inverse Document frequencies). Nakon toga se svim riječima izvlači tag u zaseban stupac. Tako, pozitivne riječi (s tagom PERSON) u tom stupcu (pod nazivom attitude) imaju vrijednost 1, negativne riječi (tag TIME) -1, a sve riječi kojima nije pronađen tag imaju vrijednost 0. Zadnja karika u ovom lancu je izrada formule za izračun tzv. 69 SentimentScorea koja glasi : 𝑆𝑒𝑛𝑡𝑖𝑚𝑒𝑛𝑡𝑆𝑐𝑜𝑟𝑒 = 𝑎𝑡𝑡𝑖𝑡𝑢𝑑𝑒 ∙ 𝐶ℎ𝑎𝑛𝑔𝑒𝑃𝑜𝑙𝑎𝑟𝑖𝑡𝑦 ∙ ( 𝑇𝐹 ∙ 𝐼𝐷𝐹) Ovaj SentimentScore je ono što određuje polaritet našeg tvita. No, prije nego što vidimo sam kraj modela, prije toga je nužno objasniti kako točno izgleda izračunavanje TF i IDF na ovom primjeru. Izračunavanje TF · IDF će se prikazati u tri koraka: I. KORAK TF = Broj pojavljivanje određene riječi u određenom tvitu Broj riječi u tom određenom tvitu TF (riječ → Beautiful) = II. 1 = 0.125 ili 12.5 % 8 KORAK Ukupan broj tvitova IDF = log ( ) Ukupan broj tvitova s određenom riječi 50 000 IDF (riječ → beautiful) = log ( )=2 500 III. KORAK U zadnjem koraku izračunavamo umnožak TF i IDF i ta vrijednost nam služi dalje za izračunavanje SentimentScorea kao što je navedeno ranije u tekstu. Bitno je primijetiti da što broj spominjanja riječi beautiful u određenim tvitovima pada, tf x idf raste. Riječ hotel neće pomoći iako se puno puta pojavljuje, no neka druga rijetka riječ vezana uz određenu oznaku (pozitivna ili negativna) pomaže prilikom određivanja SentimentScorea. Nama za potrebe analize trebaju one riječi koje su važne za određivanje sentimenta i zato nam tf x idf itekako pomaže. Ako uzmete isti primjer i riječ „Beautiful“ te samo promijenite u IDF-u da se ta riječ pojavljuje u 200 tvitova, dobit ćete sljedeće rezultate: 70 Tablica 9. Usporedba 2 različita scenarija za riječ "Beautiful" Ukupan broj tvitova s riječi „Beautiful“ = 500 Ukupan broj tvitova s riječi „Beautiful“ = 200 TF = 0.125 TF = 0.125 IDF = 2 IDF = 2.39794 TF · IDF = 0.25 TF · IDF = 0.2997425 ≈ 0.3 Ovo je primjer kada se računa TF · IDF za jedan tvit. Riječ „Beautiful“ u svakom tvitu može imati različiti TF, jer se izračunava na razini tog tvita, dok mu je IDF predodređen od strane cijelog korpusa nad kojim se vrši analiza mišljenja. Ako se učita 100 000 tvitova u KNIME onda to čini corpus tvitova, a u slučaju da se učita 500 000 onda je to corpus. Za kraj modela ostaje izvlačenje ključnih riječi za svaki tvit, grupiranje označavanje polariteta te dodjeljivanje boja svakom tvitu na temelju polariteta i time ovaj semantički model završava svoju analizu. Kao što je ranije spomenuto, tvitovi su zapravo u obliku dokumenta što je odmah na početku prebačeno/transformirano. Taj dokument sadrži neke atribute koji su mu u tom početnom koraku dodani te u se ovom koraku konkretno izvlači atribut kategorija tj. u našem slučaju je to ključna riječ. Prilikom učitavanja tvitova mogu se učitati tvitove na temelju više ključnih riječi te je zato ovaj korak veoma bitan kako bi razlikovali koji tvit pripada kojoj ključnoj riječi. Prilikom grupiranja tvitova ostavlja se samo stupac sa tvitom (originalni dokument s početka), stupac koji sadrži ključnu riječ te treći stupac u kojem se nalazi SentimentScore i to središnja vrijednost za svaki pojedini tvit. Tablica 10. Prikaz semantičke analize za ključnu riječ "hotels" Tvit Ključna SentimentScore riječ (artimetička sredina) „Hotels with free breakfast makes me happy“ Hotels 2.661 „These Sochi hotels are outrageously disappointing“ Hotels -3.549 71 Za kraj ostaje Numeric Binner koji svim vrijednostima (za SentimentScore) koje su manje od 0 dodjeljuje naziv „Negative“, onima koje su veće od 0 „Positive“, a vrijednostima čija je vrijednost jednaka 0 Neutral. U zadnjem koraku na temelju tih oznaka Positive, Negative i Neutral u novokreiranom stupcu Sentiment se svakom od njih dodjeljuje boja radi lakšeg raspoznavanja. Ovdje završava dio semantičke analize pomoću rječnika. U sljedećem potpoglavlju će se prikazati semantički model koji koristi strojno učenje za potrebe analize. 5.2.2. Semantički model strojnog učenja Slika 31. Model strojnog učenja Nakon odrađenog semantičkog modela pomoću rječnika dolazi model pomoću algoritama za strojno učenje. Većina koraka je dosta slična no oni koraci koji nisu čine glavnu razliku i predstavljaju nešto drukčiju logiku, u odnosu na prethodni model, koja je veoma bitna da se cijelom problemu analize mišljenja pristupi kao problemu klasifikacije. Početni korak je učitavanje tvitova ( ili mišljenja s TripAdvisora) koji su već unaprijed klasificirani kao pozitivni ili negativni. U ovom slučaju se na gornjoj strani nalazi excel file u kojem se u prvom stupcu nalaze tvitovi, a u drugom polaritet (pozitivno), a na drugoj grani se nalazi isto osim što je u stupcu polaritet vrijednost „negativan“. Ovi podaci mogu biti učitani i iz csv ili pomoću file readera no u ovom slučaju se radi o Excelu. Nakon toga slijedi pretvorba u Documente te spajanje dvije grane pomoću Concatenate. Nakon što su spojeni slijedi faza prerocessinga koja je identična prethodnom modelu. Dakle, nodovi idu 72 ovim redosljedom : BoW creator, Punctuation Erasure, N Chars Filter, Number Filter, Case converter, Stop Word Filter, Porter Stemmer i Term Grouper. Nakon toga slijedi izračunavanje frekvencija pomoću Keygraph keyword extractora. Zatim, slijedi ključni dio koji kreira Document vector koji je temelj za primjenu daljnjih algoritama strojnog učenja. Document vector gradi matricu gdje imamo vrijednosti 0 ili 1. Nula se javlja ako se riječ u tom stupcu ne pojavljuje u dokumentu (koji se nalazi u redku), a jedan u slučaju da se pojavljuje. Na temelju toga se kasnije lakše koristite algoritmi za učenje. Node category to class izvlači kategoriju koja je sakrivena odmah na početku modela unutar dokumenta, prilikom kreiranja. Kategorija je zapravo samo oznaka – pozitivno ili negativno ovisno koji je dokument. U filteru stupaca miče se samo taj dokument da ne smeta u daljnjoj analizi te se nakon toga može krenuti na algoritme strojnog učenja. Slika 32. Strojno učenje – algoritam Naive Bayes Prva grana dijeli data set na dva dijela – train i test, gdje 70% originalnog data seta postaje train, a 30% postaje test set. Ova podjela nije vršena slučjnim odabirom već prema polaritetu, tako da u svakom setu (train i test) bude zastupljen jednak broj i pozitivnih i negativnih. Nakon toga se primjenjuje algoritam Naive Bayes nad train setu, te se naučeno primjenjuje pomoću predictora na test setu. Scorer služi da se vidi koliko puta je došlo do pogreške u klasifikaciji pa se tako dobije informacija u kojem je smjeru potrebno ići da se unaprijedi model. 73 Ono što se također koristilo, ali u ovom radu se neće puno govoriti je cross-validation (10 fold). Radi se o nešto drukčijem načinu testiranja kvalitete klasifikacije. Radi pojednostavljivanja uzet će se cross-validation s 4 folda. Dakle, originalni set se dijeli na 4 dijela ili folda. Jedan fold se odredi da služi za testing, a ostala 3 za training te se dalje radi sve kao što je rađeno i u prvoj grani, no razlika je ta što svaki fold dobiva priliku da bude testing fold. Dakle, nakon što algoritam nauči na 2., 3. i 4. foldu, rezultate testira na 1. foldu, kada završi s tim krugom, 2.fold postaje testing, a 1., 3. i 4. foldovi postaju train foldovi i algoritam (Naive Bayes) ponovno uči, te tako sve dok svaki fold ne dobije priliku biti testni. Nakon toga se može vidjeti prosječna greška za 4 folda, tj. za svaki fold (testni) se računa greška te se na kraju zna kolika je bila greška u svakom od njih. U literaturi se osim Naive Bayesa veoma često spominje i Max Entropy38, no za potrebe ovog rada je odabran Naive Bayes. 5.3 Rezultati istraživanja Za kraj dolazi potvrda ili odbijanje početne hipoteze koje je postavljena na samom početku, ali i kroz cijeli ovaj rad se pokušavaju prikazati različiti aspekti ovakvog tipa analize kako bi se uvidio njihov utjecaj na hipoteze. Prije svega potrebno je vidjeti kako se cijeli rad odražava na postavljene podhipoteze: Ho: Podaci dobiveni semantičkom analizom nestrukturiranih podataka poduprtom Big Data tehnologijom su kvalitetni H1: Podaci dobiveni semantičkom analizom nestrukturiranih podataka poduprtom Big Data tehnologijom nisu kvalitetni Ova kvaliteta podataka dobivenih semantičkom analizom nestrukturiranih podataka poduprtom Big Data tehnologijom će se utvrditi : vremenom koje je potrebno od početka analize do kreiranja outputa na temelju analize, 38 količinom resursa koji su potrebni za ovaj vid analize Jacob Perkins (2010) : Python Text Processing with NLTK 2.0 Cookbook, UK, Packt Publishing 74 pomoću točnosti modela. PANDORA je već dokazala da je moguće napraviti sustav koji pruža korisniku semantičku analizu područja koje ga zanima u nekoliko klikova, dakle veoma brzo i jednostavno. U daljnjim koracima ukoliko dođe do integracije Storma i Lambda arhitekture ovo će još više doći do izražaja iako su i dosada postignuti rezultati dobri. S korisničke strane (krajnji korisnik) radi se o plaćanju usluge te korisnik ne treba razmišljati o resursima. S druge strane Poslovna Inteligencija zahvaljujući Big Data tehnologiji ima veoma skalabilno rješenje te infrastrukturu koja joj pruža da izvodi ovakve tipove analize. Takva infrastruktura zna biti skupa, ali ukoliko se uzme eventualna dobit proizašla od jednog takvog sustava tj. infrastrukture onda je ekonomija na strani Big Data. Točnosti modela variraju od odabira metode (rječnik ili strojno učenje), odabira načina obrade teksta (filteri, stemmeri), odabira frekvencija (TF ili TF-IDF ili Keygraph keyword extractor). U slučaju Poslovne Inteligencije radi se uglavnom od 75% točnosti modela prema naviše. Ovisno o problemu koji se želi analizirati, odabiru se odgovarajuće metode te načini optimizacije modela. Na kraju se može utvrditi da su dobivene vrijedne informacije i za potrebe ove hipoteze kvalitetne i što se tiče vremena, resursa te njihove točnosti te se s toga može potvrditi hipoteza (H0) da su podaci dobiveni semantičkom analizom nestrukturiranih podataka poduprtom Big Data tehnologijom kvalitetni. Nakon potvrđivanje ove podhipoteze dolazi na red potvrditi ili odbaciti hipotezu koja glasi: Ho: Semantička analiza nestrukturiranih podataka poduprta Big Data tehnologijom je iskoristiva za potrebe poslovnog odlučivanja H1: Semantička analiza nestrukturiranih podataka poduprta Big Data tehnologijom nije iskoristiva za potrebe poslovnog odlučivanja Kao što se moglo vidjeti i tokom rade te potvrđivanjem podhipoteze da su dobiveni podaci kvalitetni, možemo razaznati da se i ovdje radi o potvrđivanju hipoteze da je 75 semantička analiza nestrukturiranih podataka poduprta Big Data tehnologijom iskoristiva za potrebe poslovnog odlučivanja. Razloga za ovo ima više. Prije svega da se na samom početku postavilo pitanje da li su vam zanimljive informacije koje vam reprezentiraju mišljenje kupaca, klijenata većina bi odgovorila potvrdno. Gledajući s ekonomskog aspekta ovakve informacije su korisne za poslovođe, upravitelje te mogu dovesti do konkurentske prednosti ukoliko se iskoriste na pravi način. Ako pri tome još imamo jednostavan i brz proces nabavke takvih informacija time je njihova vrijednost još veća. Ukoliko još i mogućnost pregleda takvih tipova informacija bude moguća uživo (real-time) njena ekonomska vrijednost raste. Sve ovo pruža kvalitetan uvid u mišljenje naših kupaca te pruža pravovremeno reagiranje na eksterne signale o proizvodu ili usluzi. Semantička analize je primamljiva s ekonomske strane, jer pruža informacije koje su do sada uglavnom bile dostupne velikim organizacijama. Pojavom Big Data tehnologije, oblaka (cloud tehnologije) došlo je do mogućnosti da krajnji korisnik dobije uvid u informacije tako da jednostavno plati tu uslugu koja je personalizirana za njegove potrebe te da mu pruža slobodu kreiranja i postavljanja pitanja koja ga zanimaju. Ovakve informacije su sigurno ekonomski iskoristive i pružaju konkurentsku prednost, no pojavom sve više i više ovakvih usluga bitno je pronaći ono što će diferencirati jednu organizaciju od ostalih. Budućnost semantičke analize je ulazak u sferu odlučivanja, a nove tehnologije to i potvrđuju. 76 Na kraju ovog diplomskog rada napravit će se rezime istraživačkog dijela. U istraživačkom dijelu se prezentirao PANDORA projekt koji je interni projekt tvrtke Poslovna Inteligencija iz Zagreba, a korišten je kao Case Study ili studija slučaja za temu ovog diplomskog rada. Kao rezultate ovog istraživanja predstavljeni su konkretni modeli u KNIME-u te je i s tim razlogom terminologija vezana uz semantičku analizu bila pisana tako da se lakše prate modeli u KNIME-u. Od model predstavljeni su model semantičke analize pomoću rječnika te model semantičke analize pomoću strojnog učenja. Oba modela su se pokazali dobrima, a svaki ima svoj dio doprinosa u ovom radu. Model strojnog učenja se pokazao manje pristranim u odnosu na model s rječnikom. Naime, prilikom izrade rječnika „ručna“ ljudska klasifikacije se vrši na razini riječi, dok se kod strojnog učenja vrši na razini rečenice te s toga i dolazi do manje pogreške tj. do boljeg kasnijeg infereciranja i generalizacije. No, koji je god model odabran krajnji rezultat su kvalitetni podaci tj. klasifikacijski output (pozitivno ili negativno). Ovi podaci kao što je i objašnjeno mogu dovesti do povećanja konkurentske prednosti jedne poslovne organizacije, praćenja trendova, signala iz okoline te pravodobno reagiranje na njih. Ove hipoteze i podhipoteze su potvrđene i od strane korisnika samog sustava. Radilo se o korisnicima iz Hrvatske i ostalih zemalja Europske Unije (Engleska, Švedska) koji su testirali sustav u fazi testiranje, te prilikom objavljivanja prve javne verzije PANDORE: Neki od sljedećih koraka koji bi bili zanimljivi su definitivno integracija STORM-a u cijelu arhitekturu o čemu je bilo govora u ovom radu čime bi se dobio uvid u real-time podatke čime bi vrijednost podataka tj. ekonomska iskoristivost narasla. Osim toga bilo bi dobro vidjeti usporedbe između različitih algoritama strojnog učenja ili između različitih pristupa (rječnik, strojno učenje) ili pokušaj implementiranja nekih od drugih pristupa koji nisu prezentirani u ovom radu, a o čemu se piše u akademskoj zajednici već duže vremena. 77 Zaključak Semantička analiza, analiza mišljenja, rudarenje teksta, NLP te ostali povezani pojmovi u ovom radu nisu objašnjavani zasebno te se više posvetilo njihovoj sinergiji u rješavanju određenog konkretnog problema (analiza mišljenja s web stranica i društvenih mreža). Ovo nisu novi pojmovi već postoje odavno, no u prošlosti je bilo teže raditi zanimljive analize koje je danas moguće zahvaljujući napretku tehnologije. Primjer tome je definitivno IBM-ovo računalo Watson i njegov nastup na popularnoj američkoj televiziji, gdje je zahvaljujući upravo navedenim pojmovima te napretku tehnologije ostvario impresivne rezultate. Danas, zahvaljujući Big Data tehnologijama, i ostale tvrtke osim IBM-a te ostalih mogu raditi zanimljive analize, koje su do sada bile uglavnom rezervirane samo za velike tvrtke. Te informacije ukoliko se na pravi način iskoriste u poslovanju mogu dovesti do stvaranja dodatne vrijednost te jačanja konkurentske prednosti. Ono što se u budućnosti očekuje je sve veća popularizacija ovakvih metoda te uz podršku nove tehnologije možemo očekivati sve veće korištenje nestrukturiranih podataka u poslovanju, ali i u donošenju općedruštvenih odluka. Ovo područje predstavlja veoma zanimljiv dio znanosti koji tek treba otkriti sve svoje potencijale u budućnosti. U ovom radu su se prezentirale Big Data tehnologije, pojmovi i problemi semantičke analize, sinergija ova dva pojma – Big Data i semantička analize te se uz praktičnu studiju slučaja nastojala dokazati ili opovrgnuti postavljena hipoteza na početku ovog rada. Prikazane su neke od najčešćih tehnologija Big Data okruženja te prakse semantičke analize. Usporedile su se dvije grane semantičke analize, ona pomoću rječnik i ona pomoću strojnog učenja. Zahvaljujući projektu PANDORA teorijski dijelovi ovog rada su dobili i svoju reprezentaciju kroz modele u KNIME-u te pomoću web aplikacije izrađene za 78 potrebe projekta PANDORA. Na kraju za najoptimalnije rješenje za ovakav tip podataka pokazala se analiza mišljenja pomoću strojnog učenja. Nakon što su prikazane razne varijante analize nestrukturiranih podataka te kako je to rješeno pomoću projekta PANDORA utvrdila se kvaliteta dobivenih podataka tj. činjenica da je moguće da se dobiju kvalitetni podaci i informacije na ovaj način. Ovime je potvrđena podhipoteza o kvaliteti podataka te uslijed toga se moglo i krenuti u potvrđivanje hipoteze o ekonomskoj iskoristivosti ovih podataka. Poslovne organizacije su uglavnom orjentirane na tehnološku izvedivost s tim da se ne obraća pažnja na ekonomsku stranu ovakvih inforamcija i na njihovu potencijalnu vrijednost. Ono što se može primijetiti da sve više dolazi do iskorištavanja onih podataka koji do sada nisu bili analizirani, a mogu pomoći razumijevanju kupaca. Ono što sigurno ostaje poslovnim organizacijama na radu je činjenica da iako je moguće dobiti kvalitetnu informaciju koja je ekonomski iskoristiva, tu informaciju i dalje treba pretvoriti u znanje te kao vrhunac u mudrost. Ovo ne smije biti završni korak već nešto što će postati integrirano u kulturu jedne poslovne organizacije, a sve u cilju dostizanja tržišne mudrosti. Prema tom putu će im prije svega trebati kontrola troškova koji znaju biti veliki iako se uglavnom radi o open-source projektima. Također, kvalitetni ljudi tj. tim, kao što se moglo vidjeti i u ovom radu. 79 Literatura Knjige Charu C. Aggarwal and ChengXiang Zhai (2012) : Mining Text Data, USA, Springer Charu C. Aggarwal (2011): Social Network Data Analytics, USA, Springer Haralambos Marmanis and Dimitry Babenko (2009) : Algorithms of the Intelligent Web, USA, Manning Willi Richert and Luis Pedro Coelho (2013) : Building Machine Learning Systems with Python, UK, PacktPublishing Jacob Perkins (2010) : Python Text Processing with NLTK 2.0 Cookbook, UK, Packt Publishing Michael Manoochehri (2014) : Data just right, Introduction to Large-Scale Data & Analytics, USA, Pearson Education Matthew A.Russell (2014) : Mining the Social Web, Data mining Facebook, Twitter, LinkedIn, Google+, Github, and more, USA, O'Reilly Steven Bird, Ewan Klein & Edward Loper (2009): Natural Language Processing with Python, USA, O'Reilly Nathan Marz and James Warren (2014): Big Data - Principles and best practices of scalable realtime data systems, USA, Manning Paul Zikopoulos et al. (2013) : Harness the Power of Big Data, The IBM Big Data Platform, USA, McGrawHill Harlan Harris et al. (2013) : Analyzing the Analyzers, An Introspective Survey of Data Scientists and Their Work, USA, O'Reilly Chris Eaton et al. (2013) : Understanding Big Data, Analytics for Enterprise Class Hadoop and Streaming Data, USA, McGrawHill Ronen Feldman, and James Sanger (2007) : Text Mining Handbook: Advanced Approaches in Analyzing Unstructured Data, UK, Cambridge University Press Tom White (2012): Hadoop - The Definitive Guide, USA, O'Reilly Srinath Perera & Thilina Gunarathne (2013) : Hadoop MapReduce Cookbook, UK, Packt Publishing Belak, S. (2005). Uvod u znanosti. Šibenik: Visoka škola za turistiĉki menadţment u Šibeniku Znanstveni radovi Lada Banić, Ana Mihanović i Marko Brakus (2013) : Sentiment Analysis in Product Evaluation, Hrvatska, MIPRO konferencija Ana Mihanović, Hrvoje Gabelica, Živko Krstić (2014) : Big Data and Sentiment Analysis: Online Reviews vs. Social Media, Hrvatska, MIPRO konferencija Hrvoje Gabelica i Živko Krstić (2013) : Primjena Big Data podataka i rudarenja teksta u suvremenom poslovanju, Hrvatska, Istraživački rad Alexander Pak, Patrick Paroubek (2010) : Twitter as a Corpus for Sentiment Analysis and Opinion Mining, France, Universit´e de Paris-Sud Stefano Baccianella, Andrea Esuli, and Fabrizio Sebastiani (2010) : SENTIWORDNET 3.0: An Enhanced Lexical Resource for Sentiment Analysis and Opinion Mining, Italia, Istituto di Scienza e Tecnologie dell’Informazione Consiglio Nazionale delle Ricerche Via Giuseppe Moruzzi 1 Efthymios Kouloumpis, TheresaWilson & Johanna Moore (2011) :Twitter Sentiment Analysis: The Good the Bad and the OMG!, ICWSM, The AAAI Press 80 Bruno Ohana & Brendan Tierney (2009) : Sentiment Classification of Reviews Using SentiWordNet, Ireland, Dublin Institute of Technology, 9th. IT & T Conference Namrata Godbole, Manjunath Srinivasaiah & Steven Skiena (2007) : LargeScale Sentiment Analysis for News and Blogs, USA, Proceedings of the International Conference on Weblogs and Social Media ICWSM Ostale reference Description of Pandora demo application – basic functionality and scenarios ( INTERNO ) Detailed Technical Specifications FAIR – ( INTERNO ) Big Data Analytics as a Service Solution – PANDORA Flyer (objavljeno na web stranici PANDORE) PANDORA – web stranica Apache Foundation web stranica - http://apache.org/ comScore Media Metrix for TripAdvisor Sites (2013), Worldwide www.statisticbrain.com www.techspot.co.in Wikipedia Talend Survey Results (2012) : How big is Big Data adoptation?, USA Philip Russom (2011) : TWDI Best Practices Report - Big Data Analytics Philip Russom (2011) : TWDI Best Practices Report – Managing Big Data Fern Halper (2013) : TWDI Checklist Report – How to gain insight from text Ralph Kimball : Newly Emerging Best Practices for Big Data, White paper, Kimball Group 81 Popis slika i tablica Slika 1. Prikaz vrste podataka................................................................................................................................................................................................. 15 Slika 2. Lambda arhitektura .................................................................................................................................................................................................... 16 Slika 3. Mapiranje riječi u rečenici ......................................................................................................................................................................................... 20 Slika 4. Reduce naše dvije rečenice ...................................................................................................................................................................................... 20 Slika 5. MapReduce & HDFS .................................................................................................................................................................................................. 21 Slika 6. PANDORA Big Data arhitektura .............................................................................................................................................................................. 26 Slika 7. TWDI istraživanje ........................................................................................................................................................................................................ 28 Slika 8. Vještine analitičara i količina podataka .................................................................................................................................................................. 29 Slika 9. Podjela semantičke analize....................................................................................................................................................................................... 33 Slika 10. Izgled tablice nakon pretvorbe HBase podataka u Document ...................................................................................................................... 36 Slika 11. Prikaz razlike između formata ............................................................................................................................................................................... 42 Slika 12. Sustav za evaluaciju mišljenja ................................................................................................................................................................................ 45 Slika 13. TripAdvisor model u KNIME-u............................................................................................................................................................................... 46 Slika 14. Primjer stvarnih mišljenja na TripAdvisoru po kategorijama .......................................................................................................................... 48 Slika 15. Model za Facebook ................................................................................................................................................................................................. 50 Slika 16. Primjer izgleda završne vizualizacije koju vidi krajnji korisnik (Maybelline vs Nivea) ................................................................................ 53 Slika 17. Druga vizualizacija podataka ................................................................................................................................................................................. 54 Slika 18. Opcije prilikom dohvaćanja podataka ................................................................................................................................................................. 54 Slika 19. Faze PANDORE ......................................................................................................................................................................................................... 56 Slika 20. Logička arhitektura PANDORE .............................................................................................................................................................................. 58 Slika 21. Prvi korak izrade projekta ....................................................................................................................................................................................... 58 Slika 22. Mapiranje hotela....................................................................................................................................................................................................... 59 Slika 23. Primjer dnevnog i tjednog dohvata podataka................................................................................................................................................... 60 Slika 24. Izgled vizualizacije za Twitter - usporedba Maybelline i Nivea ..................................................................................................................... 61 Slika 25. Glavni model u KNIME-u ........................................................................................................................................................................................ 63 Slika 26. HBase Twitter Reader .............................................................................................................................................................................................. 64 Slika 27. Pretvorba String - Document ................................................................................................................................................................................ 65 Slika 28. Označavanje riječi na temelju rječnika ................................................................................................................................................................ 66 Slika 29. Faza obrade teksta ................................................................................................................................................................................................... 67 Slika 30. Izračunavanje frekvencija ........................................................................................................................................................................................ 69 Slika 31. Model strojnog učenja ............................................................................................................................................................................................ 72 Slika 32. Strojno učenje – algoritam Naive Bayes ............................................................................................................................................................. 73 Tablica 1. Vrste društvenih mreža......................................................................................................................................................................................... 32 Tablica 2. Prikaz TripAdvisor podataka................................................................................................................................................................................ 48 Tablica 3. Prikaz tablice nakon učitavanja podataka s Facebook-a .............................................................................................................................. 49 Tablica 4. Izgled tablice nakon učitavanja podataka iz HBase Twitter Readera ......................................................................................................... 51 Tablica 5. Primjer autora ......................................................................................................................................................................................................... 66 Tablica 6. Lista čestih riječi - Stop word Filter .................................................................................................................................................................... 68 Tablica 7. Primjer Porterovog stemminga .......................................................................................................................................................................... 68 Tablica 8. Lista riječi koje mijenjaju polaritet....................................................................................................................................................................... 69 Tablica 9. Usporedba 2 različita scenarija za riječ "Beautiful" ......................................................................................................................................... 71 Tablica 10. Prikaz semantičke analize za ključnu riječ "hotels"....................................................................................................................................... 71 82 Zahvala Za kraj ostaju zahvale. Želio bih se zahvaliti za uspješno završeno službeno školovanje : Svojim roditeljima i bližnjima na svoj ovoj podršci koju sam dobio od njih tokom svih ovih godina i bez kojih ovo ne bi bilo moguće Mentorici dr.sc. Maji Ćukušić s Ekonomskog fakulteta u Splitu, koja mi je još od prvih dana od kada sam upisao smjer Informatički menadžment pomogla odrediti daljnji tijek moje karijere i motivirala za ovo područje. Osim toga hvala joj za svu podršku pruženu za vrijeme dok sam bio u Udruzi IMEF Split. Za sudjelovanje na uspješno završenom prvom dijelu projekta PANDORA i iskustvu te znanju koje sam stekao želio bih se zahvaliti : Tvrtki Poslovna Inteligencija iz Zagreba, njenoj upravi, članovima svog odjela „Inovacije i razvoj“, voditelju projekta i svim svojim kolegama na povjerenju i pruženoj prilici za rad na ovom veoma zanimljivom projektu. Posebno hvala Predsjedniku uprave Draženu Oreščaninu na ukazanom povjerenju. Također, zahvaljujem se znanstveniku podataka Krešimiru Sluganu za ogromnu podršku tokom pisanja ovog rada. 83
© Copyright 2024 Paperzz