o
    iX	                     @   s   d dl mZmZmZ ddlmZ ddlmZmZm	Z	m
Z
mZ ddlmZmZ deeef deeeeef  fdd	Zd	eiZd
S )    )IteratorTupleUnion   )Errors)AUXNOUNPRONPROPNVERB)DocSpandoclikereturnc           
      #   s   dd fddfddfdd}| j   d	s(ttjt s.d S g d
}g d}dg} jjd} fdd|D  fdd|D  fdd|D d}| D ]$}|j	t
ttfv r| |\}}	|j|krvq_|j|	jd |fV  |	j}q_d S )Nc                 S   s   | j ttfv S N)posr   r   )tok r   R/home/ubuntu/.local/lib/python3.10/site-packages/spacy/lang/la/syntax_iterators.pyis_verb_token   s   z"noun_chunks.<locals>.is_verb_tokenc                    s*   | }t t| jD ]	}|j v r|}q	|S r   )reversedlistleftsdep)root
left_boundr   )np_left_depsr   r   get_left_bound   s   
z#noun_chunks.<locals>.get_left_boundc                    sV   |}|j D ]#}|jv r( | |}ttfdd| |j|j r& |S |}q|S )Nc                    s    | p| j v S r   )r   )t)r   	stop_depsr   r   <lambda>   s    z6noun_chunks.<locals>.get_right_bound.<locals>.<lambda>)rightsr   r   filteri)docr   right_boundr   right)get_right_boundr   np_right_depsr   r   r   r'      s   


z$noun_chunks.<locals>.get_right_boundc                    s    || |fS r   r   )r$   r   )r   r'   r   r   
get_bounds%   s   znoun_chunks.<locals>.get_boundsDEP)detfixed	nmod:possamodflatgoeswithnummodappos)	r,   r-   r.   r/   r0   r1   r2   nmodr+   punctNPc                       g | ]	} j j|qS r   vocabstringsadd.0labelr$   r   r   
<listcomp>H       znoun_chunks.<locals>.<listcomp>c                    r6   r   r7   r;   r>   r   r   r?   I   r@   c                    r6   r   r7   r;   r>   r   r   r?   J   r@      )r$   has_annotation
ValueErrorr   E029lenr8   r9   r:   r   r
   r   r	   r#   )
r   r)   left_labelsright_labelsstop_labelsnp_label
prev_righttokenleftr&   r   )r$   r   r'   r   r   r(   r   r   noun_chunks
   s6   



rN   N)typingr   r   r   errorsr   symbolsr   r   r	   r
   r   tokensr   r   intrN   SYNTAX_ITERATORSr   r   r   r   <module>   s    (L