a
    ad?                     @   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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`da Zdbdc Zddde Zdfdg Zdhdi Zdjdk Zdldm Zdndo Zdpdq Z drds Z!dtdu Z"dvdw Z#dxS )yFinnishStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated by Snowball 2.2.0 - https://snowballstem.org/
    par   Zsti   ZkaanZhanZkinu   hänu   käänkou   päu   köZllaZnaZssataZlta   Zstau   lläu   näu   ssäu   täu   ltäu   stäZlleZineZnsaZmmeZnneZnisiZan   en   u   än   u   nsäZaaeeiiZoouuu   ääu   ööa       Zttaksin      Zden_FinnishStemmer__r_VIseen_FinnishStemmer__r_LONGZhenZttenZhinZsiinZhonu   hön   ä      u   ttäZejaZmmaZimmaZmpaZimpaZmmiZimmiZmpiZ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      r%   r   )r$   A      r   r   r   r   r   r   r   r   r   r   r   r   r   r   r       )r$   r'   r(   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r)   )r$   a      r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r)   F c                 C   s   | j | _| j | _| tjdds$dS | tjdds8dS |  jd7  _| j| _| tjddsbdS | tjddsvdS |  jd7  _| j| _dS )Nr*      Fr   T)limitI_p1I_p2Zgo_out_groupingr   g_V1Zgo_in_groupingcursorself r5   >lib/python3.9/site-packages/snowballstemmer/finnish_stemmer.pyZ__r_mark_regions   s    zFinnishStemmer.__r_mark_regionsc                 C   s   | j | jksdS dS NFT)r0   r2   r3   r5   r5   r6   Z__r_R2   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rp| tj	dds|dS n| 
 s|dS |  sdS dS )NFr   r   r*   r-   T)r2   r/   limit_backwardketfind_among_br   a_0brain_grouping_bg_particle_end_FinnishStemmer__r_R2	slice_del)r4   v_2	among_varr5   r5   r6   Z__r_particle_etc   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
y   Y n0 | 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r6| tjdkr&dS |  sdS nT|d
krf| tjdkrVdS |  sdS n$| tjdkr|dS |  sdS dS )NFr   r   kr   Zkser   r
   r   r   T)r2   r/   r8   r9   r:   r   a_4r<   r.   eq_s_blab0r@   Z
slice_froma_1a_2a_3r4   rA   rB   v_3r5   r5   r6   Z__r_possessive   s`    









