You are on page 1of 36

Uvod u obradu prirodnog jezika

2.1. Regularni izrazi

Branko Žitko

prevedeno od: Dan Jurafsky, Chris Manning


Što su regularni izrazi?
• Formalni jezik za specificiranje tekstualnih nizova.
– Pretpostavimo da u tekstu moramo pronaći riječ sustav
– Ona se može izraziti na nekoliko načina
• sustav
• sustavi
• Sustav
• Sustavi
• sustavima
• Sustavima
Regularni izrazi: Disjunkcija
• Slova unutar uglatih zagrada []
Uzorak Objašnjenje
[sS]ustav sustav, Sustav
[1234567890] Bilo koje slovo

• Raspon [A-Z]
Uzorak Objašnjenje
[A-Z] Veliko slovo Poslovne strategije
[a-z] Malo slovo suma svih unesenih brojeva je 7
[0-9] Jedna znamenka Poglavlje 1: Funkcionalni model
sustava
Regularni izrazi: Negacija u disjunkciji
• Negacija [^Ss]
– ^ Znak za umetanje označava negaciju samo kada je na prvom mjestu u
uglatim zagradama

Uzorak Objašnjenje
[^A-Z] Ne veliko slovo Programeri
[^Ss] Ne veliko S ni malo s Ja nisam SIGURAN
[^e^] Ne e ni ^
a^b Uzorak a^b Pogledaj a^b sada…
Regularni izrazi: Ekskluzivna disjunkcija
• Sustav je drugi naziv za Sistem!
– Simbol koji koristimo za disjunkciju je |

Uzorak Objašnjenje
sistem|sustav
tvoje|moje tvoje moje
a|b|c [abc]
[sS]istem|[Ss]ustav
Regularni izrazi: Zamjenski znakovi ? * + .
? 0 ili 1 prethodnih znakova
* 0 ili više prethodnih znakova
+ 1 ili više prethodnih znakova
. 1 bilo koji znak

Uzorak Objašnjenje
pa?sa Dodan prethodni psa pasa
znak
oo*h! 0 ili više prethodnih oh! ooh! oooh! ooooh!
znakova
o+h! 1 ili više prethodnih oh! ooh! oooh! ooooh!
znakova
baa+ baa baaa baaaa baaaaa
ta.a tada tama tata ta3a
Regularni izrazi: Sidra ^ $
^ početak linije
$ kraj linije

Uzorak Objašnjenje
^[A-Z] Nikola
^[^A-Za-z] 1
“Pozdrav”
\.$ Kraj.
.$ Kraj?
Kraj!
Primjeri
• Pronađite u tekstu sve instance riječi "on".

on
On je onda u ponoć otišao kući. Sutradan je on ponudio bonus.

[oO]n
On je onda u ponoć otišao kući. Sutradan je on ponudio bonus.

[^a-zA-Z]?[oO]n[^a-zA-Z]
On je onda u ponoć otišao kući. Sutradan je on ponudio bonus.
Regularni izrazi: Pogreške
• Proces koji smo upravo prošli temelji se na
utvrđivanju dvije vrste pogrešaka

• Lažno pozitivni (TIP I)


– Odgovarajući nizovi koji se ne bi trebali podudarati.
(ponoć, bonus,…)

• Lažno negativni (TIP II)


– Ne označavanje nizova koji bi se trebali označiti.
(On)
Regularni izrazi: Pogreške
• Obrada prirodnog jezika uvijek se bavi sljedećim
pogreškama

• Smanjenje stupnja pogreške za aplikacije često uključuje


dva pristupa rješavanja pogrešaka:
– Povećanje točnosti ili preciznosti
(smanjenje lažno pozitivnih)
– Povećanje pokrivenosti ili opoziv
(smanjenje lažno negativnih)
Regularni izrazi: Sažetak
• Regularni izrazi igraju iznenađujuće veliku ulogu
– Sofisticirani nizovi regularnih izraza često predstavljaju prvi
model za bilo koju obradu teksta

• Za mnogo teže zadatke koriste se klasifikatori strojnog


učenja
– Regularni izrazi se koriste kao obilježja u klasifikatorima
– Mogu biti vrlo korisni za obuhvaćanje općenitosti
Uvod u obradu prirodnog jezika

2.2. Tokenizacija (opojavničenje) riječi


(Word tokenization)

Branko Žitko

prevedeno od: Dan Jurafsky, Chris Manning


