o
    Mi-O                     @   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dS )   )BaseStemmer)Amongc                
   @   sj	  e Zd ZdZh d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 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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gZg ed+dded,dded-dd.ed/dd ed0dd1ed2dded3dded4dded5dd6ed7dded8dd9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dDddedEdd6edFddedGddedHddedIddedJdd.edKdd edLdd1edMddedNddedOddedPdd6edQddedRdd9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d6Zg 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dddded0d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dmdndedodndedpdndedqddedrdsdedtdudedvdudedwdudedxdsdedydsdedzdsded{dsd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dddedddedddedddedddedddedddedddedddedddedddedddedddedLddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddeddd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dddedddedddedddedddedddeddd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dddedddedddZedddedddeddded%ddedddedddedddgZedddeddd edddedddgZdS )PortugueseStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated from portuguese.sbl by Snowball 3.0.1 - https://snowballstem.org/
    >   aeiou   á   â   é   ê   í   ó   ô   ú    c                 C      	 | 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   a~F   o~)	cursorbra
find_amongr   a_0ket
slice_fromlimitlab0selfv_1	among_var r#   V/home/ubuntu/.local/lib/python3.10/site-packages/snowballstemmer/portuguese_stemmer.py__r_prelude   ,   

zPortugueseStemmer.__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 || _| 	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s*t |  jd7  _| tjs;t |  jd7  _| j| _W n
 tyQ   Y nw || _dS )Nr   T)r   I_pVI_p1I_p2r   in_groupingr   g_vlab2out_groupinglab4go_out_groupinglab3go_in_groupinglab1r   lab6lab5lab7)r    r!   v_2v_3v_4v_5r#   r#   r$   __r_mark_regions+   s   z"PortugueseStemmer.__r_mark_regionsc                 C   r   )NTr      ãFr      õ)	r   r   r   r   a_1r   r   r   r   r   r#   r#   r$   __r_postludeu   r&   zPortugueseStemmer.__r_postludec                 C      | j | jkS N)r'   r   r    r#   r#   r$   __r_RV      zPortugueseStemmer.__r_RVc                 C   r?   r@   )r(   r   rA   r#   r#   r$   __r_R1   rC   zPortugueseStemmer.__r_R1c                 C   r?   r@   )r)   r   rA   r#   r#   r$   __r_R2   rC   zPortugueseStemmer.__r_R2c                 C   s  | j | _| tj}|dkrdS | j | _|dkr&|  sdS |  s$dS dS |dkr9|  s0dS | ds7dS dS |dkrL|  sCdS | dsJdS dS |dkr_|  sVdS | d	s]dS dS |d
kr| 	 sidS |  sodS | j
| j  }zc| j | _| tj}|dkr| j
| | _ t | j | _|  s| j
| | _ t |  sW dS |dkr| j | _| ds| j
| | _ t | j | _|  s| j
| | _ t |  sW dS W dS W dS  ty   Y dS w |dkr9|  sdS |  sdS | j
| j  }z3| j | _| tjdkr| j
| | _ t | j | _|  s#| j
| | _ t |  s+W dS W dS  ty8   Y dS w |dkr|  sEdS |  sLdS | j
| j  }z3| j | _| tjdkri| j
| | _ t | j | _|  s{| j
| | _ t |  sW dS W dS  ty   Y dS w |dkr|  sdS |  sdS | j
| j  }z0| j | _| ds| j
| | _ t | j | _|  s| j
| | _ t |  sW dS W dS  ty   Y dS w |  sdS | dsdS | dsdS dS )Nr   Fr   r   log   r	      ente   at         r   irT)r   r   find_among_br   a_5r   _PortugueseStemmer__r_R2	slice_delr   _PortugueseStemmer__r_R1r   a_2r   eq_s_ba_3r2   a_4r,   r0   _PortugueseStemmer__r_RV)r    r"   r!   r6   r7   r8   r#   r#   r$   __r_standard_suffix   s  u
o
j
e
PGD


30










z%PortugueseStemmer.__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   r'   limit_backwardr   rP   r   a_6r   rS   )r    r6   r#   r#   r$   __r_verb_suffix  s   z!PortugueseStemmer.__r_verb_suffixc                 C   s@   | j | _| tjdkrdS | j | _|  sdS |  sdS dS )Nr   FT)r   r   rP   r   a_7r   rY   rS   rA   r#   r#   r$   __r_residual_suffix&  s   z%PortugueseStemmer.__r_residual_suffixc                 C   sH  | j | _| tj}|dkrdS | j | _|dkr|  sdS |  s$dS | j | _z[| j| j  }z#| 	ds8t
 | j | _| j| j  }| 	dsJt
 | j| | _ t  t
