
    Ri                         d dl mZ d dlmZ  G d de      Z G d de      Z G d de      Z G d	 d
e      Z G d de      Z	y)   )BaseStemmer)Amongc            !       X   e Zd ZdZh dZh dZdZdZd Zd Z	d 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      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d+dd       ed,dd       ed-dd.       ed/d0d       ed1d0d       ed2d3d       ed4d3d       ed5d3d       ed6d7d       ed8d0d       ed9d:d       ed;d0d<       ed=d0d       ed>dd       ed?d@d       edAdd&       eddd      gZ edBdd       edCdd      gZ edDdd       edEdd       edFdd       edGd<d       edHd<d       edId&d       edJdd       edKdd       edLdMd       edNdMd       edOd)d      gZyP)Q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                 8   | j                   | _        | j                  }| j                  dz   }|| j                   kD  ry|| _        | j                  | _        || _        | j	                  t
        j                        sy| xj                  dz  c_        | j                  t
        j                        sy| xj                  dz  c_        | j                  | _        	 | j                  | j                  k\  r
t               | j                  | _        y# t        $ r Y yw xY w)N   Fr   T)	limitI_p1cursorI_xgo_out_groupingr   g_vgo_in_groupinglab0)selfv_1r   s      Y/home/agent/.friday_env/lib/python3.12/site-packages/snowballstemmer/norwegian_stemmer.py__r_mark_regionsz!NorwegianStemmer.__r_mark_regions   s    JJ	kkKK!Otzz>;;##$4$8$89q""#3#7#78qKK		yyDHH$fDI T 	s   4D 	DDc                    | j                   | j                  k  ry| j                  }| j                  | _        | j                   | _        | j	                  t
        j                        }|dk(  r|| _        y| j                   | _        || _        |dk(  r| j                         syy
|dk(  r6| j	                  t
        j                        }|dk(  r| j                         syy
|dk(  rN	 | j                  | j                   z
  }	 | j                  t
        j                        s
t               t               | j)                  d	      syy
# t        $ r Y nw xY w| j                  |z
  | _         	 | j                  d      s
t!               | j                  | j                   z
  }	 | j                  d      s
t#               t!               # t"        $ r Y nw xY w| j                  |z
  | _         t               # t         $ r Y nw xY w| j                  |z
  | _         | j                  d      sy| j%                  t
        j&                        syn# t        $ r Y nw xY w| j                         syy
)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_4s        r/   __r_main_suffixz NorwegianStemmer.__r_main_suffix,   s   ;;"!!"ii;;%%&6&:&:;	>"%D;;!>>>#R O !^))*:*>*>?IA~~~' F C !^jj4;;."--.>.I.IJ"f&L2 ??5)5 !T!"jj3.";;t,"f**t{{2C&#{{40"&&L"f%%"&**s"2DK&L!T!"jj3.{{4( **+;+?+?@  A>>#
 sr   %I ?3E 	EI EI )4G0 %G 	GG0 G!G0 0	G<9I ;G<<(I %I 	IIc                    | j                   | j                  z
  }| j                  | j                  k  ry| j                  }| j                  | _        | j                  | _        | j                  t        j                        dk(  r|| _        y| j                  | _        || _        | j                   |z
  | _        | j                  | j                  k  ry| xj                  dz  c_        | j                  | _        | j                         syy)NFr"   r   T)
r%   r'   r&   r6   r7   r8   r   a_2r:   r;   )r-   r.   rG   s      r/   __r_consonant_pairz#NorwegianStemmer.__r_consonant_paire   s    jj4;;&;;"!!"ii;;-112a7"%D;;!jj3&;;$---q;;~~    c                 :   | j                   | j                  k  ry| j                  }| j                  | _        | j                   | _        | j	                  t
        j                        dk(  r|| _        y| j                   | _        || _        | j                         syy)NFr"   T)	r'   r&   r6   r7   r8   r   a_3r:   r;   )r-   rE   s     r/   __r_other_suffixz!NorwegianStemmer.__r_other_suffix{   s    ;;"!!"ii;;-112a7"%D;;!~~rM   c                    | j                   }| j                          || _         | j                   | _        | j                  | _         | j                  | j                   z
  }| j	                          | j                  |z
  | _         | j                  | j                   z
  }| j                          | j                  |z
  | _         | j                  | j                   z
  }| j                          | j                  |z
  | _         | j                  | _         y)NT)r'   !_NorwegianStemmer__r_mark_regionsr6   r%    _NorwegianStemmer__r_main_suffix#_NorwegianStemmer__r_consonant_pair!_NorwegianStemmer__r_other_suffix)r-   r.   rE   rG   rH   s        r/   _stemzNorwegianStemmer._stem   s    kk"kkjjjj4;;&jj3&jj4;;&!jj3&jj4;;&jj3&))rM    r   indkknkammommkapskap   ppltastu   østr    hav   givr   r   edeandeendeaneeneheteneerte   enheten	   arr5   hetersr$   as   esedes   endeseneshetenes   enshetens   ersr2   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&   rR   rS   rT   rU   rV   r   r<   r9   rK   rO    rM   r/   r   r      s	   
 `CqJ
CD.7r, & 	c2qfaeQeQfafafagq!eQeQfagq"dArfb!fb!C& 	dBdBfagq!gq!fafaiAgq!eRh1eReRhAdBeReRgr1hAgr1j"a fb!iQfb!fb!eRfb!fb!fb!;CB 	eReRC 	fb!gq!eRfafagq!fb!fb!gq!gq!j!QCrM   r   c                       e Zd Zy)r,   Nr   r   r   r   rM   r/   r,   r,          rM   r,   c                       e Zd Zy)r?   Nr   r   rM   r/   r?   r?      r   rM   r?   c                       e Zd Zy)rA   Nr   r   rM   r/   rA   rA      r   rM   rA   c                       e Zd Zy)rB   Nr   r   rM   r/   rB   rB      r   rM   rB   N)
basestemmerr   amongr   r   BaseExceptionr,   r?   rA   rB   r   rM   r/   <module>r      sD    % X{ Xv  =   =   =   = rM   