\"/
\"/ \"/    

Česká jazyková podpora

Pavel Ševeček, ÚVT MU
Ročník IV - číslo 3, leden 1994
Citace: P. Ševeček. Česká jazyková podpora. Zpravodaj ÚVT MU. ISSN 1212-0901, 1994, roč. IV, č. 3, s. 17-20.
Tematické zařazení: Typografie, počítačová sazba
 předchozí článek | následující číslo 

Pravděpodobně jste se při používání některého editoru či sázecího systému setkali s výrazy hyphenation, spell checker či thesaurus. Tato slova se obvykle překládají jako dělení slov, korektor překlepů a slovník synonym. Někdy se pro zkrácení používá pojem jazyková podpora a dá se říci, že v současnosti se již bez ní neobejde žádný textový procesor. V následujícím článku budeme hovořit o české jazykové podpoře, tedy o dělení, korektoru a slovníku synonym pro náš mateřský jazyk.

Dělení slov

Nejjednodušším problémem je zřejmě dělení slov. Za dávných časů editory celkem vystačily s jednoduchými algoritmy typu: je-li ve slově za sebou samohláska, souhláska a samohláska, je možno dělit mezi samohláskou a souhláskou. I toto jednoduché pravidlo však selže i na řadě základních slov, jako např. bez-ostyšný, nej-elegantnější či čtyř-etážový.

Bez ohledu na možné chyby v dělení mají tyto algoritmy i další úskalí. Nepostihují výjimky ani cizí slova a v řadě případů slovo nedělí v místě, kde by to bylo možné. To pak vede k problémům hlavně při sazbě ve sloupcích.

V současnosti se proto používají jiné způsoby:

  1. slovník vzorů pro dělení slov
  2. algoritmus pro dělení kombinovaný se slovníkem výjimek
  3. slovník pro korektor obohacený o informaci o dělení

První přístup byl prvně použit v sázecím systému TeX, pro svou univerzálnost se stal oblíbeným i pro jiné editory či DTP programy. Např. QuarkXPress nebo Wonder Word má dělení pro všechny jazyky založeno právě na této myšlence.

Kvalitní algoritmická dělení většinou dělí na základě typických přechodů souhlásek a samohlásek, které kombinuje se znalostí předpon a přípon daného jazyka. Musí však nutně pracovat i s poměrně rozsáhlým slovníkem výjimek. Některé předpony se totiž částečně překrývají, takže dělíme ne-jste, ale nej-ste-ril-něj-ší. Podobně je to u slov po-dra-žit - pod-ra-zit nebo Ant-ark-ti-da - an-ti-kva-ri-át.

Poslední uvedený přístup je založen na velkém slovníku, ve kterém jsou naznačeny dělicí body pro každé slovo. Vyhledání slova v takovém slovníku je však časově i paměťově náročnější, navíc se naskýtá otázka, co se slovy, která nejsou ve slovníku. Proto se tento přístup vhodně kombinuje s algoritmickým řešením.

Všechny tyto přístupy mají jedno společné. Pokud má být výsledek skutečně použitelný, je nutno vycházet ze slovní zásoby většího rozsahu, řádově desítky, lépe však stovky tisíc slov.

Pokud jde o české dělení, je stávající situace zhruba následující. Jednoduchý algoritmus pro dělení byl použit v editorech Text602, CSED, MAT a WinText602 - verze 1.0. Princip vzorů pro dělení je použit v programech Wonder Word, WinText602 - verze 2.1 a dokončovaném editoru Klasik, z lokalizovaných editorů a DTP programů pak v produktech Word Perfect, Page Maker či QuarkXPress. Zdokonalený algoritmický přístup je použit v české verzi Ventury, spolupráce s velkým slovníkem pak v české verzi AmiPro.

A na závěr této části malou perličku. Slova podrobit, ohni či narval je nutno dělit dvojím způsobem v závislosti na významu slova. Dělíme totiž po-dro-bit ve významu drobit, ale pod-ro-bit ve významu podmanit, o-hni od slovesa ohnout, ale oh-ni ve významu oheň či konečně nar-val jako kytovec, ale na-rval od slovesa rvát.

Korektor překlepů

