B
    ܵ|V d                 @   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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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$d5edddeddded6dded7dd8edd9ded:d9dd;ed<d9dd=ed>d9ded?d9dd;ed@d9dedAd9dd;edBd9d$ed
d9d(edCd9d&edDdd2eddEdeddEdeddEdeddEdeddFdeddFdedGdFd5gZedHddedIddedJddedKddedLddedMddedNd(dedOddedPd8dedQddedRddedSdTdedUddedVdWdgZedXddedYddgZedIddedJd3dgZdZdd3d3d3d3d3d3d3d3d3d3d3d3d3d3d2gZdZd[d\dd3d3d3d3d3d3d3d3d3d3d3d3d2d3d]gZdZd[d\d3d3d3d3d3d3d3d3d3d3d3d3d3d2d3d]gZdZd^d_dd3d3d3d3d3d3d3d3d3d3d3d3d2d3d]gZd`ZdaZd3Zd3Z fdbdcZddde Zdfdg Zdhdi Zdjdk Zdldm Zdndo Zdpdq Zdrds Z dtdu Z!dvdw Z"dxdy Z#dzd{ Z$d|d} Z%d~d Z&  Z'S )FinnishStemmerz
    self class was automatically generated by a Snowball to Python interpreter
    It implements the stemming algorithm defined by a snowball script.
    r   ZpaZsti   ZkaanZhanZkinu   hänu   käänZkou   päu   köZllaZnaZssaZtaZlta   Zstau   lläu   näu   ssäu   täu   ltäu   stäZlleZineZnsaZmmeZnneZniZsiZan   Zen   u   än   u   nsäZaaZeeZiiZoouuu   ääu   ööa       Ztta	   ksin      Zdenr_VIseen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   A          a      F c                s.   |j | _ |j| _|j| _|j| _t| d S )N)B_ending_removedS_xI_p2I_p1super	copy_from)selfother)	__class__ >lib/python3.7/site-packages/snowballstemmer/finnish_stemmer.pyr*      s
    zFinnishStemmer.copy_fromc             C   s.  | j | _| j | _ypxj| j}y&| tjdds2t || _t W n tk
rT   Y nX || _| j| j krldS |  jd7  _qW W n tk
r   Y nX y^xXy | 	tjddst
 t W n t
k
r   Y nX | j| j krdS |  jd7  _qW W n tk
r
   Y nX | j| _yxxr| j}y(| tjdds8t || _t W n tk
r\   Y nX || _| j| j krvdS |  jd7  _qW W n tk
r   Y nX yfx`y"| 	tjddst t W n tk
r   Y nX | j| j krdS |  jd7  _qW W n tk
r    Y nX | j| _dS )Nr"      Fr   T)limitr(   r'   cursorZin_groupingr   g_V1lab1lab0Zout_groupinglab3lab2lab5lab4lab7lab6)r+   v_1v_3r.   r.   r/   r_mark_regions   s~    
  
  
  
  zFinnishStemmer.r_mark_regionsc             C   s   | j | jksdS dS )NFT)r'   r2   )r+   r.   r.   r/   r_R2   s    zFinnishStemmer.r_R2c             C   s   | j | j }| j| jk rdS | j| _| j}| j| _| j | | _| j| _| tjd}|dkrf|| _dS | j| _|| _|dkrdS |dkr| 	tj
ddsdS n|dkr|  sdS |  sdS dS )	NFr   r   r   r"   r0   r   T)r1   r2   r(   limit_backwardketfind_among_br   a_0brain_grouping_bg_particle_endr?   	slice_del)r+   r<   v_2	among_varr.   r.   r/   r_particle_etc   s2    zFinnishStemmer.r_particle_etcc             C   s  | j | j }| j| jk rdS | j| _| j}| j| _| j | | _| j| _| tjd}|dkrf|| _dS | j| _|| _|dkrdS |dkr| j | j }y| 	ddst
 dS  t