Normalizacija teksta
• Svaki zadatak obrade prirodnog jezika uključuje
normalizaciju teksta:
1. Segmentiranje/opojavničenje riječi u aktivnom tekstu
2. Normalizacija formata riječi
3. Segmentacija rečenica u aktivnom tekstu
Koliko ima riječi?
• Ja radim ovaaj uglavnom aaa obradu poslovnih
podataka
– Fragmenti, ispunjeni pauzom
• mačka u šeširu je drugačija od drugih mačaka!
– Lema: isti korijen, dio govora, smisao grube riječi
mačka i mačaka = ista lema
– Oblik riječi: puni utjecaj oblika riječi
mačka i mačaka= različita forma riječi
Koliko ima riječi?
Oni leže na livadi u Dugom ratu i gledaju na druge
livade

• Tip: element riječnika


• Pojavnica (Token): primjerak tipa u tekstu

• Koliko ima riječi


– 11 pojavnica
(ili 10 – Dugom ratu – jedna pojavnica)
– 10 tipova
(ili 9 – Dugom ratu – jedna pojavnica)
(ili 8 – livada i livadi – ista lema)
Koliko ima riječi?
N = broj pojavnica
V = riječnik = skup riječi
|V| = broj riječi u riječniku

Pojavnice = N Tip = |V|


Centrala telefonskih 2.4 milijun 20 tisuća
razgovora
Shakespeare 884,000 31 tisuća
Google N-grams 1 trilijun 13 milijuna

Church i Gale (1990): |V| > O(N½)


Problemi tokenizacije
• CARNet-ova mreža → CARNet CARNetova ?
• Hewlet-Packard → Hewlet Packard?

• Dugi rat → jedna pojavnica ili dvije?


• km/s, dr. sc → ??
Tokenizacija: problemi kod jezika
• Francuski
– L'ensemble jedna pojavnica ili dvije?
– L ? L’ ? Le ?
– Težnja je da se l’ensemble opojavniči kao ensemble

• Njemačke imeničke složenice nisu segmentirane


– Lebensversicherungsgesellschaftsangestellter
– 'zaposlenik tvrtke za životno osiguranje'
– pronalaženje informacija (information retrieval) u Njemačkom
zahtjeva razdvajanje složenica
Opojavničenje: problemi kod jezika
• Kineski i japanski nemaju razmake između riječi
– 伊万尼塞維奇现在居住在美国东南部的美國加州。
– 伊万尼塞維奇 现在 居住 在 美国 东南部 的 美國加州
– Ivanišević danas živi u US jugoistočnoj Kaliforniji

• U japanskom jeziku se pojavljuju riječi pisane drugim


abecedama

フォーチュン500社は情報不足のため時間あた$500K(約6,000万円)

Katakana Hiragana Kanji Romaji

– Korisnik može sve izraziti u Hiragana abecedi


Tokenizacija riječi u kineskom
• je zapravo segmentacija riječi (Word segmentation)
• Kineske riječi se tvore od znakova
– znakovi se tvore najčešće od jednog sloga i jednog morfema
– prosječna riječ je duga 2.4 znaka

• Standardni algoritam za segmentaciju:


– Maksimalno podudaranje – pohlepni algoritam (Maximum
matching – greedy)
Maksimalno podudaranje
Algoritam za segmentaciju riječi
• za danu listu riječi i za niz znakova
1. Stavi pokazivač na početak niza.
2. Pronađi najdulju riječ u riječniku koja odgovara niz s početkom u pokazivaču.
3. Pomaknite pokazivač preko riječi u nizu.
4. Idi na 2.
Maksimalno podudaranje

Thecatinthehat the cat in the hat


Thetabledownthere the table down there
theta bled own there

• Nije primjenjivo za engleski jezik

• ali odlično radi za kineski


– 莎拉波娃现在居住在美国东南部的佛罗里达。
– 莎拉波娃 现在 居住 在 美国 东南部 的 佛罗里达
• Moderni probabilistički segmentacijski algoritmi još i bolje
Uvod u obradu prirodnog jezika

2.3. Normalizacija i izvlačenje korijena riječi


(Word normalization and stemming)

Branko Žitko

prevedeno od: Dan Jurafsky, Chris Manning


