UNPKG

@orama/stemmers

Version:
1 lines 1.43 kB
let e;let g=RegExp("[аеиоуюяіїє]"),p=RegExp("(?:[иы]в(?:ши(?:сь)?)?|(?<=[ая])(?:в(?:ши(?:сь)?)?))$"),x=RegExp("с[яьи]$"),t=RegExp("(?:[аеєуюя]|еє|ем|єє|ий|их|іх|ів|ій|ім|їй|ім|им|ими|іми|йми|ої|ою|ова|ове|ого|ому)$"),E=RegExp("(?:[аіу]|ій|ий|им|ім|их|йми|ого|ому|ою)$"),R=RegExp("(?:[еєую]|ав|али|ати|вши|ив|ити|ме|сь|ся|ши|учи|яти|ячи|ать|ять)$","g"),$=RegExp("(?:[аеєіїийоуыьюя]|ам|ах|ами|ев|еві|еи|ей|ем|ею|єм|єю|ів|їв|ий|ием|ию|ия|иям|иях|ов|ові|ой|ом|ою|ью|ья|ям|ями|ях)$","g"),r=RegExp("[^аеиоуюяіїє][аеиоуюяіїє]+[^аеиоуюяіїє]+[аеиоуюяіїє].*(?<=о)сть?$","g"),n=RegExp("и$"),l=RegExp("ость$"),a=RegExp("ь$"),i=RegExp("ейше$"),u=RegExp("нн$"),c=RegExp("([гджзкстхцчш]|ст|дж|ждж|ьц|сі|ці|зі|он|ін|ів|ев|ок|шк)$"),o=(o,m=!1)=>{e=o.toLowerCase();let f=o.match(g);if(null===f)return o;f=f.index;let d=e.slice(0,f+1);return""===(e=e.slice(f+1))?o:(!s(e,p,"")&&(s(e,x,""),s(e,t,"")?s(e,E,""):s(e,R,"")||s(e,$,"")),s(e,n,""),r.test(e)&&s(e,l,""),s(e,a,"")||(s(e,i,""),s(e,u,"н")),m&&s(e,c,""),d+e)},s=(g,p,x)=>(e=g.replace(p,x))!==g;export function stemmer(e){return o(e)}export const language="ukrainian";