
    1 f;                        d dl mZ d dlmZ  G d de          Z G d de          Z G d de          Z G d	 d
e          Z G d de          Z	 G d de          Z
 G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          ZdS )   )BaseStemmer)Amongc                      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d Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd 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                    | j         | _        | j         | _        | j        }	 |                     t
          j        dd          st                      | xj        dz  c_        | j        | _        |                     t
          j        dd          st                      | xj        dz  c_        |                     t
          j        dd          st                      | xj        dz  c_        |                     t
          j        dd          st                      | xj        dz  c_        | j        | _        n# t          $ r Y nw xY w|| _        dS )Ni0  iO  r   T)	limitI_pVI_p2cursorgo_out_groupingr   g_vlab0go_in_grouping)selfv_1s     U/var/www/equiseq/venv/lib/python3.11/site-packages/snowballstemmer/russian_stemmer.py__r_mark_regionszRussianStemmer.__r_mark_regions   s/   J	J	k	''(:D$GG ffKK1KKDI&&~'94FF ffKK1KK''(:D$GG ffKK1KK&&~'94FF ffKK1KKDIITTts   DD6 6
EEc                 *    | j         | j        k    sdS dS )NFT)r)   r*   r/   s    r1   __r_R2zRussianStemmer.__r_R2   s    yDK''5t    c                    | j         | _        |                     t          j                  }|dk    rdS | j         | _        |dk    r	 | j        | j         z
  }	 |                     d          st                      t                      # t          $ r Y nw xY w| j        |z
  | _         |                     d          sdS n# t          $ r Y nw xY w| 
                                sdS n| 
                                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_varr0   s      r1   __r_perfective_gerundz$RussianStemmer.__r_perfective_gerund      ;%%n&899	>>5;>>
j4;.";;y11 %"ff&&L!!!TT!"j3.{{9-- ! 5!>>## u >>## ut0   B? 1B 
BB? B'B? ?
CCc                     | j         | _        |                     t          j                  dk    rdS | j         | _        |                                 sdS dS Nr   FT)r*   r9   r:   r   a_1r<   r?   r4   s    r1   __r_adjectivezRussianStemmer.__r_adjective   Q    ;^/00A555;~~ 	5tr6   c                    |                                  sdS | j        | j        z
  }	 | j        | _        |                     t
          j                  }|dk    r| j        |z
  | _        t                      | j        | _        |dk    r	 | j        | j        z
  }	 | 	                    d          st                      t                      # t          $ r Y nw xY w| j        |z
  | _        | 	                    d          s| j        |z
  | _        t                      n# t          $ r Y nw xY w|                                 sdS n|                                 sdS n# t          $ r Y nw xY wdS )NFr   r   r   r!   T)_RussianStemmer__r_adjectiver'   r*   r9   r:   r   a_2r-   r<   r=   lab2r>   r?   )r/   r0   rA   v_2s       r1   __r_adjectivalzRussianStemmer.__r_adjectival   s}   !!## 	5j4;&	{DH)).*<==IA~~"j3.ff{DHA~~"*t{2C&#{{955 )"&&&L"ff%%%%"&*s"2DK;;y11 %&*j3&6"ff% !!!TT!~~'' ! 5! ~~'' ! 5TTts[   A E D 1C	 	
