B
    _Ҕa48                 @   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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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dddg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ddd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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ed(ddgZ
d)d*d+dddddddddddddd,gZdddd)d*d+dddddddddddddd,gZd)d-d+dddddddddddddd,gZdZdZd.Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Zd=d> Zd?d@ ZdAdB ZdCS )DDutchStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated by Snowball 2.2.0 - https://snowballstem.org/
           á    r      ä   é      ë   í      ï   ó      ö   ú      üIYddZkkttZeneZseenZhedensendigZingZlijkZbaarZbarZaaeeZoouu   A         C   Fc             C   s  | j }x| j }y| j | _| tj}|dkr2t | j | _|dkrR| dsdS n|dkrj| dsdS nh|dkr| dsdS nP|d	kr| d
sdS n8|dkr| dsdS n | j | jkrt |  j d7  _ wW n tk
r   Y nX || _ P qW || _ | j }y<| j | _| 	ds&|| _ t
 | j | _| ds>dS W n t
k
rV   Y nX x| j }y\y:x2| j }y| tjddst | j | _y| j }yL| 	dst | j | _| tjddst | dsdS t W n tk
r    Y nX || _ | 	dst | j | _| ds2dS W n tk
rJ   Y nX || _ t W n tk
rp   Y nX || _ | j | jkrt |  j d7  _ qnW W n tk
r   Y nX w\W n tk
r   Y nX || _ P q\W dS )Nr	   r   aFr   er   ir   or   uyr   a      r   T)cursorbra
find_amongr   a_0lab0ket
slice_fromlimitZeq_slab1Zin_groupingg_vlab4lab6lab5lab3lab2)selfv_1v_2	among_varv_3v_4v_5v_6 rE   <lib/python3.7/site-packages/snowballstemmer/dutch_stemmer.pyZ__r_preludeI   s    




  
  
   zDutchStemmer.__r_preludec             C   s   | j | _| j | _| tjdds$dS |  jd7  _| tjddsFdS |  jd7  _| j| _y| jdk snt d| _W n tk
r   Y nX | tjddsdS |  jd7  _| tjddsdS |  jd7  _| j| _dS )Nr,   r-   Fr   r   T)	r5   I_p1I_p2Zgo_out_groupingr   r7   r.   Zgo_in_groupingr2   )r=   rE   rE   rF   Z__r_mark_regions   s.    

 zDutchStemmer.__r_mark_regionsc             C   s   x| j }y| j | _| tj}|dkr,t | j | _|dkrL| dsdS n8|dkrd| dsdS n | j | jkrvt |  j d7  _ wW n tk
r   Y nX || _ P qW dS )Nr	   r   r+   Fr   r(   T)	r.   r/   r0   r   a_1r2   r3   r4   r5   )r=   r>   r@   rE   rE   rF   Z__r_postlude   s.    

 zDutchStemmer.__r_postludec             C   s   | j | jksdS dS )NFT)rG   r.   )r=   rE   rE   rF   Z__r_R1   s    zDutchStemmer.__r_R1c             C   s   | j | jksdS dS )NFT)rH   r.   )r=   rE   rE   rF   Z__r_R2   s    zDutchStemmer.__r_R2c             C   sj   | j | j }| tjdkr dS | j | | _| j| _| j| jkrDdS |  jd8  _| j| _|  sfdS dS )Nr	   Fr   T)	r5   r.   find_among_br   a_2r3   limit_backwardr/   	slice_del)r=   r>   rE   rE   rF   Z__r_undouble   s    zDutchStemmer.__r_undoublec             C   s~   d| _ | j| _| dsdS | j| _|  s0dS | j| j }| tj	ddsPdS | j| | _| 
 shdS d| _ |  szdS dS )NFr'   r,   r-   T)	B_e_foundr.   r3   eq_s_br/   _DutchStemmer__r_R1r5   out_grouping_br   r7   rM   _DutchStemmer__r_undouble)r=   r>   rE   rE   rF   Z__r_e_ending   s"    
