
    1 fd?                         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 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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          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d0dd          gZ
 ed1dd2           edd3d           edd3d           edd3d           edd3d           edd$d           edd$d           ed4d$d           eddd           eddd           ed5dd           ed6dd7           edd8d           ed9d8dd:           ed;d8dd<           ed=d8d           ed>d8dd:           ed?d8d           ed@d8dd:           edAd8d$           ed
d8d(           edBd8d&           edCdd2           eddDd           eddDd           eddDd           eddDd           eddEd           eddEd           edFdEd          gZ edGdd           edHdd           edIdd           edJdd           edKdd           edLdd           edMd(d           edNdd           edOd7d           edPdd           edQdd           edRdSd           edTdd           edUdVd          gZ edWdd           edXdd          gZ edHdd           edId3d          gZg dYZg dZZg d[Zg d\Zg d]Zd^Zd_Zd3Zd3Zd` Zda Zdb Zdc Zdd Zde Zdf Zdg Zdh Z di Z!dj Z"dk Z#dlS )mFinnishStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated by Snowball 2.2.0 - https://snowballstem.org/
    par   sti   kaanhankinu   hänu   käänkou   päu   köllanassatalta   stau   lläu   näu   ssäu   täu   ltäu   ställeinensammennenisian   en   u   än   u   nsäaaeeiioouuu   ääu   ööa       ttaksin      den_FinnishStemmer__r_VIseen_FinnishStemmer__r_LONGhenttenhinsiinhonu   hön   ä      u   ttäejammaimmampaimpammiimmimpiimpiu   ejäu   mmäu   immä
   u   mpäu   impä   ij)   r   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r(   )w      rI   r   )rH   A      r   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r(   r)       )rH   rK   rL   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r(   r)   rM   )rH   a      r   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r(   r)   rM   F c                    | j         | _        | j         | _        |                     t          j        dd          sdS |                     t          j        dd          sdS | xj        dz  c_        | j        | _        |                     t          j        dd          sdS |                     t          j        dd          sdS | xj        dz  c_        | j        | _        dS )NrN      Fr   T)limitI_p1I_p2go_out_groupingr   g_V1go_in_groupingcursorselfs    U/var/www/equiseq/venv/lib/python3.11/site-packages/snowballstemmer/finnish_stemmer.py__r_mark_regionszFinnishStemmer.__r_mark_regions   s    J	J	##N$7SAA 	5"">#6C@@ 	5qK	##N$7SAA 	5"">#6C@@ 	5qK	t    c                 *    | j         | j        k    sdS dS NFT)rU   rY   rZ   s    r\   __r_R2zFinnishStemmer.__r_R2   s    yDK''5tr^   c                    | j         | j        k     rdS | j        }| j        | _        | j         | _        |                     t
          j                  }|dk    r	|| _        dS | j         | _        || _        |dk    r$|                     t
          j	        dd          sdS n| 
                                sdS |                                 sdS dS )NFr)   r   rN   rR   T)rY   rT   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_etc   s    ;""5!"i;%%n&899	>>"%D5;!>>%%n&CRMM u ;;== u~~ 	5tr^   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   kr
   kser+   r   r   r!   T)rY   rT   rc   rd   re   r   a_4rg   rS   eq_s_blab0rk   
slice_froma_1a_2a_3r[   rl   rm   v_3s       r\   __r_possessivezFinnishStemmer.__r_possessive   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)re   r   a_5rZ   s    r\   __r_LONGzFinnishStemmer.__r_LONG   s(    ^/00A555tr^   c                 z    |                      d          sdS |                     t          j        dd          sdS dS )NrF   FrN   rR   T)rs   rh   r   g_V2rZ   s    r\   __r_VIzFinnishStemmer.__r_VI   sB    {{4   	5!!."5r3?? 	5tr^   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 n~|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         | _        n\# t          $ r Y nPw xY w|dk    rF|                     t
          j        dd          sdS |                     t
          j        dd          sdS |                                 sdS d| _        dS )NFr)   r   r'   r
   er   rF   r   or!   r8   r       ör-   ier(   rN   rR   b   z   T)rY   rT   rc   rd   re   r   a_6rg   rs   rS   r2   lab2lab1rt   rh   rW   g_Crk   B_ending_removed)r[   rl   rm   rz   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!^^;;y)) u!^^;;y)) u!^^*t{*Cj4;."*t{2C&#}} )"&&&L"ff%%%%"&*s"2DK;;u-- %&*j3&6"ff% !!!TT!"j3.;$"555"&*s"2DK&&Lq ;!^^%%n&92sCC u%%n&8"cBB 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)rY   rU   rc   rd   re   r   a_7rg   rS   rs   rt   rk   ry   s       r\   __r_other_endingsz FinnishStemmer.__r_other_endingsD  s    ;""5!"i;%%n&899	>>"%D5;!>>*t{*C{{5)) !&&Lu*s*DK~~ 	5tr|   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)	rY   rT   rc   rd   re   r   a_8rg   rk   )r[   rl   s     r\   __r_i_pluralzFinnishStemmer.__r_i_plural]  s    ;""5!"i;^/00A55"%D5;!~~ 	5tr^   c                 J   | j         | j        k     rdS | j        }| j        | _        | j         | _        |                     d          s	|| _        dS | j         | _        | j        | j         z
  }|                     t          j	        dd          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 )	NFtrN   rR   r)   r   r   T)rY   rT   rc   rd   rs   rg   rS   rh   r   rW   rk   rU   re   a_9rt   )r[   rl   rz   r   rm   v_6s         r\   __r_t_pluralzFinnishStemmer.__r_t_pluralm  s   ;""5!"i;{{4   	"%D5;j4;&!!."5r3?? 	"%D5j3&~~ 	5!;""5!"i;%%n&899	>>"%D5;!>>*t{*C{{5)) !&&Lu*s*DK~~ 	5ts   	#E. .
E;:E;c                 N   | 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        dd          st                      | j         | _        | 	                    t          j        dd          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        dd
          sdS | j         | _        | 	                    t          j        dd          sdS | j         | _        |                                 | _        | j        dk    rdS |                     | j                  sdS |                                 sdS dS )NFr   rN      r   r   rG   r   urR   rP   T)rY   rT   rc   rS   r2   rt   rd   rg   rk   rh   r   g_AEIr   r   rs   r   lab4lab3lab5go_in_grouping_brW   slice_toS_x)r[   rl   rz   r   r   r   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&:BDD ff{DH%%n&8"cBB 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"cBB 	5;!!."4b#>> 	5;==??8r>>5{{48$$ 	5~~ 	5ts   BC 
C C B
F 
FF>;J% :I> 
1H; ;
II> I5I> =J% >
JJ% 
JJ% %
J21J2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 r`   )rY   _FinnishStemmer__r_mark_regionsr   rc   rS   _FinnishStemmer__r_particle_etc_FinnishStemmer__r_possessive_FinnishStemmer__r_case_ending _FinnishStemmer__r_other_endingsr   _FinnishStemmer__r_i_pluralrt   _FinnishStemmer__r_t_plural_FinnishStemmer__r_tidy)	r[   v_1rl   rz   r   r   r   r   v_9s	            r\   _stemzFinnishStemmer._stem  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N)$__name__
__module____qualname____doc__r   rf   rv   rw   rx   rr   r~   r   r   r   r   r   r   rW   r   ri   r   r   rU   rT   r   rj   r   r   r2   r0   r   r   r   r   r   r    r^   r\   r   r      sh         	eRfb!gr1fb!fb!k2q!!Q''eRj"a  j"a  C 	fb"eRfb"eRfafaC 	k2r""j"b!!k2r""j"b!!k1b!!k1b!!C 	fb"fb"C 	fb!fb!fb!eReReReRj"a  k2q!!
C 	eReReReReRor2&&or2&&C 	dBfaeQfaeQfafafafb"fb"fb"dBfb!fb"566gr2899fb!gr2677fb!gr2677fb!k2q!!k2q!!iQk2r""j"b!!k2r""j"b!!k2r""k2r""k2q!!=CD 	fb"fb!gq"fb!gq"fb!gq"fb!gq"k2r""k2q!!lB##k2q!!lB##C$ 	dBdBC 	fb!gq"C
 A@@E


CHHHDHHHDRRRN
CDD  "  
  .7 7 7r  
  > > >@  2   ) ) )VT T Tl$ $ $ $ $r^   r   c                       e Zd ZdS )rt   Nr   r   r   r   r^   r\   rt   rt               r^   rt   c                       e Zd ZdS )r   Nr   r   r^   r\   r   r     r   r^   r   c                       e Zd ZdS )r   Nr   r   r^   r\   r   r     r   r^   r   c                       e Zd ZdS )r   Nr   r   r^   r\   r   r     r   r^   r   c                       e Zd ZdS )r   Nr   r   r^   r\   r   r   !  r   r^   r   c                       e Zd ZdS )r   Nr   r   r^   r\   r   r   $  r   r^   r   N)basestemmerr   amongr   r   BaseExceptionrt   r   r   r   r   r   r   r^   r\   <module>r      s   % $ $ $ $ $      K K K K K[ K K K\      =         =         =         =         =         =     r^   