U
    YSh\                     @   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dS )   )BaseStemmer)Amongc                   @   s  e Zd ZdZdddhZddddddhZdddddddd	d
h	Zddddddddddh
Z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d,d- Zd.d/ Zd0d1 Zd2d3 Zed4d5d5ed6d5d5ed7d5d5ed8d5d5ed9d5d5ed:d5d5ed;d5d5ed<d5d5gZed=d5d>ed?dd>ed@d5d>gZedAd5dBedCd5dDedEd>dBedFd>d>edGd>d5edHd>d5gZedId5d>edJd5d>edKd5d>gZedLd5dBedMd5dBedNd5dBedOd5dBedPd5dBedQd5dBedd5d>gZedRd5d5edSddBedTd>d>edUddDedVddBedWdXd>edYddBgZ edRd5dDedZddBed[ddBed\ddBed]ddBed^dd>ed_ddBed`ddBedaddBedbddBedcdd>eddddBededd>gZ!edfd5dDedgd5dBedhd5diedjd5dkedldDdmedndXdXedodDdpedqdDdredsdDdtedudDdvedwdDdxedyd5dpedzd5dmed{d5d|ed}d5d>ed~didedd5dpedd5dedddedd5dedd5dedd5d|edd5dredd5dvedd5dgZ"edd5dXedd5dedd5dDedd5dXedd5dXed}d5d>ed~dxdBedd5dxedd5dxg	Z#edd5d>edd5d>edd5d>edd5d>edd5d>edd5d>edd5d>edd5d>edd5d>edd5d>edd5d>edd5dBedd5d>edd5d>edd5d>edd5d>eddtd>eddkd>gZ$edd5d>edd5dBgZ%edd5d5edd5d5edd5d5edd5d5edd5dxedd5dDedd5d5edd5dBedd5d5edd5dedd5dedd5d>edd5d5edd5dXgZ&dS )EnglishStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated from english.sbl by Snowball 3.0.1 - https://snowballstem.org/
    aeoiuywxYcdghkmnrtF    c                 C   s  d| _ | j}z2| j| _| ds&t | j| _|  s<W dS W n tk
rR   Y nX || _| j}z:| j| _| dszt | j| _| dsW dS d| _ W n tk
r   Y nX || _| j}z| j}zz| j}zB| 	t
jst | j| _| dst | j| _|| _t W n tk
r&   Y nX || _| j| jkrBt |  jd7  _qW n tk
rj   Y nX | dsW W dS d| _ W qW n tk
r   Y nX || _qqW n tk
r   Y nX || _dS )NF'r
   r   Tr   )	B_Y_foundcursorbraeq_slab0ket	slice_dellab1
slice_fromZin_groupingr   g_vlab5lab4limitlab3lab2)selfv_1v_2v_3v_4v_5 r.   R/root/rtd-docs/venv/lib/python3.8/site-packages/snowballstemmer/english_stemmer.pyZ__r_prelude   sv    

 


 

   
 zEnglishStemmer.__r_preludec                 C   s(  | j | _| j | _| j}zz| j}z | tjdkr8t t W n tk
rT   Y nX || _| 	tj
snt |  jd7  _| tj
st |  jd7  _W n tk
r   Y nX | j| _| 	tj
st |  jd7  _| tj
st |  jd7  _| j| _W n tk
r   Y nX || _dS )Nr   r   T)r%   I_p1I_p2r   
find_amongr   a_0r'   r    Zgo_out_groupingr"   r   Zgo_in_groupingr(   r)   r*   r.   r.   r/   Z__r_mark_regionsT   sB    
   zEnglishStemmer.__r_mark_regionsc                 C   s   z| j | j }z@| tjs"t | tjs4t | tjsFt t W n tk
rb   Y nX | j | | _z@| tjst	 | tjst	 | j| j
krt	 t W n t	k
r   Y nX | j | | _| dsW dS W n tk
r   Y nX dS )NpastFT)r%   r   out_grouping_br   g_v_WXYr    in_grouping_br"   r   r'   limit_backwardeq_s_br(   r)   r.   r.   r/   Z
__r_shortvt   s:    
 
 

 zEnglishStemmer.__r_shortvc                 C   s   | j | jkS N)r0   r   r(   r.   r.   r/   Z__r_R1   s    zEnglishStemmer.__r_R1c                 C   s   | j | jkS r<   )r1   r   r=   r.   r.   r/   Z__r_R2   s    zEnglishStemmer.__r_R2c                 C   s  | j | j }zD| j| _| tjdkr8| j | | _t | j| _|  sNW dS W n tk
rd   Y nX | j| _| tj	}|dkrdS | j| _|dkr| 
dsdS n|dkrLz| j | j }z<| jd }|| jk rt || _| 
dsW W dS t W n tk
r   Y nX | j | | _| 
ds0W dS W n tk
rH   Y nX nX|dkr| j| jkrhdS |  jd8  _| tjsdS |  jd8  _|  sdS d	S )
Nr   Fr   ss   r   ie   T)r%   r   r   find_among_br   a_1r   r   r   a_2r!   r9   r'   r    go_out_grouping_br"   )r(   r)   	among_varr*   r   r.   r.   r/   Z__r_Step_1a   s^    
 





 
 

zEnglishStemmer.__r_Step_1ac           
      C   s  | j | _| tj}| j | _zr| j| j  }z|dkr| j| j  }zz| j| j  }z2| tjdkrnt | j | j	krt t
 W n tk
r   Y nX | j| | _ |  st | dsW W W W dS W n t
k
r   Y nX W n tk
r   Y nX | j| | _ n|dkrt n|dkr| tj}|dkrDt |dkr| j| j  }| tjsnt | j | j	krt | j| | _ | j | _| dsW W dS n| j | j	krt t W n tk
r   Y nX | j| | _ | j| j  }| tjsW dS |  j d8  _ | j| | _ |  s6W dS | j | _| j | _| j| j  }| tj}|dkr| dszW dS W dS |dkr| j| j  }z0| tjst | j | j	krt W W dS  tk
r   Y nX | j| | _ nT| j | jkr W dS | j| j  }	|  sW dS | j|	 | _ | ds:W dS W dS | j| | _ | j | _| j | j	krhW dS |  j d8  _ | j | _|  sW dS W n tk
r   Y nX d	S )
Nr   r   eeFr?   rA   r@   r   T)r   r   rB   r   a_5r   r%   a_3r$   r9   r&   _EnglishStemmer__r_R1r'   r!   r    a_4r6   r"   r   rE   r   a_6r8   g_aeor#   r0   _EnglishStemmer__r_shortv)
r(   rF   r)   r*   r+   r,   r-   v_6v_7v_8r.   r.   r/   Z__r_Step_1b   s    

 
 
 





 


 


 zEnglishStemmer.__r_Step_1bc                 C   s   | j | _z\| j| j  }z| ds(t t W n tk
rD   Y nX | j| | _ | dsbW dS W n tk
rx   Y nX | j | _| tj	sdS z| j | j
krt W dS  tk
r   Y nX | dsdS dS )Nr
   r   Fr   T)r   r   r%   r:   r    r   r   r6   r   r"   r9   r'   r!   r;   r.   r.   r/   Z__r_Step_1c'  s4    

 

  
zEnglishStemmer.__r_Step_1cc                 C   s  | j | _| tj}|dkr dS | j | _|  s4dS |dkrN| dsJdS n|dkrh| dsddS n|dkr| ds~dS nx|d	kr| d
sdS n^|dkr| dsdS nD|dkr| dsdS n*|dkr| dsdS n|dkr| dsdS n|dkr"| dsdS n|dkr>| dsdS n|dkrZ| dsdS n|dkrv| dsdS n|dkr| dsdS nh|dkr| dsdS | dsdS n<|dkr| d sdS n | 	tj
sdS |  sdS d!S )"Nr   Fr   tionr?   encerA   ance   able   ent   ize   ate   al	   ful
   ous   ive   Zble   Zog   l   lessT)r   r   rB   r   a_7r   rJ   r!   r:   r8   
g_valid_LIr   r(   rF   r.   r.   r/   Z
__r_Step_2@  sv    















zEnglishStemmer.__r_Step_2c                 C   s   | j | _| tj}|dkr dS | j | _|  s4dS |dkrL| dsdS nv|dkrd| dsdS n^|dkr|| dsdS nF|d	kr| d
sdS n.|dkr|  sdS n| 	 sdS |  sdS dS )Nr   Fr   rR   r?   r\   rA   r^   rU   icrW   T)
r   r   rB   r   a_8r   rJ   r!   r   _EnglishStemmer__r_R2rm   r.   r.   r/   Z
__r_Step_3  s6    



zEnglishStemmer.__r_Step_3c                 C   s   | j | _| tj}|dkr dS | j | _|  s4dS |dkrJ|  sdS n~z\| j| j  }z| 	dsjt
 t W n t
k
r   Y nX | j| | _ | 	dsW dS W n tk
r   Y nX |  sdS dS )Nr   Fr   sr   T)r   r   rB   r   a_9r   rp   r   r%   r:   r    r   )r(   rF   r)   r.   r.   r/   Z
__r_Step_4  s4    

 

 zEnglishStemmer.__r_Step_4c                 C   s  | j | _| tj}|dkr dS | j | _|dkrzz|  sBt t W n tk
r^   Y nX | 	 snW dS | j
| j  }z|  st W W dS  tk
r   Y nX | j
| | _ W n tk
r   Y nX |  sdS n(|  sdS | dsdS |  s dS dS )Nr   Fr   rh   T)r   r   rB   r   a_10r   rp   r    r   rJ   r%   rN   r'   r   r:   )r(   rF   r*   r.   r.   r/   Z
__r_Step_5  sD    
   

zEnglishStemmer.__r_Step_5c                 C   s   | j | _| tj}|dkr dS | j | _| j | jk r8dS |dkrP| dsdS n|dkrh| dsdS nv|dkr| dsdS n^|d	kr| d
sdS nF|dkr| dsdS n.|dkr| dsdS n|dkr| dsdS dS )Nr   Fr   skyr?   idlrA   ZgentlrU   ZuglirW   ZearlirY   Zonlir[   ZsinglT)r   r   r2   r   a_11r   r%   r!   rm   r.   r.   r/   Z__r_exception1  s:    






zEnglishStemmer.__r_exception1c                 C   s   | j s
dS | j}zzx| j}z0| j| _| ds4t | j| _|| _t W n tk
r^   Y nX || _| j| jkrxt |  jd7  _qW n tk
r   Y nX | 	dsW dS W q
W n tk
r   Y nX || _qq
dS )NFr   r   r
   T)
r   r   r   r   r'   r   r    r%   r   r!   r4   r.   r.   r/   Z__r_postlude  s:    

  
 zEnglishStemmer.__r_postludec                 C   s  z| j }z|  st t W n tk
r6   Y nX || _ zV| j }z*| j d }|| jkrbt || _ t W n tk
r   Y nX || _ t W n tk
r   Y nX || _ |   |   | j | _	| j| _ | j| j  }| 
  | j| | _ | j| j  }|   | j| | _ | j| j  }|   | j| | _ | j| j  }|   | j| | _ | j| j  }|   | j| | _ | j| j  }	|   | j|	 | _ | j| j  }
|   | j|
 | _ | j	| _ | j }|   || _ W n tk
r   Y nX dS )NrA   T)r   _EnglishStemmer__r_exception1r    r   r%   r&   r'   _EnglishStemmer__r_prelude_EnglishStemmer__r_mark_regionsr9   _EnglishStemmer__r_Step_1a_EnglishStemmer__r_Step_1b_EnglishStemmer__r_Step_1c_EnglishStemmer__r_Step_2_EnglishStemmer__r_Step_3_EnglishStemmer__r_Step_4_EnglishStemmer__r_Step_5_EnglishStemmer__r_postlude)r(   r)   r*   r   r-   rO   rP   rQ   Zv_9Zv_10Zv_11Zv_12r.   r.   r/   _stem  sp    
 


 
 
 zEnglishStemmer._stemZarsenZcommunemergZgenerZlaterZorganr5   Zuniversr   r   z's'z'sZiedr?   rq   rA   ZiesZssesr>   ussuccprocexcZevenZcannZinnZearrZherrout ZedZeedZingZedlyZeedlyrU   ZinglyZbbddffZggblmmnnppZrratttZizZanciZenciZogirg   Zli   Zblire   ZabliZallir]   Zfullir_   Zlessliri   Zouslira   ZentlirW   ZalitiZbilitiZivitirc   ZtionalZationalr[   ZalismZationZization   rY   ZizerZatorZivenessZfulnessZousnessZogistrf   ZicateZativeZalizeZicitiZicalr`   Znessrn   rT   rS   rV   Zibler\   rd   rZ   Zitir^   ZismZionZerrb   antrX   ZmentZementrh   ZandesZatlasZbiasZcosmosZearlyZgentlyZhoweZidlynewsonlyZsinglyZskiesrt   ZuglyN)'__name__
__module____qualname____doc__rM   r"   r7   rl   r   r1   r0   rx   ry   rN   rJ   rp   rz   r{   r|   r}   r~   r   r   rw   r   r   r   r3   rC   rD   rI   rK   rH   rL   rk   ro   rr   rs   rv   r.   r.   r.   r/   r      s,  
: 0a? $7



















































































































r   c                   @   s   e Zd ZdS )r   Nr   r   r   r.   r.   r.   r/   r     s    r   c                   @   s   e Zd ZdS )r    Nr   r.   r.   r.   r/   r      s    r    c                   @   s   e Zd ZdS )r'   Nr   r.   r.   r.   r/   r'     s    r'   c                   @   s   e Zd ZdS )r&   Nr   r.   r.   r.   r/   r&     s    r&   c                   @   s   e Zd ZdS )r$   Nr   r.   r.   r.   r/   r$     s    r$   c                   @   s   e Zd ZdS )r#   Nr   r.   r.   r.   r/   r#     s    r#   N)Zbasestemmerr   Zamongr   r   BaseExceptionr   r    r'   r&   r$   r#   r.   r.   r.   r/   <module>   s        h