B
    _ҔaO                 @   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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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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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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ed:dded;dded<dded=dd>ed?d@d
edAdBdCedDddedEdd>edFdGd
edHdIdCedJdGdKedLdGdMedNddOedPdQdRedSddedTddg+Z	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dcdKdedddKdededdedfddedgddedhddediddedjddedkdldedmdldednddedoddedpddedqddedrddedsddedtddeduddedvddedwddedxddg#Z
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dddedddedd(dedddedddedddedddedddedddedd>dedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddg&Zedddedd	dedd	dedddedddedddgZedddedddedddedddedddgZddddd	d	d	d	d	d	d	d	d	d	d	dddd(dgZdddd	d	d	d	d	d	d	d	d	d	d	d	d	dgZd	Z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dS )FrenchStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated by Snowball 2.2.0 - https://snowballstem.org/
    colZparZtap    H       Her      Hi   IU   Y   iqUablu   Ièru   ièrZeusZivicZabilZiqUeZatriceZanceZenceZlogieZableZismeZeuse   ZisteZive   ifZusionZationZutionZateurZiqUesZatricesZancesZencesZlogiesZablesZismesZeusesZistesZivesZifsZusionsZationsZutionsZateursZments   Zements   Z	issements      u   itésZmentZement"   Zissement#   Zamment   Zemment   Zaux
   Zeaux'   	   euxu   itéZiraZieZisseZissanteiZiraiZirZirasZiesu   îmesZissesZissantesu   îtesisZiraisZissaisZirionsZissionsZironsZissonsZissantsitZirait   ZissaitZissantZiraIentZissaIentZirentZissentZirontu   îtZiriezZissiezZirezZissezaZeraZasseZanteu   éeZaiZeraiZerasZerasu   âmesZassesZantesu   âtesu   éesZaisZeraisZionsZerions   ZassionsZeronsZantsu   ésZaitZerait   antZaIentZeraIent   u   èrentZassentZerontu   âtZezZiez    Zeriez!   ZassiezZerez   éeu   Ièreu   ièreZionZIerZierZellZeillZennZonnZettA            g      c             C   s  x| j }ylyLxD| j }yy| j }y:| tjddsDt | j | _y| j }yF| dsft | j | _| tjddst | 	dsdS t
 W n tk
r   Y nX || _ yF| dst | j | _| tjddst | 	dsdS t
 W n tk
r   Y nX || _ | ds,t | j | _| 	d	sDdS W n t
k
r\   Y nX t W n tk
r|   Y nX || _ y<| j | _| d
st | j | _| 	dsdS t W n tk
r   Y nX || _ y<| j | _| dst | j | _| 	dsdS t W n tk
r0   Y nX || _ yT| j | _| dsTt | j | _| tjddstt | 	d	sdS t W n tk
r   Y nX || _ | dst | j | _| dst | j | _| 	dsdS W n tk
r   Y nX || _ t W n tk
r,   Y nX || _ | j | jkrHt |  j d7  _ qW W n tk
rr   Y nX wW n tk
r   Y nX || _ P qW dS )Na      ur   Fr'   r   yr      ër      ïr   qr   T)cursorin_groupingr   g_vlab4braZeq_slab6ket
slice_fromlab5lab7lab3lab8lab9lab10lab2lab1limitlab0)selfv_1v_2v_3v_4 rY   =lib/python3.7/site-packages/snowballstemmer/french_stemmer.pyZ__r_prelude   s    


 


  
 
 
 
  
   zFrenchStemmer.__r_preludec             C   s4  | j | _| j | _| j | _| j}y"y| j}yV| tjddsBt | tjddsXt | j| j krjt |  jd7  _t	 W n tk
r   Y nX || _y | 
tjdkrt t	 W n tk
r   Y nX || _| j| j krt |  jd7  _| tjddst |  jd7  _W n t	k
r6   Y nX | j| _W n tk
rX   Y nX || _| j}y| 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st |  jd7  _| j| _W n tk
r(   Y nX || _dS )Nr;   r<   r   r
   T)rR   I_pVI_p1I_p2rB   rC   r   rD   rP   rQ   
