Valimi moodustamineIndikaatorid ja indeksidValiidsus ja reliaablus
#000001
Tunnused ja nende tüübidAndmeanalüüsi mooduli aktiveerimineKirjeldav statistikaSeoste analüüsimineRisttabelid ja seosekordajadKorrelatsioonikordajadVõrdlusülesandedUsaldusvahemikT-testDispersioonanalüüsRegressioonimudelidFaktoranalüüsMetaanalüüs
#000004
Standardiseeritud kontentanalüüsKvalitatiivne sisuanalüüsDiskursusanalüüsVestlusanalüüsMultimodaalse diskursuse analüüsKujutiste lugemine
#000005
Meelestatuse analüüs ehk inglise keeles sentiment analysis (eesti keelde võiks selle tõlkida ka kui tundmusanalüüs) on meetod, mis võimaldab hinnata, kas teksti sõnavara on valdavalt positiivne või negatiivne. Kuigi kaasaegsed masinõppe ja kvantitatiivse tekstianalüüsi meetodid võivad meelestatuse analüüsi ka üpriski keeruliseks teha, on ta oma kõige lihtsamal kujul üks kergemini mõistetavamaid ja rakendatavaid kvantitatiivse tekstianalüüsi meetodeid.
#000007
Meelestatuse analüüs on üks lihtsamaid analüüse, kuna see kujutab endast tekstis esinevate positiivsete või negatiivsete sõnade kokku lugemist. Mida rohkem on ühes dokumendis positiivseid sõnu, seda rohkem on see dokument emotsionaalselt ehk oma meelestatuse poolest positiivne ja vastupidi – mida enam dokument sisaldab negatiivseid sõnu, seda enam on see oma meelestatuse poolest negatiivne.
#000008
Positiivsete ja negatiivsete sõnade eristamine
#000009
Näiteks sõnad nagu „õnn“ või „armastus“ väljendavad üpriski üheselt mõistetavalt positiivseid emotsioone ning sõnad nagu „kurb“ või „surm“ väljendavad üldiselt negatiivseid emotsioone. Meelestatuse analüüs loeb eelnevalt määratletud meelestatuse sõnaraamatuid kasutades kokku, kui palju on ühes tekstis positiivseid või negatiivseid sõnu. Osade sõnade emotsionaalne alatoon võib aga sõltuda kontekstist ning grammatilistest struktuuridest (näiteks eitus) ning sellistel juhtudel võib kõige lihtsam sõnaraamatupõhine meetod natuke hätta sattuda.
#000012
Positiivsete ja negatiivsete sõnade arvu põhjal on võimalik määratleda analüüsitavate tekstide erinevaid aspekte. Esmalt on võimalik uurida, kui suur osa dokumendis leiduvatest sõnadest on üleüldiselt emotsioonidega seotud, ükskõik kas siis positiivsete või negatiivsetega. Loomulikult on võimalik määratleda, kui suur osa neist sõnadest on kas positiivse või negatiivse tähendusega. Niimoodi on väga lihtsal ja esmasel viisil võimalik mõõta tekstide emotsionaalsust ning emotsionaalset alatooni või teisisõnu polaarsust. Need on ühe teksti kaks erinevat aspekti. Tekstis võib olla väga vähe sõnu, mis viitavad emotsioonidele, kuid nendest vähestest võivad kõik viidata kas positiivsetele või negatiivsetele emotsioonidele. Seega peab mõlemat aspekti eraldi arvesse võtma.
#000013
Kõige lihtsamal juhul koosneb teksti emotsionaalsus üksnes positiivsetest või negatiivsetest emotsioonidest, kuid mõned emotsioonide või meelestatuse sõnaraamatud (eriti inglise keele kohta koostatud) pakuvad ka palju täpsemaid liigitusi, mis eristavad selliseid emotsioone nagu viha, rõõm või kurbus.
#000014
Kuigi paljud lihtsamad kvantitatiivse tekstianalüüsi meetodid eeldavad, et tekstid oleksid dokument-termin maatriksi kujul, siis meelestatuse analüüsi jaoks pole see ilmtingimata vajalik. Pea meeles, et selle analüüsi kõige lihtsama vormi põhimehhanism on lihtsalt dokumentides esinevate sõnade kokku lugemine ja kategoriseerimine. Seda on võimalik teostada erinevate andmeformaatidega.
#000015
Näiteks võivad analüüsitavad dokumendid olla R-is salvestatud nimekirjana (list), kus iga nimekirja element on ühte teksti sisaldav tekstiline vektor ning iga element selles vektoris on sõna ühes dokumendis. Sellisel juhul peaks analüüsima igat elementi selles nimekirjas, mis sisaldab ühe dokumendi kõiki sõnu, ning kokku lugema kas siis positiivsed või negatiivsed sõnad, mis seal esinevad.
#000016
Analüüsitavad dokumendid ja nendes sisalduvad sõnad võivad esineda ka dokument-termin maatriksi kujul. Dokument-termin maatriks on andmetabel, mis sisaldab endas informatsiooni kõikide dokumentide sõnavara kohta. Selles andmetabelis on iga rida üks dokument ja iga tulp vastab ühele sõnale kõikide analüüsitavate dokumentide kogusõnavaras. Seega näitavad andmetabelis kujutatud arvud, kui palju iga sõna kõikide dokumentide kogusõnavarst igas dokumendis esines. Taolise andmeformaadi korral peaks meelestatuse analüüsi läbi viima mõnevõrra erinevalt. Sellisel juhul oleks vaja kindlaks teha, millistes tulpades esinevad sõnad vastavad millistele emotsioonidele. Seejärel peaks võtma iga rea selles maatriksis ning kokku liitma positiivsete ja negatiivsete emotsioonidega seotud sõnade esinemissagedused.
#000017
R-is on võimalik meelestatuse analüüsi teostada mitme erineva paketi kaudu ning siin on keskendutud neist ühele – quanteda (lühend sõnadest quantitative analysis of textual data). See on üks vähestest pakettidest R-is, mis pakub suhteliselt lihtsa, kuid samas mitmekesise tööriistakasti tekstiliste andmete analüüsiks ning on hästi integreeritud teiste tekstianalüüsi tööriistadega, mis sisalduvad teistes enam levinud pakettides.
#000018
Quanteda võimaldab ka lihtsalt teostada tekstianalüüsiks vajalikud eelsammud (tekstide puhastamine ja ette valmistamine), nagu näitaks kirjavahemärkide ja numbrite eemaldamine, suurte tähtede muutmine väikesteks tähtedeks ning stopp-sõnade eemaldamine. Vaikimisi on see mõeldud ingliskeelsete tekstide analüüsiks, kuid ta võimaldab teha analüüse ka teistes keeltes.
#000019
Oletame, et analüüsi alguses on R-s kõik analüüsitavad dokumendid elemendid tekstilises vektoris. Kõik sõnad ja kõik laused – kogu tekst tervikuna – on ühes „tükis“. See on tavapärane olukord juhul, kui oled analüüsitavad tekstid oma arvutist R-i sisse laadinud või kui oled need tekstid kusagilt Internetist kokku kogunud. Need suured kogu teksti sisaldavad tükid tuleks osadeks teha, puhastada ja korrastada enne, kui neid on võimalik analüüsida.
#000020
Nüüd on suured teksti „tükid“ jagatud väiksemateks elementideks, sõnade vektoriteks. Need sõnade vektorid sisaldavad ka kirjavahemärke ja numbreid, mida on samuti võimalik eemaldada funktsiooniga tokens(). Selleks tuleb funktsiooni argumentidele remove_numbers ja remove_punct anda väärtus TRUE. Seega näeks see funktsioon välja selline:
#000022
tokens(my_data, remove_numbers = TRUE, remove_punct = TRUE) ,
#000023
kus my_data on see objekt, mis sisaldab neid tekste, mida soovitakse analüüsida.
#000024
Stopp-sõnad on sellised sõnad, mis ei sisalda tähenduslikku sisu (näiteks sidesõnad) ning seetõttu on nad mõistlik ja võimalik paljudest analüüsidest välja jätta. Stopp-sõnade eemaldamiseks on võimalik kasutada funktsiooni tokens_remove(). Esimese argumendina sellele funktsioonile tuleb anda objekt, mis sisaldab analüüsitavaid tekstielemente (token). Argumendiga pattern tuleb funktsioonile anda stopp-sõnade nimekiri. Inglise keeles sisalduvaid stopp-sõnu on R-i võimalik laadida funktsiooniga stopwords("en"), mis annab väljundiks stoppsõnade nimekirja. Seega näeks funktsioon tokens_remove() välja selline:
#000025
Kui seda funktsiooni rakendada, siis annab see väljundiks samad tekstide sõnade vektorid, kuid ilma stopp-sõnadeta.
#000028
Nüüd on tekstid valmis kõige lihtsama meelestatuse analüüsi teostamiseks, et emotsioonidega seotud sõnad kokku lugeda. Selleks on vaja vastavat sõnaraamatut, mis ütleb, millised sõnad on seotud positiivsete ja millised negatiivsete emotsioonidega.
#000030
Kui tegeleda ingliskeelsete tekstidega, siis sisaldab quanteda sõnaraamatut nimega Lexicoder sentiment dictionary. Selles on 4 klassifikatsiooni: positiivsed ja negatiivsed sõnad, aga ka positiivsete sõnade eitused ja negatiivsete sõnade eitused. Lihtsa analüüsi puhul võib esmalt kokku lugeda üksnes positiivsete ja negatiivsete sõnade esinemissagedused ning jätta nende eitused esialgu mängust välja.
#000031
Kuidas neid positiivseid ja negatiivseid sõnu kokku lugeda? Quanteda paketis on seda võimalik teha funktsiooniga tokens_lookup(). Esimese argumendina tuleb talle anda objekt, mis sisaldab analüüsitavaid tekste ja sõnu. Argumendiga dictionary tuleb talle anda vastav sõnaraamat. Lexicoder sentiment dictionary on R-is ja quanteda-s allpool välja toodud nime all ning kui soovid keskenduda ainult kahele esimesele kategooriale (positiivsed ja negatiivsed sõnad, kuid mitte nende eitused), siis näeb see funktsioon välja selline:
#000032
Kui seda funktsiooni rakendada, siis annab ta väljundiks objekti (nimekiri, list), kus iga element vastab ühele analüüsitavale dokumendile ning sisaldab termineid „positive“ ja „negative" iga korra kohta, kui positiivne või negatiivne sõna esines vastavates dokumentides. Nüüd on võimalik kokku lugeda, kui palju nendesse kategooriatesse kuuluvaid sõnu esines analüüsitavates dokumentides.
#000033
Sellisel viisil on võimalik saada põhilised toorandmed dokumentides sisalduvate emotsioonide kohta. Analüüsiga edasiminekuks on palju erinevaid võimalusi. On võimalik arvutada positiivsete sõnade suhe negatiivsetesse sõnadesse, et hinnata vastandlike emotsioonide tasakaalu. Samuti on võimalik arvutada emotsioonidega seotud sõnade osakaal kõikidest dokumendis sisaldunud sõnadest selleks, et määratleda dokumendi üldise emotsionaalsuse tase.
#000034
Need on kirjeldavad analüüsid, kuid emotsioone on võimalik kasutada ka dokumentide teiste omaduste seletamiseks, nagu näiteks dokumendi loomise aeg või selle autor. Neid andmeid kasutades on võimalik luua mudeleid hüpoteeside testimiseks dokumentide omaduste kohta. Näiteks on uuritud, kas (riigijuhtide) öösel postitatud Twitteri säutsud on teistsuguse meelestatusega kui päeval postitatud säutsud.
#000035
R-is on olemas pakett nimega "sotu", mis sisaldab USA presidentide iga-aastaseid nö "olukorrast riigis" kõnesid (State of the Union Address). Neid võib kasutada, et teostada lihtsamat sorti meelestatuse analüüs. Allpool on välja toodud terviklik kood, mis sellise analüüsi teostab ning selle ühed võimalikud tulemused joonisena. Kui vastavad paketid on installeeritud, siis see kood töötab igas arvutis ja see näide on võimalik ise läbi teha.
#000036
data(sotu_text) # Siin on tekstid.
#000037