@orama/stemmers
Version:
Stemmers for Orama
1 lines • 12.7 kB
JavaScript
"use strict";function _export(r,e){for(var t in e)Object.defineProperty(r,t,{enumerable:!0,get:Object.getOwnPropertyDescriptor(e,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,e,t){if(this.cursor>=this.a)return p;var s=this.j.charCodeAt(this.cursor);return s>t||s<e||0==(r[(s-=e)>>>3]&1<<(7&s))?p:(this.cursor++,g)},this.n=function(r,e,t){if(this.cursor<=this.f)return p;var s=this.j.charCodeAt(this.cursor-1);return s>t||s<e||0==(r[(s-=e)>>>3]&1<<(7&s))?p:(this.cursor--,g)},this.k=function(r,e,t){if(this.cursor>=this.a)return p;var s=this.j.charCodeAt(this.cursor);return s>t||s<e||0==(r[(s-=e)>>>3]&1<<(7&s))?(this.cursor++,g):p},this.q=function(r,e,t){if(this.cursor<=this.f)return p;var s=this.j.charCodeAt(this.cursor-1);return s>t||s<e||0==(r[(s-=e)>>>3]&1<<(7&s))?(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 e=0,t=r.length,s=this.cursor,c=this.a,u=0,i=0,n=p;;){var a,o=e+(t-e>>>1),h=0,f=u<i?u:i,b=r[o];for(a=f;a<b[0].length;a++){if(s+f==c){h=-1;break}if(0!=(h=this.j.charCodeAt(s+f)-b[0].charCodeAt(a)))break;f++}if(0>h?(t=o,i=f):(e=o,u=f),1>=t-e){if(0<e||t==e||n)break;n=g}}for(;;){if(u>=(b=r[e])[0].length&&(this.cursor=s+b[0].length,4>b.length||(e=b[3](this),this.cursor=s+b[0].length,e)))return b[2];if(0>(e=b[1]))return 0}},this.h=function(r){for(var e=0,t=r.length,s=this.cursor,c=this.f,u=0,i=0,n=p;;){var a,o=e+(t-e>>1),h=0,f=u<i?u:i,b=r[o];for(a=b[0].length-1-f;0<=a;a--){if(s-f==c){h=-1;break}if(0!=(h=this.j.charCodeAt(s-1-f)-b[0].charCodeAt(a)))break;f++}if(0>h?(t=o,i=f):(e=o,u=f),1>=t-e){if(0<e||t==e||n)break;n=g}}for(;;){if(u>=(b=r[e])[0].length&&(this.cursor=s-b[0].length,4>b.length||(e=b[3](this),this.cursor=s-b[0].length,e)))return b[2];if(0>(e=b[1]))return 0}},this.s=function(r,e,t){var s=t.length-(e-r);return this.j=this.j.slice(0,r)+t+this.j.slice(e),this.a+=s,this.cursor>=e?this.cursor+=s:this.cursor>r&&(this.cursor=r),s},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 e=p;return this.t()&&(this.s(this.c,this.d,r),e=g),e},this.e=function(){return this.b("")},this.r=function(r,e,t){e=this.s(r,e,t),r<=this.c&&(this.c+=e),r<=this.d&&(this.d+=e)},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(c.d=c.cursor,0==c.h(v))?p:(c.c=c.cursor,4<c.j.length&&c.e()?g:p)}function e(){return(c.d=c.cursor,0==c.h(m))?p:(c.c=c.cursor,5<=c.j.length&&c.e()?g:p)}function t(){return(c.d=c.cursor,0==c.h(w))?p:(c.c=c.cursor,4<=c.j.length&&c.e()?g:p)}function s(){var r;if(c.d=c.cursor,0==(r=c.h(_)))return p;switch(c.c=c.cursor,r){case 1:if(!(4<=c.j.length)||!c.e())return p;break;case 2:if(!(5<=c.j.length)||!c.e())return p;break;case 3:if(!(5<c.j.length)||!c.e())return p;break;case 4:if(!(6<=c.j.length)||!c.e())return p}return g}var c=new C,u=[["ـ",-1,1],["ً",-1,1],["ٌ",-1,1],["ٍ",-1,1],["َ",-1,1],["ُ",-1,1],["ِ",-1,1],["ّ",-1,1],["ْ",-1,1],["٠",-1,2],["١",-1,3],["٢",-1,4],["٣",-1,5],["٤",-1,6],["٥",-1,7],["٦",-1,8],["٧",-1,9],["٨",-1,10],["٩",-1,11],["ﺀ",-1,12],["ﺁ",-1,16],["ﺂ",-1,16],["ﺃ",-1,13],["ﺄ",-1,13],["ﺅ",-1,17],["ﺆ",-1,17],["ﺇ",-1,14],["ﺈ",-1,14],["ﺉ",-1,15],["ﺊ",-1,15],["ﺋ",-1,15],["ﺌ",-1,15],["ﺍ",-1,18],["ﺎ",-1,18],["ﺏ",-1,19],["ﺐ",-1,19],["ﺑ",-1,19],["ﺒ",-1,19],["ﺓ",-1,20],["ﺔ",-1,20],["ﺕ",-1,21],["ﺖ",-1,21],["ﺗ",-1,21],["ﺘ",-1,21],["ﺙ",-1,22],["ﺚ",-1,22],["ﺛ",-1,22],["ﺜ",-1,22],["ﺝ",-1,23],["ﺞ",-1,23],["ﺟ",-1,23],["ﺠ",-1,23],["ﺡ",-1,24],["ﺢ",-1,24],["ﺣ",-1,24],["ﺤ",-1,24],["ﺥ",-1,25],["ﺦ",-1,25],["ﺧ",-1,25],["ﺨ",-1,25],["ﺩ",-1,26],["ﺪ",-1,26],["ﺫ",-1,27],["ﺬ",-1,27],["ﺭ",-1,28],["ﺮ",-1,28],["ﺯ",-1,29],["ﺰ",-1,29],["ﺱ",-1,30],["ﺲ",-1,30],["ﺳ",-1,30],["ﺴ",-1,30],["ﺵ",-1,31],["ﺶ",-1,31],["ﺷ",-1,31],["ﺸ",-1,31],["ﺹ",-1,32],["ﺺ",-1,32],["ﺻ",-1,32],["ﺼ",-1,32],["ﺽ",-1,33],["ﺾ",-1,33],["ﺿ",-1,33],["ﻀ",-1,33],["ﻁ",-1,34],["ﻂ",-1,34],["ﻃ",-1,34],["ﻄ",-1,34],["ﻅ",-1,35],["ﻆ",-1,35],["ﻇ",-1,35],["ﻈ",-1,35],["ﻉ",-1,36],["ﻊ",-1,36],["ﻋ",-1,36],["ﻌ",-1,36],["ﻍ",-1,37],["ﻎ",-1,37],["ﻏ",-1,37],["ﻐ",-1,37],["ﻑ",-1,38],["ﻒ",-1,38],["ﻓ",-1,38],["ﻔ",-1,38],["ﻕ",-1,39],["ﻖ",-1,39],["ﻗ",-1,39],["ﻘ",-1,39],["ﻙ",-1,40],["ﻚ",-1,40],["ﻛ",-1,40],["ﻜ",-1,40],["ﻝ",-1,41],["ﻞ",-1,41],["ﻟ",-1,41],["ﻠ",-1,41],["ﻡ",-1,42],["ﻢ",-1,42],["ﻣ",-1,42],["ﻤ",-1,42],["ﻥ",-1,43],["ﻦ",-1,43],["ﻧ",-1,43],["ﻨ",-1,43],["ﻩ",-1,44],["ﻪ",-1,44],["ﻫ",-1,44],["ﻬ",-1,44],["ﻭ",-1,45],["ﻮ",-1,45],["ﻯ",-1,46],["ﻰ",-1,46],["ﻱ",-1,47],["ﻲ",-1,47],["ﻳ",-1,47],["ﻴ",-1,47],["ﻵ",-1,51],["ﻶ",-1,51],["ﻷ",-1,49],["ﻸ",-1,49],["ﻹ",-1,50],["ﻺ",-1,50],["ﻻ",-1,48],["ﻼ",-1,48]],i=[["آ",-1,1],["أ",-1,1],["ؤ",-1,1],["إ",-1,1],["ئ",-1,1]],n=[["آ",-1,1],["أ",-1,1],["ؤ",-1,2],["إ",-1,1],["ئ",-1,3]],a=[["ال",-1,2],["بال",-1,1],["كال",-1,1],["لل",-1,2]],o=[["أآ",-1,2],["أأ",-1,1],["أؤ",-1,1],["أإ",-1,4],["أا",-1,3]],h=[["ف",-1,1],["و",-1,1]],f=[["ال",-1,2],["بال",-1,1],["كال",-1,1],["لل",-1,2]],b=[["ب",-1,1],["با",0,-1],["بب",0,2],["كك",-1,3]],k=[["سأ",-1,4],["ست",-1,2],["سن",-1,3],["سي",-1,1]],l=[["تست",-1,1],["نست",-1,1],["يست",-1,1]],j=[["كما",-1,3],["هما",-1,3],["نا",-1,2],["ها",-1,2],["ك",-1,1],["كم",-1,2],["هم",-1,2],["هن",-1,2],["ه",-1,1],["ي",-1,1]],d=[["ن",-1,1]],v=[["ا",-1,1],["و",-1,1],["ي",-1,1]],m=[["ات",-1,1]],w=[["ت",-1,1]],A=[["ة",-1,1]],x=[["ي",-1,1]],O=[["كما",-1,3],["هما",-1,3],["نا",-1,2],["ها",-1,2],["ك",-1,1],["كم",-1,2],["هم",-1,2],["كن",-1,2],["هن",-1,2],["ه",-1,1],["كمو",-1,3],["ني",-1,2]],_=[["ا",-1,1],["تا",0,2],["تما",0,4],["نا",0,2],["ت",-1,1],["ن",-1,1],["ان",5,3],["تن",5,2],["ون",5,3],["ين",5,3],["ي",-1,1]],y=[["وا",-1,1],["تم",-1,1]],P=[["و",-1,1],["تمو",0,2]],I=[["ى",-1,1]],W=p,q=p,z=p;this.l=function(){q=z=g,W=p;var v,m=c.cursor;if(c.c=c.cursor,0!=(v=c.o(a)))switch(c.d=c.cursor,v){case 1:if(!(4<c.j.length))break;z=g,q=p,W=g;break;case 2:if(!(3<c.j.length))break;z=g,q=p,W=g}c.cursor=m,function(){for(var r,e=c.cursor;;){var t=c.cursor;r:{e:{var s=c.cursor;if(c.c=c.cursor,0!=(r=c.o(u))){switch(c.d=c.cursor,r){case 1:if(!c.e())return;break;case 2:if(!c.b("0"))return;break;case 3:if(!c.b("1"))return;break;case 4:if(!c.b("2"))return;break;case 5:if(!c.b("3"))return;break;case 6:if(!c.b("4"))return;break;case 7:if(!c.b("5"))return;break;case 8:if(!c.b("6"))return;break;case 9:if(!c.b("7"))return;break;case 10:if(!c.b("8"))return;break;case 11:if(!c.b("9"))return;break;case 12:if(!c.b("ء"))return;break;case 13:if(!c.b("أ"))return;break;case 14:if(!c.b("إ"))return;break;case 15:if(!c.b("ئ"))return;break;case 16:if(!c.b("آ"))return;break;case 17:if(!c.b("ؤ"))return;break;case 18:if(!c.b("ا"))return;break;case 19:if(!c.b("ب"))return;break;case 20:if(!c.b("ة"))return;break;case 21:if(!c.b("ت"))return;break;case 22:if(!c.b("ث"))return;break;case 23:if(!c.b("ج"))return;break;case 24:if(!c.b("ح"))return;break;case 25:if(!c.b("خ"))return;break;case 26:if(!c.b("د"))return;break;case 27:if(!c.b("ذ"))return;break;case 28:if(!c.b("ر"))return;break;case 29:if(!c.b("ز"))return;break;case 30:if(!c.b("س"))return;break;case 31:if(!c.b("ش"))return;break;case 32:if(!c.b("ص"))return;break;case 33:if(!c.b("ض"))return;break;case 34:if(!c.b("ط"))return;break;case 35:if(!c.b("ظ"))return;break;case 36:if(!c.b("ع"))return;break;case 37:if(!c.b("غ"))return;break;case 38:if(!c.b("ف"))return;break;case 39:if(!c.b("ق"))return;break;case 40:if(!c.b("ك"))return;break;case 41:if(!c.b("ل"))return;break;case 42:if(!c.b("م"))return;break;case 43:if(!c.b("ن"))return;break;case 44:if(!c.b("ه"))return;break;case 45:if(!c.b("و"))return;break;case 46:if(!c.b("ى"))return;break;case 47:if(!c.b("ي"))return;break;case 48:if(!c.b("لا"))return;break;case 49:if(!c.b("لأ"))return;break;case 50:if(!c.b("لإ"))return;break;case 51:if(!c.b("لآ"))return}break e}if(c.cursor=s,c.cursor>=c.a)break r;c.cursor++}continue}c.cursor=t;break}c.cursor=e}(),c.f=c.cursor,c.cursor=c.a,m=c.a-c.cursor;r:{v=c.a-c.cursor;e:if(q){t:{var w=c.a-c.cursor;s:{for(var _=1;;){var D=c.a-c.cursor;if(function(){var r;if(c.d=c.cursor,0==(r=c.h(O)))return p;switch(c.c=c.cursor,r){case 1:if(!(4<=c.j.length)||!c.e())return p;break;case 2:if(!(5<=c.j.length)||!c.e())return p;break;case 3:if(!(6<=c.j.length)||!c.e())return p}return g}()){_--;continue}c.cursor=c.a-D;break}if(!(0<_)){c:if(_=c.a-c.cursor,!s()){if(c.cursor=c.a-_,function(){var r;if(c.d=c.cursor,0==(r=c.h(P)))return p;switch(c.c=c.cursor,r){case 1:if(!(4<=c.j.length)||!c.e())return p;break;case 2:if(!(6<=c.j.length)||!c.e())return p}return g}())break c;if(c.cursor=c.a-_,c.cursor<=c.f)break s;c.cursor--}break t}}if(c.cursor=c.a-w,c.d=c.cursor,0==c.h(y)?_=p:(c.c=c.cursor,_=5<=c.j.length&&c.e()?g:p),_)break t;if(c.cursor=c.a-w,!s())break e}break r}if(c.cursor=c.a-v,z){w=c.a-c.cursor;s:if(_=c.a-c.cursor,c.d=c.cursor,0==c.h(A)?D=p:(c.c=c.cursor,D=4<=c.j.length&&c.e()?g:p),!D){c.cursor=c.a-_;c:if(!W&&function(){var r;if(c.d=c.cursor,0==(r=c.h(j)))return p;switch(c.c=c.cursor,r){case 1:if(!(4<=c.j.length)||!c.e())return p;break;case 2:if(!(5<=c.j.length)||!c.e())return p;break;case 3:if(!(6<=c.j.length)||!c.e())return p}return g}()){u:if(D=c.a-c.cursor,!r()){if(c.cursor=c.a-D,e()||(c.cursor=c.a-D,t()))break u;if(c.cursor=c.a-D,c.cursor<=c.f)break c;c.cursor--}break s}c.cursor=c.a-_;c:if(c.d=c.cursor,0==c.h(d)?D=p:(c.c=c.cursor,D=5<c.j.length&&c.e()?g:p),D){u:if(D=c.a-c.cursor,!r()){if(c.cursor=c.a-D,e())break u;if(c.cursor=c.a-D,!t())break c}break s}if(c.cursor=c.a-_,!W&&r())break s;c.cursor=c.a-_,e()||(c.cursor=c.a-w)}if(c.d=c.cursor,0==c.h(x)?w=p:(c.c=c.cursor,w=3<=c.j.length&&c.e()?g:p),w)break r}c.cursor=c.a-v,c.d=c.cursor,0!=c.h(I)&&(c.c=c.cursor,c.b("ي"))}c.cursor=c.a-m,c.cursor=c.f,m=c.cursor,v=c.cursor,function(){var r;if(c.c=c.cursor,0==(r=c.o(o)))return p;switch(c.d=c.cursor,r){case 1:if(!(3<c.j.length)||!c.b("أ"))return p;break;case 2:if(!(3<c.j.length)||!c.b("آ"))return p;break;case 3:if(!(3<c.j.length)||!c.b("ا"))return p;break;case 4:if(!(3<c.j.length)||!c.b("إ"))return p}return g}()||(c.cursor=v),v=c.cursor,function(){if(c.c=c.cursor,0==c.o(h)||(c.d=c.cursor,!(3<c.j.length)))return p;var r=c.cursor;return c.m("ا")?p:(c.cursor=r,c.e()?g:p)}()||(c.cursor=v);r:if(v=c.cursor,!function(){var r;if(c.c=c.cursor,0==(r=c.o(f)))return p;switch(c.d=c.cursor,r){case 1:if(!(5<c.j.length)||!c.e())return p;break;case 2:if(!(4<c.j.length)||!c.e())return p}return g}()){if(c.cursor=v,z&&function(){var r;if(c.c=c.cursor,0==(r=c.o(b)))return p;switch(c.d=c.cursor,r){case 1:if(!(3<c.j.length)||!c.e())return p;break;case 2:if(!(3<c.j.length)||!c.b("ب"))return p;break;case 3:if(!(3<c.j.length)||!c.b("ك"))return p}return g}())break r;c.cursor=v,q&&(v=c.cursor,function(){var r;if(c.c=c.cursor,0==(r=c.o(k)))return p;switch(c.d=c.cursor,r){case 1:if(!(4<c.j.length)||!c.b("ي"))return p;break;case 2:if(!(4<c.j.length)||!c.b("ت"))return p;break;case 3:if(!(4<c.j.length)||!c.b("ن"))return p;break;case 4:if(!(4<c.j.length)||!c.b("أ"))return p}return g}()||(c.cursor=v),c.c=c.cursor,0!=c.o(l)&&(c.d=c.cursor,4<c.j.length&&(q=g,z=p,c.b("است"))))}return c.cursor=m,!function(){if(r=c.cursor,c.f=c.cursor,c.cursor=c.a,c.d=c.cursor,0!=c.h(i)){if(c.c=c.cursor,!c.b("ء"))return;c.cursor=c.f}c.cursor=r;for(var r,e=c.cursor;;){var t=c.cursor;r:{e:{var s=c.cursor;if(c.c=c.cursor,0!=(r=c.o(n))){switch(c.d=c.cursor,r){case 1:if(!c.b("ا"))return;break;case 2:if(!c.b("و"))return;break;case 3:if(!c.b("ي"))return}break e}if(c.cursor=s,c.cursor>=c.a)break r;c.cursor++}continue}c.cursor=t;break}c.cursor=e}(),g},this.stemWord=function(r){return c.p(r),this.l(),c.j}}let stemmerInstance=new stem;function stemmer(r){return stemmerInstance.stemWord(r)}let language="arabic";