
    -Ph>                         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	 G d de          Z
 G d de          ZdS )   )BaseStemmer)Amongc            "       	   e Zd ZdZh dZh dZh dZh dZh dZdZ	dZ
d	Zd	Zd
 Zd Zd Zd Z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          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          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          gZ ed0dd           ed1dd          gZ ed2dd(           ed3dd(           ed4dd(           ed5dd           ed6dd           ed7dd8           ed9dd:           ed;dd<           ed=dd(          g	Z ed>dd           ed?dd           ed@dd           edAdd           edBdd           edCdd           edDdd          gZ edEddF           ed#d	d           ed$d	d           ed%d	d           ed&d	d           ed'd8d           ed)d8d           edGd8d           ed0dd           ed1dd           edHdd           edIddJ           eddKd           edLdKde           edMdKde           edNdKd           edOdKde           edPdKd(           edQdKde           edRdKd8           eddKd<           edSdKd:           edTddF           ed*dUd           ed+dUd           ed,dUd           ed-dUd           ed.dVd           ed/dVd           edWdVd          gZ  edXdd           edYdd           edZdd           ed[dd           ed\d(d           ed]dd           ed^d<d           ed_dd           ed`dJd           edadd           edbdd           edcddd           ededd           edfdgd          gZ! edhdd           edidd          gZ" edYdd           edZd	d          gZ#djS )kFinnishStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated from finnish.sbl by Snowball 3.0.1 - https://snowballstem.org/
    >   aei   ä>   bcdfghjklmnpqrstvwxz>   r   r   r	   ouyr
      ö>   r   r   r	   r   r    r
   r"   >
   r   r   r	   r   r   r   r    r!   r
   r"   F     c                    | j         | _        | j         | _        |                     t          j                  sdS | xj        dz  c_        |                     t          j                  sdS | xj        dz  c_        | j        | _        |                     t          j                  sdS | xj        dz  c_        |                     t          j                  sdS | xj        dz  c_        | j        | _        dS )NFr   T)limitI_p1I_p2go_out_groupingr   g_V1cursorgo_in_groupingselfs    _/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/snowballstemmer/finnish_stemmer.py__r_mark_regionszFinnishStemmer.__r_mark_regions   s    J	J	##N$788 	5q"">#677 	5qK	##N$788 	5q"">#677 	5qK	t    c                 "    | j         | j        k    S )N)r(   r+   r-   s    r/   __r_R2zFinnishStemmer.__r_R20   s    yDK''r1   c                    | j         | j        k     rdS | j        }| j        | _        | j         | _        |                     t
          j                  }|dk    r	|| _        dS | j         | _        || _        |dk    r"|                     t
          j	                  sdS n| 
                                sdS |                                 sdS dS )NFr$   r   T)r+   r'   limit_backwardketfind_among_br   a_0brain_grouping_bg_particle_end_FinnishStemmer__r_R2	slice_del)r.   v_2	among_vars      r/   __r_particle_etczFinnishStemmer.__r_particle_etc3   s    ;""5!"i;%%n&899	>>"%D5;!>>%%n&CDD u ;;== u~~ 	5tr1   c                 L   | j         | j        k     rdS | j        }| j        | _        | j         | _        |                     t
          j                  }|dk    r	|| _        dS | j         | _        || _        |dk    rl| j        | j         z
  }	 | 	                    d          st                      dS # t          $ r Y nw xY w| j        |z
  | _         |                                 sdS n?|dk    r]|                                 sdS | j         | _        | 	                    d          sdS | j         | _        |                     d          sdS n|dk    r|                                 sdS n|d	k    r<|                     t
          j                  dk    rdS |                                 sdS n}|d
k    r<|                     t
          j                  dk    rdS |                                 sdS n;|                     t
          j                  dk    rdS |                                 sdS dS )NFr$   r   r      kseksi         T)r+   r'   r5   r6   r7   r   a_4r9   r&   eq_s_blab0r=   
