U
    YSh>                     @   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                !   @   s  e Zd ZdZddddhZdddd	d
dddddddddddddddhZddddddddhZdddddddhZddddddddddh
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/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zed9d:d;ed<d:d=ed>d:d;ed?d:d;ed@d:d;edAd:d;edBd:d;edCd:d;edDd:d;edEd:d;g
ZedFd:d:edGd:d:edHd:d:edId:d:edJdKd:edLdKd:gZedMd:d:edNd:d:edOd:d:edPd:d:edQdKd:edRdKd:gZedSd:d:edTd:d:gZedUd:dKedVd:dKedWd:dKedXd:d=edYd:d;edZd:d[ed\d:d]ed^d:d_ed`d:dKg	Zedad:d:edbd:d:edcd:d:eddd:d:eded:d:edfd:d:edgd:d:gZedd:dhedFd d:edGd d:edHd d:edId d:edJd[d:edLd[d:edid[d=edSd:d:edTd:d:edjd:d:edd:dked?dld;edmdld:eedndld:eedodld=edpdld:eedqdldKedrdld:eedsdld[edAdld_edtdld]edd:dhedMdud:edNdud:edOdud:edPdud:edQdvd:edRdvd:edwdvd=gZ edxd:d:edyd:d;edzd;d:ed{d:d;ed|dKd:ed}d:d;ed~d_d:edd:d;eddkd:edd:d:edd:d;eddd:edd:d;eddd:gZ!edd:d:edd:d:gZ"edyd:d;edzd d:gZ#dS )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ouy   ö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sddS |  jd7  _| tjsdS |  jd7  _| j| _dS )NFr   T)limitI_p1I_p2Zgo_out_groupingr   g_V1cursorZgo_in_groupingself r*   R/root/rtd-docs/venv/lib/python3.8/site-packages/snowballstemmer/finnish_stemmer.pyZ__r_mark_regions   s"    zFinnishStemmer.__r_mark_regionsc                 C   s   | j | jkS )N)r%   r'   r(   r*   r*   r+   Z__r_R20   s    zFinnishStemmer.__r_R2c                 C   s   | j | jk rdS | j}| j| _| j | _| tj}|dkrD|| _dS | j | _|| _|dkrl| tj	sxdS n| 
 sxdS |  sd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+   Z__r_particle_etc3   s&    zFinnishStemmer.__r_particle_etcc                 C   s  | j | jk rdS | j}| j| _| j | _| tj}|dkrD|| _dS | j | _|| _|dkr| j| j  }z| 	dsxt
 W dS  t
k
r   Y nX | j| | _ |  sdS n|dkr|  sdS | j | _| 	dsdS | j | _| dsdS n|dkr|  sdS n|d	kr8| tjdkr(dS |  sdS nT|d
krh| tjdkrXdS |  sdS n$| tjdkr~dS |  sdS dS )NFr"   r   r      Zkseksi         T)r'   r$   r,   r-   r.   r   a_4r0   r#   eq_s_blab0r4   Z
slice_froma_1a_2a_3r)   r5   r6   v_3r*   r*   r+   Z__r_possessiveJ   sb    
 








zFinnishStemmer.__r_possessivec                 C   s   |  tjdkrdS dS )Nr"   FT)r.   r   a_5r(   r*   r*   r+   Z__r_LONG   s    zFinnishStemmer.__r_LONGc                 C   s"   |  dsdS | tjsdS dS )Nr   FT)r=   r1   r   g_V2r(   r*   r*   r+   Z__r_VI   s
    
zFinnishStemmer.__r_VIc                 C   s:  | j | jk rdS | j}| j| _| j | _| tj}|dkrD|| _dS | j | _|| _|dkrl| dshdS n|dkr| dsdS n|dkr| dsdS n|d	kr| d
sdS nh|dkr| dsdS nN|dkr| dsdS n4|dkr| j	| j  }z| j	| j  }zl| j	| j  }z| 
 s2t t W n tk
rP   Y nX | j	| | _ | ds|| j	| | _ t W n tk
r   Y nX | j	| | _ | j | jkr| j	| | _ t |  j d8  _ | j | _W n tk
r   Y nX n.|dkr"| tjsdS | tjs"dS |  s0dS d| _dS )NFr"   r   r   r7   r   r9   r   r:   r   r;   r      r       Zie   T)r'   r$   r,   r-   r.   r   a_6r0   r=   r#   _FinnishStemmer__r_LONGlab2lab1r>   r1   r&   g_Cr4   B_ending_removed)r)   r5   r6   rC   v_4v_5r*   r*   r+   Z__r_case_ending   s    








 
  

zFinnishStemmer.__r_case_endingc                 C   s   | j | jk rdS | j}| j| _| j | _| tj}|dkrD|| _dS | j | _|| _|dkr| j| j  }z| 	dsxt
 W dS  t
k
r   Y nX | j| | _ |  sdS dS )NFr"   r   poT)r'   r%   r,   r-   r.   r   a_7r0   r#   r=   r>   r4   rB   r*   r*   r+   Z__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 | _|| _|  sZdS dS )NFr"   T)	r'   r$   r,   r-   r.   r   a_8r0   r4   )r)   r5   r*   r*   r+   Z__r_i_plural   s    zFinnishStemmer.__r_i_pluralc                 C   s6  | j | jk rdS | j}| j| _| j | _| ds:|| _dS | j | _| j| j  }| tj	sd|| _dS | j| | _ | 
 s|dS || _| j | jk rdS | j}| j| _| j | _| tj}|dkr|| _dS | j | _|| _|dkr$| j| j  }z| dst W dS  tk
r   Y nX | j| | _ | 
 s2dS dS )NFr   r"   r   rQ   T)r'   r$   r,   r-   r=   r0   r#   r1   r   r&   r4   r%   r.   a_9r>   )r)   r5   rC   rP   r6   v_6r*   r*   r+   Z__r_t_plural   sP    


 
zFinnishStemmer.__r_t_pluralc                 C   s  | j | jk rdS | j}| j| _| j| j  }zh| j| j  }|  sFt | j| | _ | j | _| j | jkrlt |  j d8  _ | j | _|  sW dS W n tk
r   Y nX | j| | _ | j| j  }zH| j | _| 	t
jst | j | _| 	t
jst |  sW dS W n tk
r   Y nX | j| | _ | j| j  }z| j | _| dsTt | j | _zb| j| j  }z| ds~t t W n tk
r   Y nX | j| | _ | dst W n tk
r   Y nX |  sW dS W n tk
r   Y nX | j| | _ | j| j  }zH| j | _| ds4t | j | _| dsNt |  s^W dS W n tk
rv   Y nX | j| | _ || _| t
jsdS | j | _| 	t
jsdS | j | _|  | _| jdkrdS | | jsdS |  sdS dS )NFr   r   r   r   r!   T)r'   r$   r,   r#   rJ   r>   r-   r0   r4   r1   r   g_AEIrL   rM   r=   rK   lab4lab3lab5Zgo_in_grouping_br&   Zslice_toS_x)r)   r5   rC   rO   rP   rU   v_7v_8r*   r*   r+   Z__r_tidy#  s    
 

 
 
 

 

 

zFinnishStemmer.__r_tidyc           	      C   s^  | j }|   || _ d| _| j | _| j| _ | j| j  }|   | j| | _ | j| j  }|   | j| | _ | j| j  }|   | j| | _ | j| j  }|   | j| | _ zpz6| jst	 | j| j  }| 
  | j| | _ t W n t	k
r   Y nX | j| j  }|   | j| | _ W n tk
r0   Y nX | j| j  }|   | j| | _ | j| _ dS )NFT)r'   _FinnishStemmer__r_mark_regionsrN   r,   r#   _FinnishStemmer__r_particle_etc_FinnishStemmer__r_possessive_FinnishStemmer__r_case_ending _FinnishStemmer__r_other_endingsrL   _FinnishStemmer__r_i_pluralr>   _FinnishStemmer__r_t_plural_FinnishStemmer__r_tidy)	r)   Zv_1r5   rC   rO   rP   r[   r\   Zv_9r*   r*   r+   _stemy  sL    
  zFinnishStemmer._stempar   Zstir7   ZkaanZhanZkinu   hänu   käänkou   päu   köZllanaZssataZltar9   Zstau   lläu   näu   ssäu   täu   ltäu   stäZlleZineZnsaZmmeZnnenisiZanr:   enrF   u   änr;   u   nsäZaaeeiiZoouuu   ääu   öörH   Zttar8   rG      ZdenseenZhenZttenZhinZsiinZhonu   hön      u   ttäZejammaZimmampaZimpaZmmiZimmiZmpiZimpiu   ejäu   mmäu   immä
   u   mpäu   impä   N)$__name__
__module____qualname____doc__rV   rM   r&   rE   r2   rN   rZ   r%   r$   r]   r3   r^   r_   rJ   Z_FinnishStemmer__r_VIr`   ra   rb   rc   rd   re   r   r/   r?   r@   rA   r<   rD   rI   rR   rS   rT   r*   r*   r*   r+   r      s   ,9@+V'



































































"

















r   c                   @   s   e Zd ZdS )r>   Nry   rz   r{   r*   r*   r*   r+   r>     s    r>   c                   @   s   e Zd ZdS )rL   Nr}   r*   r*   r*   r+   rL     s    rL   c                   @   s   e Zd ZdS )rK   Nr}   r*   r*   r*   r+   rK     s    rK   c                   @   s   e Zd ZdS )rX   Nr}   r*   r*   r*   r+   rX     s    rX   c                   @   s   e Zd ZdS )rW   Nr}   r*   r*   r*   r+   rW   "  s    rW   c                   @   s   e Zd ZdS )rY   Nr}   r*   r*   r*   r+   rY   %  s    rY   N)Zbasestemmerr   Zamongr   r   BaseExceptionr>   rL   rK   rX   rW   rY   r*   r*   r*   r+   <module>   s       