o
    Mi9                     @   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h dZh dZh dZh d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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ed*dded+dded,dded-dded.dded/d0ded1d0dgZed2dded3dded4dded5dded6ddgZed(dd ed-dd ed7dded8dded9d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dAddgZdBS )C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   ä   ö   ü>   Udfgklmnrstzr   >   br   r   r   hr   r   r   r   r   r   >
   r   r   r   r   r   r   r   r   r   r       c                 C   sT  | j }	 | j }zz	 | j }zs| tjst | j | _zV| j }z$| ds(t | j | _| tjs5t | 	dsAW W W W W dS t
  tyL   Y nw || _ | dsXt | j | _| tjset | 	dspW W W W dS W n	 t
yz   Y nw || _ t  ty   Y nw || _ | j | jkrt |  j d7  _ q
 ty   Y nw W q ty   Y nw || _ 	 || _ 	 | j }z\| j | _| tj}| j | _|dkr| 	dsW dS n?|d	kr| 	d
sW dS n2|dkr| 	dsW dS n%|dkr| 	dsW dS n|dkr| j | jkrt |  j d7  _ W q ty#   Y nw || _ 	 dS )NTr	   r   Fr
   Yr   ss   r      r      r      )cursorin_groupingr   g_vlab2bra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 r:   R/home/ubuntu/.local/lib/python3.10/site-packages/snowballstemmer/german_stemmer.py__r_prelude   s   



"




zGermanStemmer.__r_preludec                 C   s   | j | _| j | _| j}| jd }|| j krdS || _| j| _|| _| tjs)dS |  jd7  _| tjs8dS |  jd7  _| j| _z| j| jkrMt	 | j| _W n	 t	y[   Y nw | tjsddS |  jd7  _| tjssdS |  jd7  _| j| _dS )Nr    Fr   T)
r.   I_p1I_p2r#   I_xgo_out_groupingr   r%   go_in_groupingr/   )r3   r4   cr:   r:   r;   __r_mark_regionsd   s:   

zGermanStemmer.__r_mark_regionsc                 C   s   	 | j }zT| j | _| tj}| j | _|dkr | dsW dS n7|dkr-| ds,W dS n*|dkr:| ds9W dS n|d	krG| d
sFW dS n| j | jkrPt |  j d7  _ W q  tya   Y nw || _ 	 dS )NTr   r
   Fr   r	   r    r   r!   r   )	r#   r'   r0   r   a_1r*   r+   r.   r/   )r3   r4   r9   r:   r:   r;   __r_postlude   s<   



zGermanStemmer.__r_postludec                 C      | j | jkS N)r=   r#   r3   r:   r:   r;   __r_R1      zGermanStemmer.__r_R1c                 C   rF   rG   )r>   r#   rH   r:   r:   r;   __r_R2   rJ   zGermanStemmer.__r_R2c                 C   s`  | j | j }z| j| _| tj}|dkrt | j| _|  s#t |dkrP| j | j }z| 	ds6t
 t  t
yA   Y nw | j | | _|  sOW dS nr|dkr\|  s[W dS nf|dkr|  sgW dS | j | j }z.| j| _| 	ds| j | | _t | j| _| 	ds| j | | _t |  sW W dS W n& ty   Y nw |d	kr| tjst |  sW dS n| d
sW dS W n	 ty   Y nw | j | | _| j | j }z| j| _| tj}|dkrt | j| _|  st |dkr|  sW dS nm|dkr-| tjst | jd }|| jk r!t || _|  s,W dS nD| j | j }| tjs=t | j | | _| j | j }z| tjdkrVt t  tyb   Y nw | j | | _|  sqW dS W n
 ty|   Y nw | j | | _| j | j }	z| j| _| tj}|dkrt | j| _|  st |dkr!|  sW dS | j | j }
zZ| j| _| 	ds| j |
 | _t | j| _| j | j }z| 	dst | j |
 | _t  ty   Y nw | j | | _|  s| j |
 | _t |  sW W dS W n ty    Y nw |dkrR| j | j }z| 	ds6t t  tyB   Y nw | j | | _|  sQW dS n|dkr|  s_W dS | j | j }z`| j| _z4| j | j }z| 	ds{t t  ty   Y nw | j | | _| 	ds| j | | _t W n
 ty   Y nw | j| _|  s| j | | _t |  sW W dS W nV ty   Y nMw |  sW dS | j | j }z3| j| _| tj dkr| j | | _t! | j| _|  s| j | | _t! |  sW W dS W n
 t!y   Y nw W n
 ty'   Y nw | j |	 | _dS )Nr   r   systFr   r    r   nisr!   r   igr   erenT)"r.   r#   r*   find_among_br   a_2r/   r'   _GermanStemmer__r_R1eq_s_br-   	slice_delr&   in_grouping_b
g_s_endingr+   a_4r,   g_st_endinglimit_backwardg_et_endinga_3r)   a_6r2   _GermanStemmer__r_R2lab6lab7lab8lab11lab10lab9a_5lab12)r3   r4   r9   r5   r6   r7   rB   r8   v_6v_7v_8v_9v_10v_11v_12v_13r:   r:   r;   __r_standard_suffix   sn  
























z!GermanStemmer.__r_standard_suffixc                 C   s`   | j }|   || _ | j }|   || _ | j | _| j| _ |   | j| _ | j }|   || _ dS )NT)r#   _GermanStemmer__r_prelude_GermanStemmer__r_mark_regionsrZ   r.   !_GermanStemmer__r_standard_suffix_GermanStemmer__r_postlude)r3   r4   r5   r7   r:   r:   r;   _stemc  s   zGermanStemmer._stem r"   aer   oer    quuer!      ßr   r   r   r   r   r   r   emrP   erinnenerinlnernrO   r   es   lnstickplangeordninterntretstestrN   lichendungischikheitkeitN)__name__
__module____qualname____doc__r%   r[   rW   rY   r?   r>   r=   rp   rq   rs   rS   r^   rr   rt   r   r1   rD   rR   r\   rX   re   r]   r:   r:   r:   r;   r      s    J >






























	




	








r   c                   @      e Zd ZdS )r/   Nr   r   r   r:   r:   r:   r;   r/         r/   c                   @   r   )r-   Nr   r:   r:   r:   r;   r-     r   r-   c                   @   r   )r&   Nr   r:   r:   r:   r;   r&     r   r&   c                   @   r   )r,   Nr   r:   r:   r:   r;   r,     r   r,   c                   @   r   )r)   Nr   r:   r:   r:   r;   r)     r   r)   c                   @   r   )r2   Nr   r:   r:   r:   r;   r2     r   r2   c                   @   r   )r_   Nr   r:   r:   r:   r;   r_     r   r_   c                   @   r   )r`   Nr   r:   r:   r:   r;   r`     r   r`   c                   @   r   )ra   Nr   r:   r:   r:   r;   ra     r   ra   c                   @   r   )rd   Nr   r:   r:   r:   r;   rd     r   rd   c                   @   r   )rc   Nr   r:   r:   r:   r;   rc     r   rc   c                   @   r   )rb   Nr   r:   r:   r:   r;   rb     r   rb   c                   @   r   )rf   Nr   r:   r:   r:   r;   rf     r   rf   N)basestemmerr   amongr   r   BaseExceptionr/   r-   r&   r,   r)   r2   r_   r`   ra   rd   rc   rb   rf   r:   r:   r:   r;   <module>   s&      /