@orama/stemmers
Version:
Stemmers for Orama
1 lines • 4.67 kB
JavaScript
"use strict";function _export(r,t){for(var s in t)Object.defineProperty(r,s,{enumerable:!0,get:Object.getOwnPropertyDescriptor(t,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,t,s){if(this.cursor>=this.a)return p;var e=this.j.charCodeAt(this.cursor);return e>s||e<t||0==(r[(e-=t)>>>3]&1<<(7&e))?p:(this.cursor++,g)},this.n=function(r,t,s){if(this.cursor<=this.f)return p;var e=this.j.charCodeAt(this.cursor-1);return e>s||e<t||0==(r[(e-=t)>>>3]&1<<(7&e))?p:(this.cursor--,g)},this.k=function(r,t,s){if(this.cursor>=this.a)return p;var e=this.j.charCodeAt(this.cursor);return e>s||e<t||0==(r[(e-=t)>>>3]&1<<(7&e))?(this.cursor++,g):p},this.q=function(r,t,s){if(this.cursor<=this.f)return p;var e=this.j.charCodeAt(this.cursor-1);return e>s||e<t||0==(r[(e-=t)>>>3]&1<<(7&e))?(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 t=0,s=r.length,e=this.cursor,i=this.a,h=0,c=0,o=p;;){var u,n=t+(s-t>>>1),a=0,f=h<c?h:c,l=r[n];for(u=f;u<l[0].length;u++){if(e+f==i){a=-1;break}if(0!=(a=this.j.charCodeAt(e+f)-l[0].charCodeAt(u)))break;f++}if(0>a?(s=n,c=f):(t=n,h=f),1>=s-t){if(0<t||s==t||o)break;o=g}}for(;;){if(h>=(l=r[t])[0].length&&(this.cursor=e+l[0].length,4>l.length||(t=l[3](this),this.cursor=e+l[0].length,t)))return l[2];if(0>(t=l[1]))return 0}},this.h=function(r){for(var t=0,s=r.length,e=this.cursor,i=this.f,h=0,c=0,o=p;;){var u,n=t+(s-t>>1),a=0,f=h<c?h:c,l=r[n];for(u=l[0].length-1-f;0<=u;u--){if(e-f==i){a=-1;break}if(0!=(a=this.j.charCodeAt(e-1-f)-l[0].charCodeAt(u)))break;f++}if(0>a?(s=n,c=f):(t=n,h=f),1>=s-t){if(0<t||s==t||o)break;o=g}}for(;;){if(h>=(l=r[t])[0].length&&(this.cursor=e-l[0].length,4>l.length||(t=l[3](this),this.cursor=e-l[0].length,t)))return l[2];if(0>(t=l[1]))return 0}},this.s=function(r,t,s){var e=s.length-(t-r);return this.j=this.j.slice(0,r)+s+this.j.slice(t),this.a+=e,this.cursor>=t?this.cursor+=e:this.cursor>r&&(this.cursor=r),e},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 t=p;return this.t()&&(this.s(this.c,this.d,r),t=g),t},this.e=function(){return this.b("")},this.r=function(r,t,s){t=this.s(r,t,s),r<=this.c&&(this.c+=t),r<=this.d&&(this.d+=t)},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,t=[["a",-1,1],["e",-1,1],["ede",1,1],["ande",1,1],["ende",1,1],["ane",1,1],["ene",1,1],["hetene",6,1],["erte",1,3],["en",-1,1],["heten",9,1],["ar",-1,1],["er",-1,1],["heter",12,1],["s",-1,2],["as",14,1],["es",14,1],["edes",16,1],["endes",16,1],["enes",16,1],["hetenes",19,1],["ens",14,1],["hetens",21,1],["ers",14,1],["ets",14,1],["et",-1,1],["het",25,1],["ert",-1,3],["ast",-1,1]],s=[["dt",-1,-1],["vt",-1,-1]],e=[["leg",-1,1],["eleg",0,1],["ig",-1,1],["eig",2,1],["lig",2,1],["elig",4,1],["els",-1,1],["lov",-1,1],["elov",7,1],["slov",7,1],["hetslov",9,1]],i=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],h=[119,125,149,1],c=0,o=0;this.l=function(){var u=r.cursor;r:{o=r.a;var n=r.cursor,a=r.cursor+3;if(!(a>r.a)){for(r.cursor=a,c=r.cursor,r.cursor=n;;){if(n=r.cursor,r.i(i,97,248)){r.cursor=n;break}if(r.cursor=n,r.cursor>=r.a)break r;r.cursor++}for(;!r.k(i,97,248);){if(r.cursor>=r.a)break r;r.cursor++}(o=r.cursor)<c&&(o=c)}}if(r.cursor=u,r.f=r.cursor,r.cursor=r.a,u=r.a-r.cursor,!(r.cursor<o))if(a=r.f,r.f=o,r.d=r.cursor,0==(n=r.h(t)))r.f=a;else switch(r.c=r.cursor,r.f=a,n){case 1:r.e();break;case 2:if((n=r.a-r.cursor,!r.n(h,98,122))&&(r.cursor=r.a-n,!r.g("k")||!r.q(i,97,248)))break;r.e();break;case 3:r.b("er")}return r.cursor=r.a-u,u=r.a-r.cursor,n=r.a-r.cursor,r.cursor<o||(a=r.f,r.f=o,r.d=r.cursor,0==r.h(s)?r.f=a:(r.c=r.cursor,r.f=a,r.cursor=r.a-n,r.cursor<=r.f||(r.cursor--,r.c=r.cursor,r.e()))),r.cursor=r.a-u,u=r.a-r.cursor,r.cursor<o||(n=r.f,r.f=o,r.d=r.cursor,0==r.h(e)?r.f=n:(r.c=r.cursor,r.f=n,r.e())),r.cursor=r.a-u,r.cursor=r.f,g},this.stemWord=function(t){return r.p(t),this.l(),r.j}}let stemmerInstance=new stem;function stemmer(r){return stemmerInstance.stemWord(r)}let language="norwegian";