UNPKG

@orama/stemmers

Version:
1 lines 4.65 kB
"use strict";function _export(r,t){for(var s in t)Object.defineProperty(r,s,{enumerable:!0,get:t[s]})}Object.defineProperty(exports,"__esModule",{value:!0}),_export(exports,{language:function(){return language},stemmer:function(){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 i=this.j.charCodeAt(this.cursor);return i>s||i<t||0==(r[(i-=t)>>>3]&1<<(7&i))?p:(this.cursor++,g)},this.n=function(r,t,s){if(this.cursor<=this.f)return p;var i=this.j.charCodeAt(this.cursor-1);return i>s||i<t||0==(r[(i-=t)>>>3]&1<<(7&i))?p:(this.cursor--,g)},this.k=function(r,t,s){if(this.cursor>=this.a)return p;var i=this.j.charCodeAt(this.cursor);return i>s||i<t||0==(r[(i-=t)>>>3]&1<<(7&i))?(this.cursor++,g):p},this.q=function(r,t,s){if(this.cursor<=this.f)return p;var i=this.j.charCodeAt(this.cursor-1);return i>s||i<t||0==(r[(i-=t)>>>3]&1<<(7&i))?(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,i=this.cursor,e=this.a,h=0,c=0,u=p;;){var o,n=t+(s-t>>>1),a=0,f=h<c?h:c,l=r[n];for(o=f;o<l[0].length;o++){if(i+f==e){a=-1;break}if(0!=(a=this.j.charCodeAt(i+f)-l[0].charCodeAt(o)))break;f++}if(0>a?(s=n,c=f):(t=n,h=f),1>=s-t){if(0<t||s==t||u)break;u=g}}for(;;){if(h>=(l=r[t])[0].length&&(this.cursor=i+l[0].length,4>l.length||(t=l[3](this),this.cursor=i+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,i=this.cursor,e=this.f,h=0,c=0,u=p;;){var o,n=t+(s-t>>1),a=0,f=h<c?h:c,l=r[n];for(o=l[0].length-1-f;0<=o;o--){if(i-f==e){a=-1;break}if(0!=(a=this.j.charCodeAt(i-1-f)-l[0].charCodeAt(o)))break;f++}if(0>a?(s=n,c=f):(t=n,h=f),1>=s-t){if(0<t||s==t||u)break;u=g}}for(;;){if(h>=(l=r[t])[0].length&&(this.cursor=i-l[0].length,4>l.length||(t=l[3](this),this.cursor=i-l[0].length,t)))return l[2];if(0>(t=l[1]))return 0}},this.s=function(r,t,s){var i=s.length-(t-r);return this.j=this.j.slice(0,r)+s+this.j.slice(t),this.a+=i,this.cursor>=t?this.cursor+=i:this.cursor>r&&(this.cursor=r),i},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]],i=[["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]],e=[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,u=0;this.l=function(){var o=r.cursor;r:{u=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(e,97,248)){r.cursor=n;break}if(r.cursor=n,r.cursor>=r.a)break r;r.cursor++}for(;!r.k(e,97,248);){if(r.cursor>=r.a)break r;r.cursor++}(u=r.cursor)<c&&(u=c)}}if(r.cursor=o,r.f=r.cursor,r.cursor=r.a,o=r.a-r.cursor,!(r.cursor<u))if(a=r.f,r.f=u,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(e,97,248)))break;r.e();break;case 3:r.b("er")}return r.cursor=r.a-o,o=r.a-r.cursor,n=r.a-r.cursor,r.cursor<u||(a=r.f,r.f=u,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-o,o=r.a-r.cursor,r.cursor<u||(n=r.f,r.f=u,r.d=r.cursor,0==r.h(i)?r.f=n:(r.c=r.cursor,r.f=n,r.e())),r.cursor=r.a-o,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";