Časopis Slovo a slovesnost
en cz

K některým problémům automatické morfologické analýzy a lemmatizace

Jana Weisheitelová

[Rozhledy]

(pdf)

К некоторым проблемам автоматического морфологического анализа и лемматизации / Quelques problèmes de l’analyse morphologique automatique et de la lemmatisation

Automatická morfologická analýza (dále MA) přirozeného jazyka je důležitou etapou jak při analýze zaměřené na strojový překlad, tak i při strojovém zpracování textů prováděném z hlediska potřeb informatiky. Je možno rozlišovat dva typy MA:

(1) Analýzu úplnou, jejímž cílem je pro každý vstupní tvar získat informace o základních kategoriích, např. pádu, čísle, osobě, způsobu apod., tj. úplnou morfologickou informaci. Výsledky této MA slouží jako výchozí údaje pro následující syntaktickou analýzu. Algoritmy pro úplnou MA češtiny (včetně spojování a určování složených slovesných tvarů) sestavené ve skupině algebraické lingvistiky matematicko-fyzikální fakulty KU v Praze byly prakticky vyzkoušeny na počítači MINSK 22 na základě slovníku sestaveného z několika zkušebních úryvků (stran) elektrotechnického textu. Tyto algoritmy po určitých menších úpravách mají tvořit první etapu v procesu automatické syntaktické analýzy češtiny.

(2) Tzv. lemmatizace, tj. přiřazení vstupního tvaru k příslušné lexikální jednotce ve slovníku, např. přiřazení tvaru píše k infinitivu psát, tvaru elektrodou k nominativu elektroda apod.,[1] představuje druhý typ MA. V rámci tohoto přiřazování můžeme jít různě daleko, tzn. přiřazování se může konat pouze v rovině tzv. paradigmatické morfologie (viz příklady) nebo může být pojato šíře a zahrnovat i lexikální derivaci v rozsahu, který je dán především praktickým cílem systému, např. tvar matčin může být přiřazen k tvaru matka, tvar modulovaný k infinitivu modulovat atd. Jedním ze způsobů, jak dospět k lemmatizaci, která je v informatické praxi jedním z prvořadých úkolů, např. při automatickém sestavování rejstříků a konkordancí, při výběru deskriptorů apod., je využití zjednodušené verze existujících algoritmů MA. Soustředím se zde na některé konkrétní problémy této praktické modifikace systému MA, především na otázku vytváření slovníku.

V automatické MA se vychází ze dvou základních souborů dat, tj. ze slovníku kmenů (pojem kmen se zde vždy nekryje s pojmem kmen, jak je tradičně v lingvistice užíván),[2] zpracovávaných lexikálních jednotek, který rovněž obsahuje údaj o slovním druhu, vzoru, třídě, vidu apod. Druhým souborem je seznam koncovek deklinačních a slovesných a seznam přípon pro stupňování adjektiv a adverbií, popř. přípon pro deverbativní adjektiva typu modulovaný, píšící. Koncovky jsou uloženy v podobě tabulek; první sloupec obsahuje koncovky řazené abecedně, v druhém sloupci je uložena kontrolní informace pro analýzu, tzn. ke každé koncovce je připsán údaj o tom, pro jaký slovní druh a vzor, popř. třídu je tato koncovka přípustná, a třetí sloupec obsahuje výstupní údaj, např. o pádu, osobě, čísle apod. Tyto základní složky MA jsou doplněny algoritmem řídícím postup při analýze, tj. čtení textu, segmentaci věty, hledání tvaru ve slovníku „kmenů“, v tabulkách koncovek atd. Vstupní tvar se hledá ve slovníku kmenů postupným srovnáváním daného tvaru (ve směru zleva doprava) s podobou kmenů, až se najde nejdelší kmen, [341]do něhož se analyzovaný slovní tvar vejde. Zbytek tvaru, může být i nulový, se hledá podle slovníkového údaje u kmenu buď v tabulce slovesných koncovek, jde-li o kmen slovesný, nebo v tabulce deklinačních koncovek, jde-li o kmen slov skloňovaných. V případě homonymie kmenu je zajištěno hledání zbytku tvaru v obou tabulkách. Tvar je správně analyzován, jestliže slovníkové informace u příslušného kmenu a informace obsažené u nalezené koncovky ve druhém sloupci se navzájem shodují. Při tomto způsobu analýzy se značný důraz klade na slovník kmenů.

