B
    _ҔaW                 @   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               @   s8  e Zd ZdZ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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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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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d0dd1ed2dd3ed4dd5ed6dd7ed8dd9ed:dd1ed;dd-ed<dd=ed>dded?d5d@edAdd1edBdd@edCdDdEedFddEedGdd@edHdd=edIdd3edJdd7gZ
edKdd/edLddEedMddedNdd/edOdd/ed>dded?d9dedPdd9edQdd9g	ZedRddedSddedTddedUddedVddedWddedXddedYddedZd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edbd+dedcdddgZededdedfddgZedgddedhddediddedjddedkddedlddedmddednddgZedoddedpddedqddedrddedsddedtdd3edudd@edvddedwddEedxdd/edyddedzdd7ed{dd=ed|dded}dded~ddeddd9eddd1gZdDddddgZddDdddgZdddgZdZ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 dd Z!dd Z"dd Z#dd Z$dd Z%dS )EnglishStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated by Snowball 2.2.0 - https://snowballstem.org/
    ZarsenZcommunZgener'r   z's'    z'sZied   s   ZiesZssesssus ZbbddZffZggZblZmmnnppZrrZatttZizZedZeedZingZedlyZeedlyZinglyZanciZenciZogi   Zli   Zbli   Zabli   Zalli   Zfulli	   Zlessli   Zousli
   Zentli   ZalitiZbilitiZiviti   ZtionalZational   ZalismZationZization      ZizerZatorZivenessZfulnessZousnessZicateZativeZalizeZicitiZicalfulZnessicanceenceableZibleateiveizeZitialZismZionZerousZantentZmentZement   elZsucceedZproceedZexceedZcanningZinningZearringZherringZoutingZandesZatlasZbiasZcosmosZdyingZearlyZgentlyZhoweZidlyZlyingZnewsZonlyZsinglyZskiesZskisskyZtyingZuglyA      7      Fc             C   s  d| _ | j}y0| j| _| ds&t | j| _|  s:dS W n tk
rP   Y nX || _| j}y8| j| _| dsxt | j| _| dsdS d| _ W n tk
r   Y nX || _| j}yx| j}yyx| j}yF| 	t
jddst | j| _| dst | j| _|| _t W n tk
r*   Y nX || _| j| jkrFt |  jd7  _qW W n tk
rp   Y nX | dsdS d| _ wW n tk
r   Y nX || _P qW W n tk
r   Y nX || _dS )	NFr   yYTa   y   r   )	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_3Zv_4v_5 rJ   >lib/python3.7/site-packages/snowballstemmer/english_stemmer.pyZ__r_prelude   sz    
 


 

   
 zEnglishStemmer.__r_preludec             C   s<  | j | _| j | _| j}yy| j}y | tjdkr:t t W n tk
rV   Y nX || _| 	tj
ddstt |  jd7  _| tj
ddst |  jd7  _W n tk
r   Y nX | j| _| 	tj
ddst |  jd7  _| tj
ddst |  jd7  _| j| _W n tk
r0   Y nX || _dS )Nr   r4   r5   r   T)rB   I_p1I_p2r7   
find_amongr   a_0rD   r=   Zgo_out_groupingr?   r:   Zgo_in_grouping)rE   rF   rG   rJ   rJ   rK   Z__r_mark_regions   sB    
   zEnglishStemmer.__r_mark_regionsc             C   s   y| j | j }yL| tjdds&t | tjdds<t | tjddsRt t W n tk
rn   Y nX | j | | _| tjddsdS | tjddsdS | j| j	krdS W n tk
r   Y nX dS )NY   r5   r4   FT)
rB   r7   out_grouping_br   g_v_WXYr=   in_grouping_br?   r:   limit_backward)rE   rF   rJ   rJ   rK   Z
__r_shortv   s,    
  zEnglishStemmer.__r_shortvc             C   s   | j | jksdS dS )NFT)rL   r7   )rE   rJ   rJ   rK   Z__r_R1  s    zEnglishStemmer.__r_R1c             C   s   | j | jksdS dS )NFT)rM   r7   )rE   rJ   rJ   rK   Z__r_R2  s    zEnglishStemmer.__r_R2c             C   s  | j | j }yB| j| _| tjdkr8| j | | _t | j| _|  sLdS W n tk
