@orama/stemmers
Version:
Stemmers for Orama
1 lines • 7.81 kB
JavaScript
"use strict";function _export(r,s){for(var t in s)Object.defineProperty(r,t,{enumerable:!0,get:Object.getOwnPropertyDescriptor(s,t).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,s,t){if(this.cursor>=this.a)return p;var i=this.j.charCodeAt(this.cursor);return i>t||i<s||0==(r[(i-=s)>>>3]&1<<(7&i))?p:(this.cursor++,g)},this.n=function(r,s,t){if(this.cursor<=this.f)return p;var i=this.j.charCodeAt(this.cursor-1);return i>t||i<s||0==(r[(i-=s)>>>3]&1<<(7&i))?p:(this.cursor--,g)},this.k=function(r,s,t){if(this.cursor>=this.a)return p;var i=this.j.charCodeAt(this.cursor);return i>t||i<s||0==(r[(i-=s)>>>3]&1<<(7&i))?(this.cursor++,g):p},this.q=function(r,s,t){if(this.cursor<=this.f)return p;var i=this.j.charCodeAt(this.cursor-1);return i>t||i<s||0==(r[(i-=s)>>>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 s=0,t=r.length,i=this.cursor,c=this.a,e=0,u=0,o=p;;){var a,n=s+(t-s>>>1),h=0,f=e<u?e:u,l=r[n];for(a=f;a<l[0].length;a++){if(i+f==c){h=-1;break}if(0!=(h=this.j.charCodeAt(i+f)-l[0].charCodeAt(a)))break;f++}if(0>h?(t=n,u=f):(s=n,e=f),1>=t-s){if(0<s||t==s||o)break;o=g}}for(;;){if(e>=(l=r[s])[0].length&&(this.cursor=i+l[0].length,4>l.length||(s=l[3](this),this.cursor=i+l[0].length,s)))return l[2];if(0>(s=l[1]))return 0}},this.h=function(r){for(var s=0,t=r.length,i=this.cursor,c=this.f,e=0,u=0,o=p;;){var a,n=s+(t-s>>1),h=0,f=e<u?e:u,l=r[n];for(a=l[0].length-1-f;0<=a;a--){if(i-f==c){h=-1;break}if(0!=(h=this.j.charCodeAt(i-1-f)-l[0].charCodeAt(a)))break;f++}if(0>h?(t=n,u=f):(s=n,e=f),1>=t-s){if(0<s||t==s||o)break;o=g}}for(;;){if(e>=(l=r[s])[0].length&&(this.cursor=i-l[0].length,4>l.length||(s=l[3](this),this.cursor=i-l[0].length,s)))return l[2];if(0>(s=l[1]))return 0}},this.s=function(r,s,t){var i=t.length-(s-r);return this.j=this.j.slice(0,r)+t+this.j.slice(s),this.a+=i,this.cursor>=s?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 s=p;return this.t()&&(this.s(this.c,this.d,r),s=g),s},this.e=function(){return this.b("")},this.r=function(r,s,t){s=this.s(r,s,t),r<=this.c&&(this.c+=s),r<=this.d&&(this.d+=s)},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(){function r(){return 0==t.h(a)?p:g}function s(){return t.g("i")&&t.n(d,97,246)?g:p}var t=new C,i=[["pa",-1,1],["sti",-1,2],["kaan",-1,1],["han",-1,1],["kin",-1,1],["h\xe4n",-1,1],["k\xe4\xe4n",-1,1],["ko",-1,1],["p\xe4",-1,1],["k\xf6",-1,1]],c=[["lla",-1,-1],["na",-1,-1],["ssa",-1,-1],["ta",-1,-1],["lta",3,-1],["sta",3,-1]],e=[["ll\xe4",-1,-1],["n\xe4",-1,-1],["ss\xe4",-1,-1],["t\xe4",-1,-1],["lt\xe4",3,-1],["st\xe4",3,-1]],u=[["lle",-1,-1],["ine",-1,-1]],o=[["nsa",-1,3],["mme",-1,3],["nne",-1,3],["ni",-1,2],["si",-1,1],["an",-1,4],["en",-1,6],["\xe4n",-1,5],["ns\xe4",-1,3]],a=[["aa",-1,-1],["ee",-1,-1],["ii",-1,-1],["oo",-1,-1],["uu",-1,-1],["\xe4\xe4",-1,-1],["\xf6\xf6",-1,-1]],n=[["a",-1,8],["lla",0,-1],["na",0,-1],["ssa",0,-1],["ta",0,-1],["lta",4,-1],["sta",4,-1],["tta",4,2],["lle",-1,-1],["ine",-1,-1],["ksi",-1,-1],["n",-1,7],["han",11,1],["den",11,-1,s],["seen",11,-1,r],["hen",11,2],["tten",11,-1,s],["hin",11,3],["siin",11,-1,s],["hon",11,4],["h\xe4n",11,5],["h\xf6n",11,6],["\xe4",-1,8],["ll\xe4",22,-1],["n\xe4",22,-1],["ss\xe4",22,-1],["t\xe4",22,-1],["lt\xe4",26,-1],["st\xe4",26,-1],["tt\xe4",26,2]],h=[["eja",-1,-1],["mma",-1,1],["imma",1,-1],["mpa",-1,1],["impa",3,-1],["mmi",-1,1],["immi",5,-1],["mpi",-1,1],["impi",7,-1],["ej\xe4",-1,-1],["mm\xe4",-1,1],["imm\xe4",10,-1],["mp\xe4",-1,1],["imp\xe4",12,-1]],f=[["i",-1,-1],["j",-1,-1]],l=[["mma",-1,1],["imma",0,-1]],k=[17,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8],m=[119,223,119,1],b=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],d=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],j=[17,97,24,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32],v=p,A="",w=0,x=0;this.l=function(){var s,a=t.cursor;!function(){for(w=x=t.a;;){var r=t.cursor;if(t.i(b,97,246)){t.cursor=r;break}if(t.cursor=r,t.cursor>=t.a)return;t.cursor++}for(;!t.k(b,97,246);){if(t.cursor>=t.a)return;t.cursor++}for(x=t.cursor;;){if(r=t.cursor,t.i(b,97,246)){t.cursor=r;break}if(t.cursor=r,t.cursor>=t.a)return;t.cursor++}for(;!t.k(b,97,246);){if(t.cursor>=t.a)return;t.cursor++}w=t.cursor}(),t.cursor=a,v=p,t.f=t.cursor,t.cursor=t.a,a=t.a-t.cursor;r:if(!(t.cursor<x)){var d=t.f;if(t.f=x,t.d=t.cursor,0==(s=t.h(i)))t.f=d;else{switch(t.c=t.cursor,t.f=d,s){case 1:if(!t.n(j,97,246))break r;break;case 2:if(!(w<=t.cursor))break r}t.e()}}if(t.cursor=t.a-a,a=t.a-t.cursor,!(t.cursor<x))if(d=t.f,t.f=x,t.d=t.cursor,0==(s=t.h(o)))t.f=d;else switch(t.c=t.cursor,t.f=d,s){case 1:if(s=t.a-t.cursor,t.g("k"))break;t.cursor=t.a-s,t.e();break;case 2:if(!t.e()||(t.d=t.cursor,!t.g("kse")))break;t.c=t.cursor,t.b("ksi");break;case 3:t.e();break;case 4:0==t.h(c)||t.e();break;case 5:0==t.h(e)||t.e();break;case 6:0==t.h(u)||t.e()}t.cursor=t.a-a,a=t.a-t.cursor,function(){var s;if(!(t.cursor<x)){var i=t.f;if(t.f=x,t.d=t.cursor,0==(s=t.h(n)))t.f=i;else{switch(t.c=t.cursor,t.f=i,s){case 1:if(!t.g("a"))return;break;case 2:if(!t.g("e"))return;break;case 3:if(!t.g("i"))return;break;case 4:if(!t.g("o"))return;break;case 5:if(!t.g("\xe4"))return;break;case 6:if(!t.g("\xf6"))return;break;case 7:s=t.a-t.cursor;r:{i=t.a-t.cursor;s:{var c=t.a-t.cursor;if(r())break s;if(t.cursor=t.a-c,!t.g("ie")){t.cursor=t.a-s;break r}}t.cursor=t.a-i,t.cursor<=t.f?t.cursor=t.a-s:(t.cursor--,t.c=t.cursor)}break;case 8:if(!t.n(b,97,246)||!t.n(m,98,122))return}t.e()&&(v=g)}}}(),t.cursor=t.a-a,a=t.a-t.cursor;r:if(!(t.cursor<w))if(d=t.f,t.f=w,t.d=t.cursor,0==(s=t.h(h)))t.f=d;else{if(t.c=t.cursor,t.f=d,1===s){if(s=t.a-t.cursor,t.g("po"))break r;t.cursor=t.a-s}t.e()}t.cursor=t.a-a;r:{if(v){a=t.a-t.cursor,t.cursor<x||(s=t.f,t.f=x,t.d=t.cursor,0==t.h(f)?t.f=s:(t.c=t.cursor,t.f=s,t.e())),t.cursor=t.a-a;break r}a=t.a-t.cursor;s:if(!(t.cursor<x))if(s=t.f,t.f=x,t.d=t.cursor,t.g("t"))if(t.c=t.cursor,d=t.a-t.cursor,t.n(b,97,246)){if(t.cursor=t.a-d,t.e()&&(t.f=s,!(t.cursor<w)))if(d=t.f,t.f=w,t.d=t.cursor,0==(s=t.h(l)))t.f=d;else{if(t.c=t.cursor,t.f=d,1===s){if(s=t.a-t.cursor,t.g("po"))break s;t.cursor=t.a-s}t.e()}}else t.f=s;else t.f=s;t.cursor=t.a-a}return a=t.a-t.cursor,!function(){if(!(t.cursor<x)){var s=t.f;t.f=x;var i=t.a-t.cursor,c=t.a-t.cursor;if(!r()||(t.cursor=t.a-c,t.d=t.cursor,t.cursor<=t.f||(t.cursor--,t.c=t.cursor,t.e()))){if(t.cursor=t.a-i,i=t.a-t.cursor,t.d=t.cursor,!(t.n(k,97,228)&&(t.c=t.cursor,t.n(m,98,122)&&!t.e()))){t.cursor=t.a-i,i=t.a-t.cursor;r:if(t.d=t.cursor,t.g("j")){if((t.c=t.cursor,c=t.a-t.cursor,!t.g("o"))&&(t.cursor=t.a-c,!t.g("u")))break r;if(!t.e())return}if(t.cursor=t.a-i,i=t.a-t.cursor,t.d=t.cursor,!(t.g("o")&&(t.c=t.cursor,t.g("j")&&!t.e()))){for(t.cursor=t.a-i,t.f=s;;){if(s=t.a-t.cursor,t.q(b,97,246)){t.cursor=t.a-s;break}if(t.cursor=t.a-s,t.cursor<=t.f)return;t.cursor--}t.d=t.cursor,t.n(m,98,122)&&(t.c=t.cursor,""!=(A=t.u())&&t.g(A)&&t.e())}}}}}(),t.cursor=t.a-a,t.cursor=t.f,g},this.stemWord=function(r){return t.p(r),this.l(),t.j}}let stemmerInstance=new stem;function stemmer(r){return stemmerInstance.stemWord(r)}let language="finnish";