find_amonga_0rL   rS   Zgo_out_groupingrE   Zgo_in_grouping)rT   rU   rV   rW   rY   rY   rZ   Z__r_mark_regions(  st    
 
    zFrenchStemmer.__r_mark_regionsc             C   s  x| j }y| j | _| tj}|dkr.t | j | _|dkrN| dsdS n|dkrf| dsdS n~|dkr~| dsdS nf|d	kr| d
sdS nN|dkr| dsdS n6|dkr|  sdS n | j | j	krt |  j d7  _ wW n tk
r   Y nX || _ P qW dS )Nr
   r   r'   Fr   r=   r   r>   r   r?   r   r@   r   T)
rB   rF   r^   r   a_1rS   rH   rI   	slice_delrR   )rT   rU   	among_varrY   rY   rZ   Z__r_postlude_  sF    




 zFrenchStemmer.__r_postludec             C   s   | j | jksdS dS )NFT)r[   rB   )rT   rY   rY   rZ   Z__r_RV  s    zFrenchStemmer.__r_RVc             C   s   | j | jksdS dS )NFT)r\   rB   )rT   rY   rY   rZ   Z__r_R1  s    zFrenchStemmer.__r_R1c             C   s   | j | jksdS dS )NFT)r]   rB   )rT   rY   rY   rZ   Z__r_R2  s    zFrenchStemmer.__r_R2c             C   s  | j | _| tj}|dkr dS | j | _|dkrL|  s<dS |  sHdS n|dkrD|  sbdS |  sndS | j| j  }y| j | _| 	ds| j| | _ t
 | j | _yf| j| j  }y$|  st |  sdS t W n tk
r   Y nX | j| | _ | dsdS W n tk
r$   Y nX W n t
k
r>   Y nX n|dkrp|  s\dS | dsdS n|d	kr|  sdS | d
sdS nV|dkr|  sdS | dsdS n*|dkr|  sdS |  sdS | j| j  }y| j | _| tj}|dkr.| j| | _ t | j | _|dkr|  s\| j| | _ t |  sjdS | j | _| 	ds| j| | _ t | j | _|  s| j| | _ t |  sdS n|dkrry| j| j  }y(|  st |  sdS t W n tk
r   Y nX | j| | _ |  sF| j| | _ t | dsVdS W n tk
rn   Y nX nb|dkr|  s| j| | _ t |  sdS n,|  s| j| | _ t | dsdS W n tk
r   Y nX n |dkr|  s
dS |  sdS | j| j  }y| j | _| tj}|dkrX| j| | _ t | j | _|dkryl| j| j  }y(|  st |  sdS t W n tk
r   Y nX | j| | _ | dsdS W n tk
r   Y nX n|dkryl| j| j  }y(|  st |  s(dS t W n tk
rF   Y nX | j| | _ | dsddS W n tk
r|   Y nX n*|  s| j| | _ t |  sdS W n tk
r   Y nX n*|dkr&|  sdS |  sdS | j| j  }	y| j | _| 	ds$| j|	 | _ t | j | _|  sH| j|	 | _ t |  sVdS | j | _| 	ds|| j|	 | _ t | j | _yl| j| j  }
y(|  st |  sdS t W n tk
r   Y nX | j|
 | _ | dsdS W n tk
r   Y nX W n tk
r    Y nX n|dkrD| dsdS n|dkrp|  s\dS | dsdS n|dkryz| j| j  }y(|  st |  sdS t W n tk
r   Y nX | j| | _ |  sdS | dsdS W n tk
r
   Y nX n|dkrL|  s&dS | tj dds<dS |  sdS n|dkrx|  sddS | dstdS dS |dkr|  sdS | dsdS dS | j| j  }| !tj ddsdS |  sdS | j| | _ |  sdS dS dS ) Nr
   Fr   r   r   r   r   logr   r=   r   Zentr   Zatr&   r'   r   r   r   r%   Zeaur#   Zalr   r   r;   r<   r!   r/   r"   T)"rB   rH   find_among_br   a_4rF   _FrenchStemmer__r_R2ra   rR   eq_s_brS   rP   rQ   rI   _FrenchStemmer__r_RVa_2rL   rJ   rE   _FrenchStemmer__r_R1a_3rG   rM   rK   rO   rN   lab11lab13lab12lab15lab14out_grouping_brD   Zin_grouping_b)rT   rb   rU   rV   rW   rX   v_5v_6v_7v_8v_9v_10v_11rY   rY   rZ   Z__r_standard_suffix  s
   


  
 



















 
 



 








  



  

 








  
 







 
 








