SAŽETAK: 
Cilj ovog rada je skretanje pažnje na mogućnost korišćenja teksta na vebu obeleženog emotikonima i drugim određivačkim niskama u sentimentalnoj analizi jezički nezavisnog korpusa. 
On uvodi nekoliko novina u postojeću istraživačku okosnicu i testira njihovu uspešnost. 
Takođe, prikazuje softverski alat specijalno napravljen u tu svrhu, objašnjava sistem njegovog rada u izradi baze podataka sa pojmovima koji odražavaju određeni stepen osećanja i daje upustvo za njegovo korišćenje. 
Osim toga, prikazuje i softverski alat za testiranje baze podataka i daje primere analize dobijenih rezultata.  
KLjUČNE REČI: istraživanje podataka, polaritet osećanja, ekstrakcija informacija, emotikoni, tekst na vebu.  
Prilikom izrade softvera za razumevanje prirodnog jezika, široko su prihvaćena dva pristupa: 
– Softver koji nema duboko razumevanje značenja teksta, već samo gramatike jezika kojim je on napisan, što omogućava širu primenu. 
– Softver koji ima dublje razumevanje samog značenja teksta, često ograničen na jednu ili samo nekoliko oblasti koje pokušava da razume i pretežno se koristi za klasifikaciju tekstova.  
Sistemi zasnovani na analizi osećanja dodeljuju tekstu vrednosti nad parametrima osećanja, gde veći broj parametara znači mnogo veću kompleksnost definisanja.  
Pod pretpostavkom da se prilikom sravnjivanja svih mogućih parametara na polaritet osećanja ne dolazi do velikog gubitka informacija, i da mašina može da odluči između više izbora merenjem jednog jedinog parametra, zadatak se svodi na određivanje toga šta je pozitivno, a šta negativno.  
U cilju što ekonomičnijeg pravljenja inteligentnog sistema, ne treba da se zanemari ijedan resurs koji stoji na raspolaganju i koji može potencijalno da bude od koristi. 
Osnovna ideja ovog istraživanja je korišćenje metoda istraživanja podataka za pronalaženje metapodataka – određivača, koje korisnici društvenih mreža nenamerno ostavljaju u svojim porukama (u obliku emotikona ili jezički-univerzalnih ustaljenih fraza) i dodeljivanje vrednosti pozitivnosti pojmovima u skupu u kojem se oni nalaze. 
Kako su određivači jezički nezavisni, i ovaj sistem bi bio jezički nezavistan. 
Mogao bi, ukoliko se ispostavi kao validan, da omogući korišćenje metoda mašinskog učenja nad ogromnim korpusom tekstova unapred obeleženih određivačima.  
Godine 2005. objavljena je serija eksperimenata sa klasifikacijom raspoloženja postova na internet blogovima, koja je poslužila kao osnova za mnoga buduća istraživanja (Mishne, 2005). 
Ovi eksperimenti sastojali su se od evidencije pojmova koji su se pojavljivali u postovima za koje su sami autori tvrdili da su odražavali određeno raspoloženje dok su ih pisali. 
Napravljeni su indeksi pojmova i izračunata je njihova frekvencija u postovima koji su poistovećivani sa jednim od devet različitih raspoloženja: zabavljenost, umor, sreća, radost, dosada, osećaj uspeha, pospanost, zadovoljstvo i uzbuđenje. 
Novi postovi su zatim testirani na frekvenciju reči kako bi se utvrdilo raspoloženje autora koji ih je pisao. 
Rezultati su upoređeni sa ljudskom procenom istih postova i zaključeno je da mašina procenjuje raspoloženje autora samo malo lošije od čoveka.  
Na Univerizitetu u Tokiju je 2009. godine objavljeno istraživanje u okviru koga se u tekstu analiziralo devet raspoloženja, korišćenjem kompleksnih konačnih automata koji prepoznaju gramatičke strukture teksta (Neviarouskaya et. al., 2009). 
Iste godine istraživači sa Univerziteta Stanford u Kaliforniji predstavili su novi sistem analize veb-postova korišćenjem algoritama koji su trenirani da prepoznaju emotikone i koji su dodeljivali pozitivnu ili negativnu vrednost raspoloženja porukama na Twitter platoformi (Go et. al., 2009). 
Cilj istraživanja bio je da se napravi sistem za klasifikaciju postova, kako bi potrošači mogli da istraže stav prethodnih kupaca pre kupovine nekog proizvoda. 
Nekoliko različitih algoritama za mašinsko učenje trenirano je sa osam emotikona (pet pozitivnih i tri negativna), a rezultati su pokazali da je njihova preciznost iznad 80% u pogađanju raspoloženja u postovima.  
Istraživači sa Hebrejskog univerziteta u Jerusalimu su 2010. godine sproveli još jedno slično istraživanje raspoloženja izraženog u postovima na platformi Twitter, uzimajući u obzir, pored 15 emotikona, i 50 tagova,1 što je njihov originalni doprinos (Davidov et. al., 2010). 
Algoritmi koji su trenirani na tagovima, takođe su pokazili uspešnost u prepoznavanju raspoloženja posta.  
U pomenutim istraživanjima emotikoni se u tekstu tretiraju kao niske karaktera eksplicitnog značenja. 
Drugačiji pristup predložili su 2010. godine istraživači sa Hokaido univerziteta u Saporu. 
Nezadovoljni dotadašnjim bazama emotikona i njihovim vrednostima, bavili su se pre svega time kako da njihovu vrednost utvrde što tačnije. 
Ideja je bila da se emotikoni tretiraju kao struktura sastavljena od zasebnih elemenata koji predstavljaju oči i usta. 
Kompozitni delovi posebno su obrađivani kako bi se izračunala njihova vrednost. 
Kada su napravili svoju bazu u njoj su se emotikoni ocenjivali prema deset mogućih osećanja: bes, negodovanje, uzbuđenje, strah, dopadanje, sreća, olakšanje, sramota, tuga i iznenađenje (Ptaszynski et. al., 2010). 
Ovo istraživanje je kasnije prošireno, pa su 2011. godine objavili rad na temu istraživanja emotikona u kojem su emotikoni definisani kao delovi prirodnog jezika, te je predloženo da njihovo istraživanje bude uključeno u istraživanja prirodnog jezika (Ptaszynski et. al., 2011).  
Ovaj eksperiment ima cilj da isproba novi pristup istraživanju teksta ekstrakcijom emotikona na novi način, kombinacijom sledeće tri ideje: 
– Emotikonima koji će se koristiti u eksperimentu neće se dodeliti diskretne vrednosti poput pozitivno ili negativno već će im biti dodeljena vrednost na skali od najpozitivnije do najnegativnije. 
Ovo će se odraziti i na pojmove čija će vrednost, takođe, biti dodeljena na ovoj skali. 
– Koristiće se isključivo univerzalne određivačke niske nezavisne od specifičnog jezika. 
Cilj je da se napravi u potpunosti jezički nezavistan sistem što bi umnogome proširilo mogući korpus učenja. 
– Umesto zasebnih poruka, poput onih na platformi Twitter, koristiće se poruke koje su deo konverzacije. 
Cilj ovoga je da se testira mogućnost delovanja određivača ne samo na poruku u kojoj se nalaze, već i na poruke u neposrednoj blizini.  
Dodatni rezultat ovog eksperimenta su i dva softverska alata, specijalno napravljena radi obavljanja eksperimenta. 
Ovi programi će omogućiti budućim istraživačima da testiraju slične ideje, a detaljno objašnjenje rada softvera može pomoći i pri izradi potpuno novog, boljeg i potpunijeg alata.  
Osnova ideja ovog eksperimenta jeste da dokaže da je moguće: 
– jezički nezavisno sačiniti invertovani indeks pojmova nad korpusom tekstova koji sadrži skup poznatih određivača. 
– pomoću tih određivača automatski dodeliti pojmovima vrednosti na skali pozitivno-negativno, koji odražava stav ljudi o tim pojmovima.  
Eksperiment se sastoji od dva dela: 
– automatska izrada baze podataka koja sadrži invertovani indeks pojmova i njihovih vrednosti, korišćenjem softverskog alata specijalno napravljenog za ovaj eksperiment. 
– testiranje vrednosti pojmova iz baze podataka upoređivanjem sa iskazima ljudi i korišćenjem softverskog alata za testiranje koji je namenski napravljen za baze podataka koje su produkt prvog dela eksperimenta.  
Baza podataka, produkt ovog eksperimenta, okuplja na jednom mestu pojmove (reči koje se javljaju u razgovorima) i vrednosti raspoloženja koje oni odražavaju (ukoliko postoje) u brojčanom obliku. 
Vrednosti su izračunate u odnosu na to u kojoj blizini u tekstu u odnosu na posmatrani pojam se javljaju određivači vrednosti, koji je oblik tih određivača i koja je njihova vrednost. 
Određivači vrednosti mogu biti emotikoni ili ustaljene fraze koje su u razgovoru javljaju, a koje po prirodi nisu univerzalnog značenja i odražavaju pozitivan ili negativan stav, zamenjujući tako u pisanom tekstu izraze lica i intonaciju.  
Intenzitet vrednosti određivača direktno utiče na intenzitet vrednosti koju on prenosi pojmu. 
Takođe, što je određivač bliži pojmu, to će se njegova vrednost više odraziti na vrednost samog pojma.  
Kako bi formiranje ovakve baze bilo uspešno i njen konačni ishod zadovoljavajući, potrebno je zadovoljiti tri preduslova: 
– korpus prikupljenih tekstova mora da bude organizovan na određen način; 
– prikupljeni tekstovi i poruke moraju da sadrže određivače koji bi doprineli dodeli vrednosti pojmovima koji se uz njih nalaze; 
– određivači moraju imati unapred određene vrednosti.  
U nastavku teksta biće detaljno objašnjeno kako je napravljena baza podataka za ovo istraživanje, od prikupljanja samog korpusa tesktova do izvoza konačne i potpune baze podataka, koja se onda može koristiti na više načina.  
Polazna ideja je bila da se baza kao rezultat ovog istraživanja zasniva na korpusu tekstova koji sadrže prepisku i u okviru nje određivače da izraze pozitivne ili negativne stavove sagovornika. 
Za ovaj eksperimnet korišćene su datoteke koje sadrže istoriju dopisivanja korisnika na društvenoj mreži Facebook, za čiju je pripremnu obradu pripremljena odgovarajuća XSL transformacija (objašnjeno u odeljku 3.1). 
Nekolicina dobrovoljaca je ove datoteke preuzela sa zvanične veb-stranice i prosledila ih autoru ovog rada kako bi bile uključene u korpus i upotrebljene u istraživanju.  
Prikupljeno je i korišćeno šest datoteka (od šest korisnika) veličine od 1,85MB do 167,09MB. 
One zajedno sadrže 3.884 razgovora 2019 različitih korisnika, i 1.843.826 poruka koje su ti korisnici međusobno razmenili. 
Sadržaj ovih poruka poslužio je prilikom pravljenja baze za ovo istraživanje. 
Time su ispunjena prva dva prethodno navedena preduslova.  
Vrednosti određivača dobijene su metodom ankete koja je sprovedena na internet platformi Google forms, kojoj su ljudi mogli da pristupe putem hiperlinka objavljenog na društvenim mrežama ili prosleđenog od strane drugih učesnika. 
Učesnici ankete su dobili zadatak da zadatim emotikonima i frazama dodele vrednost između 0 i 10, gde 0 predstavlja najveći intenzitet negativnog raspoloženja, a 10 najveći intenzitet pozitivnog raspoloženja. 
Bilo im je naloženo da se pri ocenjivanju vode time kako određivač odražava njihovo osećanje kada ga šalju ili kako ga tumače u primljenoj poruci. 
Učesnici ankete su takođe imali mogućnost da sami predlože dodatne određivače za koje su smatrali da su relevantni i predlože njihove vrednosti.  
U periodu od 30 dana 389 učesnika ankete ocenilo je 19 predloženih određivača i predložilo dodatna 22, od kojih je 9 prihvaćeno. 
Rezultati su se razlikovali od određivača do određivača – negde su rezultati bili ujednačeniji, dok negde nisu (slika 1). 
Po završetku ispitivanja, za vrednost svakog određivača uzeta je aritmetička sredina skupa vrednosti koje su ispitanici prosledili (ili predložili za 9 naknadno dodatih određivača).  
Kako bi vrednosti bolje oslikale ono što treba da predstavljaju – tačku na skali negativno-pozitivno – one su preslikane iz skupa (0; 10) na skup ( 1; 1), što je učinjeno primenom formule:  
Tako je vrednost koja odgovara negativnom raspoloženju najvećeg intenziteta postala 1, dok je vrednost koja odgovara pozitivnom raspoloženju najvećeg intenziteta postala 1. 
Izračunat je, takođe, univerzalni faktor korekcije kojim su sve vrednosti pomnožene. 
Za ovaj faktor uzet je količnik najveće vrednosti 1 i vrednosti određivača sa najvećim pozitivnim intenzitetom 0; 81, tako da određivač <3, koji prema učesnicima u anketi odražava pozitivno raspoloženje najvećeg intenziteta, dobio maksimalnu vrednost 1. 
Time što su svim određivačima dodeljene odgovarajuće vrednosti ispunjen je treći uslov za formiranje baze.  
Za izradu baze podataka zadužen je bio softver, napravljen specijalno za potrebe ovog istraživanja. 
Napisan je na programskom jeziku C# i može se pokrenuti na Windows platformi, koristeći bilo koju verziju ovog operativnog sistema koja radi na 64 bita. 
Korisničko okruženje je predusretljivo i u potpunosti na srpskom jeziku. 
Cilj pri koncipiranju i izradi ovog softvera bio je da bilo koji istraživač koji govori srpski može da ga samostalno koristi, kreira nove baze i upotrebi ga za nova buduća istraživanja.  
Zadatak softvera je da ulaznu datoteku, koja je u odgovarajućem obliku, kroz sedam koraka transformiše u bazu podataka koja sadrži pojmove koji su u toj datoteci pronađeni i njihove vrednosti na skali negativno-pozitivno zavisno od određivača koji se nalaze u odgovarajućoj blizini pojma. 
U narednom poglavlju biće objašnjeni koraci automatske izrade baze podataka.  
Pripremna obrada obavlja se nad datotekom koju korisnik sam bira pritiskom na dugme Pronađi datoteku. 
Tada se otvara Windows Ex-plorer katalog u kojem korisnik na uobičajen način bira datoteku sa lokalnog računara. 
Alat trenutno podržava samo datoteke koje sadrže istoriju dopisivanja korisnika na društvenoj mreži Facebook, i jedini format datoteke koji korisnik može da odabere je htm. 
Korisnik nastavlja dalje pritiskom na dugme Preprocesiraj i transformiši korak po korak (slika 2).  
Kako softver koristi XSL transformacije, osnovni preduslov je da njegov ulaz bude dobro formirana XML datoteka. 
Datoteka koju je korisnik odabrao (slika 3) najpre se očisti od svih znakova koji mogu smetati pri proveri njene dobre formiranosti. 
To se obavlja korišćenjem funkcije Regex. 
Replace i regularnog izraza [\u0000-\u001F], koji pronalazi u datoteci pojavljivanje prva 32 karaktera ASCII skupa i zamenjuje ih praznom niskom. 
Radi dodatnog obezbeđivanja dobre formiranosti nove datoteke karakter & se takođe zamenjuje razmakom i uvodi se novi koreni element.  
Pripremna obrada se završava transformacijom strukture datoteke iz početne u željenu, koja je obradiva (slika 4). 
Ovom prilikom se odstranjuju svi čvorovi čija deca ne sadrže poruke koji su korisnici društvene mreže razmenili. 
Jedini čvor koji se čuva je <div class="contents"> (slika 3) u kojem su sadržane poruke. 
Vrši se prestrukturiranje ovih čvorova, nova datoteka se čuva i time se pripremna obrada završava.  
Ekstrakcija određivača obavlja se iz dva dela. 
Prvi deo ekstrakcije se sastoji iz zadavanja određivača koji će se pretražiti i vrednosti koje oni označavaju. 
Određivači i vrednosti se mogu zadati jedan po jedan, a ovaj korak se može i preskočiti. 
Ukoliko se preskoči, softver će automatski učitati podrazumevane određivače i njihove vrednosti (tabela 2.2).  
U katalogu za napredno iskopavanje (text mining)(slika 5) izloženi su svi podrazumevani određivači i njihove vrednosti. 
Vrednosti se menjaju ručno, putem tekstualnog polja pored svakog od izraza. 
Ukoliko je neki određivač nepoželjan, njegovu vrednost treba zameniti karakterom "/" i on neće biti korišćen prilikom iskopavanja. 
U slučaju da korisnik želi da testira neki novi određivač, može da koristi dugme dodaj emotikon pri dnu stranice, nakon što je popunio obavezna polja za izraz i vrednost. 
Ukoliko uneta vrednost određivača nije u opsegu od -1 do 1 program je neće prihvatiti i korisnik će dobiti poruku o neuspešnom dodavanju novog određivača. 
Maksimalni broj određivača koji se mogu koristiti je 36.  
Napredni korisnik može da izmeni tekstualnu datoteku data/emoticons.txt koja sadrži podrazumevane vrednosti određivača. 
U svakom trenutku, određivači se mogu vratiti na podrazumevana podešavanja iz pomenute datoteke, ali se i nova podešavanja mogu presnimiti preko postojećih. 
Obe opcije se aktiviraju pritiskom na odgovarajuće dugmiće koji se nalaze na dnu ekrana (slika 5). 
U oba slučaja, zbog mogućeg nepovratnog gubitka podataka, korisnik će morati da potvrdi proces u dodatnom dijalogu koji će se pojaviti na ekranu.  
Nakon što je korisnik zadovoljan podešavanjima može preći na drugi deo ekstrakcije koji se obavlja pritiskom na dugme ekstraktuj vrednosti iz teksta na kartici za proizvodnju (slika 7). 
Pre pritiska na ovo dugme korisnik može, ali to nije obavezno, da odabere polje Koristi predodređene regularne izraze za poboljšanu pretragu, što bi trebalo da dovede do ekstrakcije većeg broja određivača iz teksta.  
Izvršavanje započinje proverom obeleženosti opcionog polja. 
Ukoliko je obeleženo, tekst prolazi kroz niz Regex. 
Replace funkcija koje pronalaze unapred poznata odstupanja od uobičajenog ispisivanja nekolicine određivača. 
Najpre se ispravljaju automatska prevođenja karaktera u XML-u. Kako ovaj deo transformacije ne zahteva dobro formiran XML dokument, entitetska referenca < (oznaka za početak entitetske reference & je prilikom preprocesiranja zamenjena razmakom) zamenjuje se karakterom <, kako bi emotikon <3 mogao biti pronađen u tekstu. 
Entitetska referenca 039 zamenjuje se karakterom ’, kako bi emotikoni poput :’( mogli biti pronađeni. 
Niska :- zamenjuje se samostalnim karakterom : , kako bi u iskopavanje bili uključeni i emotikoni sa nosem tipa :-D ili :-(. 
Sva ćirilična slova koja se koriste u unapred odabranim određivačima se transliterišu u latinicu kako bi se ti emotikoni pronašli i kod korisnika koji koriste ćirilicu (:D, hD ). 
Sve varijante emotikona xD, :S i o.o zapisane velikim i malim slovima, pretvaraju se u osnovni format. 
Počeci hiperlinkova http:// i ht-tps:// zamenjuju su neutralnom karakterskom niskom yy, kako ne bi bili pogrešno protumačeni kao emotikon :/ . 
Konačno, regularni izrazi [a|h|A|H][a|h|A|H][h|H][a|A][h|H][a|h|A|H] i [h|H][a|A][h|H][a|A] se koriste kako bi bilo pronađeno što više različitih primera izražavanja smeha, a pronađeni izrazi se zamenjuju sa hahaha odnosno haha.  
Ukoliko opcija čišćenja i ujednačavanja nije uključena, ovaj korak se preskače i biće pronađeni i obrađeni samo određivači u svom osnovnom obliku koji je naveden na kartici naprednog iskopavanja.  
Sama ekstrakcija se sastoji od učitavanja odabranih izraza i njihovih vrednosti sa kartice naprednog iskopavanja u dva niza i potom njihove obrade. 
Svaki od elemenata prvog niza, niza izraza, prolazi kroz for each petlju u kojoj se svako njegovo ponavljanje u tekstu zamenjuje etiketom <emot value=’x’/>, koja predstavlja jedan prazan XML čvor u kome je x vrednost tekućeg određivača koja je preuzeta iz drugog niza, niza vrednosti. 
Ukoliko je vrednost izraza / instrukcije neće biti izvršene, a ukoliko vrednost nekog izraza nije između 1 i 1 program će prijaviti grešku i prekinuti izvršavanje.  
Nakon što je svaki od određivača zamenjen čvorom čiji je atribut njegova vrednost (slika 6), XML dokument ponovo postaje dobro formiran i spreman za dalju obradu. 
Korisnik će dobiti poruku da je ekstrakcija završena i da može da pređe na sledeći korak.  
U eksperimentu segment teksta ili rečenica poistovećena je sa jednom samostalnom porukom koju je jedan korisnik uputio drugom.  
Osnovna ideja je da se vrednosti određivača pronađenih u poruci odraze na vrednost same poruke, ili okolnih poruka u specijalnim slučajevima. 
U zavisnosti od tekstualnog sadržaja poruke (osim samog određivača5) i sadržaja prethodne i naredne poruke postoji tri vrste dodele vrednosti segmentima:  
1. ukoliko poruka pored određivača sadrži tekst i poruka koja je sledi sadrži tekst – na poruku se odnose samo određivači iz te poruke. 
Primeri:  
A: Srećan rođendan :* 
B: Hvala puno 
Na poruku osobe A odnosiće se određivač :*, dok poruka osobe B na nju nema uticaj jer ne sadrži određivač. 
A: Srećan rođendan :* 
B: Hvala :) 
Na poruku osobe A odnosiće se određivač :*, dok poruka osobe B na nju nema uticaj jer se određivač u poruci osobe B odnosi samo na tekst poruke osobe B.  
2. ukoliko poruka sadrži teskt ali ne i određivač, a naredna poruka sadrži određivač, ali ne i tekst – određivač će se odnositi na teskt poruke koja prethodi. 
Primer:  
A: Autobus mi je pobegao 
B: :( 
Određivač :( iz poruke osobe B odnosiće se na poruku osobe A jer poruka osobe B ne sadrži tekst, te se njen određivač odnosi na poruku osobe A, koja joj prethodi u razgovoru.  
3. ukoliko poruka sadrži i određivač i tekst, a naredna poruka sadrži određivač, ali ne i tekst – određivači iz obe poruke se odnose na poruku koja sadrži tekst. 
Primer:  
A: Autobus mi je pobegao -.- 
B: :( 
Na poruku osobe A odnosiće se i određivač -.- i određivač :(, jer poruka osobe B ne sadrži tekst, te se njen određivač odnosi na poruku osobe A, koja prethodi u razgovoru.  
Postoji i četvrta mogućnost – dodela vrednosti poruci koja ne sadrži određivač, pri čemu ni sledeća poruka ne sadrži određivač. 
Ova mogućnost se zasniva na pretpostavci da i odsustvo određivača samo po sebi nosi neko značenje (prema intuiciji negativno). 
Nedostatak ove mogućnosti je da ne možemo biti sigurni da nepostojanje određivača nosi (negativno) značenje, dok je određivanje same vrednosti težak zadatak. 
Dodatni problem je i to da u poruci možda i postoji određivač koji korisniku nije poznat pa ga nije koristio pri iskopavanju teskta. 
Stoga je ova opcija neobavezna i njena vrednost nije definisana. 
Ukoliko korisnik želi da zada određenu vrednost neobeleženim porukama, to može da uradi odabirom polja dodeli vrednost neobeleženim rečenicama i ispisivanjem vrednosti između - 1 i 1 u tekstualno polje pre pokretanja same dodele (slika 7).  
Sama dodela vrednosti izvršava se putem XSLT transformacije. 
Najpre se za svaku obeleženu poruku računa aritmetička sredina vrednosti svih određivača koju se na nju odnose, zatim se ta vrednost upisuje u njen čvor u novi atribut value, a čvorovi koji su obeležavali određivače se brišu. 
Potom, ukoliko je opciono polje bilo obeleženo, ostalim porukama se dodaje zadata vrednost. 
Rezultat transformacije je XML dokument koji sadrži koreni element i u njemu čvorove svih poruka koje imaju dodeljenu vrednost. 
Po završetku transformacije korisnik će dobiti poruku da je dodela završena i zeleno svetlo za nastavak dalje.  
Ova dva koraka obavljaju se zajedno pritiskom na dugme transliteriši kartice za proizvodnju. 
Svrha ovog dela programa je da se dobije čist tekst za pravljenje baze. 
U ovom slučaju tekstom se smatraju niske koje sadrže isključivo brojeve i latinična slova. 
Neobavezno polje za izbor samo ascii, služi da se skup dodatno ograniči samo na latinična slova iz ASCII skupa karaktera (brojevi se ovom opcijom ne izuzimaju).  
Razlog zbog kojeg je prevođenje u ASCII neobavezno je što se njime uvodi gotovo isto toliko problema koliko se i rešava. 
Pod pretpostavkom da svi korisnici društvenih mreža ne koriste u punoj meri kapacitet Unicode karakaterskog skupa, već i degradiranu latinicu,6 dolazi do problema jer neke reči poput istraživanje i istrazivanje neće biti prepoznate kao ista, već kao dve različite reči. 
Prevođenjem svih karaktera u ASCII skup ovaj problem se izbegava ali se uvodi novi problem da reči koje bi se zapravo razlikovale u Uni-code skupu budu prepoznate kao ista reč – primer mogu da budu reči španac i spanać, koje će program prepoznati kao iste reči. 
Ovu opciju je, dakle, najbolje koristiti zavisno od situacije.  
Pre daljeg nastavka obrade, trenutni XML dokument prolazi kroz XSL transformaciju u kojoj se pomoću funkcije translate sva velika slova pretvaraju u mala, kako program ne bi u konačnoj bazi pravio razliku između dve iste reči, koje se razlikuju jedino u veličini slova.  
Drugi deo sređivanja teksta, čišćenje svih karaktera koji nisu slova ili cifre, otklanja mogućnost da reč sadrži neki interpukcijski ili drugi nealfanumerički karakter. 
Ponovo se funkcijom translate XSL transformacije svi neželjeni karakteri (svi karakteri osim malih latiničnih slova i cifara) pretvaraju u razmak.  
I ovim postupkom mogu se dobiti nekorektne reči ako je korisnik slučajno uneo nepoželjni karakter u toku kucanja reči (Mar?ija) ili ako je namerno koristio neki specijalni karakter (M@rija). 
U prvom slučaju niska će postati Mar ija, a u drugom M rija.  
Tokenizacija teksta obavlja se pritiskom na dugme tokenizacija kartice za proizvod (slika 7). 
Podela na tokene se vrši isključivo prema razmaku, pa se token definiše kao bilo koja niska karaktera između početka poruke i prvog razmaka u poruci, bilo koja niska karaktera između dva susedna razmaka ili bilo koja niska karaktera između poslednjeg razamaka u poruci i kraja poruke. 
Ona se u ovom slučaju vrši na nivou XML dokumenta, tako što svaki token dobija sopstveni XML čvor. 
Prvi deo procesa tokenizacije obavlja se funkcijom Regex. 
Replace u tri koraka: 
– Najpre se pronalazi svaki početak poruke u XML dokumentu. 
To se obavlja pretragom niske">, koja se javlja jedino na kraju otvorene etikete elementa koji sadrži atribut, a to je element koji sadrži tekstualnu poruku. 
Kako koreni element ne sadrži atribut, on neće biti zahvaćen ovom pretragom. 
Zatim se posle svake pronađene niske dodaje niska [<token>, koja označava početak tokena. 
– Potom se pronalazi kraj svake poruke, pretragom niske </emotext> što je etiketa zatvaranja elementa poruke. 
Ispred svake ovakve pronađene niske dodaje se </token>, kako bi se dobila niska </token></emotext>. 
Ovim korakom svaka poruka u XML dokumentu postaje jedan token: <emotext value="x"><token> ... </token></emotext> . 
– Poslednji korak je podela unutrašnjosti svake poruke na tokene, na svakom mestu gde se nalazi razmak. 
Kako ne bi došlo do neželjene zamene unutar otvorene etikete <emotext value="x">, na mestu između naziva elementa i naziva atributa, najpre se obavlja zamena svakog emotext value sa emotext_value, a tek onda zamena svakog razmaka sa </token><token>. 
Nakon toga se karakter _ ponovo vraća u razmak i dobijaju se poruke u obliku: <emotext va-lue="x"><token> ... </token><token> ... </token></emotext> .  
Drugi deo tokenizacije obavlja se pomoću četiri dodatne XSL transformacije koje filtriraju odabrane tokene i daju im vrednost: 
– Prva transformacija briše sve poruke koje sadrže više od četrdeset tokena, kako bi se izbegla dodela vrednosti svim rečima u, na primer, nekom tekstu nalepljenom uz ćaskanje, a koji nije aktivna poruka u konverzaciji. 
– Druga transformacija briše sve tokene koji sadrže manje od dva karaktera (pod pretpostavkom da ne nose značenje jer predstavljaju nefunkcionalne reči ili su nastali razbijanjem velikih niski poput linkova), i sve tokene koji sadrže više od dvadeset karaktera (pod pretpostavkom da je velika većina njih nasumična).  
Između ove dve transformacije potrebno je sprovesti još jedan korak, uvođenje dodatnog tokena bez vrednosti na poslednje mesto u dokumentu. 
To se radi umetanjem niske <token>ERR0001</token> pre zatvorene etikete korenog elementa, kako bi se dobilo <token>ERR0001</token>. 
Značenje ove niske biće objašnjeno u narednom odeljku. 
– Treća transformacija služi za osamostaljivanje tokena. 
Ona najpre svakom tokenu dodeljuje atribut sa vrednošću poruke u kojoj se nalazi, a zatim briše elemente rečenica, ostavljajući u korenom čvoru samo čvorove tokena sa pridruženim vrednostima. 
Ona takođe sortitra sve tokene po abecednom redu u odnosu na njihov tekstualni sadržaj i dodeljuje svakom tokenu novi atribut no, čija vrednost postaje redni broj tokena u dokumentu, određen XSL funkcijom position. 
– Četvrta transformacija ne doprinosi sadržaju dokumenta već samo ekonomičnosti njegove obrade. 
Ime svakog elementa token se skraćuje na t, svakog atributa value na v, što u velikoj meri smanjuje veličinu dokumenta i olakšava i ubrzava dalji rad sa datotekom.  
Ovaj korak se obavalja pritiskom na dugme pripremi tokene za izvoz u zadnjem polju kartice za proizvodnju (slika 7). 
Izvršenje ove komande moguće je tek nakon što su izvršeni svi prethodni koraci pripreme.  
Kako bi indeks poslužio svrsi, svi pojmovi u njemu dobijaju dva atributa: srednja vrednost svih određivača koji se na taj pojam odnose u učitanom korpusu i broj ponavljanja tog pojma u njemu. 
Kreiranje indeksa obavlja se u šest koraka XSL transformacijom XML dokumenta koji u sebi sadrži tokene: 
– U bazi uređenoj u abecednom poretku se pronalazi prvi čvor, x, i prvi sledeći čvor koji se od njega razlikuje, y. 
– Uzimaju se njihovi redni brojevi tokena iz atributa no. 
Redni broj čvora x je n, a redni broj čvora y je m. 
– Tekst čvora x se upisuje u novi XML dokument invertovanog indeksa u element t (token). 
– Novom elementu t dodeljuje se atribut c (count), koji označava broj ponavljanja tog tokena u bazi, a njegova vrednost je jednaka razlici rednih brojeva dva pronađena čvora. 
– Novom elementu t dodeljuje se atribut v (value), koji označava vrednost tog tokena na skali pozitivno-negativno, i ona je jednaka aritmetičkoj sredini vrednosti iz atributa v svih tokena koji sadrže isti tekst. 
– Čvor y postaje prvi čvor u dokumentu i procedura kreće iz početka.  
Ovim postupkom atributi se dodeljuju svim tokenima, sem poslednjem, pomoćnom, ERR0001 tokenu, koji je stvoren prilikom tokenizacije dokumenta i služi za obeležavanje završetka dokumenta i za izračunavanje atributa c kod tokena koji se nalazi ispred njega. 
Nakon što je uspešno izvršeno pretvaranje skupa tokena sa vrednostima u konačan invertovani indeks pojmova sa vrednostima (tabela 3.6), korisnik će dobiti poruku o uspešno izvršenoj transformaciji, a indeks će biti sačuvan u privremenoj datoteci dok se ne izvrši njegov konačan izvoz.  
Pritisak na dugme Izvezi u novu datoteku kartice za izvoz memorije (slika 10) otvara Windows Explorer katalog za čuvanje nove datoteke. 
Format u kome će datoteka biti sačuvana je XML, a korisnik bira njeno ime i mesto. 
Sadržaj se kopira iz privremene datoteke kreirane u prethodnom koraku, i predstavlja konačnu bazu podataka.  
U slučaju da je korisnik već obrađivao neke datoteke, na raspolaganju mu je i opcija Dopuni postojeću bazu (slika 10). 
Ona omogućava da se podacima izvučenim iz novog korpusa dopuni prethodno izvezena baza podataka. 
U ovom slučaju, pritiskom na odgovarajuće dugme otvara se Windows Explorer katalog za otvaranje nove datoteke. 
Korisnik treba da obeleži datoteku koju želi da dopuni, a zatim se kreira dopunjena baza u četiri koraka: 
– Izabrana datoteka se u potpunosti učitava u memoriju i dodaje na sadržaj prethodno kreiranog indeksa sačuvanog u privremenoj datoteci. 
– Pronalazi se i briše niska </root><root>. 
Time se dobija dokument sa jednim, umesto dva korena elementa. 
– XSL transformacijom se sve tokeni ponovo sortiraju po abecednom redu. 
– Kako u ovom slučaju mogu postojati najviše dva tokena sa istim tekstom, njihova unifikacija je jednostavnija. 
Ukoliko token nema parnjaka, prepisuje se, a ukoliko ima dobija samo nove vrednosti atributa. 
Atribut vrednosti se izračunava kao količnik zbira proizvoda atributa v i c oba elementa i ukupnog broja njihovih ponavljanja (2.4). 
Atribut ponavljanja jednak je ukupnom broju njihovih ponavljanja (2.5).  
Novi element sa atributima se čuva dok se stari brišu iz indeksa, i time se dobija po jedna kopija svakog tokena sa pravilno određenim vrednostima atributa.  
Novi dokument zamenjuje onaj koji je obeležen u katalogu otvaranje,  te je ovo opcija za koju treba upotrebljavati pažljivo. 
Po završetku, korisnik će dobiti poruku o uspešno izvršenom dopunjavanju. 
Ukoliko korisnik želi da ručno pregleda novostvorenu bazu, a ne oseća se prijatno u XML okruženju, može da je izveze u CSV (engl. comma separated values – vrednosti razdvojene zarezom) format koji može da se otvori pomoću Microsoft Excel-a, Open Offce Calc-a ili sličnog softvera za rad sa tabelama. 
On to čini pritiskom na poslednje četvrto dugme na kartici za izvoz memorije.  
Baza podataka se može dodatno prorediti na osnovu toga koliko često se pojmovi ponavljaju. 
Ova opcija se nalazi na petoj kartici softvera, eksperimentalnoj kartici za doradu. 
Korisnik najpre treba da učita bazu podataka koju želi da doradi pritiskom na dugme uvezi postojeću memoriju, a zatim bira koliko barem puta pojam treba da se ponavlja da bi bio uzet u obzir (slika 11).  
Ukoliko korisnik, na primer, odabere broj 2, pritiskom na dugme izvezi reči sa zadatim minimumom ponavljanja formiraće se nova baza iz koje će biti izbrisani svi pojmovi koji se ponavljaju manje od 2 puta (to jest pojavljuju se samo jednom), i nova baza će biti sačuvana na željenom mestu. 
Ovu opciju će korisnik koristiti ukoliko smatra da je potrebno da se pojam pojavi određeni broj puta kako bi njegova vrednost mogla da se smatra reprezentativnom.  
Nakon što je korisnik završio kreiranje željenih baza i uspešno ih izvezao, može ih testirati ručno uz pomoć pretrage ugrađene u bilo koji softver za rad sa tekstom ili XML dokumentima. 
Takođe, baza se u bilo kojem od svojih oblika može testirati i u softveru za proveru vrednosti pravljenim specijalno za ovaj eksperiment (slike 12 i 13).  
Uprkos relativno malom korišćenom uzorku od 1.843.826 poruka, od grubo procenjenih 500 milijardi poruka koje pripadaju korisnicima društvene mreže Facebook u Srbiji, eksperiment je ispunio svoje ciljeve. 
Na osnovu ekstrahovanih svega dvadeset i osam određivačkih niski uz pomoć sedam regularnih izraza koji pronalaze njihove varijacije, i bez prethodnog znanja o jeziku i njegovoj gramatici, softver je formirao baze podataka sa pojmovima i njihovim vrednostima na skali pozitivno-negativno.  
Sistem je testiralo nekoliko nezavisnih ocenjivača i na osnovu njihovih reakcija može se zaključiti da su vrednosti nenasumične i reprezentativne, što pokazuje da je ovaj način klasifikovanja pojmova moguć u bilo kojem prirodnom jeziku koji koristi određivače, ali je i dalje neophodno sprovesti sistemsku evaluaciju.  
Korišćeni algoritmi su i dalje daleko od savršenih i u njima ima dosta prostora za poboljšavanje i napredak. 
Dobra dokumentovanost procesa istraživanja podataka trebalo bi da doprinese budućim istraživanjima iste ili sličnih ideja. 
Sledeći korak svakako može da bude ekstrahovanje proširenog skupa određivača, rad nad proširenim skupom tekstova ili, idealno, prošireni skup parametara koji bi se vrednovali. 
Korpus proširen, na primer, na druge prirodne jezike umnogome bi doprineo obimu pojmova kojima se vrednost dodeljuje, dok bi prošireni skup parametara mogao da doda novu dubinu razumevanja teksta od strane kako mašine tako i ljudi.  
Ovaj način ekstrakcije određivača i uopšte sličnog istraživanja podataka može naći raznovrsne primene koje se mogu podeliti u dve grupe.  
Društvena i demografska istraživanja: 
– Marketinška istaživanja: istaživanje delovanja trenutnog ili alternativnog pristupa reklamiranju proizvoda i usluga. 
Ovo je najčešća upotreba sličnih istraživanja pre svega iz novčanih razloga, jer kompanijama može da uštedi novac ili da im obezbedi novi priliv dobara. 
– Istraživanje javnog mnjenja: šta ljudi vole, šta ne vole, kakvo uopšte mišljenje imaju o stvarima ili idejama na koje se pojmovi ili tekst odnose. 
Može se upotrebiti na različite načine u društvenim i demografskim istraživanjama za brzo i efikasno prikupljanje velike količine informacija.  
Razvijanje inteligentnih sistema za rad sa informacijama: 
– Pronalaženje informacija: pronalaženje specifičnih informacija u tekstu, kao i pronalaženje informacija koje se ne mogu precizno definisati. 
Klasifikacija tekstova prema raspoloženju koje je u njima izraženo radi lakšeg pronalaženja potrebnih informacija. 
– Analiza i razumevanje prirodnog jezika: razumevanje pisanog teksta i tekstualnih upita, analiza raspoloženja koje tekst nosi, rad sa digitalnim jezičkim resursima poput automatizovane paralelizacije ili automatizacija bilo koje operacije koja zahteva duboko razumevanje pisanog teksta. 
– Veštačka inteligencija: automatizovanje konverzacije na prirodnom jeziku, održavanje razgovora i rad sa strankama.  
– Problem mogućih nasumičnih odgovora prilikom anketiranja: 
Napraviti sistem koji odbacuje odgovore korisnika koji su odgovarali nasumično, na primer, uvođenjem dodatnih pitanja koja u tekstu zahtevaju specifične odgovore. 
Tako nemarni korisnici koji ne čitaju pitanja imaju veće šanse da budu identifikovani. 
– Sistemska evaluacija rezultata:  
Sprovesti detaljnu sistemsku evaluaciju kako bi se utvrdila verodostojnost dobijenih rezultata. 
