o
    rZhž  ć                   @   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	   ś=/var/www/auris/lib/python3.10/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 ]<}g }| d
”}| |d dd ” | t|d ” | |d dd ” | dd |d  d”D ” | |” q)|S )Nznltk:stemmers/rslp/Śraw)ŚformatŚutf8Ś
c                 S   s   g | ]}|d kr|qS )Ś r	   ©Ś.0Śliner	   r	   r
   Ś
<listcomp>D   ó    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   r   r   r   é   é’’’’é   c                 S   s   g | ]}|d d qS )r   r   r	   )r   Śtokenr	   r	   r
   r   Z   r   é   ś,)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r|  |d”}|  |d”}|  |d”}|}|  |d”}||krF|}|  |d	”}||krF|  |d
”}|S )Nr   Śsr   Śar   r   r   é   é   é   )ŚlowerŚ
apply_rule)r   ŚwordZ	prev_wordr	   r	   r
   Śstema   s   zRSLPStemmer.stemc                 C   sv   | j | }|D ]1}t|d }|| d  |d kr8t|||d  kr8||d vr8|d |  |d  } |S q|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   