U
    YSh9                     @   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dS )   )BaseStemmer)Amongc                   @   sN  e Zd ZdZddddddhZ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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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+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dAd&dBedCd&dDedEd&dFedGd&dHedId&dDedJd&dKedLd&dMedNd&d+edOdPdQedRd&dDedSd&dQedTdKdUedVd&dUedWd&dQedXd&dMedYd&dPedZd&dF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dad&d'gZedbd&d+edcd&d+eddd&d+eded&d+edfd&d+edgd&d+edhd&d+edid&d+edjd&d+edkd&d+edld&d+edmd&d)ednd&d+edod&d+edpd&d+edqd&d+edrdsd+edtdud+edvd&d+gZdwS )xPorterStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated from porter.sbl by Snowball 3.0.1 - https://snowballstem.org/
    aeiouywxYF    c                 C   s4   |  tjsdS | tjs dS |  tjs0dS dS )NFT)Zout_grouping_br   g_v_WXYZin_grouping_bg_vself r   Q/root/rtd-docs/venv/lib/python3.8/site-packages/snowballstemmer/porter_stemmer.pyZ
__r_shortv   s    zPorterStemmer.__r_shortvc                 C   s   | j | jkS N)I_p1cursorr   r   r   r   Z__r_R1   s    zPorterStemmer.__r_R1c                 C   s   | j | jkS r   )I_p2r   r   r   r   r   Z__r_R2"   s    zPorterStemmer.__r_R2c                 C   sp   | j | _| tj}|dkr dS | j | _|dkr@| dsldS n,|dkrX| dsldS n|dkrl|  sldS dS )	Nr   Fr   ss   r      T)r   ketfind_among_br   a_0bra
slice_from	slice_delr   	among_varr   r   r   Z__r_Step_1a%   s    

zPorterStemmer.__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
sjdS |  j d8  _ | j| | _ |  sdS | j| j  }| tj}| j| | _ |dkr| j }| | j | j d || _ n|dkr$| j | _| j | jkrdS |  j d8  _ | j | _|  szdS nV| j | jkr6dS | j| j  }|  sPdS | j| | _ | j }| | j | j d || _ dS )Nr   Fr   eer   r   T)r   r   r   r   a_2r   _PorterStemmer__r_R1r    limitgo_out_grouping_br   r!   a_1insertlimit_backwardr   _PorterStemmer__r_shortv)r   r#   v_1v_2cv_3r   r   r   Z__r_Step_1b7   sT    



zPorterStemmer.__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 |  j d8  _ | 
dsdS dS )Nr
   r   Fr   r   T)r   r   r'   eq_s_blab1lab0r   r(   r   r   r    )r   r-   r   r   r   Z__r_Step_1cg   s*    

 

 
zPorterStemmer.__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 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r| dsxdS nd|dkr0| dsxdS nH|dkrL| dsxdS n,|dkrh| dsxdS n| dsxdS dS )Nr   Fr   Ztionr   encer   ance   able   ent   r      ize   ate	   al
   ful   ous   iveZbleT)r   r   r   r   a_3r   r&   r    r"   r   r   r   Z
__r_Step_2|   s\    











zPorterStemmer.__r_Step_2c                 C   st   | j | _| tj}|dkr dS | j | _|  s4dS |dkrL| dspdS n$|dkrd| dspdS n|  spdS dS )Nr   Fr   r@   r   icT)	r   r   r   r   a_4r   r&   r    r!   r"   r   r   r   Z
__r_Step_3   s     

zPorterStemmer.__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   stT)r   r   r   r   a_5r   _PorterStemmer__r_R2r!   r'   r1   r2   r3   )r   r#   r-   r   r   r   Z
__r_Step_4   s4    

 

 zPorterStemmer.__r_Step_4c                 C   s   | j | _| dsdS | j | _zz|  s0t t W n tk
rL   Y nX |  s\W dS | j| j  }z| 	 sxt
 W W dS  t