z!FrenchStemmer.__r_standard_suffixc             C   s   | j | jk rdS | j}| j| _| j | _| tjdkr@|| _dS | j | _| j| j  }y| 	dsft
 || _dS  t
k
r   Y nX | j| | _ | tjdds|| _dS |  sdS || _dS )NFr
   r	   r;   r<   T)rB   r[   limit_backwardrH   rd   r   a_5rF   rR   rg   rS   rq   rD   ra   )rT   rV   rW   rY   rY   rZ   Z__r_i_verb_suffix  s2    
 zFrenchStemmer.__r_i_verb_suffixc             C   s   | j | jk rdS | j}| j| _| j | _| tj}|dkrD|| _dS | j | _|dkrt|  sf|| _dS | 	 sdS n|dkr| 	 sdS nj| 	 sdS | j
| j  }y<| j | _| ds| j
| | _ t | j | _| 	 sdS W n tk
r   Y nX || _dS )NFr
   r   r   r4   T)rB   r[   ry   rH   rd   r   a_6rF   rf   ra   rR   rg   rS   )rT   rV   rb   rW   rY   rY   rZ   Z__r_verb_suffix  sD    
 zFrenchStemmer.__r_verb_suffixc             C   s*  | j | j }y| j| _| ds2| j | | _t | j| _| j | j }yn| j | j }y| dsft t W n tk
r   Y nX | j | | _| t	j
dds| j | | _t W n tk
r   Y nX | j | | _|  sdS W n tk
r   Y nX | j| jk rdS | j}| j| _| j| _| t	j}|dkrB|| _dS | j| _|dkr|  sh|| _dS yf| j | j }y| dst t W n tk
r   Y nX | j | | _| ds|| _dS W n tk
r   Y nX |  s dS n*|d	kr| d
s dS n|  s dS || _dS )Nsr   r;      Fr
   r   tr   r'   T)rR   rB   rH   rg   rS   rF   rP   rQ   rq   r   g_keep_with_sra   r[   ry   rd   a_7rf   rE   rL   rI   )rT   rU   rV   rW   rr   rb   rs   rY   rY   rZ   Z__r_residual_suffix  s    


 
  



  


z!FrenchStemmer.__r_residual_suffixc             C   sj   | j | j }| tjdkr dS | j | | _| j| _| j| jkrDdS |  jd8  _| j| _|  sfdS dS )Nr
   Fr   T)	rR   rB   rd   r   a_8rH   ry   rF   ra   )rT   rU   rY   rY   rZ   Z__r_un_double$  s    zFrenchStemmer.__r_un_doublec             C   s   d}x@y$|  tjddst |d8 }wW n tk
r>   Y nX P qW |dkrRdS | j| _yZ| j| j }y| dszt t	 W n tk
r   Y nX | j| | _| dsdS W n t	k
r   Y nX | j| _
| dsdS d	S )
Nr   r;   r<   r
   Fr3      èr4   T)rq   r   rD   rS   rB   rH   rR   rg   rP   rQ   rF   rI   )rT   rU   rW   rY   rY   rZ   Z__r_un_accent3  s<     

 
 
