U
    e  ć                   @   s,   d dl mZ d dlmZ G dd deZdS )é    )Śload)ŚStemmerIc                   @   s0   e Zd ZdZdd Zdd Zdd Zdd	 Zd
S )ŚRSLPStemmerug  
    A stemmer for Portuguese.

        >>> from nltk.stem import RSLPStemmer
        >>> st = RSLPStemmer()
        >>> # opening lines of Erico Verissimo's "MĆŗsica ao Longe"
        >>> text = '''
        ... Clarissa risca com giz no quadro-negro a paisagem que os alunos
        ... devem copiar . Uma casinha de porta e janela , em cima duma
        ... coxilha .'''
        >>> for token in text.split(): # doctest: +NORMALIZE_WHITESPACE
        ...     print(st.stem(token))
        clariss risc com giz no quadro-negr a pais que os alun dev copi .
        uma cas de port e janel , em cim dum coxilh .
    c                 C   s   g | _ | j  |  d”” | j  |  d”” | j  |  d”” | j  |  d”” | j  |  d”” | j  |  d”” | j  |  d”” d S )Nzstep0.ptzstep1.ptzstep2.ptzstep3.ptzstep4.ptzstep5.ptzstep6.pt)Ś_modelŚappendŚ	read_rule)Śself© r	   śO/var/www/html/assets/scripts/venv/lib/python3.8/site-packages/nltk/stem/rslp.pyŚ__init__5   s    zRSLPStemmer.__init__c                 C   sŠ   t d| dd d”}| d”}dd |D }dd |D }d	d |D }g }|D ]x}g }| d
”}| |d dd ” | t|d ” | |d dd ” | dd |d  d”D ” | |” qR|S )Nznltk:stemmers/rslp/Śraw)ŚformatŚutf8Ś
c                 S   s   g | ]}|d kr|qS )Ś r	   ©Ś.0Śliner	   r	   r
   Ś
<listcomp>D   s      z)RSLPStemmer.read_rule.<locals>.<listcomp>c                 S   s   g | ]}|d  dkr|qS )r   ś#r	   r   r	   r	   r
   r   E   s      c                 S   s   g | ]}|  d d”qS )z		ś	)Śreplacer   r	   r	   r
   r   H   s     r   r   é   é’’’’é   c                 S   s   g | ]}|d d qS )r   r   r	   )r   Śtokenr	   r	   r
   r   Z   s     é   ś,)r   ŚdecodeŚsplitr   Śint)r   ŚfilenameŚrulesŚlinesr   ŚruleŚtokensr	   r	   r
   r   @   s    

zRSLPStemmer.read_rulec                 C   s   |  ” }|d dkr |  |d”}|d dkr8|  |d”}|  |d”}|  |d”}|}|  |d”}||kr|}|  |d	”}||kr|  |d
”}|S )Nr   Śsr   Śar   r   r   é   é   é   )ŚlowerŚ
apply_rule)r   ŚwordZ	prev_wordr	   r	   r
   Śstema   s    zRSLPStemmer.stemc                 C   st   | j | }|D ]`}t|d }|| d  |d krt|||d  kr||d kr|d |  |d  } qpq|S )Nr   r   r   r   )r   Ślen)r   r-   Z
rule_indexr"   r$   Zsuffix_lengthr	   r	   r
   r,      s    
zRSLPStemmer.apply_ruleN)Ś__name__Ś
__module__Ś__qualname__Ś__doc__r   r   r.   r,   r	   r	   r	   r
   r   $   s
   !r   N)Z	nltk.datar   Znltk.stem.apir   r   r	   r	   r	   r
   Ś<module>    s   