rb   Y nX | j| _| tj	}|dkrdS | j| _|dkr| 
dsdS n|dkrDy|| j | j }y8| jd }|| jk rt || _| 
dsdS t W n tk
r
   Y nX | j | | _| 
ds(dS W n tk
r@   Y nX n\|dkr| j| jkr`dS |  jd8  _| tjd	d
sdS |  jd8  _|  sdS dS )Nr   Fr   r   r   iZier
   r4   r5   T)rB   r7   r;   find_among_br   a_1r:   r8   r<   a_2r>   rT   rD   r=   go_out_grouping_br?   )rE   rF   	among_varrG   crJ   rJ   rK   Z__r_Step_1a   s^     





  

zEnglishStemmer.__r_Step_1ac             C   s  | j | _| tj}|dkr dS | j | _|dkrN|  s<dS | dsJdS n>| j| j  }| 	tj
ddsndS |  j d8  _ | j| | _ |  sdS | j| j  }| tj}|dkrdS | j| | _ |dkr| j }| | j | j d || _ n|dkr6| j | _| j | jkrdS |  j d8  _ | j | _|  sdS nV| j | jkrHdS | j| j  }|  sbdS | j| | _ | j }| | j | j d || _ d	S )
Nr   Fr   eer4   r5   r+   r   T)r7   r;   rV   r   a_4r8   _EnglishStemmer__r_R1r>   rB   rY   r?   r<   a_3insertrT   rL   _EnglishStemmer__r_shortv)rE   rZ   rF   rG   r[   rH   rJ   rJ   rK   Z__r_Step_1bP  sX    



zEnglishStemmer.__r_Step_1bc             C   s   | j | _yZ| j| j  }y| ds(t t W n tk
rD   Y nX | j| | _ | ds`dS W n tk
rv   Y nX | j | _| tj	ddsdS y| j | j
krt dS  tk
r   Y nX | dsdS dS )Nr2   r3   Fr4   r5   rU   T)r7   r;   rB   eq_s_br=   r:   r8   rQ   r   r?   rT   rD   r>   )rE   rF   rJ   rJ   rK   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 nx|dkr| ds~d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r<| dsdS n|dkrX| dsdS n|dkrt| dsdS nl|dkr| dsdS | dsdS n@|dkr| dsdS n$| 	tj
d d!sdS |  sdS d"S )#Nr   Fr   tionr   r"   r
   r!   r   r#   r   r)   r   r&   r   r$   r   r'   r   r   r   r(   r   r%   r   Zbler   r,   Zogr   Zlessc   t   T)r7   r;   rV   r   a_5r8   r^   r>   rb   rS   
g_valid_LIr<   )rE   rZ   rJ   rJ   rK   Z
__r_Step_2  sp    














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   rc   r   r$   r
   r'   r   r    r   T)
r7   r;   rV   r   a_6r8   r^   r>   r<   _EnglishStemmer__r_R2)rE   rZ   rJ   rJ   rK   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|yZ| j| j  }y| 	dsjt
 t W n t
k
r   Y nX | j| | _ | 	dsdS W n tk
r   Y nX |  sdS dS )Nr   Fr   r	   tT)r7   r;   rV   r   a_7r8   ri   r<   rB   rb   r=   r:   )rE   rZ   rF   rJ   rJ   rK   Z
__r_Step_4  s4    

 
 zEnglishStemmer.__r_Step_4c             C   s  | j | _| tj}|dkr dS | j | _|dkry| j| j  }y|  sNt t	 W n tk
rj   Y nX | j| | _ | 
 sdS | j| j  }y|  st dS  tk