zFinnishStemmer.__r_possessivec                 C   s   |  tjdkrdS dS )Nr   FT)r:   r   a_5r3   r5   r5   r6   Z__r_LONG   s    zFinnishStemmer.__r_LONGc                 C   s&   |  dsdS | tjdds"dS dS )Nr"   Fr*   r-   T)rE   r=   r   g_V2r3   r5   r5   r6   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 nj|dkr| dsdS nP|dkr| dsdS n6|dkr| j	| j  }z| j	| j  }zj| j	| j  }z| 
 s2t t W n tyN   Y n0 | j	| | _ | dsz| j	| | _ t W n ty   Y n0 | j	| | _ | j | jkr| j	| | _ t |  j d8  _ | j | _W n ty   Y n0 n6|dkr$| tjddsdS | tjdds$dS |  s2dS d| _dS )NFr   r   r   r   er
   r"   r   or   r   r      ör   Zier   r*   r-   b   z   T)r2   r/   r8   r9   r:   r   a_6r<   rE   r.   r   lab2lab1rF   r=   r1   g_Cr@   B_ending_removed)r4   rA   rB   rK   v_4v_5r5   r5   r6   Z__r_case_ending  sz    











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
y   Y n0 | j| | _ |  sdS dS )NFr   r   poT)r2   r0   r8   r9   r:   r   a_7r<   r.   rE   rF   r@   rJ   r5   r5   r6   Z__r_other_endingsD  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)	r2   r/   r8   r9   r:   r   a_8r<   r@   )r4   rA   r5   r5   r6   Z__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	ddsh|| _dS | j| | _ | 
 sdS || _| j | jk rdS | j}| j| _| j | _| tj}|dkr|| _dS | j | _|| _|dkr(| j| j  }z| dst W dS  ty   Y n0 | j| | _ | 
 s6dS dS )	NFtr*   r-   r   r   rZ   T)r2   r/   r8   r9   rE   r<   r.   r=   r   r1   r@   r0   r:   a_9rF   )r4   rA   rK   rY   rB   v_6r5   r5   r6   Z__r_t_pluralm  sN    


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y   Y n0 | j| | _ | j| j  }zP| j | _| 	t
jddst | j | _| 	t
jddst |  sW dS W n ty"   Y n0 | j| | _ | j| j  }z| j | _| dsXt | j | _z`| j| j  }z| dst t W n ty   Y n0 | j| | _ | d	st W n ty   Y n0 |  sW dS W n ty   Y n0 | j| | _ | j| j  }zH| j | _| ds2t | j | _| dsLt |  s\W dS W n tyr   Y n0 | j| | _ || _| t
jdd
sdS | j | _| 	t
jddsdS | j | _|  | _| jdkrdS | | jsdS |  sdS dS )NFr   r*      rQ   rR   r#   rO   ur-   r,   T)r2   r/   r8   r.   r   rF   r9   r<   r@   r=   r   g_AEIrU   rV   rE   rT   lab4lab3lab5Zgo_in_grouping_br1   Zslice_toS_x)r4   rA   rK   rX   rY   r_   v_7v_8r5   r5   r6   Z__r_tidy  s    










zFinnishStemmer.__r_tidyc           	      C   sZ  | j }|   || _ d| _| j | _| j| _ | j| j  }|   | j| | _ | j| j  }|   | j| | _ | j| j  }|   | j| | _ | j| j  }|   | j| | _ znz6| jst	 | j| j  }| 
  | j| | _ t W n t	y   Y n0 | j| j  }|   | j| | _ W n ty,   Y n0 | j| j  }|   | j| | _ | j| _ dS r7   )r2   _FinnishStemmer__r_mark_regionsrW   r8   r.   _FinnishStemmer__r_particle_etc_FinnishStemmer__r_possessive_FinnishStemmer__r_case_ending _FinnishStemmer__r_other_endingsrU   _FinnishStemmer__r_i_pluralrF   _FinnishStemmer__r_t_plural_FinnishStemmer__r_tidy)	r4   Zv_1rA   rK   rX   rY   rg   rh   Zv_9r5   r5   r6   _stem  sH    
zFinnishStemmer._stemN)$__name__
__module____qualname____doc__r   r;   rG   rH   rI   rD   rL   rS   r[   r\   r^   rb   rV   r1   rM   r>   rW   rf   r0   r/   ri   r?   rj   rk   r   r   rl   rm   rn   ro   rp   rq   r5   r5   r5   r6   r      s   



































































"

















9@+Vr   c                   @   s   e Zd ZdS )rF   Nrr   rs   rt   r5   r5   r5   r6   rF         rF   c                   @   s   e Zd ZdS )rU   Nrv   r5   r5   r5   r6   rU     rw   rU   c                   @   s   e Zd ZdS )rT   Nrv   r5   r5   r5   r6   rT     rw   rT   c                   @   s   e Zd ZdS )rd   Nrv   r5   r5   r5   r6   rd     rw   rd   c                   @   s   e Zd ZdS )rc   Nrv   r5   r5   r5   r6   rc   !  rw   rc   c                   @   s   e Zd ZdS )re   Nrv   r5   r5   r5   r6   re   $  rw   re   N)Zbasestemmerr   Zamongr   r   BaseExceptionrF   rU   rT   rd   rc   re   r5   r5   r5   r6   <module>   s       