Při MA prováděné na počítači MINSK 22 byl slovník sestaven tak, aby podoba kmenů umožňovala nejsnadnější způsob rozložení slovního tvaru na kmen a koncovku. U sloves se ukládala podoba kmenu prézentního (např. nes-, kupuj-, děl-), pro skloňovaná slova byl kmenem tvar genitivu bez koncovky (elektronk-, dělník-, měst-). Tyto základní podoby kmenů jsou však při strojové analýze v mnoha případech nedostačující. Je-li např. ve slovníku pro lexikální jednotku elektronka uložen kmen elektronk-, nestačí tato podoba kmenu k analýze tvarů elektronek, elektronce, neboť stroj nedovede tvary, které se od uloženého kmenu liší vkladným -e- nebo měkčením kmenové souhlásky, spojit s tímto kmenem. Alternační obměny základního kmenu, např. měkčení kmenové souhlásky (dělník dělníci, prosí prošen), krácení samohlásek uvnitř kmenu (brána bran, dokázat dokaž), vkladné -e- (elektronka elektronek), u sloves rozdílné podoby kmenu přítomného a minulého (žen-e hna-l) apod., velice znesnadňují vstupní identifikaci slova s příslušným kmenem uloženým ve slovníku.

Tento problém může být řešen v podstatě dvěma způsoby. První spočívá v algoritmickém řešení obměn základního kmenu, tj. řídící algoritmus obsahuje instrukce, které v případě, kdy se pro analyzovaný slovní tvar při prvním průchodu slovníkem kmenů vhodný kmen nenajde, upraví podle určitých pravidel vstupní tvar a ten se opět hledá ve slovníku (např. tvar dělníci se upraví na tvar dělníki, v tvaru elektronek se škrtne vkladné -e- apod.). Tento postup byl v dosavadním algoritmu uplatněn pro slova skloňovaná (byl zčásti i jedině možným způsobem, neboť rozsah slovníku nesměl přesáhnout určitou hranici danou kapacitou paměti počítače MINSK 22), hláskové obměny kmenů pro slovesa byly do slovníku doplněny ručně, tj. lingvistou. Šlo o postup nejednotný, který měl i řadu dalších nevýhod, především z hlediska programování. Úprava vstupních tvarů a opakované hledání ve slovníku vede ke značným časovým ztrátám a takto vypracovaný program je i těžké vyladit. Při dnešních možnostech využití počítačů třetí generace je efektivnější způsob druhý, který předpokládá existenci slovníku, v němž by byly vedle základních podob kmenů uloženy i všechny jejich hláskové obměny a tak by byla umožněna identifikace slova na vstupu s odpovídajícím kmenem ve slovníku, a to již při prvním průchodu slovníkem.

Sestavování slovníku, který vedle základních podob kmenů obsahuje i jejich alternace, je však dosti pracné a vyžaduje určité lingvistické zkušenosti a přehled po problematice. Při praktickém využití algoritmů MA, např. při lemmatizaci, je však nutno počítat s tím, že slovníky budou sestavovat lidé, kteří lingvisty nejsou, a že podrobné informace o tom, jakým způsobem vytvářet všechny nutné podoby kmenů, jak připisovat kmenům různé informace, např. o čísle vzoru nebo třídy, by byly značnou zátěží, a to i za předpokladu, že základní podobu slovníku pro tyto účely sestaví lingvista. Problémy nastanou i při doplňování každého nového slova, které se v dalších textech vyskytne. Požadavek sestavit co nejjednodušší slovník vedl k vytvoření algoritmu, kterým se základní, tj. slovníková podoba dané lexikální jednotky převede na takovou podobu kmenu, která je nutná pro MA, tj. přiřadí se hlásková alternace kmenu. Navrhovaný algoritmus tedy umožňuje automaticky vytvářet tzv. slovník „strojový“, s kterým se pracuje při analýze samé. Úkolem člověka, který slovník pro lemmatizaci, popř. podobné účely zpracovává, je sepsat lexikální jednotky v jejich slovníkové podobě; skloňovaná slova — jak známo [342]— mají podobu nominativu sg. (adjektiva tvar maskulin), u sloves je to tvar infinitivu a tvar 3. os. sg. ind. préz. akt. Ke každé lexikální jednotce je nutno připojit údaj o slovním druhu: u substantiv dále údaj o rodu, a to s tím, že se rozlišují čtyři rody, rod mužský životný (Z), rod mužský neživotný (N), rod ženský (F), rod střední (S). Do slovníku pro tzv. úplnou MA je třeba u sloves dodat údaj o vidu.