zFrenchStemmer.__r_un_accentc             C   s  | j }|   || _ |   | j | _| j| _ | j| j  }yy| j| j  }y| j| j  }y| j| j  }y|  szt t W n tk
r   Y nX | j| | _ y|  st	 t W n t	k
r   Y nX | j| | _ | 
 st W n tk
r   Y nX | j| | _ | j| j  }y| j | _y| j| j  }y4| dsJt | j | _| dsbdS t W n tk
r   Y nX | j| | _ | ds| j| | _ t | j | _| dsdS W n tk
r   Y nX W n tk
r   Y nX t W n tk
r   Y nX | j| | _ |  s4t W n tk
rL   Y nX W n tk
rf   Y nX | j| | _ | j| j  }|   | j| | _ | j| j  }	|   | j|	 | _ | j| _ | j }
|   |
| _ dS )Nr   r'   F   çcT)rB   _FrenchStemmer__r_prelude_FrenchStemmer__r_mark_regionsry   rR   !_FrenchStemmer__r_standard_suffixrE   rL   _FrenchStemmer__r_i_verb_suffixrJ   _FrenchStemmer__r_verb_suffixrP   rH   rg   rM   rF   rI   rK   rG   rQ   !_FrenchStemmer__r_residual_suffixrS   _FrenchStemmer__r_un_double_FrenchStemmer__r_un_accent_FrenchStemmer__r_postlude)rT   rU   rW   rX   rr   rs   rt   ru   rv   rw   rx   rY   rY   rZ   _stemP  s    
 
 
 
  
 
 

 
 zFrenchStemmer._stemN) __name__
__module____qualname____doc__r   r_   r`   ri   rk   re   rz   r{   r   r   rD   r   r]   r\   r[   r   r   r   rh   rj   rf   r   r   r   r   r   r   r   rY   rY   rY   rZ   r      sN  








































































































































,&f7&  (Ar   c               @   s   e Zd ZdS )rS   N)r   r   r   rY   rY   rY   rZ   rS     s    rS   c               @   s   e Zd ZdS )rQ   N)r   r   r   rY   rY   rY   rZ   rQ     s    rQ   c               @   s   e Zd ZdS )rP   N)r   r   r   rY   rY   rY   rZ   rP     s    rP   c               @   s   e Zd ZdS )rL   N)r   r   r   rY   rY   rY   rZ   rL     s    rL   c               @   s   e Zd ZdS )rE   N)r   r   r   rY   rY   rY   rZ   rE     s    rE   c               @   s   e Zd ZdS )rJ   N)r   r   r   rY   rY   rY   rZ   rJ     s    rJ   c               @   s   e Zd ZdS )rG   N)r   r   r   rY   rY   rY   rZ   rG     s    rG   c               @   s   e Zd ZdS )rK   N)r   r   r   rY   rY   rY   rZ   rK     s    rK   c               @   s   e Zd ZdS )rM   N)r   r   r   rY   rY   rY   rZ   rM     s    rM   c               @   s   e Zd ZdS )rN   N)r   r   r   rY   rY   rY   rZ   rN     s    rN   c               @   s   e Zd ZdS )rO   N)r   r   r   rY   rY   rY   rZ   rO     s    rO   c               @   s   e Zd ZdS )rl   N)r   r   r   rY   rY   rY   rZ   rl     s    rl   c               @   s   e Zd ZdS )rn   N)r   r   r   rY   rY   rY   rZ   rn     s    rn   c               @   s   e Zd ZdS )rm   N)r   r   r   rY   rY   rY   rZ   rm     s    rm   c               @   s   e Zd ZdS )rp   N)r   r   r   rY   rY   rY   rZ   rp     s    rp   c               @   s   e Zd ZdS )ro   N)r   r   r   rY   rY   rY   rZ   ro     s    ro   N)Zbasestemmerr   Zamongr   r   BaseExceptionrS   rQ   rP   rL   rE   rJ   rG   rK   rM   rN   rO   rl   rn   rm   rp   ro   rY   rY   rY   rZ   <module>   s2          