
    i                     B    d dl mZmZ ddlmZ ddlmZ  G d de      Zy)    )ListTuple   )
Lemmatizer)Tokenc                   r     e Zd ZdZdedefdZdedee   fdZ	e
dedeee   ee   f   f fd       Z x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                    |j                   j                         }|j                  j                         }|dv rQ|sy|dk(  r|j	                  d      dk(  ry|dk(  r|j	                  d      dk(  ry|d	k(  r|j	                  d
      dk(  ryy)N>   adjadvnounverbTr   NumberSingr   VerbFormInfr   DegreePosF)morphto_dictpos_lowerget)selfr
   r   uposs       i/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/spacy/lang/ht/lemmatizer.pyis_base_formz$HaitianCreoleLemmatizer.is_base_form   s    ##%zz! 11v~%))H"5"?v~%))J"75"@u}8!4!=    c                    |j                   j                         }|j                  j                         }|j                  |j                  f}|| j
                  v r| j
                  |   S g }|j                  |       || j
                  |<   |S )N)textr   r   orthposcacheappend)r   r
   stringr$   	cache_keyformss         r   rule_lemmatizez&HaitianCreoleLemmatizer.rule_lemmatize   sy    !!#jj ZZ+	

"::i(( 	V %

9r    modec                 <    |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__s      r   r3   z*HaitianCreoleLemmatizer.get_lookups_config-   s)    6>RHb>!w)$//r    )__name__
__module____qualname____doc__r   boolr   r   strr*   classmethodr   r3   __classcell__)r6   s   @r   r	   r	      sf    % D  E d3i  0c 0eDItCy4H.I 0 0r    r	   N)typingr   r   pipeliner   tokensr   r	    r    r   <module>rC      s     " +0j +0r    