k
r   Y nX | j | | _|  sdS n|dkr$|  sdS | j| _| 	dds
dS | j| _| d	sdS n|dkr>|  sdS n|d
krp| tjddkr`dS |  sdS nb|dkr| tjddkrdS |  sdS n0|dkr| tjddkrdS |  sdS dS )NFr   r   r   kr   r   Zkser   r   r	   r
   T)r1   r2   r(   r@   rA   rB   r   a_4rD   eq_s_br5   rG   Z
slice_froma_1a_2a_3)r+   r<   rH   rI   r=   r.   r.   r/   r_possessive  sn     








zFinnishStemmer.r_possessivec             C   s   |  tjddkrdS dS )Nr   r   FT)rB   r   a_5)r+   r.   r.   r/   r   _  s    zFinnishStemmer.r_LONGc             C   s(   |  ddsdS | tjdds$dS dS )Nr   r   Fr"   r0   T)rM   rE   r   g_V2)r+   r.   r.   r/   r   e  s
    zFinnishStemmer.r_VIc             C   s  | j | j }| j| jk rdS | j| _| j}| j| _| j | | _| j| _| tjd}|dkrf|| _dS | j| _|| _|dkrdS |dkr| 	ddsdS n|dkr| 	ddsdS n|dkr| 	dd	sdS n|d
kr| 	ddsdS n|dkr| 	ddsdS n||dkr0| 	ddsdS n\|dkr8| j | j }y| j | j }yn| j | j }y| 
 stt t W n tk
r   Y nX | j | | _| 	d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
r4   Y nX nT|dkrp| tjddsXdS | tjddsdS n|dkr| 	ddsdS |  sdS d| _dS )NF   r   r   r   r   er   r   r   or
   r   r	      ör   Zier   r"   r0   r   T)r1   r2   r(   r@   rA   rB   r   a_6rD   rM   r   r7   r4   r5   rE   r3   out_grouping_brG   r%   )r+   r<   rH   rI   r=   v_4v_5r.   r.   r/   r_case_endingn  s    




 
  


zFinnishStemmer.r_case_endingc             C   s   | j | j }| j| jk rdS | j| _| j}| j| _| j | | _| j| _| tjd}|dkrf|| _dS | j| _|| _|dkrdS |dkr| j | j }y| 	ddst
 dS  t
k
r   Y nX | j | | _|  sdS dS )NF   r   r   r   poT)r1   r2   r'   r@   rA   rB   r   a_7rD   rM   r5   rG   )r+   r<   rH   rI   r=   r.   r.   r/   r_other_endings  s8     zFinnishStemmer.r_other_endingsc             C   s   | j | j }| j| jk rdS | j| _| j}| j| _| j | | _| j| _| tjddkrb|| _dS | j| _|| _| 	 s|dS dS )NFr   r   T)
r1   r2   r(   r@   rA   rB   r   a_8rD   rG   )r+   r<   rH   r.   r.   r/   
r_i_plural   s     zFinnishStemmer.r_i_pluralc             C   s  | j | j }| j| jk rdS | j| _| j}| j| _| j | | _| j| _| dds\|| _dS | j| _| j | j }| tj	dds|| _dS | j | | _| 
 sdS || _| j | j }| j| jk rdS | j| _| j}| j| _| j | | _| j| _| tjd}|dkr|| _dS | j| _|| _|dkr,dS |dkr~| j | j }y| ddsXt dS  tk
rp   Y nX | j | | _| 
 sdS d	S )
NFr   tr"   r0   r   r   r^   T)r1   r2   r(   r@   rA   rM   rD   rE   r   r3   rG   r'   rB   a_9r5   )r+   r<   rH   r=   rZ   r[   rI   v_6r.   r.   r/   
r_t_plural  s`    


 
zFinnishStemmer.r_t_pluralc       
      C   s  | j | j }| j| jk rdS | j| _| j}| j| _| j | | _| j | j }yf| j | j }|  sft | j | | _| j| _| j| jkrt |  jd8  _| j| _|  sdS W n tk