y[   Y nw | j| | _ | 	dsjW dS | j | _| j| j  }| 	ds|W dS | j| | _ W n	 ty   Y nw |  sdS |  sdS dS | dsdS dS )	Nr   Fr   r	   gr   cT)r   r   rP   r   a_8r   rY   rS   r   rV   r2   r   r   )r    r"   r!   r6   r7   r#   r#   r$   __r_residual_form2  sP   




z#PortugueseStemmer.__r_residual_formc           
      C   s  | j }|   || _ |   | j | _| j| _ | j| j  }zz| j| j  }z| j| j  }z)| j| j  }z
|  s:t t  tyE   Y nw | j| | _ |  sSt	 W n	 ty]   Y nw | j| | _ | j| j  }z7| j | _
| dswt | j | _| j| j  }| dst | j| | _ |  st |  sW W W W dS W n	 ty   Y nw | j| | _ t  t	y   Y nw | j| | _ |  st W n	 ty   Y nw W n	 ty   Y nw | j| | _ | j| j  }|   | j| | _ | j| _ | j }	|   |	| _ dS )Nr   ra   FT)r   _PortugueseStemmer__r_prelude"_PortugueseStemmer__r_mark_regionsr[   r   %_PortugueseStemmer__r_standard_suffixr.   r0   !_PortugueseStemmer__r_verb_suffixr,   r   rV   r4   r   rY   rS   r2   %_PortugueseStemmer__r_residual_suffixr   #_PortugueseStemmer__r_residual_form_PortugueseStemmer__r_postlude)
r    r!   r7   r8   r9   v_6v_7v_8v_9v_10r#   r#   r$   _stem^  sx   

zPortugueseStemmer._stem rG   r;   r   r<   r   r   r   icadosivanteavelu   ívelabilicau   ânciau   ênciarH   logiaira	   adoraosaistaivarN   ezaidaderM   menterL   amente   rJ   u   ávelicoismoosoamentoimentoivou   aça~ou   uça~oadoricasu   ênciaslogiasirasadorasosasistasivasezasidadesadoresantesu   aço~esu   uço~esicosismosososamentosimentosivosadaidaiaariaeriairiaaraeraavaasseesseisseasteesteisteeiarei   ereiireiamiam   ariam   eriamiriamarameramiramavamemarem   eremiremassemessemissemadoidoandoendoindozara~ozera~ozira~oarerrO   asadas/   idasiasarias2   eriasiriasaraserasavasesardes:   erdesirdesareseresiresassesessesissesastesestesistesisaisG   eisareisI   ereisireisu   áreisu   éreisu   íreisu   ásseisu   ésseisu   ísseisu   áveisu   íeisu   aríeisT   u   eríeisu   iríeisadosidosamosu   áramosZ   u   éramosu   íramosu   ávamosu   íamosu   aríamos_   u   eríamosu   iríamosemosaremosc   eremosiremosu   ássemosu   êssemosu   íssemosimosarmosermosirmosu   ámosu   arásu   erásu   iráseuiuouu   aráu   eráu   irár   r   r   r
   r   r   r      çr   r   N)__name__
__module____qualname____doc__r+   r)   r(   r'   rd   re   rj   rY   rT   rR   rf   rg   rh   ri   rp   r   r   r=   rU   rW   rX   rQ   r\   r^   rb   r#   r#   r#   r$   r      s    J ,
<























	

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























 
!
"
#
$
%
&
'
(
)
*
+
,
-
.
/
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
X
Y
Z
[
\
]
^
_
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
|









r   c                   @      e Zd ZdS )r   Nr  r  r  r#   r#   r#   r$   r   u      r   c                   @   r  )r2   Nr  r#   r#   r#   r$   r2   x  r  r2   c                   @   r  )r,   Nr  r#   r#   r#   r$   r,   {  r  r,   c                   @   r  )r0   Nr  r#   r#   r#   r$   r0   ~  r  r0   c                   @   r  )r.   Nr  r#   r#   r#   r$   r.     r  r.   c                   @   r  )r4   Nr  r#   r#   r#   r$   r4     r  r4   c                   @   r  )r3   Nr  r#   r#   r#   r$   r3     r  r3   c                   @   r  )r5   Nr  r#   r#   r#   r$   r5     r  r5   N)basestemmerr   amongr   r   BaseExceptionr   r2   r,   r0   r.   r4   r3   r5   r#   r#   r#   r$   <module>   s       q