
    h                     F    S SK JrJrJr  SSKJr  SSKJr   " S S\5      rg)    )DictListTuple   )
Lemmatizer)Tokenc            	       B  ^  \ rS rSrSr\S\S\\\   \\   4   4U 4S jj5       r	S\
S\\   4S jrS\S	\S
\\\4   S\\   4S jrS\S	\S
\\\4   S\\   4S jrS\S	\S
\\\4   S\\   4S jrS\S	\S
\\\4   S\\   4S jrS\S	\S
\\\4   S\\   4S jrSrU =r$ )ItalianLemmatizer   a   This lemmatizer was adapted from the Polish one (version of April 2021).
It implements lookup lemmatization based on the morphological lexicon
morph-it (Baroni and Zanchetta). The table lemma_lookup with non-POS-aware
entries is used as a backup for words that aren't handled by morph-it.modereturnc                 >   > US:X  a  / SQnU/ 4$ [         TU ]  U5      $ )N
pos_lookup)lemma_lookup_numlemma_lookup_detlemma_lookup_adplemma_lookup_adjlemma_lookup_nounlemma_lookup_pronlemma_lookup_verblemma_lookup_auxlemma_lookup_advlemma_lookup_otherlemma_lookup)superget_lookups_config)clsr   required	__class__s      R/home/james-whalen/.local/lib/python3.13/site-packages/spacy/lang/it/lemmatizer.pyr   $ItalianLemmatizer.get_lookups_config   s.    <H b>!7-d33    tokenc                    UR                   nUR                  nUR                  R                  5       nUR	                  5       nUS:X  a  SnOUS:X  a  SnU R
                  R                  SU-   0 5      nUS:X  a  U R                  X$U5      $ US:w  a  UR	                  5       nUS:X  a  U R                  X$U5      $ US:X  a  U R                  X$U5      $ US	:X  a  U R                  X$U5      $ US
:X  a  U R                  X$U5      $ UR                  US5      nU(       d-  U R
                  R                  S5      nUR                  US5      nU(       d:  U R
                  R                  S5      nUR                  X"R	                  5       5      nU/$ )NPROPNnounPARTpronlemma_lookup_NOUNDETPRONADPADJ r   r   )textpos_morphto_dictlowerlookups	get_tablelemmatize_nounlemmatize_detlemmatize_pronlemmatize_adplemmatize_adjget)selfr#   stringuniv_pos
morphology
lookup_poslookup_tablelemmas           r    pos_lookup_lemmatize&ItalianLemmatizer.pos_lookup_lemmatize!   sv   ::[[((*
^^%
wJJ||--o
.JBOv&&v<HH7"5 ))&lKKV#**6|LLU"))&lKKU"))&lKK$((4<<112FGL $$VR0E<<11L !$$V\\^<Ewr"   r>   r@   rB   c                 J    US;   a  S/$ US;   a  S/$ UR                  X5      /$ )N)l'lolaiglileilzun'ununaunor<   r=   r>   r@   rB   s       r    r8   ItalianLemmatizer.lemmatize_detD   s>      
 
 6M))7N  011r"   c                 t    US;   a  S/$ US;   a  S/$ UR                  X5      nUS:X  a  SnU/$ US:X  a  SnU/$ )	N)rG   lirI   rK   rL   rH   rN   rQ   alcunalcunoqualcunqualcunorR   r=   r>   r@   rB   rC   s        r    r9    ItalianLemmatizer.lemmatize_pronT   sf      
 
 6M))7N  0GE w iEwr"   c                 8    US:X  a  S/$ UR                  X5      /$ )Nzd'dirR   rS   s       r    r:   ItalianLemmatizer.lemmatize_adph   s&     T>6M  011r"   c                 P    UR                  X5      nUS:X  a  SnU/$ US:X  a  SnU/$ )NrW   rX   rY   rZ   rR   r[   s        r    r;   ItalianLemmatizer.lemmatize_adjo   s@       0GE w iEwr"   c                     XR                  5       :w  aB  UR                  5       U;   a  X1R                  5          /$ X;   a  X1   /$ UR                  5       /$ UR                  X5      /$ )N)r4   r<   rS   s       r    r7    ItalianLemmatizer.lemmatize_nouny   se    
 \\^#||~-$\\^455'$,--LLN##  011r"    )__name__
__module____qualname____firstlineno____doc__classmethodstrr   r   r   r   rD   dictr   r8   r9   r:   r;   r7   __static_attributes____classcell__)r   s   @r    r
   r
      sO   N
 4c 4eDItCy4H.I 4 4&!% !DI !F22'+2;?S>2	c2 '+;?S>	c(22'+2;?S>2	c2'+;?S>	c22'+2;?S>2	c2 2r"   r
   N)	typingr   r   r   pipeliner   tokensr   r
   rd   r"   r    <module>rr      s    $ $ " }2
 }2r"   