You are on page 1of 3

1.

POS tagging i lematizacija romana Hadži-Đera

Anotiranih 6130 tokena sa kolonom Student: ĐP prebačeno je u novi Excel fajl radi
preglednosti i lakše obrade. Korigovano je ukupno 497 njih (oko 8%): 5,79% tagova (355) i
5,68% lema (348) od ukupnog broja tokena. Ukupna tačnost tagera po vrstama reči: imenice
97,4%, pridevi 85,78%, glagoli 96,1%, prilozi 88,8%, veznici 94,79%, brojevi 82,75%, rečce
88,8%, predlozi 97,8%, zamenice 84,82%.

Ovi podaci dobijeni su uz pomoć Python-a i biblioteke openpyxl, koja omogućava učitavanje i
obradu podataka iz Excel fajla sa anotacijama. Napravljeni su posebni rečnici za korigovane
tokene, korigovane tagove i korigovane leme. Izvučeni su primeri sa indeksom tokena, njegovim
oblikom – automatska tag/lema naspram korigovane. Pri unosu taga koji se želi posmatrati,
dobija se tačnost automatske anotacije za tu vrstu reči i izlistavaju se takvi primeri sa svojim
korekcijama.

Ako izbacimo reči koje su više puta pogrešno pridružene, dobićemo dosta manji broj
oblika sa korigovanim tagom (181) i sa korigovanom lemom (192). To znači, dakle, da tager
greši na istim mestima – izvučena je lista frekvencije pogrešnih oblika. Na prvom mestu nalazi
se je, što nije neobično jer se često koristi kao glagol, pa svojim brojnim ponavljanjima povećava
verovatnoću da bude pogrešno obeležen: oblički se preklapa sa genitivom lične zamenice
ženskog roda, koja je takođe frekventna i dolazi posle glagola. Slično je sa ti kao oblikom
nominativa i dativa jednine zamenice ti i oblikom množine zamenice taj; neka kao rečca i kao
neodređena zamenica neka u ženskom rodu. Greške su pravljene i kod nekih neobičnih i
arhaičnih reči, što nije lako ni anotatoru da razume u potpunosti ako se nije sa njima ranije
sretao. Često je i mešanje priloga i prideva u slučaju kada oblički podsećaju jedan na drugi ili je
jedan od drugog nastao, s obzirom na to da obe ove vrste reči mogu stajati pored glagola (iako je
mnogo običniji slučaj da direktno uz glagole stoje samo prilozi). Raspored reči u rečenici u
srpskom jeziku tek je uslovno slobodan, što znači da postoji mnogo implicitnih sintaksičkih
pravila koji uslovljavaju poziciju članova rečenice, u zavisnosti od funkcije i morfologije, to
može smanjiti broj ovakvih grešaka. Oslonivši se samo na predloge, može se eleminisati određen
broj slučajeva koji dolaze u obzir.

Važno je ustanoviti zajednička pravila anotiranja sa lingvistima koji će se ovim materijalom


služiti, jer se nijanse u značenjima i vrste podela mogu drugačije tretirati u različitim
lingvističkim grupama. Drugim rečima, bitno je jasno odrediti kolika je preciznost automatske
analize (npr. da li će svako ni i i biti veznik ili može biti i rečca; da li je kao uvek veznik ili
poredbena rečca; da li je osnovni oblik lične zamenice za ženski rod on ili ona, i da li su
množinski oblici mi/oni osnovni oblici ili su i za njih osnovni oblici u jednini; da li je moguće
razlučiti razliku između veznika i priloga kako).

Zbog brzine i delikatnosti posla, mnogo detalja, mogući su propusti u ručnom anotiranju.
2. Tviter korpus za detekciju govora mržnje

Na tviter korpusu urađena je anotacija uvredljivosti sadržaja. Od ukupno 1276 anotiranih


tvitova, svega 217 (17%) označeno je kao uvredljivo, što znači da ima barem jedno štriklirano
polje od naredna tri: vulgarnost (104, odnosno 8,15% od ukupnog broja anotirannih tvitova),
govor mržnje (23, odnosno 1,8%), pogrdan govor (138, odnosno 10,82%).

Ovi podaci izvučeni su pomoću Python-a i jupyter svezaka u prilogu. Redovi iz Excel dokumenta
raspoređeni su u tzv. rečnike, gde je ključ svakog tvita bio broj indeksa, a ostale njihove
vrednosti su smeštene u liste. Osim toga, automatski je dodata kolona sa desne strane koja računa
broj True polja u datom redu, a sa donje strane dodat je red koji prebrojava True polja za
pomenute četiri kolone. Za svaku od njih izvučeni su i prikazani pozitivno obeleženi tvitovi,
zatim oni koji su uvredljivi ali nisu vulgarni i oni koji imaju True i vulgarnost i govor mržnje i
pogrdan govor.