Úkolem algoritmu, který vytváří tzv. slovník strojový, je především na základě zakončení uložené lexikální jednotky (tj. nominativ nebo infinitiv a 3. os. sg.) automaticky připsat podle jistých pravidel této lexikální jednotce číslo vzoru nebo u sloves číslo třídy. Dotazem týkajícím se posledního písmena se zjistí číslo vzoru u substantiv a adjektiv; např. substantivům neživotným zakončeným na měkkou souhlásku přiřadíme číslo vzoru 3 (typ stroj), femininům zakončeným na -a číslo vzoru 1 (typ žena) atd. Toto třídění sice nezahrnuje všechny typy paradigmat českých substantiv, např. kolísání mezi typem píseň kost,[3] ale pro daný cíl stačí. U sloves se údaj o čísle třídy získá z informace o zakončení 3. os. sg. ind. préz. akt.; ve shodě s tradičním tříděním se rozlišuje 5 slovesných tříd. Údaj o čísle vzoru, popř. třídy je pro lemmatizaci relevantní, nestačí pouhý soupis koncovek s udáním slovního druhu a rodu, např. ke kmenu škol- (kmen pro tvar škola) by takto mohl být nesprávně přiřazen tvar slovesa — školí, neboť i -i je koncovkou feminin. V rámci tohoto určování vzorů a tříd se sice nedojde v 4. slovesné třídě k rozdílu mezi typem prosí a sází, ale pro lemmatizaci to ostatně není podstatné. Ve slovníku pro úplnou MA je však třeba tyto dva typy rozlišit údajem v základním slovníku, neboť jinak by docházelo u tvaru sází k chybné analýze podle vzoru prosí, tj. 3. os. sg. a 3. os. pl. by se nerozlišily.

Druhým úkolem algoritmu pro tzv. strojový slovník je při využití znalosti o morfematice a morfologii českého tvaroslovného systému automaticky vytvořit z dané lexikální jednotky všechny podoby kmenů, tzn. i alternace. Při vytváření kmenů se vychází z údajů o slovním druhu, vzoru nebo třídě a z informace o zakončení dané lex. jednotky. Předpokládáme, že se tímto algoritmem utvoří všechny potřebné podoby kmenů pro slovesa. K tvoření kmenů je přitom využito infinitivu, z něhož je odvozen kmen minulý, kmen přítomný se získává z tvaru 3. os. sg. V algoritmu jsou zahrnuta pravidla pro vytváření obměn kmenů pro slovesné tvary s měkčenou kmenovou souhláskou (typ prosit prošen, tisknout tištěn), krácením kmenové samohlásky (typ mířit miř, dokázat dokaž) apod.; dotazem na podobu celé lex. jednotky se vytvoří potřebné kmeny pro tvary … šel, … šla, … četl, … četla apod. Skloňovaná slova převede algoritmus na základní podobu kmenu, tj. tvar bezkoncovkový, a zároveň se řeší tyto obměny základního kmenu:

