Transcript pptx
VALODAS TEHNOLOĢIJU SPECSEMINĀRS
MORFOLOĢIJA
Lauma Pretkalniņa,
AILab
DIVAS PROBLĒMU RISINĀŠANAS PIEEJAS
Konkrēta problēma:
lejupvērstā pieeja
Vispārīga pieeja — atrisināt visu līmeni:
augšupvērstā pieeja
AR KO SĀKT?
Audiāli dati runas atpazīšana
Teksts tokenizēšana
1. SOLIS. TOKENIZĒŠANA —
SADALĪŠANA TEKSTA PRIMITĪVOS
Teksta primitīvu piemēri:
Jānis
vecāmamma
sēdēt
,
.
...
?!
kaut gan
:-)
lai arī
1 230 017
+371 29123456
[email protected]
https://startpage.com/do/search?q=language+tech
nologies
&#%$
Tokenizators
likumbāzēts
iebūvēts morfoloģiskajā tagerī
2. SOLIS. MORFOLOĢISKĀ ANALĪZE
Teksta analīze viena vārda (teksta primitīva)
robežās
vārdšķira
locījums (ja ir)
skaitlis (ja ir)
dzimte (ja ir)
laiks — tagadne/pagātne/nākotne (ja ir)
persona — es/tu/viņš (ja ir)
Sagrupēt vārdus pa grupām — «tas pats tikai citā
formā»
lemmatization
stemming
2. SOLIS. MORFOLOĢISKĀ ANALĪZE
NEVAJADZĒTU TAČU BŪT ĻOTI
GRŪTI?
I made her duck
Kas notika?
Visticamāk, ka…
I cooked waterfowl for her benefit (to eat)
I cooked waterfowl belonging to her
I created the (plaster?) duck she owns
I caused her to quickly lower her head or
body
I waved my magic wand and turned her into
undifferentiated waterfowl
2. SOLIS. MORFOLOĢISKĀ ANALĪZE
NEVAJADZĒTU TAČU BŪT ĻOTI
GRŪTI?
Latviešu valodā ir mazliet labāk…
… jo mums ir galotnes, vai ne?!
2. SOLIS. MORFOLOĢISKĀ ANALĪZE
NEVAJADZĒTU TAČU BŪT ĻOTI
GRŪTI?
Latviešu valodā ir mazliet labāk…
… jo mums ir galotnes, vai ne?!
roku
dod roku — lietv., viensk., akuzatīvs, sieviešu dz.
roku locītavas — lietv., daudzsk., ģenitīvs, vīriešu
dz.
spēlē roku — lietv., viensk., akuzatīvs, vīriešu dz.
roku bedri — darbības v., 1. persona, tagadne
Latviešu valodā tiešām ir labāk?!
2. SOLIS. MORFOLOĢISKĀ ANALĪZE
LATVIEŠU VALODAS IESPĒJAS
Latviešu valodā
fiksēta, praktiski nemainīga formu sistēma
iespējams uzskaitīt visas formas, kurās konkrētā
galotne var būt
diezgan sarežģīta, taču pilnībā aprakstāma miju
sistēma
2. SOLIS. MORFOLOĢISKĀ ANALĪZE
ANALIZATORS
Ja sistēmu ir iespējams saprātīgos resursos pilnībā
aprakstīt, tad darām to!
Morfoloģiskā analizatora uzbūve
papildināmi vārdu sakņu saraksti, grupēti pēc locīšanas
īpatnībām — ~60 tūkst. vārdu
fiksēti galotņu saraksti un miju kodējums
minēšana pēc vārda beigām, ja leksikonā neatrada
Pieejams:
https://github.com/PeterisP/morphology jaunākā Java
bibliotēka
http://lnb.ailab.lv:8182/analyze/balta tīmekļa serviss
Bet tomēr, kurš no «roku» veidiem man te ir?
MATEMĀTISKA ATKĀPE —
BEIZA (BAYES) TEORĒMA
P(X) — varbūtība, ka notiek X vai ka X ir patiess
P(X,Y) — varbūtība, ka notiek gan X, gan Y vai ka abi
patiesi
P(X|Y) — varbūtība, ka notiek X, ja ir jau zināms, ka Y
notiek / ir patiess
P(X|Y) = P(X) * P(Y|X) / P(Y)
Mērķis — nezināmās varbūtības noreducēt uz
zināmām / viegli novērtējamām.
Datorlingvistikā bieži var novērtēt
P(X) ≈ Skaits(X) / Skaits(Visi)
maksimālās paticamības novērtējums (maximum likelyhood
estimate)
MATEMĀTISKA ATKĀPE:
MARKOVA PROCESS (MARKOV PROCESS)
Sistēma, kas pāriet no viena stāvokļa nākamajā
Lai prognozētu sistēmu, jāzina visu stāvokļu
varbūtības P(Xi)
Kā?
Pieņemsim, ka nākamo stāvokli nosaka tikai
iepriekšējo stāvokļu virkne
Tad jāzina visi P(Xn|X1,X2,…,Xn-1)
Bet, ja stāvokļu virkņu ir daudz un dažādas un
patvaļīgi garas?!
MATEMĀTISKA ATKĀPE:
MARKOVA PROCESS (MARKOV PROCESS)
Sistēma, kas pāriet no viena stāvokļa nākamajā
Vienkāršojums: nākamo stāvokli ietekmē tikai
iepriekšējie 2, 3 vai k stāvokļi.
Tad jāzina P(Xn|Xn-1,Xn-2,…,Xn-k)
Kā?
Beiza teorēma un dati!
P(Xn|Xn-1,Xn-2,…,Xn-k) = P(Xn) * P(Xn-1,Xn-2,…,Xn-k|Xn+1) /
P(Xn-1,Xn-2,…,Xn-k)
P(Y) ≈ Skaits(Y) / Skaits(Visi)
MATEMĀTISKA ATKĀPE:
SPĒCĪGĀKI MODEĻI
Bet ko tad, ja mēs neredzam X, bet kaut kādas
sekas Y no tā?
Markova neatkarības pieņēmums: novērojamās
sekas ir atkarīgas tikai no atbilstošā stāvokļa.
Markova procesa ideju var papildināt ar
varbūtībām par Y virknēm un varbūtībām par X
un Y savstarpējo saistību
slēptie Markova modeļi (hidden Markov models)
nosacījuma Markova modeļi (conditional Markov
models)
u.c.
2. SOLIS. MORFOLOĢISKĀ ANALĪZE
TAGERIS
Uz datiem apmācāms kontekstjūtīgs
morfoloģiskās daudznozīmības risinātājs
Izmanto
morfoloģisko analizatoru variantu ģenerēšanai
StanfordCoreNLP bibliotēkas nosacījuma Markova
modeļus
Ietver tokenizatoru
Java bibliotēka
https://github.com/PeterisP/LVTagger
2. SOLIS. MORFOLOĢISKĀ ANALĪZE
LEMMATIZATION VS. STEMMING
Stemming — «celmošana»
noteiktu vārdu beigu nociršana, neveicot pilnu
morfoloģisko analīzi
valodām ar nabadzīgu morfoloģiju strādā gandrīz tik
pat labi kā pamatformu noteikšana
Latviešu valodai — ļoti neuzticama metode!
PALDIES PAR UZMANĪBU!
Cenšamies neizgudrot divriteņus…
Jautājumi?