o
    욌h                     @   s<   d dl mZ d dlmZ G dd deZG dd deZdS )   )BaseStemmer)Amongc                   @   sJ  e Zd ZdZg 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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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Zed0dded1dded2dded3ddgZed4dded5dded6dded7dded8ddgZg d9Zg d:Z	g d;Z
dZdZd<Zd=d> Zd?d@ ZdAdB ZdCdD ZdEdF ZdGdH ZdIS )JDanishStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated by Snowball 2.2.0 - https://snowballstem.org/
    hedr   ethed    eredeerede   endeerende   eneerneereenheden
   erenerheder   erers   heds   esendes   erendes   eneserneseresenshedens   erensersetserets   eteret   gddtgtktigligeligelsu   løst)w      r:   r   )   A   r   r   r   r   r   r   r   r   r   r   r   r   r   r   0   r      )      *   r   r   r   r   r   r   r   r   r   r   r   r   r   r    c                 C   s   | j | _| j}| jd }|| j krdS || _| j| _|| _| tjdds'dS | tjdds1dS |  jd7  _| j| _z| j| jk sFt | j| _W dS  tyV   Y dS w )Nr   Fa      r   T)	limitI_p1cursorI_xgo_out_groupingr   g_vgo_in_groupinglab0)selfv_1c rQ   [/var/www/Befach/backend/venv/lib/python3.10/site-packages/snowballstemmer/danish_stemmer.py__r_mark_regionsI   s,   


zDanishStemmer.__r_mark_regionsc                 C   s   | j | jk rdS | j}| j| _| j | _| tj}|dkr"|| _dS | j | _|| _|dkr5|  s3dS dS | 	tj
dds?dS |  sEdS dS )NFr   r   rD      T)rH   rG   limit_backwardketfind_among_br   a_0bra	slice_delin_grouping_b
g_s_ending)rN   v_2	among_varrQ   rQ   rR   __r_main_suffix_   s(   zDanishStemmer.__r_main_suffixc                 C   s   | j | j }| j| jk rdS | j}| j| _| j| _| tjdkr&|| _dS | j| _|| _| j | | _| j| jkr;dS |  jd8  _| j| _| 	 sLdS dS )NFr   r   T)
rF   rH   rG   rU   rV   rW   r   a_1rY   rZ   )rN   rO   v_3rQ   rQ   rR   __r_consonant_pairw   s&   z DanishStemmer.__r_consonant_pairc                 C   s
  | j | j }z!| j| _| dst | j| _| dst |  s&W dS W n	 ty0   Y nw | j | | _| j| jk r?dS | j}| j| _| j| _| 	t
j}|dkrY|| _dS | j| _|| _|dkr||  sjdS | j | j }|   | j | | _dS | dsdS dS )Nstr6   Fr   r   u   løsT)rF   rH   rV   eq_s_brM   rY   rZ   rG   rU   rW   r   a_2 _DanishStemmer__r_consonant_pair
slice_from)rN   rO   ra   r^   v_4rQ   rQ   rR   __r_other_suffix   sD   


zDanishStemmer.__r_other_suffixc                 C   s   | j | jk rdS | j}| j| _| j | _| tjdds || _dS | j | _|  | _	| j	dkr0dS || _| 
| j	s;dS |  sAdS dS )NFb   z   rC   T)rH   rG   rU   rV   r[   r   g_crY   slice_toS_chrd   rZ   )rN   r]   rQ   rQ   rR   __r_undouble   s$   

zDanishStemmer.__r_undoublec                 C   s   | j }|   || _ | j | _| j| _ | j| j  }|   | j| | _ | j| j  }|   | j| | _ | j| j  }|   | j| | _ | j| j  }|   | j| | _ | j| _ dS )NT)rH   _DanishStemmer__r_mark_regionsrU   rF   _DanishStemmer__r_main_suffixrf   _DanishStemmer__r_other_suffix_DanishStemmer__r_undouble)rN   rO   r]   ra   rh   v_5rQ   rQ   rR   _stem   s&   zDanishStemmer._stemN)__name__
__module____qualname____doc__r   rX   r`   re   rl   rK   r\   rI   rG   rn   rp   rq   rf   rr   rs   ru   rQ   rQ   rQ   rR   r      s    








	























 
$







%r   c                   @   s   e Zd ZdS )rM   N)rv   rw   rx   rQ   rQ   rQ   rR   rM      s    rM   N)basestemmerr   amongr   r   BaseExceptionrM   rQ   rQ   rQ   rR   <module>   s
    W