o
    욌h;                     @   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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g 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Z	g 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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}zR| tjddst |  jd7  _| j| _| tjdds-t |  jd7  _| tjdds?t |  jd7  _| tjddsQt |  jd7  _| j| _W n	 tyf   Y nw || _dS )Ni0  iO  r   T)	limitI_pVI_p2cursorgo_out_groupingr   g_vlab0go_in_grouping)selfv_1 r.   \/var/www/Befach/backend/venv/lib/python3.10/site-packages/snowballstemmer/russian_stemmer.py__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/   __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'   r5   r6   r   a_1r8   r;   r1   r.   r.   r/   __r_adjective      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'   r5   r6   r   a_2r*   r8   r9   lab2r:   r;   )r,   r-   r=   v_2r.   r.   r/   __r_adjectival   sF   

zRussianStemmer.__r_adjectivalc                 C   r@   rA   )r'   r5   r6   r   a_3r8   r;   r1   r.   r.   r/   __r_reflexive  rD   zRussianStemmer.__r_reflexivec                 C   r3   r4   )r'   r5   r6   r   a_4r8   r$   r9   r:   r*   r;   r<   r.   r.   r/   __r_verb  r?   zRussianStemmer.__r_verbc                 C   r@   rA   )r'   r5   r6   r   a_5r8   r;   r1   r.   r.   r/   __r_noun7  rD   zRussianStemmer.__r_nounc                 C   s@   | j | _| tjdkrdS | j | _|  sdS |  sdS dS rA   )r'   r5   r6   r   a_6r8   _RussianStemmer__r_R2r;   r1   r.   r.   r/   __r_derivationalA  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   r   r   T)r'   r5   r6   r   a_7r8   r;   r9   )r,   r=   r.   r.   r/   __r_tidy_upM  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'   r8   eq_slab3r5   rG   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lab4r9   lab11r;   _RussianStemmer__r_derivational_RussianStemmer__r_tidy_up)r,   r-   rH   v_3v_6v_7v_8v_9v_10v_11v_12v_13r.   r.   r/   _steml  s   



zRussianStemmer._stemN)__name__
__module____qualname____doc__r   r7   rB   rF   rJ   rL   rN   rP   rS   r)   r&   r%   rX   rQ   rZ   rE   r_   r]   rb   rd   rg   rh   rr   r.   r.   r.   r/   r      s   





















































	

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























 
!
"
#
$
(





"

r   c                   @      e Zd ZdS )r*   Nrs   rt   ru   r.   r.   r.   r/   r*         r*   c                   @   rw   )r:   Nrx   r.   r.   r.   r/   r:     ry   r:   c                   @   rw   )rG   Nrx   r.   r.   r.   r/   rG     ry   rG   c                   @   rw   )rV   Nrx   r.   r.   r.   r/   rV     ry   rV   c                   @   rw   )re   Nrx   r.   r.   r.   r/   re     ry   re   c                   @   rw   )r\   Nrx   r.   r.   r.   r/   r\     ry   r\   c                   @   rw   )r[   Nrx   r.   r.   r.   r/   r[     ry   r[   c                   @   rw   )r^   Nrx   r.   r.   r.   r/   r^     ry   r^   c                   @   rw   )ra   Nrx   r.   r.   r.   r/   ra     ry   ra   c                   @   rw   )r`   Nrx   r.   r.   r.   r/   r`     ry   r`   c                   @   rw   )rc   Nrx   r.   r.   r.   r/   rc     ry   rc   c                   @   rw   )rf   Nrx   r.   r.   r.   r/   rf     ry   rf   N)basestemmerr   amongr   r   BaseExceptionr*   r:   rG   rV   re   r\   r[   r^   ra   r`   rc   rf   r.   r.   r.   r/   <module>   s$      G