Jazykové nástroje
- Korektor preklepov
- Podpora fulltextu
- Delenie slov
- Slovník synoným
- Mäkčene a dĺžne
- Rozpoznanie jazyka
- Prehľad nástrojov
Produkty
Tituly v jazykoch
Aplikácie
Podpora fulltextového vyhľadávania
Ak vytvárate programový systém, do ktorého chcete zabudovať fulltextové vyhľadávanie, bude sa vám určite hodiť komponent, ktorý umožní používateľovi klásť otázky bez ohľadu na to, v akom morfologickom tvare ho zadá. Tak napríklad, ak napíše kurzy akcií, určite bude rád, keď mu program nájde aj článok obsahujúcí výraz vývoj kurzu akciíalebo len akcie. Práve na tieto účely vám vychádzame v ústrety s komponentom, ktorý poskytuje dve užitočné veci:
- získa základný tvar slova od jeho ľubovoľného tvaru
- vygeneruje všetky tvary od daného základného tvaru
Pod základným tvarom slova (nazývaným aj lema) rozumieme väčšinou prvý pád jednotného čísla, napr. akcia. Existujú, samozrejme, aj slová, od ktorých sa jednotné číslo vytvoriť nedá, napr. prázdniny. V tom prípade lemou rozumieme 1. pád množného čísla.
V prípade slovies je základný tvar infinitív, napr. hľadať. V niektorých jazykoch však existujú opäť výnimky. Napr. taká bulharčina, ktorá infinitív vôbec nemá, chápe ako základný tvar 1. osobu jednotného čísla. Maďarčina, naopak, infinitív má, no ako lemu používa tvar 3. osoby jednotného čísla.
Aký základný tvar by ste však čakali v prípade prídavného mena slávnu? Ide o tvar ženského rodu, takže sa ponúkajú hneď dve možné odpovede – 1. pád ženského rodu slávna, alebo 1. pád mužského rodu slávny. Podobných diskutabilných prípadov by ste našli oveľa viac, napr. či od slovesa nie je je lema byť či nebyť, či je v privlastňovacom tvare otcovu lemou otcova, otcov či otec, či si v prípade podielovej číslovky pätiny vybrať pätina alebo päť, alebo či k príslovke lepšie vrátiť prvý stupeň dobre alebo prídavné meno dobrý. Všetky tieto veci si však budete môcť určiť sami podľa svojich potrieb.
Podobným spôsobom možno v prípade druhej funkcie špecifikovať, aký veľký rozsah tvarov chcete generovať pre danú lemu, teda či chcete od prídavných mien získať aj odvodené príslovky, od podstatných mien privlastňovacie tvary atď.
Jazyková časť
Základom celého riešenia je takisto ako v prípade korektora preklepov formálny popis morfológie, v porovnaní s ním je však obohatený o ďalšie informácie. Tými sú najmä všetky gramatické kategórie, napr.:
- rod, číslo a pád podstatných mien
- osoba, číslo, spôsob, čas a vid slovies
- kategórie zámen, čísloviek, prísloviek a spojok
Určiť základný tvar slova však nie je také jednoduché, ako by sa mohlo zdať na prvý pohľad. Okrem pravidelných tvarov slov je totiž potrebné riešiť aj rôznorodé alternácie koreňa, ktoré sa vyskytujú v mnohých slovenských slovách. Máme na mysli dvojice typu mráz-mrazu, stôl-stola, kôň-koňa, brontosaurus-brontosauri, cesta-ciest, piecť-pečie či dokonca prípady ako hnať-ženiem, Zeus-Dia, česť-cti ap., kde sa mení od základu celé slovo. Podobné prípady sa nevyskytujú len v slovenčine, ale vo všetkých jazykoch. Aj v pomerne jednoduchej angličtine nájdeme prípady typu come-came, break-broken, alebo dokonca go-went.
Druhým problémom je homonymia. V mnohých tvaroch slov nie je totiž jednoznačné, od ktorého základu sú odvodené. Napr. plní môže byť odvodené buď od slova plniť (3. os. j. č., alebo od slova plný (1. p. mn. č.). Ďalšie príklady sú Martina (od Martin aj od Martina), nemá (sloveso v 3. os. j. č.) i ženský tvar prídavného mena nemý. Podobných prípadov je v slovenčine oveľa viac, takže niet divu, keď vám program nájde viac výsledkov. Verte, že všetky sú správne.
Programové riešenie
Programové riešenie je nanajvýš úsporné. Vďaka prepracovanému systému vzorov a kmeňov môžeme dátový súbor zredukovať skutočne na minimum. Viete napríklad, koľko je v slovenčine rôznych tvarov slov? Vyše 6,7 milióna. Ak ešte vezmeme do úvahy viacznačnosť, teda napr. že slovo ciest môže znamenať 2. pád množného čísla podstatného mena cesta, ale aj 2. pád množného čísla podstatného mena cesto, dospejeme k celkovému číslu 22 milionov rôznych slov. A predstavte si, že všetky tieto slová aj s príslušnými morfologickými informáciami zhrnieme do súboru veľkosti 1 MB. Trošku zveličene môžeme povedať, že nám stačí jeden bit na tri slovenské slová.
Vo väčšine informatických aplikácií platí, že veľkosť dát a rýchlosť vyhľadávania sú nepriamo úmerné. V našom prípade to tak ale nie je. Náš komponent dokáže vyhodnotiť 28 000 slov za sekundu, alebo ak chcete, spracovanie jedného slova mu trvá 0,000036 sekundy.
Dostupné funkcie
- Návrat základného tvaru slova. Ako sme už uviedli, základný tvar môžeme chápať v rôznych prípadoch odlišne. Máte tu preto možnosť špecifikovať, o aký konkrétny tvar máte záujem.
- Návrat všetkých morfologicky príbuzných tvarov daného slova. Aj tu môžete spresniť, aká veľká má byť množina slov, t. j. či napr. chcete od slovesa aj odvodené prídavné mená alebo podstatné mená, či chcete od podstaných mien aj privlastňovacie tvary alebo či sa majú v rámci jedného slovného druhu brať do úvahy aj rôzne čísla, časy, spôsoby alebo stupňovanie.
- Vyskloňovanie celej mennej skupiny tvorené prídavným a podstatným menom, napr. akciová spoločnosť, akciovej spoločnosti, ..., akciovou spoločnosťou, akciové spoločnosti, akciových spoločností, ..., akciovými spoločnosťami.
V súčasnosti ponúkame podporu fulltextového vyhľadávania pre širokú škálu jazykov (pozri tabuľku). Implementovaná je takisto na väčšine platforiem (pozri prehľad).
Ak si chcete svoj fulltextový vyhľadávač používateľsky ešte spríjemniť, odporúčame vám náš ďalší komponent – Slovník synoným.
Referencie
Možnosti morfologického vyhľadávania v rôznych jazykoch najlepšie vyskúšate v prekladových slovníkoch Lingea Lexicon. Jeho hlavné využitie je však vo vyhľadávacích systémoch rôznych produktov, napr. Fullcrum, Convera alebo vo vlastných firemných systémoch.