a
    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g d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   ейш)r    A         c                 C   s   | j | _| j | _| j}z| 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y   Y n0 || _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.9/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rzZ| j| j  }z| dsPt t	 W n tyj   Y n0 | j| | _ | dsW dS W n t	y   Y n0 | 
 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   s,    



z$RussianStemmer.__r_perfective_gerundc                 C   s4   | j | _| tjdkrdS | j | _|  s0dS dS Nr   FT)r'   r0   r1   r   a_1r3   r6   r.   r,   r,   r-   Z__r_adjective   s    zRussianStemmer.__r_adjectivec                 C   s  |   sdS | j| j }z| j| _| tj}|dkrH| j| | _t | j| _|dkrzf| j| j }z| 	dsxt
 t W n t
y   Y n0 | j| | _| 	ds| j| | _t W n ty   Y n0 |  sW dS n|  sW dS W n ty   Y n0 dS )NFr   r   r   r   T)_RussianStemmer__r_adjectiver$   r'   r0   r1   r   a_2r)   r3   r4   lab2r5   r6   )r*   r+   r8   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 r9   )r'   r0   r1   r   a_3r3   r6   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rzZ| j| j  }z| dsPt t	 W n tyj   Y n0 | j| | _ | dsW dS W n t	y   Y n0 | 
 sdS n| 
 sdS dS r/   )r'   r0   r1   r   a_4r3   r$   r4   r5   r)   r6   r7   r,   r,   r-   Z__r_verb  s,    



zRussianStemmer.__r_verbc                 C   s4   | j | _| tjdkrdS | j | _|  s0dS dS r9   )r'   r0   r1   r   a_5r3   r6   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 r9   )r'   r0   r1   r   a_6r3   _RussianStemmer__r_R2r6   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   r   r   T)r'   r0   r1   r   a_7r3   r6   r4   )r*   r8   r,   r,   r-   Z__r_tidy_upM  s0    


zRussianStemmer.__r_tidy_upc                 C   sb  | j }z| j }zzv| j }z0| j | _| ds2t | j | _|| _ t W n tyZ   Y n0 || _ | j | jkrtt |  j d7  _ qW n ty   Y n0 | dsW W dS W qW n ty   Y n0 || _ qqW n t	y   Y n0 || _ | 
  | j | _| j| _ | j | jk rdS | j}| j| _| j| j  }zXz<| j| j  }z|  sVt t W n tyr   Y n0 | j| | _ | j| j  }z |  s| j| | _ t W n ty   Y n0 z| j| j  }z|  st t W n ty   Y n0 | j| | _ z|  st t W n ty:   Y n0 | j| | _ |  sXt W n tyn   Y n0 W n ty   Y n0 W n ty   Y n0 | j| | _ | j| j  }	zB| j | _| ds| j|	 | _ t | j | _|  sW dS W n ty   Y n0 | j| j  }
|   | j|
 | _ | j| j  }|   | j| | _ || _| j| _ dS )Nu   ёr   r   Fr   T)r'   r3   Zeq_slab3r0   r=   r$   r5   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lab4r4   lab11r6   _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-   _steml  s    














zRussianStemmer._stemN)__name__
__module____qualname____doc__r   r2   r:   r<   r?   r@   rA   rB   rD   r(   r&   r%   rF   rC   rG   r;   rL   rJ   rO   rQ   rT   rU   rV   r,   r,   r,   r-   r      s8  


























































































2



































(






"

r   c                   @   s   e Zd ZdS )r)   NrW   rX   rY   r,   r,   r,   r-   r)         r)   c                   @   s   e Zd ZdS )r5   Nr[   r,   r,   r,   r-   r5     r\   r5   c                   @   s   e Zd ZdS )r=   Nr[   r,   r,   r,   r-   r=     r\   r=   c                   @   s   e Zd ZdS )rE   Nr[   r,   r,   r,   r-   rE     r\   rE   c                   @   s   e Zd ZdS )rR   Nr[   r,   r,   r,   r-   rR     r\   rR   c                   @   s   e Zd ZdS )rI   Nr[   r,   r,   r,   r-   rI     r\   rI   c                   @   s   e Zd ZdS )rH   Nr[   r,   r,   r,   r-   rH     r\   rH   c                   @   s   e Zd ZdS )rK   Nr[   r,   r,   r,   r-   rK     r\   rK   c                   @   s   e Zd ZdS )rN   Nr[   r,   r,   r,   r-   rN     r\   rN   c                   @   s   e Zd ZdS )rM   Nr[   r,   r,   r,   r-   rM     r\   rM   c                   @   s   e Zd ZdS )rP   Nr[   r,   r,   r,   r-   rP     r\   rP   c                   @   s   e Zd ZdS )rS   Nr[   r,   r,   r,   r-   rS     r\   rS   N)Zbasestemmerr   Zamongr   r   BaseExceptionr)   r5   r=   rE   rR   rI   rH   rK   rN   rM   rP   rS   r,   r,   r,   r-   <module>   s"      G