Prije nekoliko tjedana, Mislav je započeo seriju eksplorativno-analitičkih postova koji se temelje na specifičnoj jezičnoj analizi teksta. Prvi post je ukazao na eksplorativne potencijale koje takva analiza omogućava na temelju velikog broja tekstova Vecernjeg lista, objavljenih u nešto više od zadnjih godinu dana. Drugi post analitički razmatra neke elemente radikalizma u domaćem političkom diskursu.
Ovaj post nastavak je započete serije postova kojim želim ukazati na potencijal nekih analitičkih metoda koje se, na engleskim tekstovima već uobičajeno koriste.Jedna od najzanimljivijih, svakako, je analiza raspoloženja ili analiza sentimenta (sentiment analysis poznata još kao i opinion mining i emotion AI). Tekstovi za analizu preuzeti su s Poslovnog dnevnika za razdoblje od 01.01.2016. do 01.04.2019. i uključuju 29083 tekstova.
Prije svega, želim istaknuti nekoliko tehničkih detalja vezanih uz analizu teksta u R-u. Podrška za analizu teksta u R-u omogućena je u okviru dva glavna pristupa. Prvi se pristup odnosi na tidytext
paket koji se temelji na tidy formatu i koji zbog kompatibilnosti s Tidyverse
alatima smatram vrlo intuitivnim. Takva kompatibilnost znatno olakšava i obogaćuje mogućnosti manipulacije podatcima. Izvrsna knjiga Text Mining with R koja pokriva sve bitne tehničke aspekte tidytext pristupa analizi teksta, a koju sam koristio kao glavnu referencu u analizi, dodatna je prednost navedenog pristupa. Drugi pristup temelji se na paketima tm
i quanteda
koji ulazne podatke zatijevaju u matričnom formatu ( document-term matrix ), a funkcije za manipulaciju i analizu podataka ograničene su u okviru paketa. Tranzicija od matričnog formata prema tidy data formatu i obrnuto je omogućena u tidytext
paketu što, po mome mišljenju, tidytext pristup čini općenito boljom polazišnom točkom u analizi teksta.
Analiza raspoloženja (sentimenta) nije čvrsto definirana stvar pa smjer i priroda analize ovisi o kreativnosti. Polazište analize je pročišćeni tekst (prvi pristup) ili matrica dokumenta (drugi pristup) koji se potom spaja s leksikonom sentimenta da bi se riječima u spojenom tekstu pripisala vrijednost iz leksikona. Jasno je da kvaliteta analize ovisi kompatibilnosti leksikona i specifične prirode analize. Za R su implementirani različiti leksikoni sentimenta: prilagođeni specifičnim namjenama (npr. analiza sentimenta financijskih tekstova, analiza društvenih mreža, političkog sentimenta i dr.) i prirodi analize (npr. pozitivni vs. negativni sentiment, aspekti pozitivnog vs. negativnog sentimenta, sentiment kojem je pripisana numerička vrijednost). Nažalost ne postoji podrška za hrvatski jezik.
Zbog toga sam, analizi u R-u, prilagodio Croatian Sentiment Lexicon koji je nastao u sklopu FER-ovog projekta Text Analysis and Knowledge Engineering Lab. Croatian Sentiment Lexicon sadrži dva leksikona: prvi je izrađen ručno pri čemu je 1200 riječi razvrstano po kategorijama: neutralno, negativno i pozitivno, a drugi sadrži 37000 riječi kojima je algoritamski pripisana numerička vrijednost pozitivnosti i negativnosti. U analizi sam koristio oba riječnika i napravio standardnu pripremu teksta koja uključuje tokenizaciju i brisanje “stop rijeci” pri čemu sam, u R-u inplementirani leksikon hrvatskih “stop riječi” proširio nekim comon sense pojačanjima. Lemizacija (grupiranje riječi istog korijena: npr. riječi “godina” i “godine” tretirane su kao dvije različite riječi umjesto kao jedna riječ “godin”) nije provedena pa rezultati sadrže nešto pristranosti. Problem s lemizacijom je u tome što u R-u nije implementirano rješenje za hrvatski jezik.
Analizu je korisno započeti pregledom najfrekventnijih riječi jer to daje okvirni prikaz najzastupljenijih tema i ideja. Tablica 1 prikazuje 30 najčešćih riječi u tekstovima Poslovnog dnevnika. Najčešće korištene riječi su “posto”, “kuna”, “godine”, “hrvatska”, te niz poslovnih riječi poput “cijene” , “tržište”, “tvrtke” ali i poneki optimistični makroekonomski pojam kao “rast”. To je i očekivan rezultat jer je riječ o informativno-poslovnim novinama, primarno orjentiranima na Hrvatsku. Dodatno je prikazan i worldCloud
koji može poslužiti kao intuitivna vizualizacija najčešćih riječi (50 riječi;najvažnije riječi su naglašene bojom i veličinom).
rijec | broj |
---|---|
posto | 56,075 |
kuna | 47,944 |
godine | 35,753 |
milijuna | 29,754 |
više | 27,960 |
hrvatskoj | 17,227 |
godina | 13,324 |
hrvatske | 13,150 |
eura | 12,431 |
ima | 12,335 |
kaže | 11,770 |
dana | 11,406 |
može | 11,119 |
rast | 11,079 |
eu | 11,077 |
hrvatska | 10,856 |
tisuća | 9,982 |
cijena | 9,884 |
odnosu | 9,447 |
tvrtke | 9,361 |
mogu | 8,810 |
cijene | 8,519 |
tržištu | 8,464 |
godinu | 8,367 |
milijardi | 8,091 |
sada | 7,680 |
danas | 7,598 |
broj | 7,453 |
radi | 7,431 |
gotovo | 7,358 |
Tablica 2 prikazuje najčešće korištene riječi u člancima prema Crosentilex Gold leksikonu, izrađenom ručno za 1200 riječi kategoriziranih u negativnu, pozitivnu i neutralnu kategoriju. Njačešće riječi slične su kao u svim tekstovima (Tablica 1;bez leksikona), no pregled riječi ipak malo preciznije ocrtava bussiness i analitički ton Poslovnog dnevnika.
word | n |
---|---|
kuna | 47,944 |
godina | 13,324 |
rast | 11,079 |
cijena | 9,884 |
broj | 7,453 |
dio | 7,345 |
promet | 6,671 |
razvoj | 6,231 |
vrijeme | 6,185 |
projekt | 6,177 |
dionica | 5,805 |
tržište | 5,228 |
način | 5,215 |
tvrtka | 5,114 |
vlada | 4,901 |
kompanija | 4,623 |
predsjednik | 4,605 |
ministar | 4,570 |
pad | 4,482 |
sustav | 4,471 |
Iz tablice 3, koja pokazuje proporciju riječi po kategorijama sentimenta, vidljivo je da je Poslovni dnevnik pretežito neutralnog (755 tisuća riječi) karaktera, što se uklapa u tržišni profil tipičnog business portala. Pozitivnih (130 tisuća) riječi znatno je više nego negativnih (41 tisuću) pa se može općenito zaključiti da su tekstovi u optimistično intonirani. Zanimljivo bi bilo vidjeti je li optimizam povezan s pozitivnim poslovnim ciklusom, no za to su potrebne nešto dulje serije podataka.
sentiment | % udio | broj riječi |
---|---|---|
NEUTRALNO | 81.5 | 754,391 |
NEGATIVNO | 4.5 | 41,249 |
POZITIVNO | 14.0 | 129,849 |
U Tablici 4 su prikazani rezultati dobiveni na temelju Crosentilex leksikona, koji sadrži znatno veći broj riječi nego Gold varijanta, ali u kojem je sentiment definiran algoritamski. Vidljivo je da pozitivni sentiment ima viši score od negativnog u cijelom razdoblju, ali uz zanemarivo malu razliku. To je na tragu rezultata dobivenih na temelju Gold leksikona koji također ukazuje na pretežito neutralan sentiment Poslovnog dnevnika.
sentiment | score |
---|---|
NEGATIVNO | 392,871 |
POZITIVNO | 397,423 |
Kretanje Crosentilex Gold sentimenta kroz vrijeme (mjesečne sume) prikazano je na grafikonu 1. Neutralni sentiment je najvolatilniji i ima blago opadajući trend dok pozitivni sentiment znatno manje oscilira i uglavnom zadržava trend. Negativni sentiment pretežito je konstantan na relativno najnižoj razini. Na grafikonu 2 prikazano je kretanje Crosentilex Machine sentimenta. Riječ je kategorizirana kao pozitivna ako je omjer pozitivnog i negativnog scora veći od 1 i obrnuto ako je omjer manji od 1. Vidljiv je blago negativan i volatilan trend broja pozitivnih i negativnih riječi, najsličniji kretanju neutralnog Crosentilex Gold sentmenta. Pri tome je broj pozitivnih riječi po Crosentilex Machine riječniku nešto viši od broja negativnih u cijelom razdoblju. Zanimljivo je obratiti pozornost na cikličku prirodu Crosentilex Machine sentimenta na razni godine. Primjetni su ciklusi rasta i pada sentimenta na (otprilike!) kvartalnoj razini: početkom godine dolazi do rasta sentimenta koji potom pada do ljeta, a ponovno počinje rasti do pred kraj godine. Najviše poslovnog optimizma, dakle, postoji početkom godine i pred kraj ljeta.
Ovaj post je dao prikaz analize sentimenta Poslovnog dnevnika na temelju FER-ovih Crosentilex leksikona. Rezultati pokazuju da su leksikoni vjerodostojni i primjenjivi u analizi, posebice stoga što su nalazi algoritamski i ručno napravljenih leksikona međusobno slični. Analiza pokazuje da je Poslovni dnevnik pretežito neutralan, analitički intoniran portal. Zanimljivo je također primjetiti da se cikličko kretanje sentimenta u tekstovima odvija na približno kvartalnoj razini pri čemu su početak godine i kasno ljeto razdoblja s najviše optimizma.
Preplatite se
Preplatite se putem newslettera ili RSS feeda