Měkčení koncové souhlásky u substantiv a adjektiv, tj. změna k c, popř. č u adjektiv, g, h z, r ř, ch š. Při rozhodování, zda má být tato změna pojata do algoritmu, se přihlíželo k tomu, nastává-li u všech slov nebo alespoň u naprosté většiny slov dané skupiny. Např. změna r ř není v algoritmu obsažena pro maskulina neživotná, neboť ze 400 slov[4] zakončených na -r je tvar s kmenem pouze u 3 slov v kombinaci s určitou předložkou (na papíře, na dvoře, v klášteře), a není proto nutné tuto podobu kmenu do slovníku ukládat. Algoritmem se řeší přítomnost nebo nepřítomnost vkladného -e- u substantiv. Vychází se při tom z nom. sg.; u maskulin se tedy rozhoduje, kdy se má v dané lex. jednotce vypustit -e- mezi koncovými souhláskami, např. u slov stolek, leden, nebo zda má být ponecháno, např. u slova ukazatel. Podoba kmenu bez vkladného -e- se algoritmem vytváří pro maskulina zakončená na -ec (z 650 slov pouze u 5 slov -e- zůstává, např. u slov [343]koniklec, švec), -ek (z 1200 slov u 17 slov -e- zůstává, např. u slov biftek, klek), naopak u zakončení -tel se kmen bez vkladného -e- nevytváří, neboť z 252 slov pouze u 4 dochází ke ztrátě -e-, tj. u slov kotel, datel, pytel, strašpytel. U feminin zakončených na -a je nominativní tvar bez vkladného -e-; pravidly se -e- vsouvá mezi poslední dvě souhlásky tam, kde před koncovým -a předcházejí dvě souhlásky[5] a poslední z nich je -b (s výjimkou -mb, např. bomba), -k, -l, -m, -n, -r, -v. U feminin typu píseň se vytvoří kmeny bez vkladného -e- v případech, kdy jde o zakončení -eň (z 45 slov pouze v 5 tato změna nenastává, srov. slova zeleň, holeň) nebo -ev. U neuter se kmen s vkladným -e- tvoří vždy, když před koncovým -o předcházejí dvě souhlásky; výjimku tvoří slova se zakončením -jn (srov. hejno), slova s poslední souhláskou -t (srov. město) a slova zrno, vojsko. Algoritmem se do strojového slovníku uloží potřebné kmeny pro feminina typu louka, luk a maskulina typu dům, domu. Algoritmus nepostihuje tedy krácení kmenové samohlásky u substantiv (např. brána bran), změnu í ě (např. díra děr), vytváření kmenů pro nepravidelně stupňovaná adjektiva a adverbia a stranou zůstávají rovněž rodová a bezrodá zájmena.

Při vytváření strojového slovníku pomocí charakterizovaného algoritmu je třeba počítat s určitým počtem chyb, tzn. že pro některé lex. jednotky se nevytvoří potřebné kmeny. V současné době se tímto způsobem sestavuje pro účely lemmatizace slovník z oboru zemědělství a po skončení práce a vyhodnocení případných chyb bude možno algoritmus upravit, popř. vypracovat seznam slov (který nebude zřejmě příliš rozsáhlý) a jejich kmenů s upozorněním pro uživatele, aby v případě ukládání daných slov do základního slovníku zároveň s nimi uložili i obměny kmenů, které nelze algoritmem vytvořit. Pro češtinu, jakožto jazyk s bohatými hláskovými obměnami základních kmenů, je zřejmě nemožné zpracovat pro strojové účely tyto změny natolik, aby nedocházelo k jistým chybám a nedostatkům; rozhodujícím kritériem pro algoritmické zachycení změn je jejich produktivnost. Předností popsaného algoritmu je, že na základě minimálních informací obsažených v základním slovníku, a tedy s minimálními nároky na sestavovatele slovníku vytváří kmeny a údaje potřebné pro strojové zpracování velké většiny českých slov.


[1] Srov. např. M. Těšitelová, Otázky lexikální statistiky, Praha 1974, s. 7.

[2] K tomu srov. K. Korvasová - B. Palek, Některé vlastnosti entropie českého slovníku, SaS 23, 1962, 58—66.

[3] Srov. čl. P. Sgall - J. Weisheitelové K deklinaci českých substantiv ženského rodu, AUC, Philol. 1—3, 1968, s. 9—18.

[4] Ke stanovení počtu zkoumaných slov bylo využito práce E. Slavíčkové Retrográdní morfematický slovník češtiny, Praha 1975.

[5] Srov. V. Šmilauer, Nauka o českém jazyku, Praha 1972, s. 141—165 a I. Poldauf - K. Šprunk, Čeština jazyk cizí, Praha 1968, s. 72—74.

Slovo a slovesnost, ročník 37 (1976), číslo 4, s. 340-343

Předchozí Alla Bémová: Pracovní výsledky leningradské skupiny z oblasti algebraické lingvistiky

Následující Jiří Kraus: Slovenská práce o žánrech v mimoumělecké literatuře