o
    MiW                     @   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dS )   )BaseStemmer)Amongc                
   @   s	  e Zd ZdZh dZh dZ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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g 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d@d<dedAd<dedBddedCddedDdEdedFdEdedGdEdedHdEdedIdEdedJdEdedKddedLddedMddedNddedOddedPdQdedRdQdedSdQdedTdQdedUdQdZedVdd#edWdd#edXdd%edYdd%edZdd%g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#gZg ed_dd#ed`dd'edadd#edbdd#edcddd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drdd#edsdd#edtdudedvdd#edwddd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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ddeddd#eddd#eddd#eddd!eddd!eddddedddeddd#eddd#eddd#Zg eddd#eddd#eddd#eddd#eddd#eddd#eddd#edcd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ddd#eddd#eddEd#eddEd#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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dVdd#edWd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ddd#eddd#eddd#eddd#eddd#eddd#eddd#eddd#eddd#eddd#eddd#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dXdd#edZdd#eddd#eddd#eddd#eddd#ZdS )ItalianStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated from italian.sbl by Snowball 3.0.1 - https://snowballstem.org/
    >
   aeiou   à   è   ì   ò   ù>   r   r   r   r   r
   r   r   r   cg    c                 C   s~  | j }	 | j }zn| j | _| tj}| j | _|dkr#| ds"W dS nQ|dkr0| ds/W dS nD|dkr=| ds<W dS n7|d	krJ| d
sIW dS n*|dkrW| dsVW dS n|dkrd| dscW dS n| j | jkrmt |  j d7  _ W q ty~   Y nw || _ 	 || _ 	 | j }zz	 | j }zs| 	tj
st | j | _zV| j }z$| dst | j | _| 	tj
st | dsW W W W W dS t  ty   Y nw || _ | dst | j | _| 	tj
st | dsW W W W dS W n	 ty   Y nw || _ t  ty   Y nw || _ | j | jkrt |  j d7  _ q ty,   Y nw W q ty8   Y nw || _ 	 dS )NTr   r
   F   r      r      r      r      qUr	   Ur   I)cursorbra
find_amongr   a_0ket
slice_fromlimitlab0in_groupingg_vlab3eq_slab5lab4lab2lab1)selfv_1v_2	among_varv_3v_4v_5 r1   S/home/ubuntu/.local/lib/python3.10/site-packages/snowballstemmer/italian_stemmer.py__r_prelude   s   









"zItalianStemmer.__r_preludec                 C   s  | j | _| j | _| j | _| j}zz| j}z^| tjst zI| j}z| 	tjs,t
 | tjs5t
 |  jd7  _t  t
yG   Y nw || _| tjsTt | tjs]t |  jd7  _W t  tyr   Y t w  ty{   Y nw || _z| dst t  ty   Y nw || _| 	tjst zG| j}z| 	tjst | tjst |  jd7  _t  ty   Y nw || _| tjst | j| j krt |  jd7  _W n	 ty   Y nw W n	 ty   Y nw | j| _W n
 ty   Y nw || _| j}zN| tjst |  jd7  _| tjs.t |  jd7  _| j| _| tjsCt |  jd7  _| tjsTt |  jd7  _| j| _W n
 tyj   Y nw || _dS )Nr   divanT)r    I_pVI_p1I_p2r   r"   r   r#   r(   out_groupingr'   go_out_groupingr$   go_in_groupingr)   r%   r&   r!   lab7lab6lab8)r*   r+   r,   r.   r/   r0   r1   r1   r2   __r_mark_regionsh   s   
zItalianStemmer.__r_mark_regionsc                 C   s   	 | j }z:| j | _| tj}| j | _|dkr | dsW dS n|dkr-| ds,W dS n| j | jkr6t |  j d7  _ W q  tyG   Y nw || _ 	 dS )NTr   r   Fr   r	   )	r   r   r   r   a_1r   r   r    r!   )r*   r+   r-   r1   r1   r2   __r_postlude   s,   