Pravděpodobně nejtypičtější komponentou jazykové podpory je kontrola překlepů neboli spell checker. To je také oblast, na které jsou markantně vidět rozdíly angličtiny a češtiny. Vzhledem k tomu, že anglická slova se ohýbají buď málo nebo se neohýbají vůbec, pohybuje se celkový počet tvarů slovní zásoby korektoru mezi 100 až 200 tisíci slov. Stačí proto použít vhodný komprimační algoritmus, který umožní v binárním tvaru slovníku rychle vyhledávat a problém je více méně vyřešen. Další je již otázkou rozsahu a kvality slovní zásoby.

V češtině je situace poněkud jiná. Celkový počet kmenů (tedy slov v základním tvaru) je srovnatelný s počtem anglických kmenů, skloňováním a časováním slov je však možno vytvořit několik milionů různých tvarů. Nějaký ještě dokonalejší komprimační algoritmus nám v tomto případě příliš nepomůže. Celý problém netkví v tom, že by snad byl výsledný slovník příliš velký (ostatně dnes nějaké to mega na disku nehraje příliš velkou roli), nýbrž v nemožnosti prakticky udržovat několikamilionovou slovní zásobu. Korektor překlepů je totiž nutno neustále aktualizovat, doplňovat nová slova, vypouštět slova zastaralá a hlavně opravovat nalezené chyby, protože těm se při takovém rozsahu nikdo nevyhne.

Klíč k řešení tohoto problému se jmenuje morfologický popis. Myšlenka je vcelku jednoduchá. Do slovníku vkládat slova pouze v jednom (základním) tvaru, ke každému slovu přiřadit vzor a vhodným způsobem popsat, jak se vytvářejí všechny tvary slova podle tohoto vzoru. Každý si zřejmě vzpomene na hodiny češtiny na základní škole a na vzory podstatných jmen nebo třídy sloves. To je také rozumný základ, ze kterého je možno při popisu těchto slovních druhů vycházet.

Celá situace je ovšem poněkud komplikovanější. Veškerý dosavadní popis odvozování slov, uváděný v gramatikách, byl totiž pro účely algoritmického popisu velmi povrchní. Jednak nepostihuje poměrně časté alternace slov (změny kmenové souhlásky či samohlásky) pro některé tvary slova, jednak výjimky z daného pravidla jsou uváděny pouze v několika příkladech.

Počáteční práce na korektoru pravopisu byla tedy práce čistě lingvistická. Bylo třeba vybudovat kompletní popis odvozování slov v češtině, shromáždit rozsáhlou slovní zásobu a všechna tato slova přiřadit k patřičným vzorům. Do tohoto nelehkého úkolu se pustily dvě skupiny: jedna na Ústavu počítačové lingvistiky Univerzity Karlovy, druhá na Masarykově univerzitě v Brně. Teprve potom mohla přijít na řadu práce programátorská.

Výsledkem byly dva korektory, které se v letech 1989-90 objevily v domácích editorech Text602, CSED, PragoText a Cyril. K editoru Text602 bylo dokonce možno zakoupit kterýkoli z nich a jejich kvalitu uživatelé mohli posoudit sami.

V posledních dvou letech se postupně objevovaly na našem trhu proslulé zahraniční editory již v české verzi, některé z nich se zabudovaným korektorem. Byl to především ve světě dosud nejrozšířenější textový procesor Word Perfect, populární AmiPro a sázecí systémy PageMaker, Ventura a QuarkXPress. Zatím poslední je česká lokalizace produktu Word for Windows. Objevily se také nové české editory: MAT pro MS-DOS, WinText602 pro MS Windows, Wonder Word pro UNIX nebo Script pro počítače Macintosh.

V současné době jsou všechny používané korektory pro češtinu založeny na lingvistickém popisu. Tento popis se dále rozšiřuje a zpřesňuje, protože korektor překlepů není jediná aplikace, kde je možné tento popis použít. Velmi užitečným nástrojem je lemmatizátor, čili program, který ke každému tvaru slova poskytne jeho základní tvar. Tuto funkci lze použít pro vyhledávání ve full textových databázích nebo pro třetí z jazykových produktů - slovník synonym.