CD CAD E 
D(%E 'D((E E 
E&%E&c                     | j         | _        |                     t          j                  dk    rdS | j         | _        |                                 sdS dS rF   )r*   r9   r:   r   a_3r<   r?   r4   s    r1   __r_reflexivezRussianStemmer.__r_reflexive  rI   r6   c                    | j         | _        |                     t          j                  }|dk    rdS | j         | _        |dk    r	 | j        | j         z
  }	 |                     d          st                      t                      # t          $ r Y nw xY w| j        |z
  | _         |                     d          sdS n# t          $ r Y nw xY w| 
                                sdS n| 
                                sdS dS r8   )r*   r9   r:   r   a_4r<   r'   r=   r>   r-   r?   r@   s      r1   __r_verbzRussianStemmer.__r_verb  rC   rD   c                     | j         | _        |                     t          j                  dk    rdS | j         | _        |                                 sdS dS rF   )r*   r9   r:   r   a_5r<   r?   r4   s    r1   __r_nounzRussianStemmer.__r_noun7  rI   r6   c                     | j         | _        |                     t          j                  dk    rdS | j         | _        |                                 sdS |                                 sdS dS rF   )r*   r9   r:   r   a_6r<   _RussianStemmer__r_R2r?   r4   s    r1   __r_derivationalzRussianStemmer.__r_derivationalA  sf    ;^/00A555;{{}} 	5~~ 	5tr6   c                 
   | j         | _        |                     t          j                  }|dk    rdS | j         | _        |dk    rs|                                 sdS | j         | _        |                     d          sdS | j         | _        |                     d          sdS |                                 sdS nJ|dk    r.|                     d          sdS |                                 sdS n|                                 sdS dS )Nr   Fr   r   r	   T)r*   r9   r:   r   a_7r<   r?   r=   )r/   rA   s     r1   __r_tidy_upzRussianStemmer.__r_tidy_upM  s   ;%%n&899	>>5;>>>>## u{DH;;y)) u{DH;;y)) u>>## u !^^;;y)) u>>## u >>## utr6   c                 T   | j         }	 	 | j         }	 	 	 | j         }	 | j         | _        |                     d          st                      | j         | _        || _         t                      # t          $ r Y nw xY w|| _         | j         | j        k    rt                      | xj         dz  c_         # t
          $ r Y nw xY w|                     d          sdS # t          $ r Y nw xY w|| _         n# t          $ r Y nw xY w|| _         | 
                                 | j         | _        | j        | _         | j         | j        k     rdS | j        }| j        | _        | j        | j         z
  }	 	 | j        | j         z
  }	 |                                 st                      t                      # t          $ r Y nw xY w| j        |z
  | _         | j        | j         z
  }	 |                                 s| j        |z
  | _         t#                      n# t"          $ r Y nw xY w	 | j        | j         z
  }	 |                                 st'                      t)                      # t&          $ r Y nw xY w| j        |z
  | _         	 |                                 st-                      t)                      # t,          $ r Y nw xY w| j        |z
  | _         |                                 st1                      n# t(          $ r Y nw xY wn# t          $ r Y nw xY wn# t0          $ r Y nw xY w| j        |z
  | _         | j        | j         z
  }		 | j         | _        |                     d          s| j        |	z
  | _         t5                      | j         | _        |                                 sdS n# t4          $ r Y nw xY w| j        | j         z
  }
|                                  | j        |
z
  | _         | j        | j         z
  }|                                  | j        |z
  | _         || _        | j        | _         dS )NTu   ёr   r   Fr   )r*   r<   eq_slab3r9   rM   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/   r0   rN   v_3v_6v_7v_8v_9v_10v_11v_12v_13s               r1   _stemzRussianStemmer._steml  sj   k	k"&-"&+C.+/;'+yy';'; !1*.&&L+/;.1&*ff#'----*-DK#{dj88&*ff KK1,KK-  %%%%??955 %$u!!!TT!!TT"kj;""5!"ij4;&!	j4;."5577 %"ff&&L!!!TT!"j3.j4;."--// %&*j3&6"ff% !!!TT!":3D&#2244 )"&&&L"ff%%%%"&*t"3DK'#}} *"'''M"ff &&&$$&"&*t"3DK==?? %"ff%!!!TT!TTj3&zDK'		{DH;;y)) "j4/gg{DH>>## u ddzDK'j4'zDK'j4'!)tsO  C2 B2 AA, ,
