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?