o
    욌hd?                     @   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   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      rG   r   )rF   A      r   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r&   r'       )rF   rI   rJ   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r&   r'   rK   )rF   a      r   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r'   r&   r'   rK   F c                 C   s   | j | _| j | _| tjddsdS | tjddsdS |  jd7  _| j| _| tjdds1dS | tjdds;dS |  jd7  _| j| _dS )NrL      Fr   T)limitI_p1I_p2go_out_groupingr   g_V1go_in_groupingcursorself rY   \/var/www/Befach/backend/venv/lib/python3.10/site-packages/snowballstemmer/finnish_stemmer.py__r_mark_regions   s   zFinnishStemmer.__r_mark_regionsc                 C   s   | j | jksdS dS NFT)rR   rV   rW   rY   rY   rZ   __r_R2   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r8| tj	dds7dS n| 
 s>dS |  sDdS dS )NFr'   r   rL   rO   T)rV   rQ   limit_backwardketfind_among_br   a_0brain_grouping_bg_particle_end_FinnishStemmer__r_R2	slice_del)rX   v_2	among_varrY   rY   rZ   __r_particle_etc   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|  sdS dS |d	kr| tjdkrdS |  sdS dS |d
kr| tjdkrdS |  sdS dS | tjdkrdS |  sdS dS )NFr'   r   kr   kser)   r   r   r   T)rV   rQ   r^   r_   r`   r   a_4rb   rP   eq_s_blab0rf   
slice_froma_1a_2a_3rX   rg   rh   v_3rY   rY   rZ   __r_possessive   sj   
"

zFinnishStemmer.__r_possessivec                 C   s   |  tjdkr
dS dS )Nr'   FT)r`   r   a_5rW   rY   rY   rZ   __r_LONG   s   zFinnishStemmer.__r_LONGc                 C   s&   |  dsdS | tjddsdS dS )NrD   FrL   rO   T)rm   rc   r   g_V2rW   rY   rY   rZ   __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
| 
 st 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ddsdS | tjddsdS |  sdS d| _dS )NFr'   r   r%   r   er   rD   r   or   r6   r      ör+   ier&   rL   rO   b   z   T)rV   rQ   r^   r_   r`   r   a_6rb   rm   rP   r0   lab2lab1rn   rc   rT   g_Crf   B_ending_removed)rX   rg   rh   rt   v_4v_5rY   rY   rZ   __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)rV   rR   r^   r_   r`   r   a_7rb   rP   rm   rn   rf   rs   rY   rY   rZ   __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 | _|| _|  s-dS dS )NFr'   T)	rV   rQ   r^   r_   r`   r   a_8rb   rf   )rX   rg   rY   rY   rZ   __r_i_plural]  s   zFinnishStemmer.__r_i_pluralc                 C   s2  | j | jk rdS | j}| j| _| j | _| ds|| _dS | j | _| j| j  }| tj	dds4|| _dS | j| | _ | 
 s@dS || _| j | jk rKdS | j}| j| _| j | _| tj}|dkre|| _dS | j | _|| _|dkr| j| j  }z| dst W dS  ty   Y nw | j| | _ | 
 sdS dS )	NFtrL   rO   r'   r   r   T)rV   rQ   r^   r_   rm   rb   rP   rc   r   rT   rf   rR   r`   a_9rn   )rX   rg   rt   r   rh   v_6rY   rY   rZ   __r_t_pluralm  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ddsot | j | _| 	t
jdds~t |  sW dS W n	 ty   Y nw | j| | _ | j| j  }zN| j | _| dst | j | _z+| j| j  }z| dst t  ty   Y nw | j| | _ | d	st W n	 ty   Y nw |  sW 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dd
sCdS | j | _| 	t
jddsRdS | j | _|  | _| jdkrcdS | | jsldS |  ssdS dS )NFr   rL      r~   r   rE   r{   urO   rN   T)rV   rQ   r^   rP   r0   rn   r_   rb   rf   rc   r   g_AEIr   r   rm   r   lab4lab3lab5go_in_grouping_brT   slice_toS_x)rX   rg   rt   r   r   r   v_7v_8rY   rY   rZ   __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 r\   )rV   _FinnishStemmer__r_mark_regionsr   r^   rP   _FinnishStemmer__r_particle_etc_FinnishStemmer__r_possessive_FinnishStemmer__r_case_ending _FinnishStemmer__r_other_endingsr   _FinnishStemmer__r_i_pluralrn   _FinnishStemmer__r_t_plural_FinnishStemmer__r_tidy)	rX   v_1rg   rt   r   r   r   r   v_9rY   rY   rZ   _stem  sH   zFinnishStemmer._stemN)$__name__
__module____qualname____doc__r   ra   rp   rq   rr   rl   rv   r   r   r   r   r   r   rT   rx   rd   r   r   rR   rQ   r   re   r   r   r0   r.   r   r   r   r   r   r   rY   rY   rY   rZ   r      s    




































































"
















9@+Vr   c                   @      e Zd ZdS )rn   Nr   r   r   rY   rY   rY   rZ   rn         rn   c                   @   r   )r   Nr   rY   rY   rY   rZ   r     r   r   c                   @   r   )r   Nr   rY   rY   rY   rZ   r     r   r   c                   @   r   )r   Nr   rY   rY   rY   rZ   r     r   r   c                   @   r   )r   Nr   rY   rY   rY   rZ   r   !  r   r   c                   @   r   )r   Nr   rY   rY   rY   rZ   r   $  r   r   N)basestemmerr   amongr   r   BaseExceptionrn   r   r   r   r   r   rY   rY   rY   rZ   <module>   s       