o
    욌hB                     @   sL   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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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gZed+dded,ddgZed-dded.d/ded0dded1dded2dded3d4ded5dded6dded7d8ded9d8ded:ddgZg d;Zg d<Z	d/Z
d/Zd=d> Zd?d@ ZdAdB ZdCdD ZdEdF ZdGS )HNorwegianStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated by Snowball 2.2.0 - https://snowballstem.org/
    ar   eedeandeendeaneenehetene   erte   enheten	   arerheter   s   as   esedes   endeseneshetenes   enshetens   ersetsethet   ertastdtvtlegeleg    igeigligelig   elslovelov   slovhetslov)   A   r   r   r1   r1   r1   r1   r1   r1   r1   r1   r1   r1   r1   r1   0   r1      )w   }      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/norwegian_stemmer.py__r_mark_regionsG   s,   


z!NorwegianStemmer.__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 |dkrz9| j	| j  }z| 
tjddsLt t  tyW   Y nw | j	| | _ | dsfW dS | tjdd	sqW dS W n	 ty{   Y nw |  sdS dS | d
sdS dS )NFr1   r   r   b   z   krD   rE   r   T)rH   rG   limit_backwardketfind_among_br   a_0bra	slice_delrF   in_grouping_b
g_s_endinglab1rM   eq_s_bout_grouping_brK   
slice_from)rN   v_2	among_varv_3rQ   rQ   rR   __r_main_suffix]   sH   

z NorwegianStemmer.__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 )NFr1   r   T)
rF   rH   rG   rW   rX   rY   r   a_1r[   r\   )rN   rO   re   rQ   rQ   rR   __r_consonant_pair   s&   z#NorwegianStemmer.__r_consonant_pairc                 C   s^   | j | jk rdS | j}| j| _| j | _| tjdkr || _dS | j | _|| _|  s-dS dS )NFr1   T)	rH   rG   rW   rX   rY   r   a_2r[   r\   )rN   rc   rQ   rQ   rR   __r_other_suffix   s   z!NorwegianStemmer.__r_other_suffixc                 C   s   | j }|   || _ | j | _| j| _ | j| j  }|   | j| | _ | j| j  }|   | j| | _ | j| j  }|   | j| | _ | j| _ dS )NT)rH   !_NorwegianStemmer__r_mark_regionsrW   rF    _NorwegianStemmer__r_main_suffix#_NorwegianStemmer__r_consonant_pair!_NorwegianStemmer__r_other_suffix)rN   rO   rc   re   v_4rQ   rQ   rR   _stem   s    zNorwegianStemmer._stemN)__name__
__module____qualname____doc__r   rZ   rg   ri   rK   r^   rI   rG   rk   rl   rm   rn   rp   rQ   rQ   rQ   rR   r      sp    





























!











&r   c                   @      e Zd ZdS )rM   Nrq   rr   rs   rQ   rQ   rQ   rR   rM          rM   c                   @   ru   )r_   Nrv   rQ   rQ   rQ   rR   r_      rw   r_   N)basestemmerr   amongr   r   BaseExceptionrM   r_   rQ   rQ   rQ   rR   <module>   s    6