slice_froma_1a_2a_3r.   r>   r?   v_3s       r/   __r_possessivezFinnishStemmer.__r_possessiveJ   sL   ;""5!"i;%%n&899	>>"%D5;!>>*t{*C{{4(( !&&Lu*s*DK>>## u !^^>>## u{DH;;v&& u{DH??6** u!^^>>## u !^^  !34499u>>## u !^^  !34499u>>## u   !34499u>>## ut   	#B. .
B;:B;c                 P    |                      t          j                  dk    rdS dS )Nr$   FT)r7   r   a_5r-   s    r/   __r_LONGzFinnishStemmer.__r_LONG   s(    ^/00A555tr1   c                 v    |                      d          sdS |                     t          j                  sdS dS )Nr	   FT)rI   r:   r   g_V2r-   s    r/   __r_VIzFinnishStemmer.__r_VI   s>    {{4   	5!!."566 	5tr1   c                    | j         | j        k     rdS | j        }| j        | _        | j         | _        |                     t
          j                  }|dk    r	|| _        dS | j         | _        || _        |dk    r|                     d          sdS n|dk    r|                     d          sdS n|dk    r|                     d          sdS n|d	k    r|                     d
          sdS n|dk    r|                     d          sdS n|dk    r|                     d          sdS nz|dk    r+| j	        | j         z
  }	 | j	        | j         z
  }	 | j	        | j         z
  }	 | 
                                st                      t                      # t          $ r Y nw xY w| j	        |z
  | _         |                     d          s| j	        |z
  | _         t                      n# t          $ r Y nw xY w| j	        |z
  | _         | j         | j        k    r| j	        |z
  | _         t                      | xj         dz  c_         | j         | _        nX# t          $ r Y nLw xY w|dk    rB|                     t
          j                  sdS |                     t
          j                  sdS |                                 sdS d| _        dS )NFr$   r   r   rB   r   rE   r	   rF   r   rG   r
      r"      ie   T)r+   r'   r5   r6   r7   r   a_6r9   rI   r&   _FinnishStemmer__r_LONGlab2lab1rJ   r:   r*   g_Cr=   B_ending_removed)r.   r>   r?   rP   v_4v_5s         r/   __r_case_endingzFinnishStemmer.__r_case_ending   s   ;""5!"i;%%n&899	>>"%D5;!>>;;t$$ u!^^;;t$$ u!^^;;t$$ u!^^;;t$$ u!^^;;u%% u!^^;;u%% u!^^*t{*Cj4;."*t{2C&#}} )"&&&L"ff%%%%"&*s"2DK;;u-- %&*j3&6"ff% !!!TT!"j3.;$"555"&*s"2DK&&Lq ;!^^%%n&9:: u%%n&899 u~~ 	5 $tsV   I G& $0F 
F!G&  F!!AG& %I &
G30I 2G33AI 
IIc                    | j         | j        k     rdS | j        }| j        | _        | j         | _        |                     t
          j                  }|dk    r	|| _        dS | j         | _        || _        |dk    rT| j        | j         z
  }	 | 	                    d          st                      dS # t          $ r Y nw xY w| j        |z
  | _         |                                 sdS dS )NFr$   r   poT)r+   r(   r5   r6   r7   r   a_7r9   r&   rI   rJ   r=   rO   s       r/   __r_other_endingsz FinnishStemmer.__r_other_endings   s    ;""5!"i;%%n&899	>>"%D5;!>>*t{*C{{5)) !&&Lu*s*DK~~ 	5trR   c                    | 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'   r5   r6   r7   r   a_8r9   r=   )r.   r>   s     r/   __r_i_pluralzFinnishStemmer.__r_i_plural   s    ;""5!"i;^/00A55"%D5;!~~ 	5tr1   c                 F   | j         | j        k     rdS | j        }| j        | _        | j         | _        |                     d          s	|| _        dS | j         | _        | j        | j         z
  }|                     t          j	                  s	|| _        dS | j        |z
  | _         | 
                                sdS || _        | j         | j        k     rdS | j        }| j        | _        | j         | _        |                     t          j                  }|dk    r	|| _        dS | j         | _        || _        |dk    rT| j        | j         z
  }	 |                     d          st                      dS # t          $ r Y nw xY w| j        |z
  | _         | 
                                sdS dS )NFr   r$   r   rh   T)r+   r'   r5   r6   rI   r9   r&   r:   r   r*   r=   r(   r7   a_9rJ   )r.   r>   rP   re   r?   v_6s         r/   __r_t_pluralzFinnishStemmer.__r_t_plural   s   ;""5!"i;{{4   	"%D5;j4;&!!."566 	"%D5j3&~~ 	5!;""5!"i;%%n&899	>>"%D5;!>>*t{*C{{5)) !&&Lu*s*DK~~ 	5ts   #E, ,
