o
    i
                     @   sx   d dl mZmZmZ ddlmZ ddl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)NOUNPRONPROPN)DocSpandoclikereturnc                 #   s   g d}g d}| j   dsttj fdd|D } fdd|D } jjd} jjd} jjd	} jjd
} jjd}	d}
t| D ]\}}|j	t
ttfvr^qQ|jj|
kreqQ|j|v rt|j}|ru|d nd}|r|j|kr|j}n|j|v r|j}n|}n|}|j}
|jj}|jj	|kr|d n|}||jd |fV  qQ|j|kr|j}|j|kr|jj|jk r|j}|j|kr|jj|jk s|j|v r|j}
|jj}|jj	|	kr|d n|}||jd |fV  qQdS )zW
    Detect base noun phrases from a dependency parse. Works on both Doc and Span.
    )nsubjz
nsubj:passobjoblnmodpcompapposROOT)flatfixedcompoundDEPc                       h | ]	} j j|qS  vocabstringsadd).0labeldocr   R/home/ubuntu/.local/lib/python3.10/site-packages/spacy/lang/es/syntax_iterators.py	<setcomp>       znoun_chunks.<locals>.<setcomp>c                    r   r   r   )r   modifierr!   r   r#   r$      r%   NPamodADPconjCCONJr   N   )r"   has_annotation
ValueErrorr   E029r   r   r   	enumerateposr   r	   r   	left_edgeideplistrights
right_edgehead)r   labelspost_modifiersnp_deps	np_modifsnp_label	adj_label	adp_labelr*   conj_posprev_endr4   wordright_childsright_child	right_end
left_indexr9   r   r!   r#   noun_chunks   s^   








rH   N)typingr   r   r   errorsr   symbolsr   r   r	   tokensr
   r   intrH   SYNTAX_ITERATORSr   r   r   r#   <module>   s    (D