Automatické delenie slov

Historicky najstarší, veľkosťou najmenší, napriek tomu však nadmieru užitočný. Tak by sa dal charakterizovať modul na automatické rozdeľovanie slov na konci riadka. Absolútne nevyhnutný je v stĺpcovej sadzbe používanej najmä v novinách. Určite si viete predstaviť, aké úmorné by bolo neustále prechádzať všetky novinové a časopisecké články a deliť slová ručne.

Jazyková časť

Modul na delenie slov nepracuje s rozsiahlym slovníkom, ale len so starostlivo vybranou množinou vzorov na delenie slov. Myšlienka algoritmu na delenie slov založená na vzoroch napokon nie je nová. Použili ju už v sádzacom systéme TeX, kde umožňuje jednotným spôsobom postihnúť delenie slov v rôznych jazykoch. Tento spôsob dovoľuje jednoduchým spôsobom dopĺňať ďalšie vzory výnimiek delenia, a tým postupne skvalitňuje delenie takmer do stopercentnej dokonalosti.

Prvotná množina vzorov na delenie slovenských slov bola vytvorená programovo zo vzorky cca 300 000 slovenských slov. Ďalšie vzory, ktoré postihujú špecifické výnimky, sa dopĺňajú priebežne ručne. Slovník teraz obsahuje takmer 8 000 vzorov a zaberá cca 30 kB pamäte, delenie však pracuje s úspešnosťou 99,92 %. Okrem pôvodnej slovenskej slovnej zásoby zachytáva aj množstvo termínov či cudzích slov (cy-to-pla-z-ma, spek-t-ro-skop, kon-to-ko-rent, soft-vér, plej-boj, Bre-tagne), resp. nejednoznačné slovenské slová (pod-ro-biť vo význame podmaniť, ale po-dro-biť vo význame drobiť).

Programové riešenie

Algoritmus delenia slov je navrhnutý takým spôsobom, aby v maximálnej možnej miere postihoval všetky možnosti rozdelenia daného slova. Na rozdiel od väčšiny jednoduchých deliacich algoritmov sa teda neobmedzuje len na bezpečné určenie niektorých možností delenia. Pracuje tak, že každé skúmané slovo je konfrontované so slovníkom vzorov a vybrané sú len tie vzory, ktoré sa zhodujú s niektorou časťou predloženého slova. Každý taký vzor obsahuje informáciu o tom, s akou váhou sa v danom mieste smie či, naopak, nesmie deliť. Podľa najvyšších váh je potom vytvorený konečný návrh delenia slova.

Súčasťou programového riešenia je veľmi efektívny algoritmus na vyhľadávanie vzorov a informácií týkajúcich sa delenia. Rýchlosť vyhľadania všetkých vzorov daného slova závisí totiž len od dĺžky tohto slova, a nie od počtu vzorov. Súčasne je tento algoritmus vzhľadom na použitú štruktúru slovníka vzorov dosť jednoduchý, a preto ľahko použiteľný v ľubovoľnom produkte.

Dostupné funkcie

V súčasnosti ponúkame modul delenia slov pre širokú škálu jazykov (pozri tabuľku). Implementovaný je takisto na väčšine platforiem.

Referencie

Kvalitu nášho deliaceho algoritmu možno sledovať v českej dennej tlači. Napríklad denníky MF Dnes a Lidové noviny v súčasnosti používajú redakčné systémy, v ktorých je začlenený práve náš modul delenia slov. Ďalej môžete sami experimentovať napríklad s editorom MS Word, ktorý používa rovnaké riešenie.