
    iB                     h    d dl mZmZ ddlmZ ddlmZ  G d de      Zddede	d	efd
Z
ded	efdZy)    )ListTuple   )
Lemmatizer)Tokenc                   ^     e Zd Zededeee   ee   f   f fd       Zdedee   fdZ	 xZ
S )IrishLemmatizermodereturnc                 <    |dk(  rg d}|g fS t         |   |      S )N
pos_lookup)lemma_lookup_adjlemma_lookup_adplemma_lookup_nounlemma_lookup_verb)superget_lookups_config)clsr
   required	__class__s      i/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/spacy/lang/ga/lemmatizer.pyr   z"IrishLemmatizer.get_lookups_config   s.    <H
 b>!7-d33    tokenc                 x   |j                   }t        |j                        }|dvr|j                         gS t	        |      }d}|dd j                         dk(  r|dd j                         dv r|dd  }|j                         }|dk(  rd	}|j                         rw|d
k(  rEd|j                  v sd|j                  v r)d|j                  v }t	        ||      j                         gS |dk(  r(d|j                  v rt	        |      j                         gS | j                  j                  d|z   i       }d }	|dk(  r& |	|j                  ||j                                     S g }
|dk(  rM|
j                   |	|j                  |                   |
j                   |	|j                  |                   nh|
j                   |	|j                  |j                                            |
j                   |	|j                  |j                                            t        |
      dk(  r|j                         g}
|
S )N)PROPNADPADJNOUNVERB r      h      aáeéiíoóuúr   nounr   zVerbForm=VnounzVerbForm=Infz
Form=HPrefr   zVerbForm=Partlemma_lookup_c                 8    | g } | S t        | t              s| g} | S )N)
isinstancelist)values    r   to_listz5IrishLemmatizer.pos_lookup_lemmatize.<locals>.to_list0   s+    } L  t,Lr   r   )pos_unponctextlowerdemutate	has_morphmorphlookups	get_tablegetextendlen)selfr   univ_posstring	demutated	secondary
lookup_poshpreflookup_tabler+   rets              r   pos_lookup_lemmatizez$IrishLemmatizer.pos_lookup_lemmatize   s   ::

#BBLLN##V$		!A;#%&1+*;*;*=AR*Rqr
I^^%
wJ?? 6! EKK/>U[[3P$3 /55788U"%++'E (..011||--o
.JBO	 u<++FFLLNCDDwJJw|//	:;<JJw|//	:;<JJw|//	0ABCDJJw|//	0ABCDs8q=<<>"C
r   )__name__
__module____qualname__classmethodstrr   r   r   r   rA   __classcell__)r   s   @r   r	   r	      sN     
4c 
4eDItCy4H.I 
4 
4*% *DI *r   r	   wordis_hprefr   c                     d}d}| j                         }|j                  d      r| dd  } n|j                  d      r| dd  } n|j                  d      r| dd  } n|j                  d      r| dd  } no|j                  d	      r| dd  } nW|j                  d
      r| dd  } n?|j                  d      r| dd  } n'| dd dk(  r| dd |v r| dd  } n|j                  d      r| dd |v r| dd  } n|j                  d      r| dd  } n|j                  d      r| dd  } n|j                  d      r| dd  } n|j                  d      r| dd  } n|j                  d      r| dd  } n|j                  d      r| dd  } ni|j                  d      r| dd  } nR|j                  d      r| dd  } n;|j                  d      r| dd  } n$|r| dd dk(  r| dd  } n| dd dk(  r| dd |v r| dd  } |dd dv r|dd dk(  r| dd | dd  z   } | S )Nu   AÁEÉIÍOÓUÚr$   bhfr#   mbr!   gcndngbpdtr   nzn-r   zbh-fzm-bzg-czn-dzn-gzb-pzd-ttszt-sr"   	bcdfgmpst)r/   
startswith)rH   rI   UVOWELSLVOWELSlcs        r   r0   r0   E   sO   GG	B	}}UABx	t	ABx	t	ABx	t	ABx	t	ABx	t	ABx	t	ABx	ac	d1Qi72ABx	t	ag!5ABx	v	ABx	u	ABx	u	ABx	u	ABx	u	ABx	u	ABx	u	ABx 
t	ABx	u	ABx 
d1Qi3&ABx
 
ac	d1Qi72ABx
 
!Aw+"Qq'S.Aay48#Kr   c                     i ddddddddd	d
dddddddddddddddddddddd d!d"d#d$i}g }| D ],  }||v r|j                  ||          |j                  |       . d%j                  |      S )&Nu   ḃbhu   ċchu   ḋdhu   ḟfhu   ġghu   ṁmhu   ṗphu   ṡshu   ṫthu   ḂBHu   ĊCHu   ḊDHu   ḞFHu   ĠGHu   ṀMHu   ṖPHu   ṠSHu   ṪTHr    )appendjoin)rH   PONCbufr[   s       r   r-   r-      s%   td 	t 	t	
 	d 	t 	t 	t 	t 	t 	d 	t 	t 	d 	t  	t!" 	t#$ 	t%D* C :JJtBx JJrN	
 773<r   N)F)typingr   r   pipeliner   tokensr   r	   rF   boolr0   r-    r   r   <module>ru      sI     " ;j ;|=3 =$ =3 =@  r   