| // A stemmer for Modern Greek language, based on: |
| // |
| // Ntais, Georgios. Development of a Stemmer for the Greek |
| // Language. Diss. Royal Institute of Technology, 2006. |
| // https://sais.se/mthprize/2007/ntais2007.pdf |
| // |
| // Saroukos, Spyridon. Enhancing a Greek language stemmer. |
| // University of Tampere, 2008. |
| // https://tampub.uta.fi/bitstream/handle/10024/80480/gradu03463.pdf |
| |
| stringescapes {} |
| |
| stringdef a '{U+03B1}' // alpha |
| stringdef v '{U+03B2}' // beta |
| stringdef g '{U+03B3}' // gamma |
| stringdef d '{U+03B4}' // delta |
| stringdef e '{U+03B5}' // epsilon |
| stringdef z '{U+03B6}' // zeta |
| stringdef i '{U+03B7}' // eta |
| stringdef th '{U+03B8}' // theta |
| stringdef y '{U+03B9}' // iota |
| stringdef k '{U+03BA}' // kappa |
| stringdef l '{U+03BB}' // lamda |
| stringdef m '{U+03BC}' // mu |
| stringdef n '{U+03BD}' // nu |
| stringdef x '{U+03BE}' // xi |
| stringdef o '{U+03BF}' // omicron |
| stringdef p '{U+03C0}' // pi |
| stringdef r '{U+03C1}' // rho |
| stringdef ss '{U+03C2}' // sigma final |
| stringdef s '{U+03C3}' // sigma |
| stringdef t '{U+03C4}' // tau |
| stringdef u '{U+03C5}' // upsilon |
| stringdef f '{U+03C6}' // phi |
| stringdef ch '{U+03C7}' // chi |
| stringdef ps '{U+03C8}' // psi |
| stringdef oo '{U+03C9}' // omega |
| |
| stringdef A '{U+0391}' // Alpha |
| stringdef V '{U+0392}' // Beta |
| stringdef G '{U+0393}' // Gamma |
| stringdef D '{U+0394}' // Delta |
| stringdef E '{U+0395}' // Epsilon |
| stringdef Z '{U+0396}' // Zeta |
| stringdef I '{U+0397}' // Eta |
| stringdef Th '{U+0398}' // Theta |
| stringdef Y '{U+0399}' // Iota |
| stringdef K '{U+039A}' // Kappa |
| stringdef L '{U+039B}' // Lamda |
| stringdef M '{U+039C}' // Mu |
| stringdef N '{U+039D}' // Nu |
| stringdef X '{U+039E}' // Xi |
| stringdef O '{U+039F}' // Omicron |
| stringdef P '{U+03A0}' // Pi |
| stringdef R '{U+03A1}' // Rho |
| stringdef S '{U+03A3}' // Sigma |
| stringdef T '{U+03A4}' // Tau |
| stringdef U '{U+03A5}' // Upsilon |
| stringdef F '{U+03A6}' // Phi |
| stringdef Ch '{U+03A7}' // Chi |
| stringdef Ps '{U+03A8}' // Psi |
| stringdef Oo '{U+03A9}' // Omega |
| |
| stringdef Y: '{U+03AA}' // Iota with dialytika |
| stringdef U: '{U+03AB}' // Upsilon with dialytika |
| |
| stringdef a' '{U+03AC}' // alpha with tonos |
| stringdef e' '{U+03AD}' // epsilon with tonos |
| stringdef i' '{U+03AE}' // eta with tonos |
| stringdef y' '{U+03AF}' // iota with tonos |
| stringdef o' '{U+03CC}' // omicron with tonos |
| stringdef u' '{U+03CD}' // upsilon with tonos |
| stringdef oo' '{U+03CE}' // omega with tonos |
| |
| stringdef i:' '{U+0390}' // iota with dialytika and tonos |
| stringdef u:' '{U+03B0}' // upsilon with dialytika and tonos |
| |
| stringdef i: '{U+03CA}' // iota with dialytika |
| stringdef u: '{U+03CB}' // upsilon with dialytika |
| |
| stringdef A' '{U+0386}' // Alpha with tonos |
| stringdef E' '{U+0388}' // Epsilon with tonos |
| stringdef I' '{U+0389}' // Eta with tonos |
| stringdef Y' '{U+038A}' // Iota with tonos |
| stringdef O' '{U+038C}' // Omicron with tonos |
| stringdef U' '{U+038E}' // Upsilon with tonos |
| stringdef OO' '{U+038F}' // Omega with tonos |
| |
| externals ( stem ) |
| |
| booleans ( test1 ) |
| |
| groupings ( v v2 ) |
| |
| routines ( tolower has_min_length |
| steps1 steps2 steps3 steps4 steps5 steps6 steps7 |
| steps8 steps9 steps10 |
| step1 step2a step2b step2c step2d step3 step4 |
| step5a step5b step5c step5d step5e step5f |
| step5g step5h step5i |
| step5j step5k step5l step5m |
| step6 step7 ) |
| |
| define v '{a}{e}{i}{y}{o}{u}{oo}' |
| define v2 '{a}{e}{i}{y}{o}{oo}' |
| |
| strings ( s ) |
| |
| backwardmode ( |
| define has_min_length as ( |
| $(len >= 3) |
| ) |
| |
| define tolower as ( |
| repeat ( |
| [substring] among ( |
| '{A}' (<- '{a}') |
| '{V}' (<- '{v}') |
| '{G}' (<- '{g}') |
| '{D}' (<- '{d}') |
| '{E}' (<- '{e}') |
| '{Z}' (<- '{z}') |
| '{I}' (<- '{i}') |
| '{Th}' (<- '{th}') |
| '{Y}' (<- '{y}') |
| '{K}' (<- '{k}') |
| '{L}' (<- '{l}') |
| '{M}' (<- '{m}') |
| '{N}' (<- '{n}') |
| '{X}' (<- '{x}') |
| '{O}' (<- '{o}') |
| '{P}' (<- '{p}') |
| '{R}' (<- '{r}') |
| '{S}' (<- '{s}') |
| '{T}' (<- '{t}') |
| '{U}' (<- '{u}') |
| '{F}' (<- '{f}') |
| '{Ch}' (<- '{ch}') |
| '{Ps}' (<- '{ps}') |
| '{Oo}' (<- '{oo}') |
| '{Y:}' (<- '{y}') |
| '{U:}' (<- '{u}') |
| '{a'}' (<- '{a}') |
| '{e'}' (<- '{e}') |
| '{i'}' (<- '{i}') |
| '{y'}' (<- '{y}') |
| '{o'}' (<- '{o}') |
| '{u'}' (<- '{u}') |
| '{oo'}' (<- '{oo}') |
| '{i:'}' (<- '{i}') |
| '{u:'}' (<- '{u}') |
| '{i:}' (<- '{i}') |
| '{u:}' (<- '{u}') |
| '{A'}' (<- '{a}') |
| '{E'}' (<- '{e}') |
| '{I'}' (<- '{i}') |
| '{Y'}' (<- '{y}') |
| '{O'}' (<- '{o}') |
| '{U'}' (<- '{u}') |
| '{OO'}' (<- '{oo}') |
| '{ss}' (<- '{s}') |
| '' (next) |
| ) |
| ) |
| ) |
| |
| define step1 as ( |
| [substring] among ( |
| '{f}{a}{g}{y}{a}' '{f}{a}{g}{y}{o}{u}' '{f}{a}{g}{y}{oo}{n}' (<- '{f}{a}') |
| '{s}{k}{a}{g}{y}{a}' '{s}{k}{a}{g}{y}{o}{u}' '{s}{k}{a}{g}{y}{oo}{n}' (<- '{s}{k}{a}') |
| '{o}{l}{o}{g}{y}{o}{u}' '{o}{l}{o}{g}{y}{a}' '{o}{l}{o}{g}{y}{oo}{n}' (<- '{o}{l}{o}') |
| '{s}{o}{g}{y}{o}{u}' '{s}{o}{g}{y}{a}' '{s}{o}{g}{y}{oo}{n}' (<- '{s}{o}') |
| '{t}{a}{t}{o}{g}{y}{a}' '{t}{a}{t}{o}{g}{y}{o}{u}' '{t}{a}{t}{o}{g}{y}{oo}{n}' (<- '{t}{a}{t}{o}') |
| '{k}{r}{e}{a}{s}' '{k}{r}{e}{a}{t}{o}{s}' '{k}{r}{e}{a}{t}{a}' '{k}{r}{e}{a}{t}{oo}{n}' (<- '{k}{r}{e}') |
| '{p}{e}{r}{a}{s}' '{p}{e}{r}{a}{t}{o}{s}' '{p}{e}{r}{a}{t}{i}' '{p}{e}{r}{a}{t}{a}' '{p}{e}{r}{a}{t}{oo}{n}' (<- '{p}{e}{r}') |
| '{t}{e}{r}{a}{s}' '{t}{e}{r}{a}{t}{o}{s}' '{t}{e}{r}{a}{t}{a}' '{t}{e}{r}{a}{t}{oo}{n}' (<- '{t}{e}{r}') |
| '{f}{oo}{s}' '{f}{oo}{t}{o}{s}' '{f}{oo}{t}{a}' '{f}{oo}{t}{oo}{n}' (<- '{f}{oo}') |
| '{k}{a}{th}{e}{s}{t}{oo}{s}' '{k}{a}{th}{e}{s}{t}{oo}{t}{o}{s}' '{k}{a}{th}{e}{s}{t}{oo}{t}{a}' '{k}{a}{th}{e}{s}{t}{oo}{t}{oo}{n}' (<- '{k}{a}{th}{e}{s}{t}') |
| '{g}{e}{g}{o}{n}{o}{s}' '{g}{e}{g}{o}{n}{o}{t}{o}{s}' '{g}{e}{g}{o}{n}{o}{t}{a}' '{g}{e}{g}{o}{n}{o}{t}{oo}{n}' (<- '{g}{e}{g}{o}{n}') |
| ) |
| unset test1 |
| ) |
| |
| define steps1 as ( |
| [substring] among ( |
| '{y}{z}{a}' '{y}{z}{e}{s}' '{y}{z}{e}' '{y}{z}{a}{m}{e}' '{y}{z}{a}{t}{e}' '{y}{z}{a}{n}' '{y}{z}{a}{n}{e}' '{y}{z}{oo}' '{y}{z}{e}{y}{s}' '{y}{z}{e}{y}' |
| '{y}{z}{o}{u}{m}{e}' '{y}{z}{e}{t}{e}' '{y}{z}{o}{u}{n}' '{y}{z}{o}{u}{n}{e}' ( |
| delete |
| unset test1 |
| ([substring] atlimit among ( |
| '{a}{n}{a}{m}{p}{a}' '{e}{m}{p}{a}' '{e}{p}{a}' '{x}{a}{n}{a}{p}{a}' '{p}{a}' '{p}{e}{r}{y}{p}{a}' '{a}{th}{r}{o}' '{s}{u}{n}{a}{th}{r}{o}' '{d}{a}{n}{e}' |
| (-> s <- '{y}' insert s) |
| )) or |
| ([substring] atlimit among ( |
| '{m}{a}{r}{k}' '{k}{o}{r}{n}' '{a}{m}{p}{a}{r}' '{a}{r}{r}' '{v}{a}{th}{u}{r}{y}' '{v}{a}{r}{k}' '{v}' '{v}{o}{l}{v}{o}{r}' '{g}{k}{r}' |
| '{g}{l}{u}{k}{o}{r}' '{g}{l}{u}{k}{u}{r}' '{y}{m}{p}' '{l}' '{l}{o}{u}' '{m}{a}{r}' '{m}' '{p}{r}' '{m}{p}{r}' '{p}{o}{l}{u}{r}' '{p}' |
| '{r}' '{p}{y}{p}{e}{r}{o}{r}' |
| (-> s <- '{y}{z}' insert s) |
| )) |
| ) |
| ) |
| ) |
| |
| define steps2 as ( |
| [substring] among ( |
| '{oo}{th}{i}{k}{a}' '{oo}{th}{i}{k}{e}{s}' '{oo}{th}{i}{k}{e}' '{oo}{th}{i}{k}{a}{m}{e}' '{oo}{th}{i}{k}{a}{t}{e}' '{oo}{th}{i}{k}{a}{n}' '{oo}{th}{i}{k}{a}{n}{e}' ( |
| delete |
| unset test1 |
| [substring] atlimit among ( |
| '{a}{l}' '{v}{y}' '{e}{n}' '{u}{ps}' '{l}{y}' '{z}{oo}' '{s}' '{ch}' (-> s <- '{oo}{n}' insert s) |
| ) |
| ) |
| ) |
| ) |
| |
| define steps3 as ( |
| [substring] among ( |
| '{y}{s}{a}' '{y}{s}{e}{s}' '{y}{s}{e}' '{y}{s}{a}{m}{e}' '{y}{s}{a}{t}{e}' '{y}{s}{a}{n}' '{y}{s}{a}{n}{e}' ( |
| delete |
| unset test1 |
| ('{y}{s}{a}' atlimit <- '{y}{s}') or |
| ([substring] atlimit among ( |
| '{a}{n}{a}{m}{p}{a}' '{a}{th}{r}{o}' '{e}{m}{p}{a}' '{e}{s}{e}' '{e}{s}{oo}{k}{l}{e}' '{e}{p}{a}' '{x}{a}{n}{a}{p}{a}' '{e}{p}{e}' '{p}{e}{r}{y}{p}{a}' |
| '{s}{u}{n}{a}{th}{r}{o}' '{d}{a}{n}{e}' '{k}{l}{e}' '{ch}{a}{r}{t}{o}{p}{a}' '{e}{x}{a}{r}{ch}{a}' '{m}{e}{t}{e}{p}{e}' '{a}{p}{o}{k}{l}{e}' |
| '{a}{p}{e}{k}{l}{e}' '{e}{k}{l}{e}' '{p}{e}' |
| (-> s <- '{y}' insert s) |
| )) or |
| ([substring] atlimit among ( |
| '{a}{n}' '{a}{f}' '{g}{e}' '{g}{y}{g}{a}{n}{t}{o}{a}{f}' '{g}{k}{e}' '{d}{i}{m}{o}{k}{r}{a}{t}' '{k}{o}{m}' '{g}{k}' '{m}' '{p}' |
| '{p}{o}{u}{k}{a}{m}' '{o}{l}{o}' '{l}{a}{r}' |
| (-> s <- '{y}{s}' insert s) |
| )) |
| ) |
| ) |
| ) |
| |
| define steps4 as ( |
| [substring] among ( |
| '{y}{s}{oo}' '{y}{s}{e}{y}{s}' '{y}{s}{e}{y}' '{y}{s}{o}{u}{m}{e}' '{y}{s}{e}{t}{e}' '{y}{s}{o}{u}{n}' '{y}{s}{o}{u}{n}{e}' ( |
| delete |
| unset test1 |
| [substring] atlimit among ( |
| '{a}{n}{a}{m}{p}{a}' '{e}{m}{p}{a}' '{e}{s}{e}' '{e}{s}{oo}{k}{l}{e}' '{e}{p}{a}' '{x}{a}{n}{a}{p}{a}' '{e}{p}{e}' '{p}{e}{r}{y}{p}{a}' '{a}{th}{r}{o}' |
| '{s}{u}{n}{a}{th}{r}{o}' '{d}{a}{n}{e}' '{k}{l}{e}' '{ch}{a}{r}{t}{o}{p}{a}' '{e}{x}{a}{r}{ch}{a}' '{m}{e}{t}{e}{p}{e}' '{a}{p}{o}{k}{l}{e}' '{a}{p}{e}{k}{l}{e}' |
| '{e}{k}{l}{e}' '{p}{e}' |
| (-> s <- '{y}' insert s) |
| ) |
| ) |
| ) |
| ) |
| |
| define steps5 as ( |
| [substring] among ( |
| '{y}{s}{t}{o}{s}' '{y}{s}{t}{o}{u}' '{y}{s}{t}{o}' '{y}{s}{t}{e}' '{y}{s}{t}{o}{y}' '{y}{s}{t}{oo}{n}' '{y}{s}{t}{o}{u}{s}' '{y}{s}{t}{i}' '{y}{s}{t}{i}{s}' |
| '{y}{s}{t}{a}' '{y}{s}{t}{e}{s}' ( |
| delete |
| unset test1 |
| ([substring] atlimit among ( |
| '{d}{a}{n}{e}' '{s}{u}{n}{a}{th}{r}{o}' '{k}{l}{e}' '{s}{e}' '{e}{s}{oo}{k}{l}{e}' '{a}{s}{e}' '{p}{l}{e}' |
| (-> s <- '{y}' insert s) |
| )) or |
| ([substring] atlimit among ( |
| '{m}' '{p}' '{a}{p}' '{a}{r}' '{i}{d}' '{k}{t}' '{s}{k}' '{s}{ch}' '{u}{ps}' '{f}{a}' '{ch}{r}' '{ch}{t}' '{a}{k}{t}' |
| '{a}{o}{r}' '{a}{s}{ch}' '{a}{t}{a}' '{a}{ch}{n}' '{a}{ch}{t}' '{g}{e}{m}' '{g}{u}{r}' '{e}{m}{p}' '{e}{u}{p}' '{e}{ch}{th}' '{i}{f}{a}' |
| '{k}{a}{th}' '{k}{a}{k}' '{k}{u}{l}' '{l}{u}{g}' '{m}{a}{k}' '{m}{e}{g}' '{t}{a}{ch}' '{f}{y}{l}' '{ch}{oo}{r}' |
| (-> s <- '{y}{s}{t}' insert s) |
| )) |
| ) |
| ) |
| ) |
| |
| define steps6 as ( |
| [substring] among ( |
| '{y}{s}{m}{o}' '{y}{s}{m}{o}{y}' '{y}{s}{m}{o}{s}' '{y}{s}{m}{o}{u}' '{y}{s}{m}{o}{u}{s}' '{y}{s}{m}{oo}{n}' ( |
| delete |
| unset test1 |
| ([substring] atlimit among ( |
| '{s}{e}' '{m}{e}{t}{a}{s}{e}' '{m}{y}{k}{r}{o}{s}{e}' '{e}{g}{k}{l}{e}' '{a}{p}{o}{k}{l}{e}' |
| (-> s <- '{y}{s}{m}' insert s) |
| )) or |
| ([substring] atlimit among ( |
| '{d}{a}{n}{e}' '{a}{n}{t}{y}{d}{a}{n}{e}' |
| (-> s <- '{y}' insert s) |
| )) or |
| ([substring] among ( |
| '{a}{g}{n}{oo}{s}{t}{y}{k}' (<- '{a}{g}{n}{oo}{s}{t}') |
| '{a}{t}{o}{m}{y}{k}' (<- '{a}{t}{o}{m}') |
| '{g}{n}{oo}{s}{t}{y}{k}' (<- '{g}{n}{oo}{s}{t}') |
| '{e}{th}{n}{y}{k}' (<- '{e}{th}{n}') |
| '{e}{k}{l}{e}{k}{t}{y}{k}' (<- '{e}{k}{l}{e}{k}{t}') |
| '{s}{k}{e}{p}{t}{y}{k}' (<- '{s}{k}{e}{p}{t}') |
| '{t}{o}{p}{y}{k}' (<- '{t}{o}{p}') |
| '{a}{l}{e}{x}{a}{n}{d}{r}{y}{n}' (<- '{a}{l}{e}{x}{a}{n}{d}{r}') |
| '{v}{u}{z}{a}{n}{t}{y}{n}' (<- '{v}{u}{z}{a}{n}{t}') |
| '{th}{e}{a}{t}{r}{y}{n}' (<- '{th}{e}{a}{t}{r}') |
| )) |
| ) |
| ) |
| ) |
| |
| define steps7 as ( |
| [substring] among ( |
| '{a}{r}{a}{k}{y}' '{a}{r}{a}{k}{y}{a}' '{o}{u}{d}{a}{k}{y}' '{o}{u}{d}{a}{k}{y}{a}' ( |
| delete |
| unset test1 |
| [substring] atlimit among ( |
| '{s}' '{ch}' |
| (-> s <- '{a}{r}{a}{k}' insert s) |
| ) |
| ) |
| ) |
| ) |
| |
| define steps8 as ( |
| [substring] among ( |
| '{a}{k}{y}' '{a}{k}{y}{a}' '{y}{t}{s}{a}' '{y}{t}{s}{a}{s}' '{y}{t}{s}{e}{s}' '{y}{t}{s}{oo}{n}' '{a}{r}{a}{k}{y}' '{a}{r}{a}{k}{y}{a}' ( |
| delete |
| unset test1 |
| ([substring] atlimit among ( |
| '{v}{a}{m}{v}' '{v}{r}' '{k}{a}{y}{m}' '{k}{o}{n}' '{k}{o}{r}' '{l}{a}{v}{r}' '{l}{o}{u}{l}' '{m}{e}{r}' '{m}{o}{u}{s}{t}' |
| '{n}{a}{g}{k}{a}{s}' '{p}{l}' '{r}' '{r}{u}' '{s}' '{s}{k}' '{s}{o}{k}' '{s}{p}{a}{n}' '{t}{z}' '{f}{a}{r}{m}' '{ch}' '{k}{a}{p}{a}{k}' |
| '{a}{l}{y}{s}{f}' '{a}{m}{v}{r}' '{a}{n}{th}{r}' '{k}' '{f}{u}{l}' '{k}{a}{t}{r}{a}{p}' '{k}{l}{y}{m}' '{m}{a}{l}' '{s}{l}{o}{v}' '{f}' |
| '{s}{f}' '{t}{s}{e}{ch}{o}{s}{l}{o}{v}' |
| (-> s <- '{a}{k}' insert s) |
| )) or |
| ([substring] atlimit among ( |
| '{v}' '{v}{a}{l}' '{g}{y}{a}{n}' '{g}{l}' '{z}' '{i}{g}{o}{u}{m}{e}{n}' '{k}{a}{r}{d}' '{k}{o}{n}' '{m}{a}{k}{r}{u}{n}' '{n}{u}{f}' |
| '{p}{a}{t}{e}{r}' '{p}' '{s}{k}' '{t}{o}{s}' '{t}{r}{y}{p}{o}{l}' |
| (-> s <- '{y}{t}{s}' insert s) |
| )) or |
| (['{k}{o}{r}'] -> s <- '{y}{t}{s}' insert s) |
| ) |
| ) |
| ) |
| |
| define steps9 as ( |
| [substring] among ( |
| '{y}{d}{y}{o}' '{y}{d}{y}{a}' '{y}{d}{y}{oo}{n}' ( |
| delete |
| unset test1 |
| ([substring] atlimit among ( |
| '{a}{y}{f}{n}' '{y}{r}' '{o}{l}{o}' '{ps}{a}{l}' (-> s <- '{y}{d}' insert s) |
| )) or |
| ([substring] among ( |
| '{e}' '{p}{a}{y}{ch}{n}' (-> s <- '{y}{d}' insert s) |
| )) |
| ) |
| ) |
| ) |
| |
| define steps10 as ( |
| [substring] among ( |
| '{y}{s}{k}{o}{s}' '{y}{s}{k}{o}{u}' '{y}{s}{k}{o}' '{y}{s}{k}{e}' ( |
| delete |
| unset test1 |
| [substring] atlimit among ( |
| '{d}' '{y}{v}' '{m}{i}{n}' '{r}' '{f}{r}{a}{g}{k}' '{l}{u}{k}' '{o}{v}{e}{l}' |
| (-> s <- '{y}{s}{k}' insert s) |
| ) |
| ) |
| ) |
| ) |
| |
| define step2a as ( |
| [substring] among ( |
| '{a}{d}{e}{s}' '{a}{d}{oo}{n}' (delete) |
| ) |
| not ([substring] among ( |
| '{o}{k}' '{m}{a}{m}' '{m}{a}{n}' '{m}{p}{a}{m}{p}' '{p}{a}{t}{e}{r}' '{g}{y}{a}{g}{y}' '{n}{t}{a}{n}{t}' '{k}{u}{r}' '{th}{e}{y}' '{p}{e}{th}{e}{r}' |
| )) |
| insert '{a}{d}' |
| ) |
| |
| define step2b as ( |
| [substring] among ( |
| '{e}{d}{e}{s}' '{e}{d}{oo}{n}' (delete) |
| ) |
| [substring] among ( |
| '{o}{p}' '{y}{p}' '{e}{m}{p}' '{u}{p}' '{g}{i}{p}' '{d}{a}{p}' '{k}{r}{a}{s}{p}' '{m}{y}{l}' (-> s <- '{e}{d}' insert s) |
| ) |
| ) |
| |
| define step2c as ( |
| [substring] among ( |
| '{o}{u}{d}{e}{s}' '{o}{u}{d}{oo}{n}' (delete) |
| ) |
| [substring] among ( |
| '{a}{r}{k}' '{k}{a}{l}{y}{a}{k}' '{p}{e}{t}{a}{l}' '{l}{y}{ch}' '{p}{l}{e}{x}' '{s}{k}' '{s}' '{f}{l}' '{f}{r}' '{v}{e}{l}' '{l}{o}{u}{l}' '{ch}{n}' |
| '{s}{p}' '{t}{r}{a}{g}' '{f}{e}' (-> s <- '{o}{u}{d}' insert s) |
| ) |
| ) |
| |
| define step2d as ( |
| [substring] among ( |
| '{e}{oo}{s}' '{e}{oo}{n}' (delete unset test1) |
| ) |
| [substring] atlimit among ( |
| '{th}' '{d}' '{e}{l}' '{g}{a}{l}' '{n}' '{p}' '{y}{d}' '{p}{a}{r}' (-> s <- '{e}' insert s) |
| ) |
| ) |
| |
| define step3 as ( |
| [substring] among ( |
| '{y}{a}' '{y}{o}{u}' '{y}{oo}{n}' (delete unset test1) |
| ) |
| ([v] -> s <- '{y}' insert s) |
| ) |
| |
| define step4 as ( |
| [substring] among ( |
| '{y}{k}{a}' '{y}{k}{o}' '{y}{k}{o}{u}' '{y}{k}{oo}{n}' (delete unset test1) |
| ) |
| ([v] -> s <- '{y}{k}' insert s) or |
| [substring] atlimit among ( |
| '{a}{l}' '{a}{d}' '{e}{n}{d}' '{a}{m}{a}{n}' '{a}{m}{m}{o}{ch}{a}{l}' '{i}{th}' '{a}{n}{i}{th}' '{a}{n}{t}{y}{d}' '{f}{u}{s}' '{v}{r}{oo}{m}' '{g}{e}{r}' |
| '{e}{x}{oo}{d}' '{k}{a}{l}{p}' '{k}{a}{l}{l}{y}{n}' '{k}{a}{t}{a}{d}' '{m}{o}{u}{l}' '{m}{p}{a}{n}' '{m}{p}{a}{g}{y}{a}{t}' '{m}{p}{o}{l}' '{m}{p}{o}{s}' |
| '{n}{y}{t}' '{x}{y}{k}' '{s}{u}{n}{o}{m}{i}{l}' '{p}{e}{t}{s}' '{p}{y}{t}{s}' '{p}{y}{k}{a}{n}{t}' '{p}{l}{y}{a}{t}{s}' '{p}{o}{s}{t}{e}{l}{n}' '{p}{r}{oo}{t}{o}{d}' |
| '{s}{e}{r}{t}' '{s}{u}{n}{a}{d}' '{t}{s}{a}{m}' '{u}{p}{o}{d}' '{f}{y}{l}{o}{n}' '{f}{u}{l}{o}{d}' '{ch}{a}{s}' |
| (-> s <- '{y}{k}' insert s) |
| ) |
| ) |
| |
| define step5a as ( |
| do ('{a}{g}{a}{m}{e}' atlimit <- '{a}{g}{a}{m}') |
| do ( |
| [substring] among ( |
| '{a}{g}{a}{m}{e}' '{i}{s}{a}{m}{e}' '{o}{u}{s}{a}{m}{e}' '{i}{k}{a}{m}{e}' '{i}{th}{i}{k}{a}{m}{e}' (delete unset test1) |
| ) |
| ) |
| ['{a}{m}{e}'] |
| delete |
| unset test1 |
| [substring] atlimit among ( |
| '{a}{n}{a}{p}' '{a}{p}{o}{th}' '{a}{p}{o}{k}' '{a}{p}{o}{s}{t}' '{v}{o}{u}{v}' '{x}{e}{th}' '{o}{u}{l}' '{p}{e}{th}' '{p}{y}{k}{r}' '{p}{o}{t}' '{s}{y}{ch}' '{ch}' |
| (-> s <- '{a}{m}' insert s) |
| ) |
| ) |
| |
| define step5b as ( |
| do ( |
| [substring] among ( |
| '{a}{g}{a}{n}{e}' '{i}{s}{a}{n}{e}' '{o}{u}{s}{a}{n}{e}' '{y}{o}{n}{t}{a}{n}{e}' '{y}{o}{t}{a}{n}{e}' '{y}{o}{u}{n}{t}{a}{n}{e}' '{o}{n}{t}{a}{n}{e}' '{o}{t}{a}{n}{e}' |
| '{o}{u}{n}{t}{a}{n}{e}' '{i}{k}{a}{n}{e}' '{i}{th}{i}{k}{a}{n}{e}' ( |
| delete |
| unset test1 |
| [substring] atlimit among ( |
| '{t}{r}' '{t}{s}' (-> s <- '{a}{g}{a}{n}' insert s) |
| ) |
| ) |
| ) |
| ) |
| ['{a}{n}{e}'] |
| delete |
| unset test1 |
| ([v2] -> s <- '{a}{n}' insert s) or |
| [substring] atlimit among ( |
| '{v}{e}{t}{e}{r}' '{v}{o}{u}{l}{k}' '{v}{r}{a}{ch}{m}' '{g}' '{d}{r}{a}{d}{o}{u}{m}' |
| '{th}' '{k}{a}{l}{p}{o}{u}{z}' '{k}{a}{s}{t}{e}{l}' '{k}{o}{r}{m}{o}{r}' '{l}{a}{o}{p}{l}' '{m}{oo}{a}{m}{e}{th}' |
| '{m}' '{m}{o}{u}{s}{o}{u}{l}{m}' '{n}' '{o}{u}{l}' '{p}' '{p}{e}{l}{e}{k}' '{p}{l}' '{p}{o}{l}{y}{s}' |
| '{p}{o}{r}{t}{o}{l}' '{s}{a}{r}{a}{k}{a}{t}{s}' '{s}{o}{u}{l}{t}' '{t}{s}{a}{r}{l}{a}{t}' '{o}{r}{f}' |
| '{t}{s}{y}{g}{g}' '{t}{s}{o}{p}' '{f}{oo}{t}{o}{s}{t}{e}{f}' '{ch}' '{ps}{u}{ch}{o}{p}{l}' '{a}{g}' |
| '{g}{a}{l}' '{g}{e}{r}' '{d}{e}{k}' '{d}{y}{p}{l}' '{a}{m}{e}{r}{y}{k}{a}{n}' '{o}{u}{r}' '{p}{y}{th}' |
| '{p}{o}{u}{r}{y}{t}' '{s}' '{z}{oo}{n}{t}' '{y}{k}' '{k}{a}{s}{t}' '{k}{o}{p}' '{l}{y}{ch}' |
| '{l}{o}{u}{th}{i}{r}' '{m}{a}{y}{n}{t}' '{m}{e}{l}' '{s}{y}{g}' '{s}{p}' '{s}{t}{e}{g}' '{t}{r}{a}{g}' |
| '{t}{s}{a}{g}' '{f}' '{e}{r}' '{a}{d}{a}{p}' '{a}{th}{y}{g}{g}' '{a}{m}{i}{ch}' '{a}{n}{y}{k}' |
| '{a}{n}{o}{r}{g}' '{a}{p}{i}{g}' '{a}{p}{y}{th}' '{a}{t}{s}{y}{g}{g}' '{v}{a}{s}' '{v}{a}{s}{k}' |
| '{v}{a}{th}{u}{g}{a}{l}' '{v}{y}{o}{m}{i}{ch}' '{v}{r}{a}{ch}{u}{k}' '{d}{y}{a}{t}' '{d}{y}{a}{f}' '{e}{n}{o}{r}{g}' |
| '{th}{u}{s}' '{k}{a}{p}{n}{o}{v}{y}{o}{m}{i}{ch}' '{k}{a}{t}{a}{g}{a}{l}' '{k}{l}{y}{v}' '{k}{o}{y}{l}{a}{r}{f}' |
| '{l}{y}{v}' '{m}{e}{g}{l}{o}{v}{y}{o}{m}{i}{ch}' '{m}{y}{k}{r}{o}{v}{y}{o}{m}{i}{ch}' '{n}{t}{a}{v}' |
| '{x}{i}{r}{o}{k}{l}{y}{v}' '{o}{l}{y}{g}{o}{d}{a}{m}' '{o}{l}{o}{g}{a}{l}' '{p}{e}{n}{t}{a}{r}{f}' '{p}{e}{r}{i}{f}' |
| '{p}{e}{r}{y}{t}{r}' '{p}{l}{a}{t}' '{p}{o}{l}{u}{d}{a}{p}' '{p}{o}{l}{u}{m}{i}{ch}' '{s}{t}{e}{f}' '{t}{a}{v}' |
| '{t}{e}{t}' '{u}{p}{e}{r}{i}{f}' '{u}{p}{o}{k}{o}{p}' '{ch}{a}{m}{i}{l}{o}{d}{a}{p}' '{ps}{i}{l}{o}{t}{a}{v}' |
| (-> s <- '{a}{n}' insert s) |
| ) |
| ) |
| |
| define step5c as ( |
| do ( |
| [substring] among ( |
| '{i}{s}{e}{t}{e}' (delete unset test1) |
| ) |
| ) |
| ['{e}{t}{e}'] |
| delete |
| unset test1 |
| ([v2] -> s <- '{e}{t}' insert s) or |
| ([substring] among ( |
| '{o}{d}' '{a}{y}{r}' '{f}{o}{r}' '{t}{a}{th}' '{d}{y}{a}{th}' '{s}{ch}' '{e}{n}{d}' '{e}{u}{r}' '{t}{y}{th}' '{u}{p}{e}{r}{th}' |
| '{r}{a}{th}' '{e}{n}{th}' '{r}{o}{th}' '{s}{th}' '{p}{u}{r}' '{a}{y}{n}' '{s}{u}{n}{d}' '{s}{u}{n}' '{s}{u}{n}{th}' '{ch}{oo}{r}' |
| '{p}{o}{n}' '{v}{r}' '{k}{a}{th}' '{e}{u}{th}' '{e}{k}{th}' '{n}{e}{t}' '{r}{o}{n}' '{a}{r}{k}' '{v}{a}{r}' '{v}{o}{l}' '{oo}{f}{e}{l}' |
| (-> s <- '{e}{t}' insert s) |
| )) or |
| [substring] atlimit among ( |
| '{a}{v}{a}{r}' '{v}{e}{n}' '{e}{n}{a}{r}' '{a}{v}{r}' '{a}{d}' '{a}{th}' '{a}{n}' '{a}{p}{l}' '{v}{a}{r}{o}{n}' '{n}{t}{r}' '{s}{k}' '{k}{o}{p}' |
| '{m}{p}{o}{r}' '{n}{y}{f}' '{p}{a}{g}' '{p}{a}{r}{a}{k}{a}{l}' '{s}{e}{r}{p}' '{s}{k}{e}{l}' '{s}{u}{r}{f}' '{t}{o}{k}' '{u}' '{d}' '{e}{m}' |
| '{th}{a}{r}{r}' '{th}' |
| (-> s <- '{e}{t}' insert s) |
| ) |
| ) |
| |
| define step5d as ( |
| [substring] among ( |
| '{o}{n}{t}{a}{s}' '{oo}{n}{t}{a}{s}' ( |
| delete |
| unset test1 |
| (['{a}{r}{ch}'] atlimit -> s <- '{o}{n}{t}' insert s) or |
| (['{k}{r}{e}'] -> s <- '{oo}{n}{t}' insert s) |
| ) |
| ) |
| ) |
| |
| define step5e as ( |
| [substring] among ( |
| '{o}{m}{a}{s}{t}{e}' '{y}{o}{m}{a}{s}{t}{e}' ( |
| delete |
| unset test1 |
| (['{o}{n}'] atlimit -> s <- '{o}{m}{a}{s}{t}' insert s) |
| ) |
| ) |
| ) |
| |
| define step5f as ( |
| do ( |
| ['{y}{e}{s}{t}{e}'] |
| delete |
| unset test1 |
| [substring] atlimit among ( |
| '{p}' '{a}{p}' '{s}{u}{m}{p}' '{a}{s}{u}{m}{p}' '{a}{k}{a}{t}{a}{p}' '{a}{m}{e}{t}{a}{m}{f}' (-> s <- '{y}{e}{s}{t}' insert s) |
| ) |
| ) |
| ['{e}{s}{t}{e}'] |
| delete |
| unset test1 |
| [substring] atlimit among ( |
| '{a}{l}' '{a}{r}' '{e}{k}{t}{e}{l}' '{z}' '{m}' '{x}' '{p}{a}{r}{a}{k}{a}{l}' '{p}{r}{o}' '{n}{y}{s}' |
| (-> s <- '{y}{e}{s}{t}' insert s) |
| ) |
| ) |
| |
| define step5g as ( |
| do ( |
| [substring] among ( |
| '{i}{th}{i}{k}{a}' '{i}{th}{i}{k}{e}{s}' '{i}{th}{i}{k}{e}' (delete unset test1) |
| ) |
| ) |
| [substring] among ( |
| '{i}{k}{a}' '{i}{k}{e}{s}' '{i}{k}{e}' ( |
| delete |
| unset test1 |
| ([substring] among ( |
| '{s}{k}{oo}{l}' '{s}{k}{o}{u}{l}' '{n}{a}{r}{th}' '{s}{f}' '{o}{th}' '{p}{y}{th}' (-> s <- '{i}{k}' insert s) |
| )) or |
| ([substring] atlimit among ( |
| '{d}{y}{a}{th}' '{th}' '{p}{a}{r}{a}{k}{a}{t}{a}{th}' '{p}{r}{o}{s}{th}' '{s}{u}{n}{th}' (-> s <- '{i}{k}' insert s) |
| )) |
| ) |
| ) |
| ) |
| |
| define step5h as ( |
| [substring] among ( |
| '{o}{u}{s}{a}' '{o}{u}{s}{e}{s}' '{o}{u}{s}{e}' ( |
| delete |
| unset test1 |
| ([substring] among ( |
| '{p}{o}{d}{a}{r}' '{v}{l}{e}{p}' '{p}{a}{n}{t}{a}{ch}' '{f}{r}{u}{d}' '{m}{a}{n}{t}{y}{l}' '{m}{a}{l}{l}' '{k}{u}{m}{a}{t}' '{l}{a}{ch}' '{l}{i}{g}' |
| '{f}{a}{g}' '{o}{m}' '{p}{r}{oo}{t}' (-> s <- '{o}{u}{s}' insert s) |
| |
| )) or |
| ([substring] atlimit among ( |
| '{f}{a}{r}{m}{a}{k}' '{ch}{a}{d}' '{a}{g}{k}' '{a}{n}{a}{r}{r}' '{v}{r}{o}{m}' '{e}{k}{l}{y}{p}' '{l}{a}{m}{p}{y}{d}' '{l}{e}{ch}' '{m}' '{p}{a}{t}' |
| '{r}' '{l}' '{m}{e}{d}' '{m}{e}{s}{a}{z}' '{u}{p}{o}{t}{e}{y}{n}' '{a}{m}' '{a}{y}{th}' '{a}{n}{i}{k}' '{d}{e}{s}{p}{o}{z}' |
| '{e}{n}{d}{y}{a}{f}{e}{r}' '{d}{e}' '{d}{e}{u}{t}{e}{r}{e}{u}' '{k}{a}{th}{a}{r}{e}{u}' '{p}{l}{e}' '{t}{s}{a}' |
| (-> s <- '{o}{u}{s}' insert s) |
| )) |
| ) |
| ) |
| ) |
| |
| define step5i as ( |
| [substring] among ( |
| '{a}{g}{a}' '{a}{g}{e}{s}' '{a}{g}{e}' ( |
| delete |
| unset test1 |
| (['{k}{o}{l}{l}'] -> s <- '{a}{g}' insert s) or ( |
| not ([substring] among ('{ps}{o}{f}' '{n}{a}{u}{l}{o}{ch}')) |
| ([substring] among ( |
| '{o}{f}' '{p}{e}{l}' '{ch}{o}{r}{t}' '{l}{l}' '{s}{f}' '{r}{p}' '{f}{r}' '{p}{r}' '{l}{o}{ch}' '{s}{m}{i}{n}' |
| (-> s <- '{a}{g}' insert s) |
| )) or |
| ([substring] atlimit among ( |
| '{a}{v}{a}{s}{t}' '{p}{o}{l}{u}{f}' '{a}{d}{i}{f}' '{p}{a}{m}{f}' '{r}' '{a}{s}{p}' '{a}{f}' '{a}{m}{a}{l}' '{a}{m}{a}{l}{l}{y}' |
| '{a}{n}{u}{s}{t}' '{a}{p}{e}{r}' '{a}{s}{p}{a}{r}' '{a}{ch}{a}{r}' '{d}{e}{r}{v}{e}{n}' '{d}{r}{o}{s}{o}{p}' '{x}{e}{f}' '{n}{e}{o}{p}' |
| '{n}{o}{m}{o}{t}' '{o}{l}{o}{p}' '{o}{m}{o}{t}' '{p}{r}{o}{s}{t}' '{p}{r}{o}{s}{oo}{p}{o}{p}' '{s}{u}{m}{p}' '{s}{u}{n}{t}' '{t}' '{u}{p}{o}{t}' |
| '{ch}{a}{r}' '{a}{e}{y}{p}' '{a}{y}{m}{o}{s}{t}' '{a}{n}{u}{p}' '{a}{p}{o}{t}' '{a}{r}{t}{y}{p}' '{d}{y}{a}{t}' '{e}{n}' '{e}{p}{y}{t}' |
| '{k}{r}{o}{k}{a}{l}{o}{p}' '{s}{y}{d}{i}{r}{o}{p}' '{l}' '{n}{a}{u}' '{o}{u}{l}{a}{m}' '{o}{u}{r}' '{p}' '{t}{r}' '{m}' |
| (-> s <- '{a}{g}' insert s) |
| )) |
| ) |
| ) |
| ) |
| ) |
| |
| define step5j as ( |
| [substring] among ( |
| '{i}{s}{e}' '{i}{s}{o}{u}' '{i}{s}{a}' (delete unset test1) |
| ) |
| [substring] atlimit among ( |
| '{n}' '{ch}{e}{r}{s}{o}{n}' '{d}{oo}{d}{e}{k}{a}{n}' '{e}{r}{i}{m}{o}{n}' '{m}{e}{g}{a}{l}{o}{n}' '{e}{p}{t}{a}{n}' (-> s <- '{i}{s}' insert s) |
| ) |
| ) |
| |
| define step5k as ( |
| [substring] among ( |
| '{i}{s}{t}{e}' (delete unset test1) |
| ) |
| [substring] atlimit among ( |
| '{a}{s}{v}' '{s}{v}' '{a}{ch}{r}' '{ch}{r}' '{a}{p}{l}' '{a}{e}{y}{m}{n}' '{d}{u}{s}{ch}{r}' '{e}{u}{ch}{r}' '{k}{o}{y}{n}{o}{ch}{r}' '{p}{a}{l}{y}{m}{ps}' |
| (-> s <- '{i}{s}{t}' insert s) |
| ) |
| ) |
| |
| define step5l as ( |
| [substring] among ( |
| '{o}{u}{n}{e}' '{i}{s}{o}{u}{n}{e}' '{i}{th}{o}{u}{n}{e}' (delete unset test1) |
| ) |
| [substring] atlimit among ( |
| '{n}' '{r}' '{s}{p}{y}' '{s}{t}{r}{a}{v}{o}{m}{o}{u}{t}{s}' '{k}{a}{k}{o}{m}{o}{u}{t}{s}' '{e}{x}{oo}{n}' (-> s <- '{o}{u}{n}' insert s) |
| ) |
| ) |
| |
| define step5m as ( |
| [substring] among ( |
| '{o}{u}{m}{e}' '{i}{s}{o}{u}{m}{e}' '{i}{th}{o}{u}{m}{e}' (delete unset test1) |
| ) |
| [substring] atlimit among ( |
| '{p}{a}{r}{a}{s}{o}{u}{s}' '{f}' '{ch}' '{oo}{r}{y}{o}{p}{l}' '{a}{z}' '{a}{l}{l}{o}{s}{o}{u}{s}' '{a}{s}{o}{u}{s}' |
| (-> s <- '{o}{u}{m}' insert s) |
| ) |
| ) |
| |
| define step6 as ( |
| do ( |
| [substring] among ( |
| '{m}{a}{t}{a}' '{m}{a}{t}{oo}{n}' '{m}{a}{t}{o}{s}' (<- '{m}{a}') |
| ) |
| ) |
| test1 |
| [substring] among ( |
| '{a}' '{a}{g}{a}{t}{e}' '{a}{g}{a}{n}' '{a}{e}{y}' '{a}{m}{a}{y}' '{a}{n}' '{a}{s}' '{a}{s}{a}{y}' '{a}{t}{a}{y}' '{a}{oo}' '{e}' '{e}{y}' |
| '{e}{y}{s}' '{e}{y}{t}{e}' '{e}{s}{a}{y}' '{e}{s}' '{e}{t}{a}{y}' '{y}' '{y}{e}{m}{a}{y}' '{y}{e}{m}{a}{s}{t}{e}' '{y}{e}{t}{a}{y}' '{y}{e}{s}{a}{y}' |
| '{y}{e}{s}{a}{s}{t}{e}' '{y}{o}{m}{a}{s}{t}{a}{n}' '{y}{o}{m}{o}{u}{n}' '{y}{o}{m}{o}{u}{n}{a}' '{y}{o}{n}{t}{a}{n}' '{y}{o}{n}{t}{o}{u}{s}{a}{n}' '{y}{o}{s}{a}{s}{t}{a}{n}' |
| '{y}{o}{s}{a}{s}{t}{e}' '{y}{o}{s}{o}{u}{n}' '{y}{o}{s}{o}{u}{n}{a}' '{y}{o}{t}{a}{n}' '{y}{o}{u}{m}{a}' '{y}{o}{u}{m}{a}{s}{t}{e}' '{y}{o}{u}{n}{t}{a}{y}' |
| '{y}{o}{u}{n}{t}{a}{n}' '{i}' '{i}{d}{e}{s}' '{i}{d}{oo}{n}' '{i}{th}{e}{y}' '{i}{th}{e}{y}{s}' '{i}{th}{e}{y}{t}{e}' '{i}{th}{i}{k}{a}{t}{e}' '{i}{th}{i}{k}{a}{n}' |
| '{i}{th}{o}{u}{n}' '{i}{th}{oo}' '{i}{k}{a}{t}{e}' '{i}{k}{a}{n}' '{i}{s}' '{i}{s}{a}{n}' '{i}{s}{a}{t}{e}' '{i}{s}{e}{y}' '{i}{s}{e}{s}' '{i}{s}{o}{u}{n}' |
| '{i}{s}{oo}' '{o}' '{o}{y}' '{o}{m}{a}{y}' '{o}{m}{a}{s}{t}{a}{n}' '{o}{m}{o}{u}{n}' '{o}{m}{o}{u}{n}{a}' '{o}{n}{t}{a}{y}' '{o}{n}{t}{a}{n}' |
| '{o}{n}{t}{o}{u}{s}{a}{n}' '{o}{s}' '{o}{s}{a}{s}{t}{a}{n}' '{o}{s}{a}{s}{t}{e}' '{o}{s}{o}{u}{n}' '{o}{s}{o}{u}{n}{a}' '{o}{t}{a}{n}' '{o}{u}' '{o}{u}{m}{a}{y}' |
| '{o}{u}{m}{a}{s}{t}{e}' '{o}{u}{n}' '{o}{u}{n}{t}{a}{y}' '{o}{u}{n}{t}{a}{n}' '{o}{u}{s}' '{o}{u}{s}{a}{n}' '{o}{u}{s}{a}{t}{e}' '{u}' '{u}{s}' '{oo}' |
| '{oo}{n}' (delete) |
| ) |
| ) |
| |
| define step7 as ( |
| [substring] among ( |
| '{e}{s}{t}{e}{r}' '{e}{s}{t}{a}{t}' '{o}{t}{e}{r}' '{o}{t}{a}{t}' '{u}{t}{e}{r}' '{u}{t}{a}{t}' '{oo}{t}{e}{r}' '{oo}{t}{a}{t}' (delete) |
| ) |
| ) |
| ) |
| |
| define stem as ( |
| backwards ( |
| do tolower |
| has_min_length |
| set test1 |
| do step1 |
| do steps1 |
| do steps2 |
| do steps3 |
| do steps4 |
| do steps5 |
| do steps6 |
| do steps7 |
| do steps8 |
| do steps9 |
| do steps10 |
| do step2a |
| do step2b |
| do step2c |
| do step2d |
| do step3 |
| do step4 |
| do step5a |
| do step5b |
| do step5c |
| do step5d |
| do step5e |
| do step5f |
| do step5g |
| do step5h |
| do step5j |
| do step5i |
| do step5k |
| do step5l |
| do step5m |
| do step6 |
| do step7 |
| ) |
| ) |