Jazykové nástroje
- Korektor překlepů
- Podpora fulltextu
- Dělení slov
- Slovník synonym
- Háčky a čárky
- Oslovení v dopisech
- Rozpoznání jazyka
- Lingea Grammaticon
- Přehled nástrojů
Produkty
Tituly v jazycích
- Angličtina
- Němčina
- Francouzština
- Španělština
- Ruština
- Italština
- Čeština
- Další jazyky - Evropa
- Další jazyky - Asie
Aplikace
Podpora fulltextového vyhledávání
Vytváříte-li programový systém, do kterého chcete zabudovat fulltextové vyhledávání, bude se vám jistě hodit komponenta, která umožní uživateli klást dotazy bez ohledu na to, v jakém morfologickém tvaru ho zadá. Tak třeba, napíše-li kurzy akcií, jistě bude rád, když mu program najde i článek obsahující výraz vývoj kurzu akcií či jen akcie. Právě pro tyto účely vám vycházíme vstříc s komponentou, která poskytuje dvě užitečné věci:
- získat základní tvar slova od jeho libovolného tvaru
- vygenerovat všechny tvary od daného základního tvaru
Základním tvarem slova (nazývaným též lemma) se rozumí většinou první pád jednotného čísla, tedy např. akcie. Samozřejmě, že existují i slova, od kterých jednotné číslo vytvořit nelze, např. prázdniny. V tom případě se lemmatem rozumí 1. pád množného čísla.
U sloves se jako základní tvar chápe infinitiv, např. hledat. V některých jazycích však existují opět výjimky. Třeba bulharština, kde infinitiv vůbec není, chápe jako základní tvar 1. osobu jednotného čísla. Maďarština naopak infinitiv má, ale jako lemma používá tvar 3. osoby jednotného čísla.
Jaký základní tvar byste však čekali pro přídavné jméno slavnou? Jedná se o tvar ženského rodu, takže se nabízejí hned dvě možné odpovědi – 1. pád ženského rodu slavná, anebo 1. pád mužského rodu slavný. Těchto případů lze najít ještě víc, např. zda od slovesa není je lemma být či nebýt, zda je pro přivlastňovací tvar otcovou lemma otcova, otcův či otec, zda pro dílovou číslovku pětiny chtít pětina nebo pět, anebo třeba zda k příslovci lépe vrátit první stupeň dobře nebo přídavné jméno dobrý. Všechny tyto věci si však budete moci určit sami podle svých potřeb.
Podobným způsobem lze u druhé funkce specifikovat, jak velký rozsah tvarů chcete generovat pro dané lemma, tedy zda chcete od přídavných jmen získat i odvozená příslovce, od podstatných jmen přivlastňovací tvary atd.
Jazyková část
Základem celého řešení je stejně jako u korektoru překlepů formální popis morfologie, oproti němu je však obohacený o další informace. Těmi jsou především všechny gramatické kategorie, např.:
- pád, číslo a rod pro podstatná jména
- osoba, číslo, způsob, čas a vid pro slovesa
- kategorie zájmen, číslovek, příslovcí či spojek
Nalézt základní tvar slova ale není tak jednoduché, jak by se mohlo na první pohled zdát. Kromě pravidelných tvarů slov je totiž potřeba řešit i různorodé alternace kořene, které se u řady českých slov vyskytují. Máme na mysli dvojice typu mráz-mrazu, stůl-stolu, Bůh-Bohu, brontosaurus-brontosauři, pelyněk-pelyňku, péct-peče, stonat-stůně, či dokonce případy jako hnát-ženu, Zeus-Dia, čest-cti apod., kde změna postihuje hned první písmeno slova. Podobné případy se nevyskytují pouze v češtině, ale ve všech jazycích. I v poměrně jednoduché angličtině najdeme případy typu come-came, break-broken, nebo dokonce go-went.
Druhým problémem je homonymie. U řady tvarů slov není totiž jednoznačné, od kterého základu jsou odvozeny. Např. ženu může být odvozeno buď od slova žena (4. pád j. č.), nebo od slova hnát (1. os. j. č.), samotné slovo hnát může být sloveso označující pohyb, či podstatné jméno označující končetinu. Další příklady jsou plní (od plnit i od plný), Pavla (od Pavel i od Pavla), stát (sloveso i podstatné jméno) či bez (předložka i podstatné jméno). Podobných případů je skutečně hodně, takže se nelze divit, když vám program kolikrát vrátí i více výsledků. Věřte však, že všechny jsou správné.
Programové řešení
Programové řešení je navýsost úsporné. Díky propracovanému systému vzorů a kmenů můžeme datový soubor srazit skutečně na minimum. Víte třeba, kolik je v češtině různých tvarů slov? Více než 6,7 milionu. Vezmeme-li navíc v úvahu víceznačnost, tedy např. že slovo stanu je první osoba od slovesa stát, ale také 2. pád od substantiva stan, dospějeme k celkovému číslu 22 milionů různých slov. A představte si, že všechna tato slova navíc i s příslušnými morfologickými informacemi vměstnáme do souboru o velikosti 1 MB. Takže s trochou nadsázky můžeme říct, že nám stačí jeden bit na tři česká slova.
Ve většině informatických aplikací platí, že velikost dat a rychlost vyhledávání jsou nepřímo úměrné. U nás tomu ale tak není. Naše komponenta dovede vyhodnotit 28 000 slov za sekundu, nebo chcete-li, zpracování jednoho slova jí trvá 0,000036 sekundy.
Dostupné funkce
- Návrat základního tvaru slova. Jak už bylo uvedeno, může být základní tvar chápán pro různé případy odlišně. Proto zde máte možnost specifikovat, o jaký tvar máte konkrétně zájem.
- Návrat všech morfologicky příbuzných tvarů daného slova. I zde můžete upřesnit, jak velká má množina slov být, tedy zda např. chcete od slovesa i odvozená přídavná jména či substantiva, zda chcete od substantiv také přivlastňovací tvary nebo zda se mají v rámci jednoho slovního druhu brát v úvahu i různá čísla, časy, způsoby nebo stupňování.
- Vyskloňování celé jmenné skupiny tvořené přídavným a podstatným jménem, např. akciová společnost, akciové společnosti, ..., akciovou společností, akciové společnosti, akciových společností, ..., akciovými společnostmi.
V současnosti nabízíme podporu fulltextového vyhledávání pro širokou škálu jazyků (viz tabulka). Implementována je rovněž na většině platforem (viz přehled).
Chcete-li svůj fulltextový vyhledávač udělat uživatelsky ještě příjemnější, doporučujeme vám další naši komponentu – Slovník synonym.
Reference
Možnosti morfologického hledání pro různé jazyky nejlépe vyzkoušíte v překladových slovnících Lingea Lexicon. Jejich hlavní využití však je ve vyhledávacích systémech různých produktů, např. Fullcrum, Convera nebo vlastních firemních systémech.