zItalianStemmer.__r_postludec                 C      | j | jkS N)r5   r   r*   r1   r1   r2   __r_RV      zItalianStemmer.__r_RVc                 C   rA   rB   )r6   r   rC   r1   r1   r2   __r_R1   rE   zItalianStemmer.__r_R1c                 C   rA   rB   )r7   r   rC   r1   r1   r2   __r_R2   rE   zItalianStemmer.__r_R2c                 C   sr   | j | _| tjdkrdS | j | _| tj}|dkrdS |  s$dS |dkr0|  s.dS dS | 	ds7dS dS )Nr   Fr   r   T)
r   r   find_among_br   a_2r   a_3_ItalianStemmer__r_RV	slice_delr   )r*   r-   r1   r1   r2   __r_attached_pronoun   s    
z#ItalianStemmer.__r_attached_pronounc                 C   s>  | j | _| tj}|dkrdS | j | _|dkr&|  sdS |  s$dS dS |dkrt|  s0dS |  s6dS | j| j  }z-| j | _| 	dsO| j| | _ t
 | j | _|  s`| j| | _ t
 |  sgW dS W dS  t
ys   Y dS w |dkr|  s~dS | dsdS dS |dkr|  sdS | d	sdS dS |d
kr|  sdS | dsdS dS |dkr|  sdS |  sdS dS |dkrJ|  sdS |  sdS | j| j  }zh| j | _| tj}|dkr| j| | _ t | j | _|  s| j| | _ t |  sW dS |dkr9| j | _| 	ds| j| | _ t | j | _|  s1| j| | _ t |  s<W dS W dS W dS  tyI   Y dS w |dkr|  sVdS |  s]dS | j| j  }z3| j | _| tjdkrz| j| | _ t | j | _|  s| j| | _ t |  sW dS W dS  ty   Y dS w |  sdS |  sdS | j| j  }z]| j | _| 	ds| j| | _ t | j | _|  s| j| | _ t |  sW dS | j | _| 	ds| j| | _ t | j | _|  s	| j| | _ t |  sW dS W dS  ty   Y dS w )Nr   Fr   r   icr   logr   r	   r   enter      at   T)r   r   rH   r   a_6r   _ItalianStemmer__r_R2rL   r    eq_s_br!   r   rK   _ItalianStemmer__r_R1a_4r)   a_5r(   r$   )r*   r-   r+   r,   r.   r/   r1   r1   r2   __r_standard_suffix   s$  
mj
e
`
[V




@74




# 





z"ItalianStemmer.__r_standard_suffixc                 C   s^   | j | jk rdS | j}| j| _| j | _| tjdkr || _dS | j | _|  s*dS || _dS )NFr   T)	r   r5   limit_backwardr   rH   r   a_7r   rL   )r*   r,   r1   r1   r2   __r_verb_suffixv  s   zItalianStemmer.__r_verb_suffixc                 C   sh  | j | j }zW| j| _| tjs| j | | _t | j| _|  s+| j | | _t | 	 s2W dS | j| _| 
dsD| j | | _t | j| _|  sU| j | | _t | 	 s\W dS W n	 tyf   Y nw | j | j }z<| j| _| 
ds| j | | _t | j| _| tjs| j | | _t |  s| j | | _t | 	 sW dS W dS  ty   Y dS w )NFr   hT)r    r   r   in_grouping_br   g_AEIOr!   r   rK   rL   rV   r)   g_CG)r*   r+   r,   r1   r1   r2   __r_vowel_suffix  sX   

zItalianStemmer.__r_vowel_suffixc                 C   s"  | j }|   || _ |   | j | _| j| _ | j| j  }|   | j| | _ | j| j  }z5z)| j| j  }z
|  s<t t  tyG   Y nw | j| | _ | 	 sUt
 W n	 ty_   Y nw W n	 t
yj   Y nw | j| | _ | j| j  }|   | j| | _ | j| _ | j }|   || _ dS )NT)r   _ItalianStemmer__r_prelude_ItalianStemmer__r_mark_regionsr[   r    #_ItalianStemmer__r_attached_pronoun"_ItalianStemmer__r_standard_suffixr(   r)   _ItalianStemmer__r_verb_suffixr!   _ItalianStemmer__r_vowel_suffix_ItalianStemmer__r_postlude)r*   r+   r.   r/   r0   v_6v_7r1   r1   r2   _stem  sD   zItalianStemmer._stem rQ   qur      ár      ér      ír      ór      úr   r   r   lacelaglielamelatelavelaleceleglielemeletelevelenecene   glienemeneseneteneveneciliceli   glielimeliteliveliglimisitivilocelo   glielomeloteloveloandoendoarerirrN   abilosivicalogiaosaistaiva	   anzaenzaiceatriceichelogieabileibileusioneazioneuzioneatoreoseantementeamente   isteiveanzeenzeiciatrici   ichiabiliibiliismiusioniazioniuzioniatoriosiantiamentiimentiistiiviicoismoosoamentoimentoivou   itàrS   u   istàu   istèu   istìiscaendaataitautaavaevaerebbeirebbeisceendeareereireasseateavate   evateivateeteereteireteiteeresteiresteuteeraiiraiisciendiereiireiassiatiitierestiirestiutiavieviiscoYamoiamoavamoevamoivamoeremoiremoassimoammoemmoeremmo6   iremmoimmoanoiscano:   avanoevanoivanoerannoirannoonoisconoA   aronoeronoironoerebberoirebberoasseroesseroisseroatoitoutoavoevou   eràu   iràu   eròu   iròN)__name__
__module____qualname____doc__r#   r`   ra   r7   r6   r5   rc   rd   ri   rK   rW   rU   re   rf   rg   rh   rl   r   r   r?   rI   rJ   rX   rY   rT   r\   r1   r1   r1   r2   r      s    PP -
#

















	























 
!
"
#
$
%
)




	














	























 
!
"
#
$
%
&
'
(
)
*
+
,
-
.
/
0
1
2
36








	























 
!
"
#
$
%
&
'
(
)
*
+
,
-
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
Wr   c                   @      e Zd ZdS )r!   Nr'  r(  r)  r1   r1   r1   r2   r!         r!   c                   @   r+  )r)   Nr,  r1   r1   r1   r2   r)     r-  r)   c                   @   r+  )r(   Nr,  r1   r1   r1   r2   r(     r-  r(   c                   @   r+  )r$   Nr,  r1   r1   r1   r2   r$     r-  r$   c                   @   r+  )r'   Nr,  r1   r1   r1   r2   r'     r-  r'   c                   @   r+  )r&   Nr,  r1   r1   r1   r2   r&     r-  r&   c                   @   r+  )r<   Nr,  r1   r1   r1   r2   r<     r-  r<   c                   @   r+  )r;   Nr,  r1   r1   r1   r2   r;     r-  r;   c                   @   r+  )r=   Nr,  r1   r1   r1   r2   r=     r-  r=   N)basestemmerr   amongr   r   BaseExceptionr!   r)   r(   r$   r'   r&   r<   r;   r=   r1   r1   r1   r2   <module>   s"        0