U
    YSh9                     @   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G dd deZG dd deZdS )    )BaseStemmer)Amongc                   @   s  e Zd ZdZdddddddd	d
h	ZdddddddddddddhZdddddddddddhZddddddddddh
ZdZdZ	dZ
dd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zed(d)d*ed+dd,ed-dd.ed/dd)ed0dd1ed2dd3gZed(d)d*eddd,ed4dd3eddd.ed	dd1ed
dd,gZedd)d.ed5d)d3ed6d)d.ed7d,d,ed8d)d,ed9d)d*ed:d)d,ed;d)d,edd)d1ed<d=d.ed>d=d*gZed?d)d)ed@d)d)edAd)d)edBd)d)edCd)d)gZed6d)d3ed;d)d3edDd)d.edEd)d,edFd.d3gZedGd)d3edHd)d3gZedId)d3edGd)d,edJd)d3edHd)d.edKd)d,edLd)d,edMd)d.edNd)d1gZdOS )PGermanStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated from german.sbl by Snowball 3.0.1 - https://snowballstem.org/
    aeiouy   ä   ö   üdfgklmnrstUzbh    c                 C   s  | j }| j }z`z>| j }z| tjs.t | j | _z| j }zL| dsPt | j | _| tjsjt | 	dsW W W W W dS t
 W n tk
r   Y nX || _ | dst | j | _| tjst | 	dsW W W W d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  _ qW n tk
rf   Y nX W qW n tk
r   Y nX || _ qq|| _ | j }z| j | _| tj}| j | _|dkr| 	ds`W dS n|dkr| 	d	s`W dS nh|d
kr| 	ds`W dS nJ|dkr4| 	ds`W dS n,|dkr`| j | jkrRt |  j d7  _ W qW n tk
r~   Y nX || _ qqdS )Nr	   r   Fr
   Yr   ss   r      r      r      T)cursorZin_groupingr   g_vlab2braZeq_slab4ket
slice_fromlab3lab1limitlab0
find_amonga_0lab5)selfv_1v_2v_3v_4v_5	among_var r8   Q/root/rtd-docs/venv/lib/python3.8/site-packages/snowballstemmer/german_stemmer.pyZ__r_prelude   s    


 

 
   





 zGermanStemmer.__r_preludec                 C   s  | j | _| j | _| j}| jd }|| j kr.dS || _| j| _|| _| tjsRdS |  jd7  _| tjspdS |  jd7  _| j| _z| j| jkrt	 | j| _W n t	k
r   Y nX | tjsdS |  jd7  _| tjsdS |  jd7  _| j| _dS )Nr    Fr   T)
r,   I_p1I_p2r#   I_xZgo_out_groupingr   r$   Zgo_in_groupingr-   )r1   r2   cr8   r8   r9   Z__r_mark_regionsd   s<    

 zGermanStemmer.__r_mark_regionsc                 C   s   | j }z| j | _| tj}| j | _|dkr>| dsW dS nn|dkrX| dsW dS nT|dkrr| dsW dS n:|dkr| d	sW dS n | j | jkrt |  j d7  _ W q W n tk
r   Y nX || _ qq d
S )Nr   r
   Fr   r	   r    r   r!   r   T)	r#   r&   r.   r   a_1r(   r)   r,   r-   )r1   r2   r7   r8   r8   r9   Z__r_postlude   s4    



 zGermanStemmer.__r_postludec                 C   s   | j | jkS N)r:   r#   r1   r8   r8   r9   Z__r_R1   s    zGermanStemmer.__r_R1c                 C   s   | j | jkS r?   )r;   r#   r@   r8   r8   r9   Z__r_R2   s    zGermanStemmer.__r_R2c                 C   s  | j | j }z| j| _| tj}|dkr2t | j| _|  sHt |dkr| j | j }z| 	dsnt
 t W n t
