B
    _Ҕa2                 @   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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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gZ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	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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gZd%d&dgZdZdZdZd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5S )6GermanStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated by Snowball 2.2.0 - https://snowballstem.org/
        U       Yr      ä      ö      üeZemenZernersesstZestigZlichendZungZischZikZheitZkeit   A             u      c             C   st  | j }x| j }yy~| j }y8| j | _| ds2t | j | _| dsHdS t W n tk
rd   Y nX || _ | j | jkr~t |  j d7  _ W n tk
r   Y nX wW n tk
r   Y nX || _ P qW || _ x| j }ypyPxH| j }y| 	t
jddst | j | _y| j }yL| ds*t | j | _| 	t
jddsJt | dsZdS t W n tk
rx   Y nX || _ | d	st | j | _| 	t
jddst | d
sdS W n tk
r   Y nX || _ t W n tk
r    Y nX || _ | j | jkrt |  j d7  _ qW W n tk
rF   Y nX wW n tk
rb   Y nX || _ P qW dS )N   ßssFr   a      ur   yr   T)cursorbraZeq_slab2ket
slice_fromlab1limitlab0Zin_groupingr   g_vlab5lab7lab6lab4lab3)selfv_1v_2v_3v_4v_5v_6 r;   =lib/python3.7/site-packages/snowballstemmer/german_stemmer.pyZ__r_preludeA   s    


   
  
   zGermanStemmer.__r_preludec             C   s  | j | _| j | _| j}| jd }|| j kr.dS || _| j| _|| _| tjddsVdS |  jd7  _| tjddsxdS |  jd7  _| j| _y| j| jk st	 | j| _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   Fr"   r#   r   T)
r,   I_p1I_p2r&   I_xZgo_out_groupingr   r.   Zgo_in_groupingr-   )r4   r5   cr;   r;   r<   Z__r_mark_regions   s<    

 zGermanStemmer.__r_mark_regionsc             C   s   x| j }y| j | _| tj}|dkr,t | j | _|dkrL| dsdS nh|dkrd| 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 dS )Nr	   r   r%   Fr
   r$   r   ar   oT)	r&   r'   Z
find_amongr   a_0r-   r)   r*   r,   )r4   r5   	among_varr;   r;   r<   Z__r_postlude   s:    



 zGermanStemmer.__r_postludec             C   s   | j | jksdS dS )NFT)r=   r&   )r4   r;   r;   r<   Z__r_R1   s    zGermanStemmer.__r_R1c             C   s   | j | jksdS dS )NFT)r>   r&   )r4   r;   r;   r<   Z__r_R2   s    zGermanStemmer.__r_R2c             C   st  | j | j }y| j| _| tj}|dkr2t | j| _|  sHt |dkr^| 	 s\dS n|dkr| 	 srdS | j | j }yX| j| _| 
ds| j | | _t | j| _| 
ds| j | | _t | 	 sdS W n tk
r   Y nX n&| tjddst | 	 sdS W n tk
r,   Y nX | j | | _| j | j }y| j| _| tj}|dkrlt | j| _|  st |dkr| 	 sdS nH| tjddst | jd	 }|| jk rt || _| 	 sdS W n tk
r   Y nX | j | | _| j | j }y2| j| _| tj}|dkr@t | j| _|  sXt |dkrL| 	 spdS | j | j }y| j| _| 
d
s| j | | _t | j| _| j | j }y(| 
dst | j | | _t W n tk
r   Y nX | j | | _|  s | j | | _t | 	 s.dS W n tk
rF   Y nX n|dkr| j | j }	y| 
dsvt t W n tk
r   Y nX | j |	 | _| 	 sJdS n|d	kr| 	 sdS | j | j }
y| j| _yn| j | j }y| 
dst t W n tk
r"   Y nX | j | | _| 
dsN| j |
 | _t W n tk
rf   Y nX | j| _|  s| j |
 | _t | 	 sdS W n tk
r   Y nX n| 	 sdS | j | j }yb| j| _| tjdkr| j | | _t | j| _|  s"| j | | _t | 	 s0dS W n tk
rH   Y nX W n tk
rb   Y nX | j | | _dS )Nr	   r   Fr
   r   Znisb   t   r   r   r   r   r   T)r,   r&   r)   Zfind_among_br   a_1r-   r'   _GermanStemmer__r_R1Z	slice_delZeq_s_br+   Zin_grouping_b
g_s_endinga_2r(   g_st_endinglimit_backwarda_4r3   _GermanStemmer__r_R2r2   r/   r1   lab9lab8r0   a_3lab10)r4   r5   rD   r6   r7   r@   r8   r9   r:   Zv_7Zv_8Zv_9Zv_10r;   r;   r<   Z__r_standard_suffix   s2   

 
 





 




 

 


 



 
 

 


 
 z!GermanStemmer.__r_standard_suffixc             C   s`   | j }|   || _ | j }|   || _ | j | _| j| _ |   | j| _ | j }|   || _ dS )NT)r&   _GermanStemmer__r_prelude_GermanStemmer__r_mark_regionsrL   r,   !_GermanStemmer__r_standard_suffix_GermanStemmer__r_postlude)r4   r5   r6   r8   r;   r;   r<   _stemp  s    zGermanStemmer._stemN)__name__
__module____qualname____doc__r   rC   rG   rJ   rQ   rM   r.   rI   rK   r?   r>   r=   rS   rT   rV   rH   rN   rU   rW   r;   r;   r;   r<   r      sT   





















,

G !r   c               @   s   e Zd ZdS )r-   N)rX   rY   rZ   r;   r;   r;   r<   r-     s    r-   c               @   s   e Zd ZdS )r+   N)rX   rY   rZ   r;   r;   r;   r<   r+     s    r+   c               @   s   e Zd ZdS )r(   N)rX   rY   rZ   r;   r;   r;   r<   r(     s    r(   c               @   s   e Zd ZdS )r3   N)rX   rY   rZ   r;   r;   r;   r<   r3     s    r3   c               @   s   e Zd ZdS )r2   N)rX   rY   rZ   r;   r;   r;   r<   r2     s    r2   c               @   s   e Zd ZdS )r/   N)rX   rY   rZ   r;   r;   r;   r<   r/     s    r/   c               @   s   e Zd ZdS )r1   N)rX   rY   rZ   r;   r;   r;   r<   r1     s    r1   c               @   s   e Zd ZdS )r0   N)rX   rY   rZ   r;   r;   r;   r<   r0     s    r0   c               @   s   e Zd ZdS )rP   N)rX   rY   rZ   r;   r;   r;   r<   rP     s    rP   c               @   s   e Zd ZdS )rO   N)rX   rY   rZ   r;   r;   r;   r<   rO     s    rO   c               @   s   e Zd ZdS )rR   N)rX   rY   rZ   r;   r;   r;   r<   rR     s    rR   N)Zbasestemmerr   Zamongr   r   BaseExceptionr-   r+   r(   r3   r2   r/   r1   r0   rP   rO   rR   r;   r;   r;   r<   <module>   s     |