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}| j   dsttj fdd|D } jjd} jjd}d}t| D ]^\}}|j	t
ttfvr<q/|jj|krCq/|j|v rW|j}|jj|jd |fV  q/|j|kr|j}|j|krz|jj|jk rz|j}|j|krz|jj|jk sk|j|v r|j}|jj|jd |fV  q/d	S )
zW
    Detect base noun phrases from a dependency parse. Works on both Doc and Span.
    )
oprdnsubjdobj	nsubjpasspcomppobjdativeapposattrROOTDEPc                    s   g | ]	} j j|qS  )vocabstringsadd).0labeldocr   R/home/ubuntu/.local/lib/python3.10/site-packages/spacy/lang/en/syntax_iterators.py
<listcomp>   s    znoun_chunks.<locals>.<listcomp>conjNP   N)r    has_annotation
ValueErrorr   E029r   r   r   	enumerateposr   r	   r   	left_edgeidephead)	r   labelsnp_depsr#   np_labelprev_endr-   wordr/   r   r   r!   noun_chunks   s6   




r5   N)typingr   r   r   errorsr   symbolsr   r   r	   tokensr
   r   intr5   SYNTAX_ITERATORSr   r   r   r!   <module>   s    (*