o
     ¢i7  ã                   @   sH   d dl mZmZ ddlmZ ddlmZ ddlmZ G dd„ deƒZ	dS )	é    )ÚListÚTupleé   )ÚLookups)Ú
Lemmatizer)ÚTokenc                       sf   e Zd ZdZdedefdd„Zdedee fdd„Z	e
dedeee ee f f‡ fd	d
„ƒZ‡  ZS )ÚHaitianCreoleLemmatizerzŒ
    Minimal Haitian Creole lemmatizer.
    Returns a word's base form based on rules and lookup,
    or defaults to the original form.
    ÚtokenÚreturnc                 C   sv   |j  ¡ }|j ¡ }|dv r9|sdS |dkr| d¡dkrdS |dkr,| d¡dkr,dS |d	kr9| d
¡dkr9dS dS )N>   ÚadjÚadvÚnounÚverbTr   ÚNumberÚSingr   ÚVerbFormÚInfr   ÚDegreeÚPosF)ÚmorphÚto_dictÚpos_ÚlowerÚget)Úselfr	   r   Úupos© r   úL/home/ubuntu/.local/lib/python3.10/site-packages/spacy/lang/ht/lemmatizer.pyÚis_base_form   s   

z$HaitianCreoleLemmatizer.is_base_formc                 C   sP   |j  ¡ }|j ¡ }|j|jf}|| jv r| j| S g }| |¡ || j|< |S )N)Útextr   r   ÚorthÚposÚcacheÚappend)r   r	   Ústringr!   Ú	cache_keyÚformsr   r   r   Úrule_lemmatize   s   





z&HaitianCreoleLemmatizer.rule_lemmatizeÚmodec                    s$   |dkrg d¢}|g fS t ƒ  |¡S )NÚrule)Úlemma_lookupÚlemma_rulesÚ	lemma_excÚlemma_index)ÚsuperÚget_lookups_config)Úclsr(   Úrequired©Ú	__class__r   r   r/   .   s   z*HaitianCreoleLemmatizer.get_lookups_config)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úboolr   r   Ústrr'   Úclassmethodr   r/   Ú__classcell__r   r   r2   r   r      s    0r   N)
Útypingr   r   Úlookupsr   Úpipeliner   Útokensr   r   r   r   r   r   Ú<module>   s
    