V současnosti existují na našem trhu tři nezávislé korektory. První dodává firma Sezam a je integrován v produktech AmiPro, Cyril, Uniplex, Office Power a lokalizaci produktu QuarkXPress. Druhý od firmy LOGOS je začleněn v editorech WordPerfect, MAT, WinText602, Klasik, Wonder Word a Claris Works, dále pak v DTP systémech Ventura a QuarkXPress. Třetí korektor byl vytvořen v USA firmou Houghton Mifflin a je součástí stávající české verze programu Word for Windows. Dosavadní recenze však pro tento zahraniční korektor nevyznívají příliš lichotivě.

Slovník synonym

Vývojově poslední součást české jazykové podpory existuje teprve krátkou dobu. Proto si ve stručnosti uvedeme několik pojmů, které se k této problematice vztahují.

Synonyma jsou slova souznačná, tedy slova stejného nebo podobného významu. Taková slova lze ve většině situací volně zaměňovat (ne nutně ve všech). Antonyma jsou slova opačného významu. Hyponyma jsou podpojmy, tedy slova významově užší, naproti tomu hyperonymum je nadpojem, tedy slovo významově širší. Např. ozdoba, okrasa a dekorace jsou synonyma, prsten je hyponymum slova ozdoba, věc je hyperonymum slova ozdoba.

Synonymický slovník je obvykle slovník synonym a antonym. Pro angličtinu již existoval dříve, s různými slovníky jsme se mohli setkat v programech Word Perfect a AmiPro nebo samostatně v programu Webster Thesaurus. Pro češtinu však do nedávna chyběl.

První a dosud jedinou verzi vytvořila firma LOGOS. Tato první verze byla začleněna pouze do programu AmiPro. Současná druhá, rozšířená a vylepšená verze je součástí editorů Klasik, MAT, WinText602, a Wonder Word. Co tedy lze od takového slovníku synonym očekávat?

Rozhodně ne to, že bude znát tolik slov jako korektor překlepů. Ne ke každému slovu totiž synonyma existují. Prakticky se nevyskytují u zájmen a číslovek, zřídka u předložek a spojek. Častá jsou naopak u abstraktních podstatných jmen, přídavných jmen, příslovcí a sloves. Tím je také dán celkový rozsah slovníku. Český slovník obsahuje přibližně 20.000 hesel (korektor 170.000 kmenů).

Vhodné je jeho použití v případě, že se v textu opakuje více stejných slov krátce po sobě. V tomto případě slovník synonym pomůže osvěžit paměť a nasměrovat uživatele k volbě jiného slova. Částečně také může pomoci zabránit použití cizího slova v případě, že existuje vhodné nebo i vhodnější původní české slovo.

Implementace slovníku synonym se opírá o výše zmíněný lemmatizátor, který umožní vyhledat správná synonyma k nejrůznějším tvarům téhož slova. Například ke tvarům bystrý, bystrého, bystříbystře thesaurus zobrazí synonyma slova bystrý, k prát, prali, pereperouc (přechodník) synonyma slova prát. A zatímco ke slovu krytí zobrazí synonyma slova krytý, k textově blízkému slovu kryti zobrazí synonyma slovesa krýt.

Komická situace nastává u slova ženou, protože v tomto případě se může jednat o podstatné jméno žena nebo o tvar slovesa hnát. Různé editory tuto situaci řeší různě. MAT i WinText602 zobrazí současně synonyma obou slov, Wonder Word vám dá nejprve vybrat, o který z obou případů se jedná, a pak zobrazí seznam synonym.

Případů tohoto typu je daleko více, než byste na první pohled čekali. Také výše zmíněné slovo bystří je odvozeno od bystrý i od slovesa bystřit, plní od plnitplný nebo stát může být podstatné jméno nebo sloveso.

Závěr

Textové editory a textové procesory jsou zřejmě nejrozšířenější aplikací používanou na počítačích. Předchozí odstavce byly míněny jako pohled do zákulisí těchto programů v oblasti jazykové podpory. Správné dělení slov, korektor překlepů i slovník synonym se staly nedílnou součástí nejen těchto programů, ale i vyšších DTP systémů. Je proto dobré vědět o této problematice trochu více, než lze běžně nalézt v propagačních materiálech příslušných programů.

Zpět na začátek
ÚVT MU, poslední změna 14.11.2011