U
    YSh6                     @   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dddddddd	d
h	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d Zdd Zdd Zd 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d0d#d$ed1d#d$ed2d#d$ed3d#d$ed4d#d$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d@d#d$edAd#d$edBd#d$edCd#d$edDd#d$edEd#d$edFd#d$edGd#d$edHd#d$edId#d$gZed:d#d$edJd#d$edKd#d$edLd&d&edMd&d&edNd#d$edOdPd$edQd.d&gZedRd#d$edSd#d$gZedTd#d$edUdd&edVdd&edWd#d$edXd*d&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dbdad&edcd#d$ed6ddd&ededdd&edfd#d$edgdhd&edidhd&ed:d#d$ed;d#d&ed=d#d&edjd#d$edkdld&edmd#d$edndod&edpdod&edqd#d$edrdsd&edtdsd$edud#d$edvdwd&edxd#d&edyd#d&edzd#d$ed{d|d&ed}d#d&ed~d#d$eddd&edd#d$eddd&eddd&edd#d$edd#d&ed	d#d&edFdd&g.Zedd#d$edd#d$edd#d$edd#d$ed1d*d$edd*d$edd#d$edd.d$edd.d$edd.d$edd.d$eddad$edcd#d$ed6dd$edddd$ed7dd$ed8dd$edd#d$ed:d#d$eddd$ed<d#d$edd#d$eddd$edd#d$edd#d$edd#d$edd#d$eddd$edd#d$edd#d$ed	d#d$eddwd$eddwd$ed
d#d$eddd$eddd$g$Zedd#d$edd#d$gZedd#d$edjd#d&edd#d$edd#d*gZdS )RussianStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated from russian.sbl by Snowball 3.0.1 - https://snowballstem.org/
       а   е   иu   оu   уu   ыu   эu   ю   я    c                 C   s   | j | _| j | _| j}z| tjs*t |  jd7  _| j| _| tjsRt |  jd7  _| tjsrt |  jd7  _| tjst |  jd7  _| j| _W n tk
r   Y nX || _dS )Nr   T)	limitI_pVI_p2cursorZgo_out_groupingr   g_vlab0Zgo_in_grouping)selfv_1 r   R/root/rtd-docs/venv/lib/python3.8/site-packages/snowballstemmer/russian_stemmer.pyZ__r_mark_regions   s,     zRussianStemmer.__r_mark_regionsc                 C   s   | j | jkS )N)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rz\| j| j  }z| dsPt t	 W n tk
rl   Y nX | j| | _ | dsW dS W n t	k
r   Y nX | 
 sdS n| 
 sdS dS Nr	   Fr   r   r   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_adjectiveH   s    zRussianStemmer.__r_adjectivec                 C   s  |   sdS | j| j }z| j| _| tj}|dkrH| j| | _t | j| _|dkrzh| j| j }z| 	dsxt
 t W n t
k
r   Y nX | j| | _| 	ds| j| | _t W n tk
r   Y nX |  sW dS n|  sW dS W n tk
r   Y nX dS )NFr	   r   r   r   T)_RussianStemmer__r_adjectiver
   r   r   r   r   a_2r   r   r   lab2r   r   )r   r   r   v_2r   r   r   Z__r_adjectivalR   s@    

 

 
 zRussianStemmer.__r_adjectivalc                 C   s4   | j | _| tjdkrdS | j | _|  s0dS dS r   )r   r   r   r   a_3r   r   r   r   r   r   Z__r_reflexivet   s    zRussianStemmer.__r_reflexivec                 C   s   | j | _| tj}|dkr dS | j | _|dkrz\| j| j  }z| dsPt t	 W n tk
rl   Y nX | j| | _ | dsW dS W n t	k
r   Y nX | 
 sdS n| 
 sdS dS r   )r   r   r   r   a_4r   r
   r   r   r   r   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 r   )r   r   r   r   a_5r   r   r   r   r   r   Z__r_noun   s    zRussianStemmer.__r_nounc                 C   s@   | j | _| tjdkrdS | j | _|  s0dS |  s<dS dS r   )r   r   r   r   a_6r   _RussianStemmer__r_R2r   r   r   r   r   Z__r_derivational   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      н   T)r   r   r   r   a_7r   r   r   )r   r   r   r   r   Z__r_tidy_up   s0    


zRussianStemmer.__r_tidy_upc                 C   sz  | j }z| j }zzx| j }z0| j | _| ds2t | j | _|| _ t W n tk
r\   Y nX || _ | j | jkrvt |  j d7  _ qW n tk
r   Y nX | dsW W dS W qW n tk
r   Y nX || _ qqW n t	k
r   Y nX || _ | 
  | j | _| j| _ | j | jk rdS | j}| j| _| j| j  }zdzF| j| j  }z|  s^t t W n tk
r|   Y nX | j| | _ | j| j  }z |  s| j| | _ t W n tk
r   Y nX z| j| j  }z|  st t W n tk
r   Y nX | j| | _ z|  s,t t W n tk
rJ   Y nX | j| | _ |  sht 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  }	zB| j | _| ds| j|	 | _ t | j | _|  sW dS W n tk
r&   Y nX | j| j  }
|   | j|
 | _ | j| j  }|   | j| | _ || _| j| _ dS )Nu   ёr   r   Fr   T)r   r   Zeq_slab3r   r#   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   r$   Zv_3Zv_6Zv_7Zv_8Zv_9Zv_10Zv_11Zv_12Zv_13r   r   r   _stem   s    

  
  

 

 

 

 

 
 
 

 zRussianStemmer._stemu   вr   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   ыл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   ейшN)__name__
__module____qualname____doc__r   r   r   r.   r)   r/   r!   r4   r2   r7   r9   r<   r=   r>   r   r   r    r"   r%   r&   r'   r(   r,   r   r   r   r   r      s8  
"

_


























































































2



































(





r   c                   @   s   e Zd ZdS )r   NrT   rU   rV   r   r   r   r   r     s    r   c                   @   s   e Zd ZdS )r   NrX   r   r   r   r   r     s    r   c                   @   s   e Zd ZdS )r#   NrX   r   r   r   r   r#     s    r#   c                   @   s   e Zd ZdS )r-   NrX   r   r   r   r   r-     s    r-   c                   @   s   e Zd ZdS )r:   NrX   r   r   r   r   r:     s    r:   c                   @   s   e Zd ZdS )r1   NrX   r   r   r   r   r1     s    r1   c                   @   s   e Zd ZdS )r0   NrX   r   r   r   r   r0     s    r0   c                   @   s   e Zd ZdS )r3   NrX   r   r   r   r   r3     s    r3   c                   @   s   e Zd ZdS )r6   NrX   r   r   r   r   r6     s    r6   c                   @   s   e Zd ZdS )r5   NrX   r   r   r   r   r5     s    r5   c                   @   s   e Zd ZdS )r8   NrX   r   r   r   r   r8     s    r8   c                   @   s   e Zd ZdS )r;   NrX   r   r   r   r   r;     s    r;   N)Zbasestemmerr   Zamongr   r   BaseExceptionr   r   r#   r-   r:   r1   r0   r3   r6   r5   r8   r;   r   r   r   r   <module>   s"      E