o
    if                     @   s|   d dl mZmZmZmZ ddlmZmZmZm	Z	 ddl
mZmZ g dZdeeef deeeeef  fdd	Zd	eiZd
S )    )IteratorSetTupleUnion   )NOUNPRONPROPNVERB)DocSpan)nsubjnmodddoclike	nsubjpasspcomppdoclikedoclikeobldativeapposattrROOTr   returnc                 #   s   | j   fddtD } jjd  jjd}t t| D ]^\}}|jtt	t
fvr/q"|jv r5q"|j|v rfdd|jD }|sGq"dd |jD  t|jd  |jjtkru|jj d	d |jjD  |d
 |jd |fV  q"dS )zHDetect base noun phrases from a dependency parse. Works on Doc and Span.c                    s   g | ]	} j j|qS  )vocabstringsadd).0label)docr   R/home/ubuntu/.local/lib/python3.10/site-packages/spacy/lang/ja/syntax_iterators.py
<listcomp>   s    znoun_chunks.<locals>.<listcomp>conjNPc                    s   g | ]
}|j  vr|j qS r   ir   w)seenr   r!   r"      s    c                 s       | ]}|j V  qd S Nr%   )r   jr   r   r!   	<genexpr>       znoun_chunks.<locals>.<genexpr>   c                 s   r*   r+   r%   r'   r   r   r!   r-   %   r.   r   N)r    labelsr   r   r   set	enumerateposr   r	   r   r&   depsubtreeupdaterangeheadr
   rights)r   np_depsnp_labelr&   wordunseenr   )r    r)   r!   noun_chunks   s.   

r>   N)typingr   r   r   r   symbolsr   r   r	   r
   tokensr   r   r0   intr>   SYNTAX_ITERATORSr   r   r   r!   <module>   s    (