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 jjd} fdd	}t d
 }t	t
t| D ]>\}}|jtttfvrRqE|j|krXqE|j|v rl|jj}|jj|||fV  qE|j|kr|j}	|	j}|	jjd
 |||fV  qEdS )zW
    Detect base noun phrases from a dependency parse. Works on both Doc and Span.
    )nsubjiobjobjoblapposorphan
dislocated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/tr/syntax_iterators.py
<listcomp>   s    znoun_chunks.<locals>.<listcomp>conjflatNPc                    sH   | j d } | j  jD ]}|jkr|jttfv r|j d }q |S |S )N   )irightsdepposr   r	   )wrindexrdepr   r!   r   r   extend_right    s   
z!noun_chunks.<locals>.extend_rightr#   N)r   has_annotation
ValueErrorr   E029r   r   r   lenreversedlist	enumerater'   r   r	   r   r$   r&   	left_edge
right_edge)
r   labelsnp_depsr    np_labelr,   prev_endr$   wordcc_tokenr   r+   r   noun_chunks   s2   


	


r<   N)typingr   r   r   errorsr   symbolsr   r   r	   tokensr
   r   intr<   SYNTAX_ITERATORSr   r   r   r   <module>   s    (2