Hlavní navigace

Ohýbání slov a české fulltexty

Pavel Houser

Čeština je, zejména oproti angličtině, jazykem velmi ohebným. Jakým způsobem řešit tento problém v internetových vyhledávačích? Základní pomůckou je používání derivace a lemmatizace, které umožňují převádění výrazů na základní slovníkový tvar a zpět. Kterak si v této disciplíně stojí české fulltextové stroje?

Většina českých slov se skloňuje tak, že se jednoduše k základnímu tvaru (1. pád) přidávají nějaké koncovky. Potom tedy při zadání výrazu „vlkodlak“, eventuálně „vlkodlak*“, najdete všechny jeho příslušné tvary (alespoň v jednotném čísle, všichni „vlkodlaci“ se nám ale už ztratí).

Poměrně často se však stává, že slovo při skloňování nějak mění i svůj kmen. Ukázkový příklad představuje „dům“. Pokud chcete podchytit veškerý výskyt tohoto výrazu, musíte zadat buď všechny pády a mezi nimi operátor OR, nebo tvořit konstrukce ve stylu „d?m*“ (otazník jako divoký atribut nahrazující pouze jeden znak, hvězdička jako libovolně dlouhé pravostranné rozšíření). Je však jasné, že dotazu „d?m*“ vyhoví i obrovské množství slov, o která tazatel vůbec nestojí.

Když vyhledávač v odpovědi na váš dotaz nevezme v potaz stránky, kde se hledaný výraz nachází s jinou pádovou koncovkou (či odlišném čase, hledali-li byste dle sloves), bude jeho výstup poněkud zkreslený. Předně, zřejmě vás zajímá jakýkoliv výskyt vašeho slova bez ohledu na pád. Žebříček stanovený pouze podle prvního pádu bude mít úplně jiné pořadí.

Navíc, pokud hledáte nějaké méně frekventované slovo, je docela dobře možné, že se v prvním pádu nemusí v nějakém dokumentu vyskytovat vůbec. Vyhledávač, který jen porovnává oba řetězce, jej prostě nenajde a vy se o jeho existenci nijak nedozvíte – leda by vás napadlo začít zadávat další tvary.

Naštěstí existují metody, jak se s popsaným problémem vypořádat. Postup, jímž převedete výrazy ze všech tvarů na základní tvar slovníkový, se označuje jako lemmatizace a příslušný nástroj lemmatizátor. Inverzní metoda, která udělá ze základního tvaru množinu veškerých odvozenin, se nazývá derivací (a nástroj je logicky derivátor).

Snadno nahlédnete, že derivaci i lemmatizaci by vyhledávací stroj mohl různě kombinovat. Mohl by například vedle sebe udržovat databázi základních tvarů a obyčejný seznam slov nalezených v dokumentech. Mohl by vyhledávání v obou databázích různě kombinovat. Mohl by se dokonce pokoušet provádět derivaci či lemmatizaci přímo „za běhu“, tj. různě si výraz zadaný uživatelem do formuláře převádět.

Všemi těmito možnostmi se ale budeme zabývat snad někdy jindy. Nyní se podíváme pouze na to, zda se zmíněné technologie v českých fulltextech vůbec využívají.

V této souvislosti ještě jednu poznámku pro šťouraly: podle čeho vlastně hloupý počítač pozná, jak slovo lemmatizovat či derivovat a kterak se vypořádá s příslušnými mnohoznačnostmi? Mohli bychom se sice pokoušet o nějaké „inteligentní“ postupy spojené s analýzou struktury věty, ale zpravidla se spokojíme prostě s přiřazením obou tvarů podle slovníku. Takže při lemmatizaci výrazu „vesel“ si slovo převedeme na oba základní tvary „veslo“ i „veselý“, aniž bychom zkoumali, o co konkrétně se jedná. Existují samozřejmě i jiné přístupy (ale to třeba, pro změnu, někdy jindy).

Jak tedy zjistit, zda české vyhledávače používají lemmatizaci a derivaci? Pokud zadáte například oslovení „kormoráne“, nenajdete skoro nic (což je logické, většina lidí s kormorány nemluví) – ovšem ani mnohem četnější dokumenty obsahující slovo „kormorán“. Tento pokus ale bohužel nemá velkou výpovědní hodnotu. Stroj zřejmě předpokládá, že vás zajímá speciálně 5. pád a nesnaží se myslet za vás.

