Yuhůův weblog o webu

ve čtvrtek 30. června 2005

MS Word umí českou gramatiku

Červené podrthávání ve Wordu znáte, to je překlep. Možná znáte i zelené podtrhávání, které znamená, že ve větě je gramatická chyba. Dosud jsem se se zeleně podtrženými větami setkával jenom v angličtině. Od včerejška umí Microsoft Word hledat gramatické chyby i v češtině.

Jestli tuhle legraci chcete vidět a máte nainstalovaný Word 2003, najděte si na stránkách Microsoftu balíček na kontrolu české gramatiky. Po instalaci stačí napsat nějakou gramaticky evidentně chybnou větu, měla by se zeleně podtrhnout. Případně zkuste zmáčknout klávesu F7 nebo se pohrabat v nastavení v možnostech pravopisu a mrknout tam na gramatiku -- velmi zajímavé.

O této možnosti informovala včera ráno BBC. Citovali Karla Olivu, ředitele Ústavu pro jazyk český AV, kterýžto ústav aplikaci pro Microsoft vyvíjel.

Uhádnout, co měl autor na mysli při psaní věty, se samozřejmě nedá. "Podívali jsme se na problém z opačného hlediska," uvádí ředitel Ústavu pro jazyk český AV ČR Karel Oliva. Na základě znalostí české gramatiky se snažili sestavit přehled takových konstrukcí, které jsou zaručeně špatně. (citace z článku Petry Škraňkové na BBC, odkaz výše)

To odpovídá i mému pozorování:

Stává se mi to u vět se špatnou interpunkcí, když to není moc evidentní (nějaké příklady naleznete "zde" ).

Dále kontrola gramatiky například neodchytí věty typu "důkladně políbil", která má být správně "důkladně ji políbil". Gramatika se text totiž nesnaží chápat a nemůže vědět, že se slovo políbit váže se čtvrtým pádem (políbit koho co - ji, nikoli jí; srovnej se třetím pádem ve větě "důkladně jí nafackoval", nafackovat komu čemu - jí - to je správně). Jinak se mi ovšem nová gramatika moc líbí, považuji ji za povedenou.

Podrobnosti od Johanky

Johanka Doležalová se v těchto věcech kolem lingvistiky vyzná a dokáže je srozumitelně podat, a tak jsem ji požádal o pár odpovědí na otázky, které mě při poslechu BBC napadly. Johanku patrně znáte jako někdejší šéfredaktorku Roota. (Moje otázky jsou tučně, odpovědi normálně.)

Yuhů: Je použití "špatných" konstrukcí opravdu něco inovativního?

Johanka: Z hlediska tvorby korektorů to asi nic inovativního není. Když nemáš rozumný způsob zpracování jazyka, tak to jinak nejde než popsat negativní konstrukce. Pokud ten způsob máš a byl by sis jistý, že se to dělá dobře, tak bys s klidem mohl pustit parser na větu a tam, kde by se to zbořilo, říct, že věta je blbě. Jenže ty si jistý zatím nejsi, takže musíš tomu pozitivnímu přístupu (hledání validních konstrukci) "vyjít naproti" hledáním invalidních konstrukcí. Nejlepší způsob je tyhle metody kombinovat.

Mám tomu rozumět tak, že tahle kontrola neodchytí všechny chyby?

Samozřejmě že neodchytí. Úplně nejdůležitější je vyhnout se false positives. I za cenu toho, že chytíš třeba půlku toho, to bys chytit zvládnul s nějakou tou chybovostí. Protože lidi, jakmile jim to moc často bude radit kraviny, tak asi rádi nebudou a nebudou k tomu mít důvěru. Takže ten způsob, jakým je korektor psán, je superopatrný.

Pak taky jsou takový věci jako Lesy byli vykáceni vs. Dělníky byli vykáceni. Prostě že ta věta teoreticky může být dobře a ty nevíš, jestli fakt není, pokud nemáš znalost o reálném světě. A takovejch konstrukcí je moc...

Používá se přitom nějakých stromečkových analýz? Víš něco ohledně toho, jakým formálním postupem na to šli?

Pustí se Hajičova morfologie, taková ta, co ji má i NetCentrum a různí další, a na tu se pustí naše pravidlová disambiguace (disambiguace je to, co rozhodne, jestli slovo stavení je 1. sg nebo 2. sg nebo 1. pl apod.). Naše disambiguace to nerozhodne, ona akorát na základě lingvistických pravidel, která se právě dělala těch mnoho let, co tam zmiňují, seškrtá ty významy, které tam fakt být nemůžou (na základě různých pozorování, jako třeba "předložka/spojka a sloveso nemůže být za sebou, takže v "aby vinou" není "vinou" sloveso apod.).

Kdyby ta disambiguace už byla hotová a dokonalá, tak se takhle najdou všechny chyby, resp. označí se věty obsahující chybu (kde ta chyba je, to už je horší zjistit). No ale disambiguace (která využívá ten pozitivní přístup, tedy předpokládá, že věta je dobře) zatím hotová není (ještě se bude dělat 100 let), takže jí jdou naproti pravidla grammarcheckerová, která zase předpokládají, že je věta špatně (to je to, o čem mluvil Karel - to přeorientování z disambiguace na checking) a zkouší matchovat různé známé konstrukce. Hlavně taky dělají tu věc, že se snaží z věty, kterou řekněme disambiguace označí za blbou, vytlouct, kde přesně ta chyba je.

To je strašně těžké, protože zatímco správný jazyk máš rozumně popsaný, tak množina chyb, co lidi dělají, je dost nedeterministická a nekonečná, takže to nějak zkusíš a uvidíš. Prostě rozhodnout, zda je věta dobře, nebo blbě, je podstatně snazší úkol, než rozhodnout, co v ní je blbě. Protože předpokládat potenciální chybu úplně u všeho, to bys v životě nedopočítal.

No, takže stromečky tam nejsou, tak daleko nejsme. Protože všechny metody, co staví stromečky, zatím strašně chybují.

Yuhů: Podílela ses na téhle kontrole gramatiky pro Microsoft Word?

Johanka: Spolupracovat na té věci přímo jsem odmítla z náboženských důvodů. Prostě nechci vyrábět M$ konkurenční výhodu, to bych musela být blbá (a taky bych pak musela chodit kanálama). Na tohle nejsou žádný prachy dost velký :))) Ale aktivně se podílím na projektu pravidlové morfologické disambiguace, která je tam (jako vůbec poprvé v nějaké aplikaci) využita, proto toho tolik vím, protože na tom dělali úplně stejní lidé jako na disambiguaci, s výjimkou mě.

Zajímavý odkaz: Dalibor Behún píše na stejné téma (interval.cz). Pozdější související: Test Lingea Grammaticon a Rozhovor se šéfem Lingea, oboje také na Intervalu.

trvalý odkaz

Yuhůův weblog píše Yuhů Yuhů. Kontakt. Weblog patří pod Jak psát web.