o
    ÿM i>  ã                   @   sŒ   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	G dd„ deƒZ
G dd„ deƒZdS )é   )ÚBaseStemmer)ÚAmongc                !   @   sH  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
d„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd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$ƒg
Zed/d#d#ƒed0d#d#ƒed1d#d#ƒed2d#d#ƒed3d4d#ƒed5d4d#ƒgZed6d#d#ƒed7d#d#ƒed8d#d#ƒed9d#d#ƒed:d4d#ƒed;d4d#ƒgZed<d#d#ƒed=d#d#ƒgZed>d#d4ƒed?d#d4ƒed@d#d4ƒedAd#d&ƒedBd#d$ƒedCd#dDƒedEd#dFƒedGd#dHƒedId#d4ƒg	ZedJd#d#ƒedKd#d#ƒedLd#d#ƒedMd#d#ƒedNd#d#ƒedOd#d#ƒedPd#d#ƒgZedQd#dRƒed/d	d#ƒed0d	d#ƒed1d	d#ƒed2d	d#ƒed3dDd#ƒed5dDd#ƒedSdDd&ƒed<d#d#ƒed=d#d#ƒedTd#d#ƒedUd#dVƒed(dWd$ƒedXdWd#eƒedYdWd#eƒedZdWd&ƒed[dWd#eƒed\dWd4ƒed]dWd#eƒed^dWdDƒed*dWdHƒed_dWdFƒed`d#dRƒed6dad#ƒed7dad#ƒed8dad#ƒed9dad#ƒed:dbd#ƒed;dbd#ƒedcdbd&ƒgZ eddd#d#ƒeded#d$ƒedfd$d#ƒedgd#d$ƒedhd4d#ƒedid#d$ƒedjdHd#ƒedkd#d$ƒedldVd#ƒedmd#d#ƒednd#d$ƒedodpd#ƒedqd#d$ƒedrdsd#ƒgZ!edtd#d#ƒedud#d#ƒgZ"eded#d$ƒedfd	d#ƒgZ#dvS )wÚ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                 C   sœ   | j | _| j | _|  tj¡sdS |  jd7  _|  tj¡sdS |  jd7  _| j| _|  tj¡s2dS |  jd7  _|  tj¡sAdS |  jd7  _| j| _dS )NFr   T)ÚlimitÚI_p1ÚI_p2Úgo_out_groupingr   Úg_V1ÚcursorÚgo_in_grouping©Úself© r,   úS/home/ubuntu/.local/lib/python3.10/site-packages/snowballstemmer/finnish_stemmer.pyÚ__r_mark_regions   s"   zFinnishStemmer.__r_mark_regionsc                 C   s   | j | jkS )N)r%   r(   r*   r,   r,   r-   Ú__r_R20   s   zFinnishStemmer.__r_R2c                 C   sˆ   | j | jk rdS | j}| j| _| j | _|  tj¡}|dkr"|| _dS | j | _|| _|dkr6|  tj	¡s5dS n|  
¡ s<dS |  ¡ sBd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_varr,   r,   r-   Ú__r_particle_etc3   s(   ÿzFinnishStemmer.__r_particle_etcc                 C   s„  | j | jk rdS | j}| j| _| j | _|  tj¡}|dkr"|| _dS | j | _|| _|dkrV| j| j  }z|  	d¡s<t
ƒ ‚W dS  t
yG   Y nw | j| | _ |  ¡ sTdS dS |dkrx|  ¡ s`dS | j | _|  	d¡skdS | j | _|  d¡svdS dS |dkr„|  ¡ s‚dS dS |d	krš|  tj¡dkr’dS |  ¡ s˜dS dS |d
kr°|  tj¡dkr¨dS |  ¡ s®dS dS |  tj¡dkrºdS |  ¡ sÀdS dS )NFr"   r   r   é   ÚkseÚksié   é   é   T)r(   r$   r0   r1   r2   r   Úa_4r4   r#   Úeq_s_bÚlab0r8   Ú
slice_fromÚa_1Úa_2Úa_3©r+   r9   r:   Úv_3r,   r,   r-   Ú__r_possessiveJ   sj   
"à

êîôûzFinnishStemmer.__r_possessivec                 C   s   |   tj¡dkr
dS dS )Nr"   FT)r2   r   Úa_5r*   r,   r,   r-   Ú__r_LONGƒ   s   zFinnishStemmer.__r_LONGc                 C   s"   |   d¡sdS |  tj¡sdS dS )Nr   FT)rC   r5   r   Úg_V2r*   r,   r,   r-   Ú__r_VIˆ   s
   
zFinnishStemmer.__r_VIc                 C   s  | j | jk rdS | j}| j| _| j | _|  tj¡}|dkr"|| _dS | j | _|| _|dkr5|  d¡s4dS nÆ|dkrA|  d¡s@dS nº|dkrM|  d¡sLdS n®|d	krY|  d
¡sXdS n¢|dkre|  d¡sddS n–|dkrq|  d¡spdS nŠ|dkrç| j	| j  }zb| j	| j  }z0| j	| j  }z
|  
¡ s‘tƒ ‚tƒ ‚ tyœ   Y nw | j	| | _ |  d¡s±| j	| | _ tƒ ‚W n	 ty»   Y nw | j	| | _ | j | jkrÑ| j	| | _ tƒ ‚|  j d8  _ | j | _W n tyæ   Y nw |dkrû|  tj¡sódS |  tj¡sûdS |  ¡ sdS d| _dS )NFr"   r   r   r<   r   r?   r   r@   r   rA   r   é   r    é   Úieé   T)r(   r$   r0   r1   r2   r   Úa_6r4   rC   r#   Ú_FinnishStemmer__r_LONGÚlab2Úlab1rD   r5   r'   Úg_Cr8   ÚB_ending_removed)r+   r9   r:   rJ   Úv_4Úv_5r,   r,   r-   Ú__r_case_ending   sˆ   
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
þ
zFinnishStemmer.__r_case_endingc                 C   s¬   | j | jk rdS | j}| j| _| j | _|  tj¡}|dkr"|| _dS | j | _|| _|dkrN| j| j  }z|  	d¡s<t
ƒ ‚W dS  t
yG   Y nw | j| | _ |  ¡ sTdS dS )NFr"   r   ÚpoT)r(   r%   r0   r1   r2   r   Úa_7r4   r#   rC   rD   r8   rI   r,   r,   r-   Ú__r_other_endingsÏ   s,   
z FinnishStemmer.__r_other_endingsc                 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$   r0   r1   r2   r   Úa_8r4   r8   )r+   r9   r,   r,   r-   Ú__r_i_pluralè   s   zFinnishStemmer.__r_i_pluralc                 C   s.  | j | jk rdS | j}| j| _| j | _|  d¡s|| _dS | j | _| j| j  }|  tj	¡s2|| _dS | j| | _ |  
¡ s>dS || _| j | jk rIdS | j}| j| _| j | _|  tj¡}|dkrc|| _dS | j | _|| _|dkr| j| j  }z|  d¡s}tƒ ‚W dS  tyˆ   Y nw | j| | _ |  
¡ s•dS dS )NFr   r"   r   r]   T)r(   r$   r0   r1   rC   r4   r#   r5   r   r'   r8   r%   r2   Úa_9rD   )r+   r9   rJ   r[   r:   Úv_6r,   r,   r-   Ú__r_t_pluralø   sN   

zFinnishStemmer.__r_t_pluralc                 C   sÚ  | j | jk rdS | j}| j| _| j| j  }z4| j| j  }|  ¡ s#tƒ ‚| j| | _ | j | _| j | jkr6tƒ ‚|  j d8  _ | j | _|  ¡ sHW dS W n	 tyR   Y nw | j| | _ | j| j  }z#| j | _|  	t
j¡smtƒ ‚| j | _|  	t
j¡sztƒ ‚|  ¡ sW dS W n	 ty‹   Y nw | j| | _ | j| j  }zN| j | _|  d¡s¥tƒ ‚| j | _z+| j| j  }z|  d¡s¹tƒ ‚tƒ ‚ tyÄ   Y nw | j| | _ |  d¡sÓtƒ ‚W n	 tyÝ   Y nw |  ¡ såW dS W n	 tyï   Y nw | j| | _ | j| j  }z$| j | _|  d¡s
tƒ ‚| j | _|  d¡stƒ ‚|  ¡ sW dS W n
 ty*   Y nw | j| | _ || _|  t
j¡s=dS | j | _|  	t
j¡sJdS | j | _|  ¡ | _| jdkr[dS |  | j¡sddS |  ¡ skdS dS )NFr   r   r   r   r!   T)r(   r$   r0   r#   rU   rD   r1   r4   r8   r5   r   Úg_AEIrW   rX   rC   rV   Úlab4Úlab3Úlab5Úgo_in_grouping_br'   Úslice_toÚS_x)r+   r9   rJ   rZ   r[   rc   Úv_7Úv_8r,   r,   r-   Ú__r_tidy#  s¨   ÿÿ


ÿÿ
ÿ

zFinnishStemmer.__r_tidyc           	      C   sT  | j }|  ¡  || _ d| _| j | _| j| _ | j| j  }|  ¡  | j| | _ | j| j  }|  ¡  | j| | _ | j| j  }|  ¡  | j| | _ | j| j  }|  ¡  | j| | _ z5z| js]t	ƒ ‚| j| j  }|  
¡  | j| | _ tƒ ‚ t	yx   Y nw | j| j  }|  ¡  | j| | _ W n	 ty“   Y nw | j| j  }|  ¡  | j| | _ | j| _ dS )NFT)r(   Ú_FinnishStemmer__r_mark_regionsrY   r0   r#   Ú_FinnishStemmer__r_particle_etcÚ_FinnishStemmer__r_possessiveÚ_FinnishStemmer__r_case_endingÚ _FinnishStemmer__r_other_endingsrW   Ú_FinnishStemmer__r_i_pluralrD   Ú_FinnishStemmer__r_t_pluralÚ_FinnishStemmer__r_tidy)	r+   Úv_1r9   rJ   rZ   r[   rl   rm   Úv_9r,   r,   r-   Ú_stemy  sH   zFinnishStemmer._stemÚpaéÿÿÿÿr   Ústir<   ÚkaanÚhanÚkinu   hÃ¤nu   kÃ¤Ã¤nÚkou   pÃ¤u   kÃ¶ÚllaÚnaÚssaÚtaÚltar?   Ústau   llÃ¤u   nÃ¤u   ssÃ¤u   tÃ¤u   ltÃ¤u   stÃ¤ÚlleÚineÚnsaÚmmeÚnneÚniÚsiÚanr@   ÚenrP   u   Ã¤nrA   u   nsÃ¤ÚaaÚeeÚiiÚooÚuuu   Ã¤Ã¤u   Ã¶Ã¶r   rS   Úttar>   r   rQ   é   Ú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__re   rX   r'   rN   r6   rY   rk   r%   r$   ro   r7   rp   rq   rU   Ú_FinnishStemmer__r_VIrr   rs   rt   ru   rv   ry   r   r3   rF   rG   rH   rB   rL   rT   r^   r`   rb   r,   r,   r,   r-   r      sò    9@+V
'








ö





ú






ú


þ








÷






ù

























â
"












ò

þ

þr   c                   @   ó   e Zd ZdS )rD   N©r«   r¬   r­   r,   r,   r,   r-   rD     ó    rD   c                   @   r°   )rW   Nr±   r,   r,   r,   r-   rW     r²   rW   c                   @   r°   )rV   Nr±   r,   r,   r,   r-   rV     r²   rV   c                   @   r°   )rg   Nr±   r,   r,   r,   r-   rg     r²   rg   c                   @   r°   )rf   Nr±   r,   r,   r,   r-   rf   "  r²   rf   c                   @   r°   )rh   Nr±   r,   r,   r,   r-   rh   %  r²   rh   N)Úbasestemmerr   Úamongr   r   ÚBaseExceptionrD   rW   rV   rg   rf   rh   r,   r,   r,   r-   Ú<module>   s       