
    zTi"                         d dl mZ d dlmZ  G d de      Z G d de      Z G d de      Z G d	 d
e      Z G d de      Z	 G d de      Z
 G d de      Zy)   )BaseStemmer)Amongc                   h   e Zd ZdZh dZdZdZd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zd Z eddd       eddd       eddd      gZ eddd       eddd       eddd      gZ eddde       eddde
       eddde	      gZ eddd       eddd       eddd       eddd       ed dd       ed!d"d       ed#d"d$e       ed%dd&       ed'dd       ed(d)d       ed*d)d"e       ed+dd      gZ ed,dd$e       ed-dd"       ed.dd$       ed/dd       ed0d$d       ed1d$d      gZy2)3IndonesianStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated from indonesian.sbl by Snowball 3.0.1 - https://snowballstem.org/
    >   aeiou    c                     | j                   | _        | j                  t        j                        dk(  ry| j                   | _        | j                         sy| xj                  dz  c_        yNr   Fr   T)cursorketfind_among_br   a_0bra	slice_del	I_measureselfs    U/home/agent/.local/lib/python3.12/site-packages/snowballstemmer/indonesian_stemmer.py__r_remove_particlez%IndonesianStemmer.__r_remove_particle   S    ;;.223q8;;~~!    c                     | j                   | _        | j                  t        j                        dk(  ry| j                   | _        | j                         sy| xj                  dz  c_        yr   )r   r   r   r   a_1r   r   r   r   s    r   __r_remove_possessive_pronounz/IndonesianStemmer.__r_remove_possessive_pronoun   r   r   c                 D    | j                   dk(  ry| j                   dk(  ryy)N   F   TI_prefixr   s    r   __r_SUFFIX_KAN_OKz#IndonesianStemmer.__r_SUFFIX_KAN_OK)   s#    ==A==Ar   c                      | j                   dk7  S )Nr   r"   r   s    r   __r_SUFFIX_AN_OKz"IndonesianStemmer.__r_SUFFIX_AN_OK0   s    }}!!r   c                     | j                   dkD  ry| j                  | j                  z
  }	 | j                  d      s
t	               y# t        $ r Y nw xY w| j                  |z
  | _        y)Nr!   FsT)r#   limitr   eq_s_blab0)r   v_1s     r   __r_SUFFIX_I_OKz!IndonesianStemmer.__r_SUFFIX_I_OK3   s^    ==1jj4;;&	;;t$fTjj3&s   A 	AAc                     | j                   | _        | j                  t        j                        dk(  ry| j                   | _        | j                         sy| xj                  dz  c_        yr   )r   r   r   r   a_2r   r   r   r   s    r   __r_remove_suffixz#IndonesianStemmer.__r_remove_suffix?   r   r   c                 D    | j                  t        j                        syy)NFT)in_groupingr   g_vowelr   s    r   	__r_VOWELzIndonesianStemmer.__r_VOWELJ   s     1 9 9:r   c                 h    | j                  t        j                        sy| j                  d      syy)NFerT)out_groupingr   r3   eq_sr   s    r   __r_KERzIndonesianStemmer.__r_KERO   s,      !2!:!:;yyr   c                    | j                   | _        | j                  t        j                        }|dk(  ry| j                   | _        |dk(  r.| j                         syd| _        | xj                  dz  c_        y
|dk(  r.| j                         syd| _        | xj                  dz  c_        y
|dk(  r/d| _        | j                  d      sy| xj                  dz  c_        y
|dk(  r/d| _        | j                  d      sy| xj                  dz  c_        y
|dk(  rd| _        | xj                  dz  c_        	 | j                   }	 | j                   }| j                  t        j                        s
t               || _         | j                  d	      syt               d| _        | xj                  dz  c_        	 | j                   }	 | j                   }| j                  t        j                        s
t               || _         | j                  d	      syt               # t        $ r Y nw xY w|| _         | j                         sy	 y
# t        $ r Y y
w xY w# t        $ r Y nw xY w|| _         | j                         sy	 y
# t        $ r Y y
w xY w)Nr   Fr   r!   r    r(         pT)r   r   
find_amongr   a_3r   r   r#   r   
slice_fromr2   r3   lab1r+   lab3lab2)r   	among_varr,   v_2v_3v_4s         r   __r_remove_first_order_prefixz/IndonesianStemmer.__r_remove_first_order_prefixV   sc   ;;OO$5$9$9:	>;;>>>#DMNNaNn m !^>>#DMNNaNb a !^DM??4(NNaNX W !^DM??4(NNaNN M !^DMNNaNkk"++C++,=,E,EF"f"%DK??40$&L DMNNaNkk"++C++,=,E,EF"f"%DK??40$&L% !T!!~~'  (. ) ( )  !T!!~~'  (   sn   8I AH 
H :J  AI 
I 	H+(I *H++I 	II	I# J  "I##J   	JJc                    | j                   | _        | j                  t        j                        }|dk(  ry| j                   | _        |dk(  r.| j                         syd| _        | xj                  dz  c_        y|dk(  r(| j                  d      sy| xj                  dz  c_        y|dk(  r.| j                         syd| _        | xj                  dz  c_        y| j                  d      syd| _        | xj                  dz  c_        y)	Nr   Fr   r!   ajarr    r;   T)
r   r   r>   r   a_4r   r   r#   r   r@   )r   rD   s     r   __r_remove_second_order_prefixz0IndonesianStemmer.__r_remove_second_order_prefix   s    ;;OO$5$9$9:	>;;>>>#DMNNaN   !^??7+NNaN  !^>>#DMNNaN 	 ??7+DMNNaNr   c                    d| _         | j                  }	 	 	 | j                  t        j                        s
t               | xj                  dz  c_        | xj                   dz  c_         V# t
        $ r Y nw xY wn# t        $ r Y nw xY w|| _        | j                   dk  ryd| _        | j                  | _        | j                  | _        | j                  | j                  z
  }| j                          | j                  |z
  | _        | j                   dk  ry| j                  | j                  z
  }| j                          | j                  |z
  | _        | j                  | _        | j                   dk  ry	 | j                  }	 | j                  }| j                         s