E98E9c                 >   | j         | j        k     rdS | j        }| j        | _        | j        | j         z
  }	 | j        | j         z
  }|                                 st                      | j        |z
  | _         | j         | _        | j         | j        k    rt                      | xj         dz  c_         | j         | _        |                                 sdS n# t
          $ r Y nw xY w| j        |z
  | _         | j        | j         z
  }	 | j         | _        | 	                    t          j                  st                      | j         | _        | 	                    t          j                  st                      |                                 sdS n# t          $ r Y nw xY w| j        |z
  | _         | j        | j         z
  }	 | j         | _        |                     d          st                      | j         | _        	 | j        | j         z
  }	 |                     d          st!                      t#                      # t           $ r Y nw xY w| j        |z
  | _         |                     d          st                      n# t"          $ r Y nw xY w|                                 sdS n# t          $ r Y nw xY w| j        |z
  | _         | j        | j         z
  }	 | j         | _        |                     d          st%                      | j         | _        |                     d          st%                      |                                 sdS n# t$          $ r Y nw xY w| j        |z
  | _         || _        |                     t          j                  sdS | j         | _        | 	                    t          j                  sdS | j         | _        |                                 | _        | j        dk    rdS |                     | j                  sdS |                                 sdS dS )NFr   r   r   r    r#   T)r+   r'   r5   r&   r_   rJ   r6   r9   r=   r:   r   g_AEIra   rb   rI   r`   lab4lab3lab5go_in_grouping_br*   slice_toS_x)r.   r>   rP   rd   re   rp   v_7v_8s           r/   __r_tidyzFinnishStemmer.__r_tidy#  s	   ;""5!"ij4;&	*t{*C==?? ff*s*DK{DH{d111ffKK1KK{DH>>## u TTj3&j4;&
	{DH%%n&:;; ff{DH%%n&899 ff>>## u TTj3&j4;&	{DH;;t$$ ff{DH
j4;.";;t,, %"ff&&L!!!TT!"j3.{{4(( !&&L!>>## u TTj3&j4;&
	{DH;;t$$ ff{DH;;t$$ ff>>## u TTj3&!$$^%899 	5;!!."455 	5;==??8r>>5{{48$$ 	5~~ 	5ts   BC 
C C BF 
FF:;J! 6I: 1H7 7
II: I5I: 9J! :
JJ! JJ! !
J.-J.A2M 
MMc                    | j         }|                                  || _         d| _        | j         | _        | j        | _         | j        | j         z
  }|                                  | j        |z
  | _         | j        | j         z
  }|                                  | j        |z
  | _         | j        | j         z
  }|                                  | j        |z
  | _         | j        | j         z
  }|                                  | j        |z
  | _         	 	 | j        st                      | j        | j         z
  }| 
                                 | j        |z
  | _         t                      # t          $ r Y nw xY w| j        | j         z
  }|                                  | j        |z
  | _         n# t          $ r Y nw xY w| j        | j         z
  }|                                  | j        |z
  | _         | j        | _         dS )NFT)r+   _FinnishStemmer__r_mark_regionsrc   r5   r&   _FinnishStemmer__r_particle_etc_FinnishStemmer__r_possessive_FinnishStemmer__r_case_ending _FinnishStemmer__r_other_endingsra   _FinnishStemmer__r_i_pluralrJ   _FinnishStemmer__r_t_plural_FinnishStemmer__r_tidy)	r.   v_1r>   rP   rd   re   rz   r{   v_9s	            r/   _stemzFinnishStemmer._stemy  s   k %"kjj4;&j3&j4;&j3&j4;&j3&j4;&   j3&	, !&&Lj4;.!!###"j3.ff*t{*C*s*DKKTTj4;&j3&)ts+   AE! !
E.+F$ -E..5F$ $
F10F1par   stirB   kaanhankinu   hänu   käänkou   päu   köllanassataltarE   stau   lläu   näu   ssäu   täu   ltäu   ställeinensammennenisianrF   enrZ   u   änrG   u   nsäaaeeiioouuu   ääu   öör   r]   ttarD   r   r[      denseenhenttenhinsiinhonu   hönr
         u   ttäejammaimmampaimpammiimmimpiimpiu   ejäu   mmäu   immä
   u   mpäu   impä   r	   r   N)$__name__
__module____qualname____doc__rs   rb   r*   rW   r;   rc   ry   r(   r'   r~   r<   r   r   r_   _FinnishStemmer__r_VIr   r   r   r   r   r   r   r8   rL   rM   rN   rH   rT   r^   ri   rl   ro    r1   r/   r   r      sf        
 &%%E C  C  CC===D777DSSSN
CDD  &( ( (  .7 7 7r  
  > > >@  2   ) ) )VT T Tl$ $ $N 	eRfb!gr1fb!fb!gr1iQeRfb!fb!C 	fb"eRfb"eRfafaC 	gr2fb"gr2fb"gq"gq"C 	fb"fb"C 	fb!fb!fb!eReReReRfb!gr1
C 	eReReReReRgr2gr2C 	dBfaeQfaeQfafafafb"fb"fb"dBfb!fb"f%%gr2x((fb!gr2v&&fb!gr2v&&fb!gr1gr1eRgr2fb"gr2fb"gr2gr2gr1=CD 	fb"fb!gq"fb!gq"fb!gq"fb!gq"gr2gr1hBgr1hBC$ 	dBdBC 	fb!gq"CCCr1   r   c                       e Zd ZdS )rJ   Nr   r   r   r   r1   r/   rJ   rJ               r1   rJ   c                       e Zd ZdS )ra   Nr   r   r1   r/   ra   ra     r   r1   ra   c                       e Zd ZdS )r`   Nr   r   r1   r/   r`   r`     r   r1   r`   c                       e Zd ZdS )ru   Nr   r   r1   r/   ru   ru     r   r1   ru   c                       e Zd ZdS )rt   Nr   r   r1   r/   rt   rt   "  r   r1   rt   c                       e Zd ZdS )rv   Nr   r   r1   r/   rv   rv   %  r   r1   rv   N)basestemmerr   amongr   r   BaseExceptionrJ   ra   r`   ru   rt   rv   r   r1   r/   <module>r      s   % $ $ $ $ $      K K K K K[ K K K\      =         =         =         =         =         =     r1   