zDutchStemmer.__r_e_endingc             C   s   |   sdS | j| j }| tjdds,dS | j| | _| j| j }y| dsVt dS  tk
rl   Y nX | j| | _|  sdS | 	 sdS dS )NFr,   r-   ZgemT)
rP   r5   r.   rQ   r   r7   rO   r2   rM   rR   )r=   r>   r?   rE   rE   rF   Z__r_en_ending   s&    
 zDutchStemmer.__r_en_endingc             C   s:  | j | j }y| j| _| tj}|dkr0t | j| _|dkr^|  sNt | 	dsdS nH|dkrv| 
 st n0|  st | tjddst |  sdS W n tk
r   Y nX | j | | _| j | j }|   | j | | _| j | j }y| j| _| dst | j| _|  s*t | j | j }y| dsJt t W n tk
rh   Y nX | j | | _|  sdS | j| _| d	st | j| _| 
 st W n tk
r   Y nX | j | | _| j | j }yT| j| _| tj}|dkrt | j| _|dkr6|  s2t |  s@dS y| j | j }y| j| _| d
sjt | j| _|  st | j | j }y| dst t W n tk
r   Y nX | j | | _|  sdS t W n tk
r   Y nX | j | | _|  st W n tk
r0   Y nX n|dkr|  sPt | j | j }	y| dspt t W n tk
r   Y nX | j |	 | _|  s<dS n|dkr|  st |  sdS |  s<t nV|dkr|  s t |  s<dS n,|  s t | js.t |  s<dS W n tk
rT   Y nX | j | | _| j | j }
y| tjddst | j | j }| tjdkrt | tjddst | j | | _| j| _| j| jkrt |  jd8  _| j| _|  sdS W n tk
r(   Y nX | j |
 | _dS )Nr	   r   ZheidFr   r,   r-   cr   r   r'   r   r   I   T) r5   r.   r3   rJ   r   a_3r2   r/   rP   r4   _DutchStemmer__r_en_endingrQ   g_v_jrM   _DutchStemmer__r_e_endingrO   r6   _DutchStemmer__r_R2r<   a_4r;   r:   r9   r8   rR   lab7rN   g_v_Ilab8a_5r7   rL   )r=   r>   r@   r?   rA   rB   rC   rD   Zv_7Zv_8Zv_9Zv_10rE   rE   rF   Z__r_standard_suffix  s(   
 

 


 





 

 

 



 









 
 z DutchStemmer.__r_standard_suffixc             C   s`   | j }|   || _ | j }|   || _ | j | _| j| _ |   | j| _ | j }|   || _ dS )NT)r.   _DutchStemmer__r_prelude_DutchStemmer__r_mark_regionsrL   r5    _DutchStemmer__r_standard_suffix_DutchStemmer__r_postlude)r=   r>   r?   rB   rE   rE   rF   _stem  s    zDutchStemmer._stemN)__name__
__module____qualname____doc__r   r1   rI   rK   rU   rZ   r^   r7   r\   rW   rH   rG   rN   r_   r`   rb   rP   rY   rR   rX   rV   ra   rc   rE   rE   rE   rF   r      sd   

























&,&W r   c               @   s   e Zd ZdS )r2   N)rd   re   rf   rE   rE   rE   rF   r2     s    r2   c               @   s   e Zd ZdS )r6   N)rd   re   rf   rE   rE   rE   rF   r6     s    r6   c               @   s   e Zd ZdS )r<   N)rd   re   rf   rE   rE   rE   rF   r<     s    r<   c               @   s   e Zd ZdS )r;   N)rd   re   rf   rE   rE   rE   rF   r;     s    r;   c               @   s   e Zd ZdS )r8   N)rd   re   rf   rE   rE   rE   rF   r8     s    r8   c               @   s   e Zd ZdS )r:   N)rd   re   rf   rE   rE   rE   rF   r:     s    r:   c               @   s   e Zd ZdS )r9   N)rd   re   rf   rE   rE   rE   rF   r9     s    r9   c               @   s   e Zd ZdS )r[   N)rd   re   rf   rE   rE   rE   rF   r[     s    r[   c               @   s   e Zd ZdS )r]   N)rd   re   rf   rE   rE   rE   rF   r]     s    r]   N)Zbasestemmerr   Zamongr   r   BaseExceptionr2   r6   r<   r;   r8   r:   r9   r[   r]   rE   rE   rE   rF   <module>   s      8