t               | j                  }	 | j                  }| j                   dk  r
t               | j                  | _        | j                  | _        | j                         s
t               | j                  | _        || _        | j                   dk  r
t               | j!                         s
t               n# t        $ r Y nw xY w|| _        || _        t#               # t        $ r Y nw xY w|| _        | j                  }| j!                          || _        | j                  }		 | j                   dk  r
t%               | j                  | _        | j                  | _        | j                         s
t%               | j                  | _        n# t$        $ r Y nw xY w|	| _        y# t"        $ r Y yw xY w)Nr   Tr   r!   F)r   r   go_out_groupingr   r3   rA   r+   r#   limit_backwardr)   %_IndonesianStemmer__r_remove_particle/_IndonesianStemmer__r_remove_possessive_pronoun/_IndonesianStemmer__r_remove_first_order_prefixrB   lab4#_IndonesianStemmer__r_remove_suffix0_IndonesianStemmer__r_remove_second_order_prefixrC   lab5)
r   r,   rF   rG   v_5v_6v_7v_8v_9v_10s
             r   _stemzIndonesianStemmer._stem   s   kk
	"//0A0I0IJ"fKK1$KNNa'N!T!T>>Q"kkjjjj4;;&  "jj3&>>Qjj4;;&**,jj3&))>>Q)	++Ckk99;&Lkk"++C~~*"f*.++D'"&**DK113"f"&"5"5DK"%DK~~*"f>>@"f A!T!!!fDK++C//1DK;;D>>Q&&L&*kk#"jj--/&L"11DK T 	s   A; AA+ *A; +	A74A; 6A77A; ;	BB6M 2J
 6B,I# "J
 #	I/,J
 .I//J
 
	JM J9M A&L7 6M 7	M M M
M 	MMkahr   lahpunnyakumur	   ankandiker!   mememr<   menmengr;   menyr    pem   penpeng   penyterbebelajarberpepelajarperN)__name__
__module____qualname____doc__r3   r#   r   rP   rQ   #_IndonesianStemmer__r_SUFFIX_KAN_OK"_IndonesianStemmer__r_SUFFIX_AN_OK!_IndonesianStemmer__r_SUFFIX_I_OKrT   _IndonesianStemmer__r_VOWEL_IndonesianStemmer__r_KERrR   rU   r]   r   r   r   r/   r?   rK    r   r   r   r      s   
 -GHI		"
	
BH:IX 	fb!fb!fb!C 	fb!eReRC 	dB?+eR,-fa-.C 	eReReRfafagq!gq!Y'fb!fb!gq!gq!Y'fb!C  	eRG$j!QfaeRj!QfaCr   r   c                       e Zd Zy)r+   Nr{   r|   r}   r   r   r   r+   r+   -      r   r+   c                       e Zd Zy)rA   Nr   r   r   r   rA   rA   0  r   r   rA   c                       e Zd Zy)rC   Nr   r   r   r   rC   rC   3  r   r   rC   c                       e Zd Zy)rB   Nr   r   r   r   rB   rB   6  r   r   rB   c                       e Zd Zy)rS   Nr   r   r   r   rS   rS   9  r   r   rS   c                       e Zd Zy)rV   Nr   r   r   r   rV   rV   <  r   r   rV   N)basestemmerr   amongr   r   BaseExceptionr+   rA   rC   rB   rS   rV   r   r   r   <module>r      sX    % b bJ	  =   =   =   =   =   = r   