k
r   Y nX | j| | _ W n tk
r   Y nX |  sdS dS )Nr   FT)r   r   r1   r   rM   r2   r3   r&   r'   r,   lab2r!   )r   r.   r   r   r   Z__r_Step_5a   s4    

   zPorterStemmer.__r_Step_5ac                 C   sH   | j | _| dsdS | j | _|  s*dS | ds8dS |  sDdS dS )NlFT)r   r   r1   r   rM   r!   r   r   r   r   Z__r_Step_5b   s    

zPorterStemmer.__r_Step_5bc                 C   s|  d| _ | j}z:| j| _| ds&t | j| _| ds>W dS d| _ W n tk
rZ   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rt |  jd7  _qtW n tk
r   Y nX | ds(W W dS d| _ W qjW n tk
rJ   Y nX || _qXqjW n tk
rp   Y nX || _| j| _| j| _| j}z| tj	st |  jd7  _| tj	st |  jd7  _| j| _| tj	st |  jd7  _| tj	st |  jd7  _| j| _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 }|   | j| | _| j| _| j}z| j svt | j}zz| j}z2| j| _| dst | j| _|| _t W n tk
r   Y nX || _| j| jkrt  |  jd7  _qW n tk
r   Y nX | ds*W W dS W qvW n t k
rH   Y nX || _qXqvW n tk
rp   Y nX || _dS )NFr
   r   Tr   )!	B_Y_foundr   r   Zeq_sr3   r   r    Zin_groupingr   r   lab4lab3r'   rN   r2   r   r   Zgo_out_groupinglab5Zgo_in_groupingr+   _PorterStemmer__r_Step_1a_PorterStemmer__r_Step_1b_PorterStemmer__r_Step_1c_PorterStemmer__r_Step_2_PorterStemmer__r_Step_3_PorterStemmer__r_Step_4_PorterStemmer__r_Step_5a_PorterStemmer__r_Step_5blab6lab9lab8lab7)r   r-   r.   r0   Zv_4Zv_5Zv_6Zv_7Zv_8Zv_9Zv_10Zv_11Zv_12Zv_13Zv_14Zv_15Zv_16r   r   r   _stem  s   


 

   
  
  
  zPorterStemmer._stemrJ   r   Ziesr   Zssesr   r    ZbbddffZggblmmnnppZrratttZizZedZeedZingZanciZenciZablir6   Zelir:   Zallir?   ZouslirC   Zentlir8   ZalitiZbiliti   ZivitirE   ZtionalZationalrA   r=   ZalismZationZizationr;   ZizerZatorZivenessZfulnessZousnessZicateZativeZalizeZicitiZicalrB   ZnessrH   r5   r4   r7   Zibler>   rF   r<   Zitir@   ZismZionZerrD   antr9   Zment   Zement   ZouN)__name__
__module____qualname____doc__r   r   rP   r   r   r,   r&   rM   rT   rU   rV   rW   rX   rY   rZ   r[   r`   r   r   r)   r%   rG   rI   rL   r   r   r   r   r      s   	01~

































































r   c                   @   s   e Zd ZdS )r3   Nro   rp   rq   r   r   r   r   r3     s    r3   c                   @   s   e Zd ZdS )r2   Nrs   r   r   r   r   r2     s    r2   c                   @   s   e Zd ZdS )rN   Nrs   r   r   r   r   rN     s    rN   c                   @   s   e Zd ZdS )rR   Nrs   r   r   r   r   rR     s    rR   c                   @   s   e Zd ZdS )rQ   Nrs   r   r   r   r   rQ     s    rQ   c                   @   s   e Zd ZdS )rS   Nrs   r   r   r   r   rS     s    rS   c                   @   s   e Zd ZdS )r\   Nrs   r   r   r   r   r\     s    r\   c                   @   s   e Zd ZdS )r_   Nrs   r   r   r   r   r_     s    r_   c                   @   s   e Zd ZdS )r^   Nrs   r   r   r   r   r^     s    r^   c                   @   s   e Zd ZdS )r]   Nrs   r   r   r   r   r]     s    r]   N)Zbasestemmerr   Zamongr   r   BaseExceptionr3   r2   rN   rR   rQ   rS   r\   r_   r^   r]   r   r   r   r   <module>   s      S