Něco jiného však je, pokud byste při hledání výrazu v prvním pádě minuli dokument, kde je toto slovo v pádu jiném. Pro malý test českých fulltextů potřebujeme splnit následující podmínky:

  • musí jít o slovo, kde se skloňování neprovádí pouze přidáváním hlásek, ale dochází rovněž ke změně v kmeni
  • musí jít o slovo velmi málo frekventované
  • ideálně by mělo jít o slovo, které se přednostně vyskytuje v nikoliv prvním pádě (např. je součástí nějaké fráze, která se používá častěji než základní tvar slova)

Pokud nyní na zadání výrazu typu „ředkev“ najdeme dokument, kde se např. vyskytuje pouze tvar „ředkve“, leč nikoliv „ředkev“, dokázali jsme použití lemmatizátoru. Vzhledem k tomu, že vyhledávače se orientují nejen podle vlastního textu na stránce, bude lépe prohledávat zdrojový HTML kód.

Podle mých zkušeností / pokusů však ani WebFast, ani ostatní české fulltexty běžící na stoji Empyreum popisované technologie nepoužívají. Samozřejmě se tvůrců technologií lze zeptat. :-)

Existuje ale i řada jiných způsobů, jak se dostat pravdě na kloub. Především vymyslet ono skutečně málo frekventované slovo, které odhalíme i v dalších pádech. Teoreticky je také možné, že lemmatizace a derivace se nějak používají, ale mění se při nich selekční váha. Na slovo „racek“ se tedy nalezne i dokument obsahující pouze „racka“, ale bude umístěn až někde dole. Proto je nutné experimentovat se slovy, u nichž je šance, že v prvním pádě nebudou vůbec k nalezení. Máte nějaký nápad, jaké slovo by to mohlo být?

Další možností je vytvořit dokument složený např. pouze z výrazu „turka, turka, turka“, počkat, až jej roboti zaindexují a potom zkusit, zda na slovo „turek“ nějaký fulltext vrátí i vaši stránku. Osobně o tom pochybuji, ale třeba budete mít více štěstí.

Anketa

Který český fulltextový stroj dle vás oplývá nejkvalitnější lemmatizací?

Našli jste v článku chybu?

25. 1. 2007 18:25

uživatel si přál zůstat v anonymitě
a take http://cent.cz

9. 5. 2002 16:33

Pavel Houser, Science World (neregistrovaný)
autor se právě vrátil z dovolené, proto reaguje až nyní:

K anketě: není dílem autora, leč editora článku - dle mého mínění nemá přitom příliš smysl, protože IMHO webfast ani empyreum příslušné technologie prostě nepoužívají, tudíž je těžké se ptát, který z nich je má kvalitnější.

Pokud by pánové z Uffo a WebSeeku měli zájem uvést podrobnosti, jak mají lematizaci a derivování řešené, uvítám, pokud tak učiní zde nebo mi informace pošlou e-mailem.



120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Měšec.cz: Vklad na cizí účet je draze zpoplatněn (přehled)

Vklad na cizí účet je draze zpoplatněn (přehled)

Vitalia.cz: Vychytané vály a válečky na vánoční cukroví

Vychytané vály a válečky na vánoční cukroví

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Vitalia.cz: To nejhorší při horečce u dětí: Febrilní křeče

To nejhorší při horečce u dětí: Febrilní křeče

120na80.cz: Stoná vaše dítě často? Upravte mu jídelníček

Stoná vaše dítě často? Upravte mu jídelníček

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Podnikatel.cz: Udávání kvůli EET začalo

Udávání kvůli EET začalo

Root.cz: 250 Mbit/s po telefonní lince, když máte štěstí

250 Mbit/s po telefonní lince, když máte štěstí

Vitalia.cz: Jmenuje se Janina a žije bez cukru

Jmenuje se Janina a žije bez cukru

120na80.cz: Popraskané rty? Některé balzámy stav zhoršují

Popraskané rty? Některé balzámy stav zhoršují

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

DigiZone.cz: Vedení ČRo: personální změny od ledna

Vedení ČRo: personální změny od ledna

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

Měšec.cz: Sleva na dítě a manželku pro OSVČ je zpět. Ale..

Sleva na dítě a manželku pro OSVČ je zpět. Ale..

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Vitalia.cz: Když přijdete o oko, přijdete na rok o řidičák

Když přijdete o oko, přijdete na rok o řidičák

Měšec.cz: Jak levně odeslat balík přímo z domu?

Jak levně odeslat balík přímo z domu?

Root.cz: Telegram spustil anonymní blog Telegraph

Telegram spustil anonymní blog Telegraph