Analiza tekstova u Poslovnom dnevniku

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).

Tablica 2
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.

Tablica 2
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.

Tablica 3
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.

Tablica 4
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.



Comments powered by Talkyard.

Preplatite se

Preplatite se putem newslettera ili RSS feeda

Vidi također