B
    _Ҕa#                 @   s   d dl mZ d dlmZ G dd deZG dd deZG dd deZG d	d
 d
eZG dd deZ	G dd deZ
G dd deZdS )   )BaseStemmer)Amongc               @   s  e 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deddddedddd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dedddedddedd ded!d dded"ddgZed#ddd$ed%d&ded'd&ded(dded)dded*ddgZ	d+d,d-gZ
d&Zd&Zd.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 Zd:d; Zd<d= Zd>d? Zd@dA ZdBdC ZdDS )EIndonesianStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated by Snowball 2.2.0 - https://snowballstem.org/
    Zkahr   ZlahZpunZnyaZkuZmui!_IndonesianStemmer__r_SUFFIX_I_OKZan"_IndonesianStemmer__r_SUFFIX_AN_OKZkan#_IndonesianStemmer__r_SUFFIX_KAN_OKZdiZke   meZmem   ZmenZmeng   Zmeny   _IndonesianStemmer__r_VOWELZpem   ZpenZpeng   ZpenyZterbe_IndonesianStemmer__r_KERZbelajar    ZberZpeZpelajarZper   A      c             C   sB   | j | _| tjdkrdS | j | _|  s0dS |  jd8  _dS )Nr   Fr   T)cursorketfind_among_br   a_0bra	slice_del	I_measure)self r    Alib/python3.7/site-packages/snowballstemmer/indonesian_stemmer.pyZ__r_remove_particle<   s    z%IndonesianStemmer.__r_remove_particlec             C   sB   | j | _| tjdkrdS | j | _|  s0dS |  jd8  _dS )Nr   Fr   T)r   r   r   r   a_1r   r   r   )r   r    r    r!   Z__r_remove_possessive_pronounG   s    z/IndonesianStemmer.__r_remove_possessive_pronounc             C   s    | j dksdS | j dksdS dS )Nr   Fr
   T)I_prefix)r   r    r    r!   Z__r_SUFFIX_KAN_OKR   s
    

z#IndonesianStemmer.__r_SUFFIX_KAN_OKc             C   s   | j dksdS dS )Nr   FT)r#   )r   r    r    r!   Z__r_SUFFIX_AN_OKY   s    
z"IndonesianStemmer.__r_SUFFIX_AN_OKc             C   sT   | j dksdS | j| j }y| ds,t dS  tk
rB   Y nX | j| | _dS )Nr
   FsT)r#   limitr   Zeq_s_blab0)r   v_1r    r    r!   Z__r_SUFFIX_I_OK^   s    

 z!IndonesianStemmer.__r_SUFFIX_I_OKc             C   sB   | j | _| tjdkrdS | j | _|  s0dS |  jd8  _dS )Nr   Fr   T)r   r   r   r   a_2r   r   r   )r   r    r    r!   Z__r_remove_suffixj   s    z#IndonesianStemmer.__r_remove_suffixc             C   s   |  tjddsdS dS )Na   u   FT)in_groupingr   g_vowel)r   r    r    r!   Z	__r_VOWELu   s    zIndonesianStemmer.__r_VOWELc             C   s&   |  tjddsdS | ds"dS dS )Nr)   r*   FZerT)Zout_groupingr   r,   Zeq_s)r   r    r    r!   Z__r_KERz   s
    
zIndonesianStemmer.__r_KERc             C   s,  | j | _| tj}|dkr dS | j | _|dkrT|  s<dS d| _|  jd8  _n|dkr|  shdS d| _|  jd8  _n|dkrd| _| 	dsdS |  jd8  _nz|dkrd| _| 	dsdS |  jd8  _nL|dkrd| _|  jd8  _yt| j }y>| j }| 
tjd	d
s"t || _ | 	ds8dS t W n tk
rV   Y nX || _ |  sldS W n tk
r   Y nX nd| _|  jd8  _yt| j }y>| j }| 
tjd	d
st || _ | 	dsdS t W n tk
r   Y nX || _ |  sdS W n tk
r&   Y nX dS )Nr   Fr   r
   r   r$   r   r   r)   r*   pT)r   r   
find_amongr   a_3r   r   r#   r   
slice_fromr+   r,   lab1r&   lab3lab2)r   	among_varr'   v_2v_3v_4r    r    r!   Z__r_remove_first_order_prefix   s    



 
 
 
 z/IndonesianStemmer.__r_remove_first_order_prefixc             C   s   | j | _| tj}|dkr dS | j | _|dkrR|  s<dS d| _|  jd8  _nr|dkrx| 	dshdS |  jd8  _nL|dkr|  sdS d| _|  jd8  _n"| 	dsdS d| _|  jd8  _dS )	Nr   Fr   r
   Zajarr   r   T)
r   r   r.   r   a_4r   r   r#   r   r0   )r   r4   r    r    r!   Z__r_remove_second_order_prefix   s0    

z0IndonesianStemmer.__r_remove_second_order_prefixc             C   s  d| _ | j}yfx`| j}y8| tjdds.t |  jd7  _|  j d7  _ wW n tk
rb   Y nX || _P qW W n tk
r   Y nX || _| j dksdS d| _| j| _| j	| _| j	| j }| 
  | j	| | _| j dksdS | j	| j }|   | j	| | _| j| _| j dksdS yT| j}y| j}|  s:t | j}yl| j}| j dksZt | j| _| j	| _|  szt | j| _|| _| j dkst |  st W n tk
r   Y nX || _|| _t W n tk
r   Y nX || _| j}	|   |	| _| j}
y>| j dks$t | j| _| j	| _|  sDt | j| _W n tk
rd   Y nX |
| _W n tk
r   Y nX dS )Nr   r)   r*   r   r
   FT)r   r   Zgo_out_groupingr   r,   r1   r&   r#   Zlimit_backwardr%   %_IndonesianStemmer__r_remove_particle/_IndonesianStemmer__r_remove_possessive_pronoun/_IndonesianStemmer__r_remove_first_order_prefixr2   lab4#_IndonesianStemmer__r_remove_suffix0_IndonesianStemmer__r_remove_second_order_prefixr3   lab5)r   r'   r5   r6   r7   Zv_5Zv_6Zv_7Zv_8Zv_9Zv_10r    r    r!   _stem   s     
 





 
 
 
 zIndonesianStemmer._stemN)__name__
__module____qualname____doc__r   r   r"   r(   r/   r8   r,   r#   r   r9   r:   r	   r   r   r=   r   r   r;   r>   r@   r    r    r    r!   r      sT   

















Dr   c               @   s   e Zd ZdS )r&   N)rA   rB   rC   r    r    r    r!   r&   0  s    r&   c               @   s   e Zd ZdS )r1   N)rA   rB   rC   r    r    r    r!   r1   3  s    r1   c               @   s   e Zd ZdS )r3   N)rA   rB   rC   r    r    r    r!   r3   6  s    r3   c               @   s   e Zd ZdS )r2   N)rA   rB   rC   r    r    r    r!   r2   9  s    r2   c               @   s   e Zd ZdS )r<   N)rA   rB   rC   r    r    r    r!   r<   <  s    r<   c               @   s   e Zd ZdS )r?   N)rA   rB   rC   r    r    r    r!   r?   ?  s    r?   N)Zbasestemmerr   Zamongr   r   BaseExceptionr&   r1   r3   r2   r<   r?   r    r    r    r!   <module>   s     +