o
    Mi                     @   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h dZh d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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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d0dded1d ded2dd3ed4d5ded6d5ded7d8ded9d8ded:d8ded;d<ded=d5ded>d?ded@d5dAedBd5dedCddedDdEdedFdd+edddgZedGddedHddgZedIddedJddedKddedLdAdedMdAdedNd+dedOddedPddedQdRdedSdRdedTd.dgZdUS )V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nr   ptvr
   z    c                 C   s   | j | _| j}| jd }|| j krdS || _| j| _|| _| tjs%dS |  jd7  _| tjs4dS |  jd7  _| j| _z| j| jkrIt | j| _W dS  tyY   Y dS w )N   Fr   T)	limitI_p1cursorI_xgo_out_groupingr   g_vgo_in_groupinglab0)selfv_1r    r,   U/home/ubuntu/.local/lib/python3.10/site-packages/snowballstemmer/norwegian_stemmer.py__r_mark_regions   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rK| tj	}|dkrI|  sIdS d
S |dkrzq| j
| j  }z| tjs`t t  tyk   Y nw | j
| | _ z,| ds{t | j
| j  }z| dst t  ty   Y nw | j
| | _ t  ty   Y nw | j
| | _ | dsW dS | tjsW dS W n	 ty   Y nw |  sdS d
S | 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"   in_grouping_b
g_s_endinglab1r)   eq_s_blab2lab3out_grouping_br'   
slice_from)r*   v_2	among_varv_3v_4r,   r,   r-   __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r&|| _dS | j| _|| _| j | | _| j| jkr;dS |  jd8  _| j| _| 	 sLdS dS )NFr    r   T)
r"   r$   r#   r3   r4   r5   r   a_2r7   r8   )r*   r+   rD   r,   r,   r-   __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 | _|| _|  s-dS dS )NFr    T)	r$   r#   r3   r4   r5   r   a_3r7   r8   )r*   rB   r,   r,   r-   __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_regionsr3   r"    _NorwegianStemmer__r_main_suffix#_NorwegianStemmer__r_consonant_pair!_NorwegianStemmer__r_other_suffix)r*   r+   rB   rD   rE   r,   r,   r-   _stem   s    zNorwegianStemmer._stem r   indkknkammommkapskap   ppltastu   østr   hav   givr   r   edeandeendeaneeneheteneerte   enheten	   arr2   hetersr!   as   esedes   endeseneshetenes   enshetens   ersr/   etsethet   ertdtvtlegelegigeigligeligelslovelov   slovhetslovN)__name__
__module____qualname____doc__r'   r;   r%   r#   rK   rL   rM   rN   rO   r   r9   r6   rG   rI   r,   r,   r,   r-   r      s    9












































!











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?   N)
basestemmerr   amongr   r   BaseExceptionr)   r<   r>   r?   r,   r,   r,   r-   <module>   s    \