A96B2 8A999B2 2
B?<C >B??C C2 
C'$C2 &C''
C2 2
C?>C?+L  ;0F+ +
F85L  7F88!L  1H L  
HL  HL  K/ -0I 
I*'K/ )I**K/ =0J- -
J:7K/ 9J::4K/ .L  /
K<9L  ;K<<L  ?L  
L
L LL 
LL AN! !
N.-N.N)__name__
__module____qualname____doc__r   r;   rG   rL   rQ   rT   rW   rZ   r^   r,   r)   r(   rd   r[   rf   rK   rk   ri   rn   rp   rs   rt   r~    r6   r1   r   r      s         	iQoq!$$oq!$$#R++)1a00)1a00/Q775q!<<5q!<<
C 	or1%%or1%%or1%%or1%%#R++#R++or1%%or1%%or1%%or1%%or1%%or1%%or1%%or1%%#R++#R++#R++#R++or1%%or1%%or1%%or1%%or1%%or1%%or1%%or1%%5C< 	or1%%or1%%or1%%#Q**#Q**iQoq!$$#Q**	C 	or1%%or1%%C
/or1%%/#Q**/ 	#Q**/ 	or1%%	/
 	#Q**/ 	#R++/ 	#R++/ 	#R++/ 	)1a00/ 	)1a00/ 	or1%%/ 	#R++/ 	#R++/ 	iQ/ 	or1%%/  	or1%%!/" 	iQ#/$ 	or1%%%/& 	or1%%'/( 	or1%%)/* 	or1%%+/, 	or1%%-/. 	iQ//0 	or1%%1/2 	or1%%3/4 	#R++5/6 	#R++7/8 	or1%%9/: 	#R++;/< 	#R++=/> 	or1%%?/@ 	#R++A/B 	or1%%C/D 	or1%%E/F 	or1%%G/H 	#R++I/J 	or1%%K/L 	or1%%M/N 	#R++O/P 	or1%%Q/R 	#R++S/T 	#R++U/V 	#R++W/X 	#R++Y/Z 	iQ[/\ 	or1%%]/Cb%iQ%or1%%% 	or1%%% 	iQ	%
 	oq!$$% 	oq!$$% 	iQ% 	oq!$$% 	oq!$$% 	#Q**% 	#Q**% 	)2q11% 	iQ% 	or1%%% 	#R++%  	or1%%!%" 	or1%%#%$ 	or1%%%%& 	or1%%'%( 	#R++)%* 	or1%%+%, 	or1%%-%. 	#R++/%0 	iQ1%2 	iQ3%4 	or1%%5%6 	or1%%7%8 	#R++9%: 	iQ;%< 	iQ=%> 	iQ?%@ 	or1%%A%B 	or1%%C%D 	iQE%F 	or1%%G%H 	or1%%I%CP 	#R++)2q11C 	)2q11iQ#R++iQ	C 

CDD  .  
  6       D    6  
 
 
  >\ \ \ \ \r6   r   c                       e Zd ZdS )r-   Nr   r   r   r   r6   r1   r-   r-               r6   r-   c                       e Zd ZdS )r>   Nr   r   r6   r1   r>   r>     r   r6   r>   c                       e Zd ZdS )rM   Nr   r   r6   r1   rM   rM     r   r6   rM   c                       e Zd ZdS )rb   Nr   r   r6   r1   rb   rb     r   r6   rb   c                       e Zd ZdS )rq   Nr   r   r6   r1   rq   rq     r   r6   rq   c                       e Zd ZdS )rh   Nr   r   r6   r1   rh   rh     r   r6   rh   c                       e Zd ZdS )rg   Nr   r   r6   r1   rg   rg     r   r6   rg   c                       e Zd ZdS )rj   Nr   r   r6   r1   rj   rj     r   r6   rj   c                       e Zd ZdS )rm   Nr   r   r6   r1   rm   rm     r   r6   rm   c                       e Zd ZdS )rl   Nr   r   r6   r1   rl   rl     r   r6   rl   c                       e Zd ZdS )ro   Nr   r   r6   r1   ro   ro     r   r6   ro   c                       e Zd ZdS )rr   Nr   r   r6   r1   rr   rr     r   r6   rr   N)basestemmerr   amongr   r   BaseExceptionr-   r>   rM   rb   rq   rh   rg   rj   rm   rl   ro   rr   r   r6   r1   <module>r      s   % $ $ $ $ $      A A A A A[ A A AH      =         =         =         =         =         =         =         =         =         =    !        M       !        M          r6   