o
    Mi6                     @   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                   @   sn  e Zd ZdZh d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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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gZed2ddedBddedCddedDddedEddedFddedGdHdedId&dgZedJddedKddgZg edLddedMddedNddedOddedPd"dedQddedRddedSddedTdUdedVdUdedWddedXdYdedZdYded[dded.d\ded]d\ded^dded_d`dedad`ded2dded3dded5ddedbddedcdddededdedfdgdedhdgdediddedjdkdedldkdedmddedndodedpddedqddedrddedsdtdedudd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>ddZg edddedddedddeddded)d"dedd"dedddedd&dedd&dedd&dedd&deddYded[dded.ddedd\ded/dded0ddeddded2ddeddded4ddedddedddedddedddedddedddedddedddedddedddeddodeddodedddedddedddZedddedddgZedddedbd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/
    >	      э   а   е   и   о   у   ы   ю   я    c                 C   s   | j | _| j | _| j}zJ| tjst |  jd7  _| j| _| tjs)t |  jd7  _| tjs9t |  jd7  _| tjsIt |  jd7  _| j| _W n	 ty^   Y nw || _dS )Nr   T)	limitI_pVI_p2cursorgo_out_groupingr   g_vlab0go_in_grouping)selfv_1 r   S/home/ubuntu/.local/lib/python3.10/site-packages/snowballstemmer/russian_stemmer.py__r_mark_regions   s*   zRussianStemmer.__r_mark_regionsc                 C   s   | j | jkS )N)r   r   r   r   r   r   __r_R2*   s   zRussianStemmer.__r_R2c                 C      | j | _| tj}|dkrdS | j | _|dkrUz+| j| j  }z| ds(t t	  ty3   Y nw | j| | _ | dsBW dS W n	 t	yL   Y nw | 
 sSdS dS | 
 s[d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   __r_perfective_gerund-   0   

z$RussianStemmer.__r_perfective_gerundc                 C   4   | j | _| tjdkrdS | j | _|  sdS dS Nr   FT)r   r    r!   r   a_1r#   r&   r   r   r   r   __r_adjectiveH      zRussianStemmer.__r_adjectivec                 C   s
  |   sdS | j| j }zn| j| _| tj}|dkr$| j| | _t | j| _|dkrqz1| j| j }z| 	ds<t
 t  t
yG   Y nw | j| | _| 	ds\| j| | _t W n	 tyf   Y nw |  snW dS W dS |  sxW dS W dS  ty   Y dS w )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   __r_adjectivalR   sF   

zRussianStemmer.__r_adjectivalc                 C   r+   r,   )r   r    r!   r   a_3r#   r&   r   r   r   r   __r_reflexivet   r/   zRussianStemmer.__r_reflexivec                 C   r   r   )r   r    r!   r   a_4r#   r   r$   r%   r   r&   r'   r   r   r   __r_verb~   r*   zRussianStemmer.__r_verbc                 C   r+   r,   )r   r    r!   r   a_5r#   r&   r   r   r   r   __r_noun   r/   zRussianStemmer.__r_nounc                 C   s@   | j | _| tjdkrdS | j | _|  sdS |  sdS dS r,   )r   r    r!   r   a_6r#   _RussianStemmer__r_R2r&   r   r   r   r   __r_derivational   s   zRussianStemmer.__r_derivationalc                 C   s   | j | _| tj}|dkrdS | j | _|dkr<|  sdS | j | _| ds)dS | j | _| ds4dS |  s:dS dS |dkrO| dsGdS |  sMdS dS |  sUdS dS )Nr   Fr      н   T)r   r    r!   r   a_7r#   r&   r$   )r   r(   r   r   r   __r_tidy_up   s4   


zRussianStemmer.__r_tidy_upc                 C   s8  | j }za	 | j }zMz8	 | j }z| j | _| dst | j | _|| _ t  ty-   Y nw || _ | j | jkr:t |  j d7  _ q tyJ   Y nw | dsTW W dS W q ty^   Y nw || _ 	 W n	 t	ym   Y nw || _ | 
  | j | _| j| _ | j | jk rdS | j}| j| _| j| j  }zz| j| j  }z
|  st t  ty   Y nw | j| | _ | j| j  }z|  s| j| | _ t W n	 ty   Y nw zE| j| j  }z
|  st t  ty   Y nw | j| | _ z
|  st t  ty   Y nw | j| | _ |  st W n
 ty"   Y nw W n
 ty.   Y nw W n
 ty:   Y nw | j| | _ | j| j  }	z!| j | _| ds[| j|	 | _ t | j | _|  sgW dS W n
 tyr   Y nw | j| j  }
|   | j|
 | _ | j| j  }|   | j| | _ || _| j| _ dS )NTu   ёr   r   Fr   )r   r#   eq_slab3r    r2   r   r%   
slice_fromr   _RussianStemmer__r_mark_regions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   r3   v_3v_6v_7v_8v_9v_10v_11v_12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   ишьr   ,   r   u   евu   овr   u   ьеr   u   еиu   ииu   амиu   ямиu   иями   u   иейu   амu   ием   u   ямu   иям   r	   r
   u   ахu   яхu   иях   r   u   ьu   июu   ьюr   u   ия!   u   ьяu   остu   остьu   ейшеu   ейшN)__name__
__module____qualname____doc__r   r   r   rE   r<   rG   r0   rL   rJ   rO   rQ   rT   rU   r_   r   r"   r-   r1   r5   r7   r9   r;   r@   r   r   r   r   r      s   
"


_




















































	























 
!
"
#
$
%
&
'
(
)
*
+
,
-
.1








	























 
!
"
#
$
(




r   c                   @      e Zd ZdS )r   Nru   rv   rw   r   r   r   r   r         r   c                   @   ry   )r%   Nrz   r   r   r   r   r%     r{   r%   c                   @   ry   )r2   Nrz   r   r   r   r   r2     r{   r2   c                   @   ry   )rC   Nrz   r   r   r   r   rC     r{   rC   c                   @   ry   )rR   Nrz   r   r   r   r   rR     r{   rR   c                   @   ry   )rI   Nrz   r   r   r   r   rI     r{   rI   c                   @   ry   )rH   Nrz   r   r   r   r   rH     r{   rH   c                   @   ry   )rK   Nrz   r   r   r   r   rK     r{   rK   c                   @   ry   )rN   Nrz   r   r   r   r   rN     r{   rN   c                   @   ry   )rM   Nrz   r   r   r   r   rM     r{   rM   c                   @   ry   )rP   Nrz   r   r   r   r   rP     r{   rP   c                   @   ry   )rS   Nrz   r   r   r   r   rS     r{   rS   N)basestemmerr   amongr   r   BaseExceptionr   r%   r2   rC   rR   rI   rH   rK   rN   rM   rP   rS   r   r   r   r   <module>   s$      E