Jasno je, dakle, da najveći broj tvitova nije označen kao uvredljiv, i to su uglavnom
kratke poruke bez konteksta i uvredljivih reči. Vulgarnosti je bilo najlakše prepoznati jer se
očitavaju u jasnim vulgarnim leksemama. Ipak, da li je vulgarnost uvek uvredljiva? Teško je bilo
opredeliti se da svaka skraćenica i uzgredna psovka bude „osuđena“, budući da se javljaju u
svakodnevnom govoru i kao poštapalice ili kao sredstvo za bezazleno pojačavanje stanja ili stava
onoga koji govori.

Druga kategorija po zastupljenosti jeste pogrdan govor. I to je donekle očekivano, jer je često i
može se prilično jasno prepoznati neprikladno ophođenje prema drugom ili trećem licu, koje
takođe prati skup uvredljivih reči sa pogrdnim značenjem. Međutim, nekada opravdavajuće
deluje razmena pogrdnih reči „od milošte“ između prijatelja.

Najveći problem je bilo razlučiti da li se poruka bez konkretnih markera može interpretirati kao
uvredljiva na višem nivou od osnovnog značenja. Prvenstveno, kako prepoznati ironiju i
sarkazam u izolovanoj poruci, van svakog konteksta, i da li je nedorečenost ironije uvek
uvredljiva. Problematično je i odlučivanje da li je neka izjava samo stav govornika i do koje
granice ima pravo da kritikuje a da ostane u granicama primerenog ponašanja; uz to višeznačje,
pitanje je koliko bezazlena i nepromišljena šala može biti pogrešno interpretirana i shvaćena kao
uvredljiva.

Moguće su i identifikacije anotatora sa pojedinim tviter-objavama, kada subjektivnost i


saglasnost sa nečijim stavom, iako iznetim uvredljivim tonom, trenutno može ublažiti
problematičnost datog tvita i biti propušten u ručnoj detekciji uvredljivog sadržaja.
3. Web scraping

Za grebanje sadržaja sa sajta Otvoreni parlament – steno beleške (početna adresa:


https://otvoreniparlament.rs/transkript) pisan je kod u Python-u, u Jupyter sveskama. Korišćene
su biblioteke/moduli: requests, BeautifulSoup, re, time, random.

Najpre, formatiranjem početne adrese, napravljena je lista linkova koji vode do svih stranica sa
po najviše 10 sednica. Prolazeći kroz te stranice, program prikuplja direktne linkove do
konkretnih sednica. Sednice se preuzimaju redom, kako pronalazi link po link, i odmah se za
svaku novu sednicu pravi XML fajl u koji se organizovano upisuju pogrebani elementi. S
obzirom na to da se i konkretne sednice protežu na više strana, uvedeno je dodatno formatiranje
adrese na tom nivou (nastavak '?page={}'). Broj strana koje treba učitati bio bi u okviru
pretposlednjeg dugmeta navigacionog bara.

Ime XML datoteke postaje broj sednice, koji se nalazi na kraju njihovih pojedinačnih adresa.
Koreni element je uvek <otvoreni_parlament> sa atributom url koji sadrži direktan link do date
sednice. Prazan element <sednica/> sadrži detalje u atributima: datum, naslov, mesto. Svako
obraćanje na sednici pripada posebnom istoimenom elementu, sa atributom osoba i stranke
ispred koje poslanik govori. Problem validnosti napravljenog fajla nastaje kada se u nazivu
stranke pojave navodnici (primer: Poslanička grupa „Aleksandar Vučić - Za našu decu“).
Navodnici i višak belina su izbačeni iz tog polja.

Pravljenje pauze u prikupljanju je nasumično, između 20 i 40 sekundi, kako bi razbilo


predvidljivost automatizacije, i to na svakoj trećoj stranici sadržaja sednica.

U procesu konačnog skidanja celokupnog sadržaja otkrivali su se novi problemi i


prekidali rad programa:

1. Uveden je uslov postojanja navigacionog bara pri određivanju broja strana jedne sednice,
rešivši tako problem slučaja kada sednica nema više od jedne strane. Dakle, ako navigacioni bar
ne postoji – nema potrebe za njim, znači da je u pitanju sednica dužine samo jedne strane.

2. Starije sednice imaju različitu strukturu nekih HTML elemenata od uobičajene: u odeljku za
detalje o sednici podaci su u drugačijem redu ili nisu potpuni (<p> elementi), tako da atributi ne
dobijaju odgovarajuće vrednosti. Budući da je mesto održavanja uvek Beograd ili se kasnije
uopšte ne navodi, taj atribut je isključen iz XML fajla posle otprilike trećine sačuvanih sednica;
datum je dodatno filtriran regularnim izrazom.

You might also like