a
    aw:                     @   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                   @   s8  e Zd Z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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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d0dd"ed1dd/ed2d)d3ed4dd3ed5dd/ed6dd+ed7dd.ed8dd$gZ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gZ	ed@dd	edAdd	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dPdQd	edRdSd	edTdd	gZ
g dUZg dVZdWZdZdZdXdY ZdZd[ Zd\d] Zd^d_ Zd`da Zdbdc Zddde Zdfdg Zdhdi Zdjdk Zdldm Zdndo ZdpS )qPorterStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated by Snowball 2.2.0 - https://snowballstem.org/
    s   Zies       Zssesr   ss ZbbddZffZggZblZmmnnppZrrZatttZizZedZeedZingZanciZenciZabli   Zeli   Zalli	   Zousli   Zentli   ZalitiZbiliti   Z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ment   Zement   Zou)   A   r&   r   )r   r'   r(      r   Fc                 C   s@   |  tjddsdS | tjdds(dS |  tjdds<dS dS )NY   y   Fa   T)Zout_grouping_br   g_v_WXYZin_grouping_bg_vself r1   =lib/python3.9/site-packages/snowballstemmer/porter_stemmer.pyZ
__r_shortvi   s    zPorterStemmer.__r_shortvc                 C   s   | j | jksdS dS NFT)I_p1cursorr/   r1   r1   r2   Z__r_R1r   s    zPorterStemmer.__r_R1c                 C   s   | j | jksdS dS r3   )I_p2r5   r/   r1   r1   r2   Z__r_R2w   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   r
   r	   ir   T)r5   ketfind_among_br   a_0bra
slice_from	slice_delr0   	among_varr1   r1   r2   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
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   eer,   r+   er	   T)r5   r8   r9   r   a_2r;   _PorterStemmer__r_R1r<   limitgo_out_grouping_br.   r=   a_1insertlimit_backwardr4   _PorterStemmer__r_shortv)r0   r?   v_1v_2cv_3r1   r1   r2   Z__r_Step_1b   sX    



zPorterStemmer.__r_Step_1bc                 C   s   | j | _zZ| j| j  }z| ds(t t W n tyB   Y n0 | j| | _ | ds`W dS W n tyt   Y n0 | j | _| tj	ddsdS |  j d8  _ | 
dsdS dS )	NyYFr,   r+   r   r7   T)r5   r8   rD   eq_s_blab1lab0r;   rE   r   r.   r<   )r0   rJ   r1   r1   r2   Z__r_Step_1c   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	   r   r   r   r   r   r   r$   r   rA   r   r!   r   r   r   r"   r   r   r   r#   r   r    ZbleT)r5   r8   r9   r   a_3r;   rC   r<   r>   r1   r1   r2   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	   r   T)	r5   r8   r9   r   a_4r;   rC   r<   r=   r>   r1   r1   r2   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 nzzZ| j| j  }z| 	dsjt
 t W n t
y   Y n0 | j| | _ | 	dsW dS W n ty   Y n0 |  sdS dS )Nr   Fr   r   tT)r5   r8   r9   r   a_5r;   _PorterStemmer__r_R2r=   rD   rP   rQ   rR   )r0   r?   rJ   r1   r1   r2   Z
__r_Step_4  s0    



zPorterStemmer.__r_Step_4c                 C   s   | j | _| dsdS | j | _z| j| j  }z|  s<t t W n tyV   Y n0 | j| | _ |  srW dS | j| j  }z| 	 st
 W W dS  t
y   Y n0 | j| | _ W n ty   Y n0 |  sdS dS )NrA   FT)r5   r8   rP   r;   rD   rW   rQ   rR   rC   rI   lab2r=   )r0   rJ   rK   r1   r1   r2   Z__r_Step_5a7  s2    

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)r5   r8   rP   r;   rW   r=   r/   r1   r1   r2   Z__r_Step_5bS  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yX   Y n0 || _| j}z| j}zz| j}zF| tj	ddst
 | j| _| dst
 | j| _|| _t W n t
y   Y n0 || _| j| jkrt |  jd7  _qrW n ty   Y n0 | ds&W W dS d| _ W qhW n tyF   Y n0 || _qTqhW n tyj   Y n0 || _| j| _| j| _| j}z| tj	ddst |  jd7  _| tj	ddst |  jd7  _| j| _| tj	ddst |  jd7  _| tj	ddst |  jd7  _| j| _W n tyH   Y n0 || _| 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 s~t | j}zz~| j}z2| j| _| dst | j| _|| _t W n ty   Y n0 || _| j| jkrt  |  jd7  _qW n ty   Y n0 | ds.W W dS W q~W n t yJ   Y n0 || _qZq~W n typ   Y n0 || _dS )NFrN   rO   Tr,   r+   r   )!	B_Y_foundr5   r;   Zeq_srR   r8   r<   Zin_groupingr   r.   lab4lab3rD   rX   rQ   r4   r6   Zgo_out_groupinglab5Zgo_in_groupingrH   _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)r0   rJ   rK   rM   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_16r1   r1   r2   _stema  s    







zPorterStemmer._stemN)__name__
__module____qualname____doc__r   r:   rF   rB   rS   rT   rV   r.   r-   rZ   r6   r4   rI   rC   rW   r^   r_   r`   ra   rb   rc   rd   re   rj   r1   r1   r1   r2   r      s   

































































	21r   c                   @   s   e Zd ZdS )rR   Nrk   rl   rm   r1   r1   r1   r2   rR         rR   c                   @   s   e Zd ZdS )rQ   Nro   r1   r1   r1   r2   rQ     rp   rQ   c                   @   s   e Zd ZdS )rX   Nro   r1   r1   r1   r2   rX     rp   rX   c                   @   s   e Zd ZdS )r\   Nro   r1   r1   r1   r2   r\     rp   r\   c                   @   s   e Zd ZdS )r[   Nro   r1   r1   r1   r2   r[     rp   r[   c                   @   s   e Zd ZdS )r]   Nro   r1   r1   r1   r2   r]     rp   r]   c                   @   s   e Zd ZdS )rf   Nro   r1   r1   r1   r2   rf     rp   rf   c                   @   s   e Zd ZdS )ri   Nro   r1   r1   r1   r2   ri     rp   ri   c                   @   s   e Zd ZdS )rh   Nro   r1   r1   r1   r2   rh     rp   rh   c                   @   s   e Zd ZdS )rg   Nro   r1   r1   r1   r2   rg     rp   rg   N)Zbasestemmerr   Zamongr   r   BaseExceptionrR   rQ   rX   r\   r[   r]   rf   ri   rh   rg   r1   r1   r1   r2   <module>   s      [