r   Y nX | j | | _| j | j }yP| j| _| 	t
jddst | j| _| t
jddst |  s,dS W n tk
rD   Y nX | j | | _| j | j }y| j| _| dds|t | j| _yf| j | j }y| ddst t W n tk
r   Y nX | j | | _| ddst W n tk
r    Y nX |  sdS W n tk
r(   Y nX | j | | _| j | j }yJ| j| _| dds`t | j| _| dds|t |  sdS W n tk
r   Y nX | j | | _|| _yx| j | j }	y.| t
jddst | j |	 | _t W n tk
r
   Y nX | j |	 | _| j| jkr*dS |  jd8  _qW W n tk
rV   Y nX | j| _| j| jkrrdS |  jd8  _| j| _| | j| _| jd	krdS | | jsdS |  sdS d
S )NFr   r"      r0   r   rV   ur$   T)r1   r2   r(   r@   r   r5   rA   rD   rG   rE   r   g_AEIr4   rY   r3   rM   r7   r9   r6   r8   r:   r;   Zslice_tor&   Zeq_v_b)
r+   r<   rH   r=   rZ   r[   re   v_7v_8v_9r.   r.   r/   r_tidya  s     
 
 
 
 
 
  
zFinnishStemmer.r_tidyc       
      C   s  | j }y|  st W n tk
r,   Y nX || _ d| _| j | _| j| _ | j| j  }y|  sft W n tk
r|   Y nX | j| | _ | j| j  }y|  st	 W n t	k
r   Y nX | j| | _ | j| j  }y| 
 st W n tk
r   Y nX | j| | _ | j| j  }y|  s(t W n tk
r@   Y nX | j| | _ y| j| j  }y\| jslt | j| j  }y|  st W n tk
r   Y nX | j| | _ t W n tk
r   Y nX | j| | _ | j| j  }y|  st W n tk
r   Y nX | j| | _ W n tk
r8   Y nX | j| j  }	y|  sXt W n tk
rp   Y nX | j|	 | _ | j| _ dS )NFT)r2   r>   r5   r%   r@   r1   rJ   r4   rQ   r7   r\   r6   r`   r9   r;   rb   r:   r8   rf   lab8rm   lab9)
r+   r<   rH   r=   rZ   r[   re   rj   rk   rl   r.   r.   r/   _stem  s    
 
 
 
 

 

 
 

  

 zFinnishStemmer._stemc             C   s
   t |tS )N)
isinstancer   )r+   rV   r.   r.   r/   equalsG  s    zFinnishStemmer.equalsc             C   s   t dS )Nr   )hash)r+   r.   r.   r/   hashCodeJ  s    zFinnishStemmer.hashCode)(__name__
__module____qualname____doc__ZserialVersionUIDr   rC   rN   rO   rP   rL   rR   rX   r_   ra   rd   ri   r3   rS   rF   r%   r&   r'   r(   r*   r>   r?   rJ   rQ   r   r   r\   r`   rb   rf   rm   rp   rr   rt   __classcell__r.   r.   )r-   r/   r      s   









































































&***@'Z	i)F Wr   c               @   s   e Zd ZdS )r5   N)ru   rv   rw   r.   r.   r.   r/   r5   L  s    r5   c               @   s   e Zd ZdS )r4   N)ru   rv   rw   r.   r.   r.   r/   r4   M  s    r4   c               @   s   e Zd ZdS )r7   N)ru   rv   rw   r.   r.   r.   r/   r7   N  s    r7   c               @   s   e Zd ZdS )r6   N)ru   rv   rw   r.   r.   r.   r/   r6   O  s    r6   c               @   s   e Zd ZdS )r9   N)ru   rv   rw   r.   r.   r.   r/   r9   P  s    r9   c               @   s   e Zd ZdS )r8   N)ru   rv   rw   r.   r.   r.   r/   r8   Q  s    r8   c               @   s   e Zd ZdS )r;   N)ru   rv   rw   r.   r.   r.   r/   r;   R  s    r;   c               @   s   e Zd ZdS )r:   N)ru   rv   rw   r.   r.   r.   r/   r:   S  s    r:   c               @   s   e Zd ZdS )rn   N)ru   rv   rw   r.   r.   r.   r/   rn   T  s    rn   c               @   s   e Zd ZdS )ro   N)ru   rv   rw   r.   r.   r.   r/   ro   U  s    ro   N)Zbasestemmerr   Zamongr   r   BaseExceptionr5   r4   r7   r6   r9   r8   r;   r:   rn   ro   r.   r.   r.   r/   <module>   s$         K