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 ]b\}}|j	t
ttfvr<q/|jj|krCq/|j|v rY|jj}|jj|jjd |fV  q/|j|kr|j}|j|kr||jj|jk r||j}|j|kr||jj|jk sm|j|v r|jj}|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.
    )nsubjz
nsubj:passobjiobjROOTapposnmodz	nmod:possDEPc                    s   g | ]} j j| qS  )vocabstrings).0labeldocr   R/home/ubuntu/.local/lib/python3.10/site-packages/spacy/lang/ms/syntax_iterators.py
<listcomp>   s    znoun_chunks.<locals>.<listcomp>conjNP   N)r   has_annotation
ValueErrorr   E029r   r   add	enumerateposr   r	   r   	left_edgeidep
right_edgehead)	r   labelsnp_depsr   np_labelprev_endr)   wordr,   r   r   r   noun_chunks   s6   




r2   N)typingr   r   r   errorsr   symbolsr   r   r	   tokensr
   r   intr2   SYNTAX_ITERATORSr   r   r   r   <module>   s    (!