
    -Ph"                         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dS )   )BaseStemmer)Amongc                      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d2S )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         | _        |                     t          j                  dk    rdS | j         | _        |                                 sdS | xj        dz  c_        dS Nr   Fr   T)cursorketfind_among_br   a_0bra	slice_del	I_measureselfs    b/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/snowballstemmer/indonesian_stemmer.py__r_remove_particlez%IndonesianStemmer.__r_remove_particle   b    ;.233q885;~~ 	5!t    c                     | j         | _        |                     t          j                  dk    rdS | j         | _        |                                 sdS | xj        dz  c_        dS r   )r   r   r   r   a_1r   r   r   r   s    r   __r_remove_possessive_pronounz/IndonesianStemmer.__r_remove_possessive_pronoun   r   r   c                 :    | j         dk    rdS | j         dk    rdS dS )N   F   TI_prefixr   s    r   __r_SUFFIX_KAN_OKz#IndonesianStemmer.__r_SUFFIX_KAN_OK)   s+    =A5=A5tr   c                     | j         dk    S )Nr   r"   r   s    r   __r_SUFFIX_AN_OKz"IndonesianStemmer.__r_SUFFIX_AN_OK0   s    }!!r   c                     | j         dk    rdS | j        | j        z
  }	 |                     d          st	                      dS # t          $ r Y nw xY w| j        |z
  | _        dS )Nr!   FsT)r#   limitr   eq_s_blab0)r   v_1s     r   __r_SUFFIX_I_OKz!IndonesianStemmer.__r_SUFFIX_I_OK3   ss    =15j4;&	;;t$$ ff5TTj3&ts   #A 
AAc                     | j         | _        |                     t          j                  dk    rdS | j         | _        |                                 sdS | xj        dz  c_        dS r   )r   r   r   r   a_2r   r   r   r   s    r   __r_remove_suffixz#IndonesianStemmer.__r_remove_suffix?   r   r   c                 H    |                      t          j                  sdS dS )NFT)in_groupingr   g_vowelr   s    r   	__r_VOWELzIndonesianStemmer.__r_VOWELJ   s&     1 9:: 	5tr   c                 v    |                      t          j                  sdS |                     d          sdS dS )NFerT)out_groupingr   r3   eq_sr   s    r   __r_KERzIndonesianStemmer.__r_KERO   s?      !2!:;; 	5yy 	5tr   c                 4   | j         | _        |                     t          j                  }|dk    rdS | j         | _        |dk    r/|                                 sdS d| _        | xj        dz  c_        n#|dk    r/|                                 sdS d| _        | xj        dz  c_        n|dk    r0d| _        | 	                    d          sdS | xj        dz  c_        n|dk    r0d| _        | 	                    d          sdS | xj        dz  c_        n|dk    rd| _        | xj        dz  c_        	 | j         }	 | j         }| 
                    t          j                  st                      || _         | 	                    d	          sdS t                      # t          $ r Y nw xY w|| _         |                                 sdS n# t          $ r Y nw xY wd| _        | xj        dz  c_        	 | j         }	 | j         }| 
                    t          j                  st                      || _         | 	                    d	          sdS t                      # t          $ r Y nw xY w|| _         |                                 sdS n# t          $ r Y nw xY wd
S )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   s   ;OO$5$9::	>>5;>>>>## uDMNNaNNN!^^>>## uDMNNaNNN!^^DM??4(( uNNaNNN!^^DM??4(( uNNaNNN!^^DMNNaNNk"+C++,=,EFF %"ff"%DK??400 %$u&&L!!!TT!!~~'' ! 5! DMNNaNNk"+C++,=,EFF %"ff"%DK??400 %$u&&L!!!TT!!~~'' ! 5! tsn   4G
 <AF F 
F)&G
 (F))G
 

GG2J :AI I 
I'$J &I''J 
JJc                    | j         | _        |                     t          j                  }|dk    rdS | j         | _        |dk    r.|                                 sdS d| _        | xj        dz  c_        n|dk    r(| 	                    d          sdS | xj        dz  c_        nb|dk    r.|                                 sdS d| _        | xj        dz  c_        n.| 	                    d          sdS d| _        | xj        dz  c_        dS )	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::	>>5;>>>>## uDMNNaNNN!^^??7++ uNNaNNN!^^>>## uDMNNaNNN??7++ uDMNNaNNtr   c                 0   d| _         | j        }	 	 	 |                     t          j                  st                      | xj        dz  c_        | xj         dz  c_         P# t
          $ r Y nw xY wn# t          $ r Y nw xY w|| _        | j         dk    rdS d| _        | j        | _        | j	        | _        | j	        | j        z
  }| 
                                 | j	        |z
  | _        | j         dk    rdS | j	        | j        z
  }|                                  | j	        |z
  | _        | j        | _        | j         dk    rdS 	 | j        }	 | j        }|                                 st                      | j        }	 | j        }| j         dk    rt                      | j        | _        | j	        | _        |                                 st                      | j        | _        || _        | j         dk    rt                      |                                 st                      n# t          $ r Y nw xY w|| _        || _        t#                      # t          $ r Y nw xY w|| _        | j        }|                                  || _        | j        }		 | j         dk    rt%                      | j        | _        | j	        | _        |                                 st%                      | j        | _        n# t$          $ r Y nw xY w|	| _        n# t"          $ r Y nw xY wdS )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   s0   k
	"//0A0IJJ %"ffKK1$KKNNa'NN!!!TT!TT>Q5"kjj4;&  """j3&>Q5j4;&**,,,j3&)>Q5)	+Ck99;; !&&Lk"+C~**"ff*.+D'"&*DK1133 %"ff"&"5DK"%DK~**"ff>>@@ %"ff%!!!TT!!!ffDK+C//111DK;D>Q&&&&L&*k#"j--// !&&L"1DKKTTts   A1 AA  A1  
A-*A1 ,A--A1 1
A>=A>?L 0I 8B(H!  I !
H.+I -H..I 
IL I3L AK. -L .
K;8L :K;;
L 
LL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 B BH  :I I 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CCCr   r   c                       e Zd ZdS )r+   Nr{   r|   r}   r   r   r   r+   r+   -            r   r+   c                       e Zd ZdS )rA   Nr   r   r   r   rA   rA   0  r   r   rA   c                       e Zd ZdS )rC   Nr   r   r   r   rC   rC   3  r   r   rC   c                       e Zd ZdS )rB   Nr   r   r   r   rB   rB   6  r   r   rB   c                       e Zd ZdS )rS   Nr   r   r   r   rS   rS   9  r   r   rS   c                       e Zd ZdS )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      s   % $ $ $ $ $      b b b b b b b bJ	      =         =         =         =         =         =     r   