@orama/stemmers
Version:
Stemmers for Orama
1 lines • 9.31 kB
JavaScript
"use strict";function _export(r,i){for(var s in i)Object.defineProperty(r,s,{enumerable:!0,get:Object.getOwnPropertyDescriptor(i,s).get})}Object.defineProperty(exports,"__esModule",{value:!0}),_export(exports,{get language(){return language},get stemmer(){return stemmer}});var g=!0,p=!1;function C(){this.p=function(r){this.j=r,this.cursor=0,this.a=this.j.length,this.f=0,this.c=this.cursor,this.d=this.a},this.z=function(){return this.j},this.w=function(r){this.j=r.j,this.cursor=r.cursor,this.a=r.a,this.f=r.f,this.c=r.c,this.d=r.d},this.i=function(r,i,s){if(this.cursor>=this.a)return p;var t=this.j.charCodeAt(this.cursor);return t>s||t<i||0==(r[(t-=i)>>>3]&1<<(7&t))?p:(this.cursor++,g)},this.n=function(r,i,s){if(this.cursor<=this.f)return p;var t=this.j.charCodeAt(this.cursor-1);return t>s||t<i||0==(r[(t-=i)>>>3]&1<<(7&t))?p:(this.cursor--,g)},this.k=function(r,i,s){if(this.cursor>=this.a)return p;var t=this.j.charCodeAt(this.cursor);return t>s||t<i||0==(r[(t-=i)>>>3]&1<<(7&t))?(this.cursor++,g):p},this.q=function(r,i,s){if(this.cursor<=this.f)return p;var t=this.j.charCodeAt(this.cursor-1);return t>s||t<i||0==(r[(t-=i)>>>3]&1<<(7&t))?(this.cursor--,g):p},this.m=function(r){return this.a-this.cursor<r.length||this.j.slice(this.cursor,this.cursor+r.length)!=r?p:(this.cursor+=r.length,g)},this.g=function(r){return this.cursor-this.f<r.length||this.j.slice(this.cursor-r.length,this.cursor)!=r?p:(this.cursor-=r.length,g)},this.o=function(r){for(var i=0,s=r.length,t=this.cursor,e=this.a,a=0,c=0,u=p;;){var o,h=i+(s-i>>>1),n=0,f=a<c?a:c,b=r[h];for(o=f;o<b[0].length;o++){if(t+f==e){n=-1;break}if(0!=(n=this.j.charCodeAt(t+f)-b[0].charCodeAt(o)))break;f++}if(0>n?(s=h,c=f):(i=h,a=f),1>=s-i){if(0<i||s==i||u)break;u=g}}for(;;){if(a>=(b=r[i])[0].length&&(this.cursor=t+b[0].length,4>b.length||(i=b[3](this),this.cursor=t+b[0].length,i)))return b[2];if(0>(i=b[1]))return 0}},this.h=function(r){for(var i=0,s=r.length,t=this.cursor,e=this.f,a=0,c=0,u=p;;){var o,h=i+(s-i>>1),n=0,f=a<c?a:c,b=r[h];for(o=b[0].length-1-f;0<=o;o--){if(t-f==e){n=-1;break}if(0!=(n=this.j.charCodeAt(t-1-f)-b[0].charCodeAt(o)))break;f++}if(0>n?(s=h,c=f):(i=h,a=f),1>=s-i){if(0<i||s==i||u)break;u=g}}for(;;){if(a>=(b=r[i])[0].length&&(this.cursor=t-b[0].length,4>b.length||(i=b[3](this),this.cursor=t-b[0].length,i)))return b[2];if(0>(i=b[1]))return 0}},this.s=function(r,i,s){var t=s.length-(i-r);return this.j=this.j.slice(0,r)+s+this.j.slice(i),this.a+=t,this.cursor>=i?this.cursor+=t:this.cursor>r&&(this.cursor=r),t},this.t=function(){return 0>this.c||this.c>this.d||this.d>this.a||this.a>this.j.length?p:g},this.b=function(r){var i=p;return this.t()&&(this.s(this.c,this.d,r),i=g),i},this.e=function(){return this.b("")},this.r=function(r,i,s){i=this.s(r,i,s),r<=this.c&&(this.c+=i),r<=this.d&&(this.d+=i)},this.u=function(){var r="";return this.t()&&(r=this.j.slice(this.c,this.d)),r},this.v=function(){return this.j.slice(0,this.a)}}function stem(){var r=new C,i=[["",-1,3],["I",0,1],["U",0,2]],s=[["ea",-1,3],["aţia",-1,7],["aua",-1,2],["iua",-1,4],["aţie",-1,7],["ele",-1,3],["ile",-1,5],["iile",6,4],["iei",-1,4],["atei",-1,6],["ii",-1,4],["ului",-1,1],["ul",-1,1],["elor",-1,3],["ilor",-1,4],["iilor",14,4]],t=[["icala",-1,4],["iciva",-1,4],["ativa",-1,5],["itiva",-1,6],["icale",-1,4],["aţiune",-1,5],["iţiune",-1,6],["atoare",-1,5],["itoare",-1,6],["ătoare",-1,5],["icitate",-1,4],["abilitate",-1,1],["ibilitate",-1,2],["ivitate",-1,3],["icive",-1,4],["ative",-1,5],["itive",-1,6],["icali",-1,4],["atori",-1,5],["icatori",18,4],["itori",-1,6],["ători",-1,5],["icitati",-1,4],["abilitati",-1,1],["ivitati",-1,3],["icivi",-1,4],["ativi",-1,5],["itivi",-1,6],["icităi",-1,4],["abilităi",-1,1],["ivităi",-1,3],["icităţi",-1,4],["abilităţi",-1,1],["ivităţi",-1,3],["ical",-1,4],["ator",-1,5],["icator",35,4],["itor",-1,6],["ător",-1,5],["iciv",-1,4],["ativ",-1,5],["itiv",-1,6],["icală",-1,4],["icivă",-1,4],["ativă",-1,5],["itivă",-1,6]],e=[["ica",-1,1],["abila",-1,1],["ibila",-1,1],["oasa",-1,1],["ata",-1,1],["ita",-1,1],["anta",-1,1],["ista",-1,3],["uta",-1,1],["iva",-1,1],["ic",-1,1],["ice",-1,1],["abile",-1,1],["ibile",-1,1],["isme",-1,3],["iune",-1,2],["oase",-1,1],["ate",-1,1],["itate",17,1],["ite",-1,1],["ante",-1,1],["iste",-1,3],["ute",-1,1],["ive",-1,1],["ici",-1,1],["abili",-1,1],["ibili",-1,1],["iuni",-1,2],["atori",-1,1],["osi",-1,1],["ati",-1,1],["itati",30,1],["iti",-1,1],["anti",-1,1],["isti",-1,3],["uti",-1,1],["işti",-1,3],["ivi",-1,1],["ităi",-1,1],["oşi",-1,1],["ităţi",-1,1],["abil",-1,1],["ibil",-1,1],["ism",-1,3],["ator",-1,1],["os",-1,1],["at",-1,1],["it",-1,1],["ant",-1,1],["ist",-1,3],["ut",-1,1],["iv",-1,1],["ică",-1,1],["abilă",-1,1],["ibilă",-1,1],["oasă",-1,1],["ată",-1,1],["ită",-1,1],["antă",-1,1],["istă",-1,3],["ută",-1,1],["ivă",-1,1]],a=[["ea",-1,1],["ia",-1,1],["esc",-1,1],["ăsc",-1,1],["ind",-1,1],["\xe2nd",-1,1],["are",-1,1],["ere",-1,1],["ire",-1,1],["\xe2re",-1,1],["se",-1,2],["ase",10,1],["sese",10,2],["ise",10,1],["use",10,1],["\xe2se",10,1],["eşte",-1,1],["ăşte",-1,1],["eze",-1,1],["ai",-1,1],["eai",19,1],["iai",19,1],["sei",-1,2],["eşti",-1,1],["ăşti",-1,1],["ui",-1,1],["ezi",-1,1],["\xe2i",-1,1],["aşi",-1,1],["seşi",-1,2],["aseşi",29,1],["seseşi",29,2],["iseşi",29,1],["useşi",29,1],["\xe2seşi",29,1],["işi",-1,1],["uşi",-1,1],["\xe2şi",-1,1],["aţi",-1,2],["eaţi",38,1],["iaţi",38,1],["eţi",-1,2],["iţi",-1,2],["\xe2ţi",-1,2],["arăţi",-1,1],["serăţi",-1,2],["aserăţi",45,1],["seserăţi",45,2],["iserăţi",45,1],["userăţi",45,1],["\xe2serăţi",45,1],["irăţi",-1,1],["urăţi",-1,1],["\xe2răţi",-1,1],["am",-1,1],["eam",54,1],["iam",54,1],["em",-1,2],["asem",57,1],["sesem",57,2],["isem",57,1],["usem",57,1],["\xe2sem",57,1],["im",-1,2],["\xe2m",-1,2],["ăm",-1,2],["arăm",65,1],["serăm",65,2],["aserăm",67,1],["seserăm",67,2],["iserăm",67,1],["userăm",67,1],["\xe2serăm",67,1],["irăm",65,1],["urăm",65,1],["\xe2răm",65,1],["au",-1,1],["eau",76,1],["iau",76,1],["indu",-1,1],["\xe2ndu",-1,1],["ez",-1,1],["ească",-1,1],["ară",-1,1],["seră",-1,2],["aseră",84,1],["seseră",84,2],["iseră",84,1],["useră",84,1],["\xe2seră",84,1],["iră",-1,1],["ură",-1,1],["\xe2ră",-1,1],["ează",-1,1]],c=[["a",-1,1],["e",-1,1],["ie",1,1],["i",-1,1],["ă",-1,1]],u=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,2,32,0,0,4],o=p,h=0,n=0,f=0;this.l=function(){var b=r.cursor;r:for(;;){var l=r.cursor;i:{for(;;){var k=r.cursor;s:if(r.i(u,97,259)){r.c=r.cursor;t:{var v=r.cursor;if(r.m("u")&&(r.d=r.cursor,r.i(u,97,259))){if(!r.b("U"))break r;break t}if(r.cursor=v,!r.m("i")||(r.d=r.cursor,!r.i(u,97,259)))break s;if(!r.b("I"))break r}r.cursor=k;break}if(r.cursor=k,r.cursor>=r.a)break i;r.cursor++}continue}r.cursor=l;break}r.cursor=b,h=n=f=r.a,b=r.cursor;r:{i:{l=r.cursor;e:if(r.i(u,97,259)){s:{k=r.cursor;t:if(r.k(u,97,259)){for(;!r.i(u,97,259);){if(r.cursor>=r.a)break t;r.cursor++}break s}if(r.cursor=k,!r.i(u,97,259))break e;for(;!r.k(u,97,259);){if(r.cursor>=r.a)break e;r.cursor++}}break i}if(r.cursor=l,!r.k(u,97,259))break r;e:{l=r.cursor;s:if(r.k(u,97,259)){for(;!r.i(u,97,259);){if(r.cursor>=r.a)break s;r.cursor++}break e}if(r.cursor=l,!r.i(u,97,259)||r.cursor>=r.a)break r;r.cursor++}}f=r.cursor}r.cursor=b,b=r.cursor;r:{for(;!r.i(u,97,259);){if(r.cursor>=r.a)break r;r.cursor++}for(;!r.k(u,97,259);){if(r.cursor>=r.a)break r;r.cursor++}for(n=r.cursor;!r.i(u,97,259);){if(r.cursor>=r.a)break r;r.cursor++}for(;!r.k(u,97,259);){if(r.cursor>=r.a)break r;r.cursor++}h=r.cursor}if(r.cursor=b,r.f=r.cursor,r.cursor=r.a,b=r.a-r.cursor,r.d=r.cursor,0!=(l=r.h(s))&&(r.c=r.cursor,n<=r.cursor))switch(l){case 1:r.e();break;case 2:r.b("a");break;case 3:r.b("e");break;case 4:r.b("i");break;case 5:if(l=r.a-r.cursor,r.g("ab"))break;r.cursor=r.a-l,r.b("i");break;case 6:r.b("at");break;case 7:r.b("aţi")}r.cursor=r.a-b,b=r.a-r.cursor,function(){var i;for(o=p;;)if(i=r.a-r.cursor,!function(){var i,s=r.a-r.cursor;if(r.d=r.cursor,0==(i=r.h(t))||(r.c=r.cursor,!(n<=r.cursor)))return p;switch(i){case 1:if(!r.b("abil"))return p;break;case 2:if(!r.b("ibil"))return p;break;case 3:if(!r.b("iv"))return p;break;case 4:if(!r.b("ic"))return p;break;case 5:if(!r.b("at"))return p;break;case 6:if(!r.b("it"))return p}return o=g,r.cursor=r.a-s,g}()){r.cursor=r.a-i;break}if(r.d=r.cursor,0!=(i=r.h(e))&&(r.c=r.cursor,h<=r.cursor)){switch(i){case 1:if(!r.e())return;break;case 2:if(!r.g("ţ")||(r.c=r.cursor,!r.b("t")))return;break;case 3:if(!r.b("ist"))return}o=g}}(),r.cursor=r.a-b,b=r.a-r.cursor,o||(r.cursor=r.a-(r.a-r.cursor),function(){var i;if(!(r.cursor<f)){var s=r.f;if(r.f=f,r.d=r.cursor,0!=(i=r.h(a)))switch(r.c=r.cursor,i){case 1:if((i=r.a-r.cursor,!r.q(u,97,259))&&(r.cursor=r.a-i,!r.g("u"))){r.f=s;return}if(!r.e())return;break;case 2:if(!r.e())return}r.f=s}}()),r.cursor=r.a-b,b=r.a-r.cursor,r.d=r.cursor,0!=r.h(c)&&(r.c=r.cursor,f<=r.cursor&&r.e()),r.cursor=r.a-b,r.cursor=r.f,b=r.cursor;r:for(;;){k=r.cursor;i:if(r.c=r.cursor,0!=(l=r.o(i))){switch(r.d=r.cursor,l){case 1:if(!r.b("i"))break r;break;case 2:if(!r.b("u"))break r;break;case 3:if(r.cursor>=r.a)break i;r.cursor++}continue}r.cursor=k;break}return r.cursor=b,g},this.stemWord=function(i){return r.p(i),this.l(),r.j}}let stemmerInstance=new stem;function stemmer(r){return stemmerInstance.stemWord(r)}let language="romanian";