r   Y nX | j| | _ W n t	k
r   Y nX |  sdS n*|  sdS | dsdS |  sdS dS )Nr   Fr   r,   T)r7   r;   rV   r   a_8r8   rB   ri   r=   r:   r^   ra   rD   r<   rb   )rE   rZ   rF   rG   rJ   rJ   rK   Z
__r_Step_5  sH    
   
zEnglishStemmer.__r_Step_5c             C   s8   | j | _| tjdkrdS | j | _| j | jkr4dS dS )Nr   FT)r7   r;   rV   r   a_9r8   rT   )rE   rJ   rJ   rK   Z__r_exception2:  s    zEnglishStemmer.__r_exception2c             C   sN  | j | _| tj}|dkr dS | j | _| j | jk r8dS |dkrP| dsNdS n|dkrh| dsfdS n|dkr| ds~d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 nj|dkr| dsdS nR|dkr| dsJdS n6|dkr0| dsJdS n|dkrJ| dsJdS dS )Nr   Fr   Zskir   r-   r
   Zdier   Zlier   Ztier   Zidlr   Zgentlr   Zuglir   Zearlir   Zonlir   ZsinglT)r7   r8   rN   r   a_10r;   rB   r>   )rE   rZ   rJ   rJ   rK   Z__r_exception1C  sR    










zEnglishStemmer.__r_exception1c             C   s   | j s
dS x| j}yy|xv| j}y0| j| _| ds8t | j| _|| _t W n tk
rb   Y nX || _| j| jkr|t |  jd7  _qW W n tk
r   Y nX | 	dsdS wW n tk
r   Y nX || _P qW dS )NFr3   r   r2   T)
r6   r7   r8   r9   rD   r;   r=   rB   r:   r>   )rE   rF   rG   rJ   rJ   rK   Z__r_postluden  s>    

  
 zEnglishStemmer.__r_postludec             C   sR  y4| j }y|  st t W n tk
r6   Y nX || _ yV| j }y*| 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| | _ y| j| j  }y|  st t W n tk
r0   Y nX | 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 | j	| _ | j }|   || _ W n tk
rL   Y nX dS )Nr
   T)r7   _EnglishStemmer__r_exception1r=   r:   rB   rC   rD   _EnglishStemmer__r_prelude_EnglishStemmer__r_mark_regionsrT   _EnglishStemmer__r_Step_1a_EnglishStemmer__r_exception2r@   rA   _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)rE   rF   rG   r[   rI   Zv_6Zv_7Zv_8Zv_9Zv_10Zv_11Zv_12Zv_13rJ   rJ   rK   _stem  s    
 


 
 

  
 zEnglishStemmer._stemN)&__name__
__module____qualname____doc__r   rO   rW   rX   r_   r]   rf   rh   rk   rl   rm   rn   r?   rR   rg   r6   rM   rL   rp   rq   ra   r^   ri   rr   rt   ru   rv   rw   rx   ry   rs   ro   rz   r{   rJ   rJ   rJ   rK   r      s
  



































































































: 02< &	+r   c               @   s   e Zd ZdS )r:   N)r|   r}   r~   rJ   rJ   rJ   rK   r:     s    r:   c               @   s   e Zd ZdS )r=   N)r|   r}   r~   rJ   rJ   rJ   rK   r=     s    r=   c               @   s   e Zd ZdS )rD   N)r|   r}   r~   rJ   rJ   rJ   rK   rD     s    rD   c               @   s   e Zd ZdS )rC   N)r|   r}   r~   rJ   rJ   rJ   rK   rC     s    rC   c               @   s   e Zd ZdS )rA   N)r|   r}   r~   rJ   rJ   rJ   rK   rA     s    rA   c               @   s   e Zd ZdS )r@   N)r|   r}   r~   rJ   rJ   rJ   rK   r@     s    r@   N)Zbasestemmerr   Zamongr   r   BaseExceptionr:   r=   rD   rC   rA   r@   rJ   rJ   rJ   rK   <module>   s        J