Normalizacija
• Potrebno je normalizirati termine
– Preuzimanje informacija: indeksirani tekst i termin upita
moraju imati isti oblik
• Termin U.S.A. treba odgovarati terminu USA
– Implicitno se definiraju ekvivalentne klase termina
• npr. brisanjem točaka u terminu
– Alternativa: Asimetrična ekspanzija
• Unos: window Pretraga: window, windows
• Unos: windows Pretraga: Windows, windows, window
• Unos: Windows Pretraga: Windows
– Potencijalno snažniji, ali manje učinkoviti
Promjena veličine slova (Case folding)
• Prilikom pronalaženja informacija često se velika
slova prebacuju u mala
– jer korisnici teže upotrebi mala slova
– Mogući izuzeci: Veliko slovo u sredini rečenice?
• npr., Srednja Dalmacija
• CARNet
– Za sentimentnu analizu, strojno učenje, ekstrakciju
informacija
• promjena veličine slova pomaže
Lematizacija
• Smanjivanje infleksija ili varijanta oblika riječi na osnovni
oblik
– leti, lete, letim, leteći→ letjeti
– ptica, ptice, pticama, ptici →ptica
• One ptice su visoko letjele → Onaj ptica biti visok letjeti
• Lematizacija: traženje ispravnog oblika glavne riječi u
rječniku
• Strojno prevođenje
– Španjolski quiero ("Ja želim"), quieres ("Ti želiš") imaju istu lemu
kao querer "želiti"
Morfologija
• Morfemi
– mali smisleni dijelovi riječi
– korijen riječi (stem): temeljni dio
– afiksi: dijelovi koji se dodaju korijenu riječi
• često imaju gramatičke funkcije
Izvlačenje korijena riječi (stemming)
• Smanjivanje oblika riječi na njegov korijen u pronalaženju
informacija
• Korijen riječi se dobiva grubim cijepanjem afiksa
– ovisno o jeziku
– npr. automati, automatski, automatizacija se svodi na automat

na primjer kompresiran i na primjer kompres i


kompresija su prihvačeni kompres su prihvaćen
ekvivalenti za riječ ekvivalent za riječ
kompresirati. kompres
Porterov algoritam
• Najčešći alat za izvlačenje korijena riječi u Engleskom jeziku

Korak 1a Korak 2 (za duge korijene)


sses  ss caresses  caress ational ate relational relate
ies  i ponies  poni izer ize digitizer  digitize
ss  ss caress  caress ator ate operator  operate
s ø cats  cat …
Korak 1b Korak 3 (za duže korijene)
(*v*)ing  ø walking  walk al  ø revival  reviv
sing  sing able  ø adjustable  adjust
(*v*)ed  ø plastered  plaster ate  ø activate  activ
… …
Složena morfologija
• Neki jezici zahtijevaju složenu morfemsku podjelu
– Turski
– Uygarlastiramadiklarimizdanmissinizcasina
– "ne civilizirajući" – u smislu da pripadate skupini koja se
ne može civilizirati
– Uygar "civiliziran" + las "postati"
• tir "uzrok" + ama "nije u stanju"
• dik "prošlo vrijeme" + lar "množina"
• imiz "sufiks posvojne zamjenice" + dan "ablativ"
• mis "prošlo vrijeme" + siniz "sufiks glagola" + casina "ako"
Uvod u obradu prirodnog jezika

2.4. Segmentacija rečenice i stabla odluke


(Sentence segmentation and decision trees)

Branko Žitko

prevedeno od: Dan Jurafsky, Chris Manning


Segmentacija rečenice
• !, ? – uglavnom jednoznačni
• "." – višeznačna i može označavati
– kraj rečenice
– kratice poput dr. itd.
– brojeve poput .02% 4.3
• Sagraditi binarni klasifikator
– koji traži "."
– odlučuje jeli KrajRečenice/NijeKrajRečenice
– klasifikatori: ručno pisana pravila, regularni izrazi ili strojno
učenje
Stablo odluke
• Odluka je li pojavnica predstavlja kraj rečenice.

Mnogo praznih linija nakon mene?

Da Ne

KrajRečenice
Konačna interpunkcija je ?, ! ili :?

Da Ne

KrajRečenice
Konačna interpunkcija je točka?

Da Ne

"itd." ili druga kratica? NijeKrajRečenice

Da Ne

NijeKrajRečenice KrajRečenice
Profinjenje stabla odluke
• riječi s točkom:
– mala slova, velika slova, prvo veliko slovo, broj
• riječi nakon točke:
– mala slova, velika slova, prvo veliko slovo, broj

• Numeričke osobine:
– duljina riječi s točkom
– vjerojatnost (riječ s točkom se pojavljuje na kraju rečenice)
– vjerojatnost (riječ nakon točke se pojavljuje na početku rečenice)
Implementacija stabla odluke
• Stablo odluke je niz ako-onda-inače izjava
• Zanimljivo istraživanje bio bi izbor uvjeta
• Postavljanje strukture stabla često je teško raditi ručnim
putem
– Ručna izrada moguća je samo za jako jednostavna obilježja i
područja
• Za stabla odluke s brojčanim obilježjima teško je odabrati prag.
– Struktura se najčešće nauči korištenjem strojnog učenja nad
nekim tekstualnim korpusom
Stabla odluke i drugi klasifikatori
• Pitanja iz stabla odluke su osobine koje mogu iskoristiti druge vrste
klasifikatora, kao što su:
– logistička regresija
– metoda potpornih vektora (Support vector machine)
– neuronska mreža
–…

You might also like