U
    YSh                     @   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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
ddddhZddddddddddddddddhZdZ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)ed0dd)ed1d2d*ed3dd)ed4dd)ed5dd)ed6dd)eddd)ed7d8d*ed9d8d*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?d2d*ed@d*dAedBd)d*edCdDd*edEd)d*edFd)d*edGd8d*edHd)dIedJdKd*edLdKd*edMdNd*edOdNd*edPdNd*edQdRd*edSdKd*edTdUd*edVdKdWedXdKd*edYd)d*edZd[d*ed\d)dAed5d)d*gZed]d)d)ed^d)d)gZed_d)d*ed`dd*edad)d*edbdWd*edcdWd*edddAd*eded)d*edfd)d*edgdhd*edidhd*edjdDd*gZdkS )lNorwegianStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated from norwegian.sbl by Snowball 3.0.1 - https://snowballstem.org/
    ae   êio   ò   ó   ôuy   æ   å   øbcdfghjlmnptvz    c                 C   s   | j | _| j}| jd }|| j kr&dS || _| j| _|| _| tjsJdS |  jd7  _| tjshdS |  jd7  _| j| _z| j| jkrt | j| _W n tk
r   Y nX dS )N   Fr   T)	limitI_p1cursorI_xZgo_out_groupingr   g_vZgo_in_groupinglab0)selfv_1r    r*   T/root/rtd-docs/venv/lib/python3.8/site-packages/snowballstemmer/norwegian_stemmer.pyZ__r_mark_regions   s,    

 z!NorwegianStemmer.__r_mark_regionsc                 C   s  | j | jk rdS | j}| j| _| j | _| tj}|dkrD|| _dS | j | _|| _|dkrj|  sfdS nl|dkr| tj	}|dkr|  sdS n@|dkrz| j
| j  }z| tjst t W n tk
r   Y nX | j
| | _ zf| dst | j
| j  }z| dst t W n tk
r<   Y nX | j
| | _ t W n tk
rh   Y nX | j
| | _ | dsW dS | tjsW dS W n tk
r   Y nX |  sdS n| d	sdS d
S )NFr    r      r!   rr   kerT)r$   r#   limit_backwardketfind_among_br   a_1bra	slice_dela_0r"   Zin_grouping_b
g_s_endinglab1r'   Zeq_s_blab2lab3Zout_grouping_br&   Z
slice_from)r(   v_2Z	among_varv_3v_4r*   r*   r+   Z__r_main_suffix,   sn    

 

 
 
 
z NorwegianStemmer.__r_main_suffixc                 C   s   | j | j }| j| jk rdS | j}| j| _| j| _| tjdkrL|| _dS | j| _|| _| j | | _| j| jkrvdS |  jd8  _| j| _| 	 sdS dS )NFr    r   T)
r"   r$   r#   r0   r1   r2   r   a_2r4   r5   )r(   r)   r<   r*   r*   r+   Z__r_consonant_paire   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 | _|| _|  sZdS dS )NFr    T)	r$   r#   r0   r1   r2   r   a_3r4   r5   )r(   r;   r*   r*   r+   Z__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)r$   !_NorwegianStemmer__r_mark_regionsr0   r"    _NorwegianStemmer__r_main_suffix#_NorwegianStemmer__r_consonant_pair!_NorwegianStemmer__r_other_suffix)r(   r)   r;   r<   r=   r*   r*   r+   _stem   s     zNorwegianStemmer._stem r   indkkZnkZammZommZkapZskap   ppltastu   østZhav   ZgivZedeZandeZendeZaneZeneZheteneZerte   enZheten	   arr/   Zhetersr!   as   esZedes   ZendesZenesZhetenes   ZensZhetens   Zersr,   ZetsetZhet   ZertdtvtlegZelegZigZeigZligZeligZelsZlovZelov   ZslovZhetslovN)__name__
__module____qualname____doc__r&   r7   r%   r#   r@   rA   rB   rC   rD   r   r6   r3   r>   r?   r*   r*   r*   r+   r      s   $9











































!












r   c                   @   s   e Zd ZdS )r'   Nr_   r`   ra   r*   r*   r*   r+   r'      s    r'   c                   @   s   e Zd ZdS )r8   Nrc   r*   r*   r*   r+   r8      s    r8   c                   @   s   e Zd ZdS )r9   Nrc   r*   r*   r*   r+   r9      s    r9   c                   @   s   e Zd ZdS )r:   Nrc   r*   r*   r*   r+   r:      s    r:   N)
Zbasestemmerr   Zamongr   r   BaseExceptionr'   r8   r9   r:   r*   r*   r*   r+   <module>   s    \