k
r   Y nX | j | | _|  sW dS n|dkr|  sW dS n|dkr`|  sW dS | j | j }zb| j| _| 	ds| j | | _t | j| _| 	ds2| j | | _t |  sDW W dS W n tk
r\   Y nX nB|d	kr| tjs~t |  sW dS n| d
sW dS W n tk
r   Y nX | j | | _| j | j }z<| j| _| tj}|dkrt | j| _|  st |dkr0|  sW dS n|dkr| tjsNt | jd }|| jk rjt || _|  sW dS n| j | j }| tjst | j | | _| j | j }z"| tjdkrt t W n tk
r   Y nX | j | | _|  sW dS W n tk
r(   Y nX | j | | _| j | j }	zF| j| _| tj}|dkrjt | j| _|  st |dkr||  sW dS | j | j }
z| j| _| 	ds| j |
 | _t | j| _| j | j }z(| 	dst | j |
 | _t W n tk
r"   Y nX | j | | _|  sL| j |
 | _t |  s^W W dS W n tk
rv   Y nX n|dkr| j | j }z| 	dst t W n tk
r   Y nX | j | | _|  sW dS n|dkr|  s W dS | j | j }z| j| _zn| j | j }z| 	ds8t t W n tk
rV   Y nX | j | | _| 	ds| j | | _t W n tk
r   Y nX | j| _|  s| j | | _t |  sW W dS W n tk
r   Y nX n|  sW dS | j | j }zf| j| _| tj dkr8| j | | _t! | j| _|  s\| j | | _t! |  snW W dS W n t!k
r   Y nX W n tk
r   Y nX | j |	 | _dS )Nr   r   ZsystFr   r    r   Znisr!   r   igr   erenT)"r,   r#   r(   Zfind_among_br   a_2r-   r&   _GermanStemmer__r_R1Zeq_s_br+   Z	slice_delr%   Zin_grouping_b
g_s_endingr)   a_4r*   g_st_endinglimit_backwardg_et_endinga_3r'   a_6r0   _GermanStemmer__r_R2lab6lab7lab8lab11lab10lab9a_5lab12)r1   r2   r7   r3   r4   r5   r=   r6   Zv_6Zv_7Zv_8Zv_9Zv_10Zv_11Zv_12Zv_13r8   r8   r9   Z__r_standard_suffix   sl   

 

 


 







 

 




 

 


 




 
 

 


 
 z!GermanStemmer.__r_standard_suffixc                 C   s`   | j }|   || _ | j }|   || _ | j | _| j| _ |   | j| _ | j }|   || _ dS )NT)r#   _GermanStemmer__r_prelude_GermanStemmer__r_mark_regionsrI   r,   !_GermanStemmer__r_standard_suffix_GermanStemmer__r_postlude)r1   r2   r3   r5   r8   r8   r9   _stemc  s    zGermanStemmer._stem r"   Zaer   Zoer    ZquZuer!      ßr   r   ZemrC   ZerinnenZerinlnZernrB   es   ZlnsZtickZplanZgeordninterntretstZestrA   ZlichendZungZischikZheitZkeitN)__name__
__module____qualname____doc__r$   rJ   rF   rH   r<   r;   r:   rV   rW   rY   rE   rM   rX   rZ   r   r/   r>   rD   rK   rG   rT   rL   r8   r8   r8   r9   r      s   J >





























	




	









r   c                   @   s   e Zd ZdS )r-   Nrg   rh   ri   r8   r8   r8   r9   r-     s    r-   c                   @   s   e Zd ZdS )r+   Nrk   r8   r8   r8   r9   r+     s    r+   c                   @   s   e Zd ZdS )r%   Nrk   r8   r8   r8   r9   r%     s    r%   c                   @   s   e Zd ZdS )r*   Nrk   r8   r8   r8   r9   r*     s    r*   c                   @   s   e Zd ZdS )r'   Nrk   r8   r8   r8   r9   r'     s    r'   c                   @   s   e Zd ZdS )r0   Nrk   r8   r8   r8   r9   r0     s    r0   c                   @   s   e Zd ZdS )rN   Nrk   r8   r8   r8   r9   rN     s    rN   c                   @   s   e Zd ZdS )rO   Nrk   r8   r8   r8   r9   rO     s    rO   c                   @   s   e Zd ZdS )rP   Nrk   r8   r8   r8   r9   rP     s    rP   c                   @   s   e Zd ZdS )rS   Nrk   r8   r8   r8   r9   rS     s    rS   c                   @   s   e Zd ZdS )rR   Nrk   r8   r8   r8   r9   rR     s    rR   c                   @   s   e Zd ZdS )rQ   Nrk   r8   r8   r8   r9   rQ     s    rQ   c                   @   s   e Zd ZdS )rU   Nrk   r8   r8   r8   r9   rU     s    rU   N)Zbasestemmerr   Zamongr   r   BaseExceptionr-   r+   r%   r*   r'   r0   rN   rO   rP   rS   rR   rQ   rU   r8   r8   r8   r9   <module>   s$      /