Unu el la bazaj algoritmoj de komputila lingvistiko estas radikigo (angle: stamming algorithm). La programo pro radikigo (angle: stammer) oni povas nomi esperante: radikilo. La ĉefa tasko de radikilo estas fortranĉi gramatikajn finaĵojn de vorto.
ekzemple:
faras -> fari homoj -> homo librojn -> libro
Multaj radikiloj rezultigas ankaŭ gramatikan kategorion kaj signifon de vorto:
faras -> kategorio=verbo, radiko=fari, tempo=as librojn -> kategorio=substantivo, radiko=libro, nombro=pluralo, kazo=akuzativo
Tiun taskon oni nomas angle „tagging“.
En multaj lingvoj rezultoj ne estas unusignifas. Por unu vorto povas rezultigi multajn radikoj (trunkoj) kaj multaj eblaj gramatikaj kategorioj. Por tre fleksiaj kaj neregulaj lingvoj kiel pola lingvo programi radikilon estas tre kompleksa tasko, kiu ofte estas granda separata projekto (vidu: radikilo por pola lingvo Stempel). Tiuj radikiloj baziĝas sur grandaj vortaroj kaj statistikaj tabeloj.
Feliĉe en Esperanto la tasko de radikigo estas tre simpla, sed ekzistas ankaŭ kelkaj malfacilaĵoj. Kalkajn primitivajn vortojn en Esperanto oni povas kosideri kiel kompleksaj radikoj kun speciala finaĵo.
Ekzemple:
tamen - adjektiva formo de adverbo 'tame' kiu - ordona formo de verbo 'kii' ĵus - formo de verbo 'ĵi'
Mi prezentas la algoritmon ĉi tie en programlingvo Tcl, kiun mi uzas en la projekto:
proc radikigi vorto { if {[lsearch {en ĝis kies ties ies ĉies kaj iu neniu kiu tiu ĉiu tamen jen ĵus nun sen kun ajn kvin unu du} $vorto]>=0} { return $vorto } if {[regexp {^(.+?)(jn|n|j)$} $vorto m radiko]} { return $radiko } if {[regexp {^(.+)(is|as|os|us|u)$} $vorto m radiko]} { return ${radiko}i } return $vorto }
Por fortranĉi finaĵojn mi uzis „regular expresions“. Tiu algoritmo tamen ne radikigas participojn al baza verba formo.
konata -> koni
Se atentu la ekzemplon:
monato -> moni
Malfeliĉe en Esperanto ekzistas radikoj, kiuj havas participajn finaĵojn. Tial oni bezonas vortaron kun priskribo de vortoj por majstri tiun taskon. La nombro de tiuj vortoj ne estas malgranda, ekzemploj: (soldato, advokato, diletanto, aŭtokrata, adekvata, eleganta) (ĉu ekzistas verbo – dileti).