o
     ¢iî  ã                   @   s@   d dl mZmZmZ ddlmZ ddlmZ G dd„ deƒZdS )é    )ÚDictÚListÚTupleé   )Ú
Lemmatizer)ÚTokenc                	       sÂ   e Zd Zededeee ee f f‡ fdd„ƒZdedee fdd„Z	ded	e
d
eeef dee fdd„Zded	e
d
eeef dee fdd„Zded	e
d
eeef dee fdd„Z‡  ZS )ÚPolishLemmatizerÚmodeÚreturnc                    s$   |dkrg d¢}|g fS t ƒ  |¡S )NÚ
pos_lookup)	Úlemma_lookup_adjÚlemma_lookup_adpÚlemma_lookup_advÚlemma_lookup_auxÚlemma_lookup_nounÚlemma_lookup_numÚlemma_lookup_partÚlemma_lookup_pronÚlemma_lookup_verb)ÚsuperÚget_lookups_config)Úclsr	   Úrequired©Ú	__class__© úL/home/ubuntu/.local/lib/python3.10/site-packages/spacy/lang/pl/lemmatizer.pyr      s   z#PolishLemmatizer.get_lookups_configÚtokenc                 C   s    |j }|j}|j ¡ }| ¡ }|dkrd}| j d| i ¡}|dkr)|  |||¡S |dkr1| ¡ }|dkr<|  |||¡S |dkrG|  	|||¡S | 
|| ¡ ¡gS )NÚPROPNÚnounÚlemma_lookup_ÚNOUNÚADJÚVERB)ÚtextÚpos_ÚmorphÚto_dictÚlowerÚlookupsÚ	get_tableÚlemmatize_nounÚlemmatize_adjÚlemmatize_verbÚget)Úselfr   ÚstringÚuniv_posÚ
morphologyÚ
lookup_posÚlookup_tabler   r   r   Úpos_lookup_lemmatize   s    
z%PolishLemmatizer.pos_lookup_lemmatizer0   r2   r4   c                 C   s˜   |d d… dkr.|dd … }|d d… dkr%|dd … }||v r%|| gS ||v r.|| gS |d d… dkrE|dd … }||v rE|| gS |  ||¡gS )Nr   ÚnieÚnaj©r.   )r/   r0   r2   r4   Úsearch_stringÚnaj_search_stringr   r   r   r,   -   s   


zPolishLemmatizer.lemmatize_adjc                 C   s<   |d d… dkr|dd … }||v r|| gS |  ||¡gS )Nr   r6   r8   )r/   r0   r2   r4   r9   r   r   r   r-   @   s
   
zPolishLemmatizer.lemmatize_verbc                 C   sP   ||  ¡ kr!|  ¡ |v r||  ¡  gS ||v r|| gS |  ¡ gS | ||¡gS )N)r(   r.   )r/   r0   r2   r4   r   r   r   r+   K   s   

zPolishLemmatizer.lemmatize_noun)Ú__name__Ú
__module__Ú__qualname__ÚclassmethodÚstrr   r   r   r   r5   Údictr   r,   r-   r+   Ú__classcell__r   r   r   r   r      s>    (ÿÿ
ÿ
þÿÿ
ÿ
þÿÿ
ÿþr   N)	Útypingr   r   r   Úpipeliner   Útokensr   r   r   r   r   r   Ú<module>   s    