B
    _Ҕa;                 @   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G dd deZG dd deZdS )   )BaseStemmer)Amongc            1   @   s  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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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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d0d1ded2ddgZed3dded4ddgZed5dded6dded7dded8dded9d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dAdBdedCdBdedDddeddEdedFdEdedGddedHdIdedJdIdedddedddedddedKddedLdMdedNddedOdPdedQdPdedRddedSdTdedUdTdedVddedWdXdedYddedZdded[dded\d]ded^dded_dded`dadedbddedcdddededddedfddedgddedhdded'didg.Z	edjddedkddedlddedmddedddednddedoddedpddedqddedrddedsddedtdBdedDddeddudedvdEdeddudeddudedwddedddedxdydedddedzdded{d|ded}dded~ddedddedddedddedddedddedhddeddXdeddXdedddedddedddg$Z
edddedddgZedddedKddedddedddgZddddgZdZdZdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )RussianStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated by Snowball 2.2.0 - https://snowballstem.org/
    u   вr   u   ив       u   ывu   вшиu   ивши   u   ывшиu
   вшисьu   ившись   u   ывшисьu   ееu   иеu   оеu   ыеu   имиu   ымиu   ейu   ийu   ойu   ыйu   емu   имu   омu   ымu   егоu   огоu   емуu   омуu   ихu   ыхu   еюu   оюu   уюu   ююu   аяu   яяu   ннu   вшu   ившu   ывшu   щu   ющ   u   ующu   сьu   сяu   лаu   илаu   ылаu   наu   енаu   етеu   итеu   йтеu   ейте   u   уйтеu   лиu   или
   u   ылиu   й   u   уйu   лu   ил   u   ылu   нu   ен   u   лоu   ило   u   ылоu   ноu   ено   u   нноu   етu   ует   u   итu   ытu   ютu   уют"   u   ятu   ныu   ены%   u   тьu   ить'   u   ытьu   ешьu   ишьu   ю,   u   аu   евu   овu   еu   ьеu   иu   еиu   ииu   амиu   ямиu   иями   u   иейu   амu   ием   u   ямu   иям   u   оu   уu   ахu   яхu   иях   u   ыu   ьu   июu   ьюu   яu   ия!   u   ьяu   остu   остьu   ейшеu   ейшA         c             C   s   | j | _| j | _| j}y| tjdds.t |  jd7  _| j| _| tjddsZt |  jd7  _| tjdds~t |  jd7  _| tjddst |  jd7  _| j| _W n tk
r   Y nX || _dS )Ni0  iO  r   T)	limitI_pVI_p2cursorZgo_out_groupingr   g_vlab0Zgo_in_grouping)selfv_1 r'   >lib/python3.7/site-packages/snowballstemmer/russian_stemmer.pyZ__r_mark_regions   s,     zRussianStemmer.__r_mark_regionsc             C   s   | j | jksdS dS )NFT)r!   r"   )r%   r'   r'   r(   Z__r_R2   s    zRussianStemmer.__r_R2c             C   s   | j | _| tj}|dkr dS | j | _|dkryZ| j| j  }y| dsPt t	 W n tk
rl   Y nX | j| | _ | dsdS W n t	k
r   Y nX | 
 sdS n| 
 sdS dS )Nr   Fr   u   аu   яT)r"   ketfind_among_br   a_0brar   eq_s_blab1r$   	slice_del)r%   	among_varr&   r'   r'   r(   Z__r_perfective_gerund   s0    

 
 z$RussianStemmer.__r_perfective_gerundc             C   s4   | j | _| tjdkrdS | j | _|  s0dS dS )Nr   FT)r"   r)   r*   r   a_1r,   r/   )r%   r'   r'   r(   Z__r_adjective   s    zRussianStemmer.__r_adjectivec             C   s  |   sdS | j| j }y| j| _| tj}|dkrH| j| | _t | j| _|dkryh| j| j }y| 	dsxt
 t W n t
k
r   Y nX | j| | _| 	ds| j| | _t W n tk
r   Y nX |  sdS n|  sdS W n tk
r   Y nX dS )NFr   r   u   аu   яT)_RussianStemmer__r_adjectiver   r"   r)   r*   r   a_2r$   r,   r-   lab2r.   r/   )r%   r&   r0   v_2r'   r'   r(   Z__r_adjectival   s@    

 

  zRussianStemmer.__r_adjectivalc             C   s4   | j | _| tjdkrdS | j | _|  s0dS dS )Nr   FT)r"   r)   r*   r   a_3r,   r/   )r%   r'   r'   r(   Z__r_reflexive  s    zRussianStemmer.__r_reflexivec             C   s   | j | _| tj}|dkr dS | j | _|dkryZ| j| j  }y| dsPt t	 W n tk
rl   Y nX | j| | _ | dsdS W n t	k
r   Y nX | 
 sdS n| 
 sdS dS )Nr   Fr   u   аu   яT)r"   r)   r*   r   a_4r,   r   r-   r.   r$   r/   )r%   r0   r&   r'   r'   r(   Z__r_verb  s0    

 
 zRussianStemmer.__r_verbc             C   s4   | j | _| tjdkrdS | j | _|  s0dS dS )Nr   FT)r"   r)   r*   r   a_5r,   r/   )r%   r'   r'   r(   Z__r_noun7  s    zRussianStemmer.__r_nounc             C   s@   | j | _| tjdkrdS | j | _|  s0dS |  s<dS dS )Nr   FT)r"   r)   r*   r   a_6r,   _RussianStemmer__r_R2r/   )r%   r'   r'   r(   Z__r_derivationalA  s    zRussianStemmer.__r_derivationalc             C   s   | j | _| tj}|dkr dS | j | _|dkrv|  s<dS | j | _| dsRdS | j | _| dshdS |  sdS n0|dkr| dsdS |  sdS n|  sdS dS )Nr   Fr   u   нr   T)r"   r)   r*   r   a_7r,   r/   r-   )r%   r0   r'   r'   r(   Z__r_tidy_upM  s0    


zRussianStemmer.__r_tidy_upc             C   sz  | j }yx| j }yy|xv| j }y0| j | _| ds6t | j | _|| _ t W n tk
r`   Y nX || _ | j | jkrzt |  j d7  _ qW W n tk
r   Y nX | dsdS w
W n tk
r   Y nX || _ P q
W W n t	k
r   Y nX || _ | 
  | j | _| j| _ | j | jk r dS | j}| j| _| j| j  }ydyF| j| j  }y|  s`t t W n tk
r~   Y nX | j| | _ | j| j  }y |  s| j| | _ t W n tk
r   Y nX y| j| j  }y|  st t W n tk
r   Y nX | j| | _ y|  s.t t W n tk
rL   Y nX | j| | _ |  sjt W n tk
r   Y nX W n tk
r   Y nX W n tk
r   Y nX | j| | _ | j| j  }	y@| j | _| ds| j|	 | _ t | j | _|  sdS W n tk
r&   Y nX | j| j  }
|   | j|
 | _ | j| j  }|   | j| | _ || _| j| _ dS )Nu   ёr   u   еFu   иT)r"   r,   Zeq_slab3r)   r4   r   r.   Z
slice_fromr$   _RussianStemmer__r_mark_regionsZlimit_backwardr    $_RussianStemmer__r_perfective_gerundlab6lab5_RussianStemmer__r_reflexivelab7_RussianStemmer__r_adjectivallab9lab8_RussianStemmer__r_verblab10_RussianStemmer__r_nounlab4r-   lab11r/   _RussianStemmer__r_derivational_RussianStemmer__r_tidy_up)r%   r&   r5   Zv_3Zv_6Zv_7Zv_8Zv_9Zv_10Zv_11Zv_12Zv_13r'   r'   r(   _steml  s    

  
 
 

 

 

 

 

 
 
 
 zRussianStemmer._stemN)__name__
__module____qualname____doc__r   r+   r1   r3   r6   r7   r8   r9   r;   r#   r!   r    r=   r:   r>   r2   rC   rA   rF   rH   rK   rL   rM   r'   r'   r'   r(   r      s(  





























































































































"

r   c               @   s   e Zd ZdS )r$   N)rN   rO   rP   r'   r'   r'   r(   r$     s    r$   c               @   s   e Zd ZdS )r.   N)rN   rO   rP   r'   r'   r'   r(   r.     s    r.   c               @   s   e Zd ZdS )r4   N)rN   rO   rP   r'   r'   r'   r(   r4     s    r4   c               @   s   e Zd ZdS )r<   N)rN   rO   rP   r'   r'   r'   r(   r<     s    r<   c               @   s   e Zd ZdS )rI   N)rN   rO   rP   r'   r'   r'   r(   rI     s    rI   c               @   s   e Zd ZdS )r@   N)rN   rO   rP   r'   r'   r'   r(   r@     s    r@   c               @   s   e Zd ZdS )r?   N)rN   rO   rP   r'   r'   r'   r(   r?     s    r?   c               @   s   e Zd ZdS )rB   N)rN   rO   rP   r'   r'   r'   r(   rB     s    rB   c               @   s   e Zd ZdS )rE   N)rN   rO   rP   r'   r'   r'   r(   rE     s    rE   c               @   s   e Zd ZdS )rD   N)rN   rO   rP   r'   r'   r'   r(   rD     s    rD   c               @   s   e Zd ZdS )rG   N)rN   rO   rP   r'   r'   r'   r(   rG     s    rG   c               @   s   e Zd ZdS )rJ   N)rN   rO   rP   r'   r'   r'   r(   rJ     s    rJ   N)Zbasestemmerr   Zamongr   r   BaseExceptionr$   r.   r4   r<   rI   r@   r?   rB   rE   rD   rG   rJ   r'   r'   r'   r(   <module>   s"      G