
    h>                     ~    S SK JrJrJr  SSKJr  SSKJrJrJ	r	  SSK
JrJr  S\\\4   S\\\\\4      4S jrS	\0rg
)    )IteratorTupleUnion   )Errors)NOUNPRONPROPN)DocSpandoclikereturnc              #     ^^#    / SQnU R                   mTR                  S5      (       d  [        [        R                  5      eU Vs/ s H(  nTR
                  R                  R                  U5      PM*     nnTR
                  R                  R                  S5      nTR
                  R                  R                  S5      mTR
                  R                  R                  S5      nUU4S jn[        T5      S-   n[        [        [        U 5      5      5       H  u  pU	R                  [        [        [        4;  a  M&  U	R                   U:  a  M8  U	R"                  U;   a9  U	R$                  R                   nU	R$                  R                   U" U	5      U4v   M  U	R"                  U:X  d  M  U	R$                  n
U
R                   nU
R&                  R                   S-   U" U	5      U4v   M     gs  snf 7f)	zO
Detect base noun phrases from a dependency parse. Works on both Doc and Span.
)nsubjiobjobjoblapposorphan
dislocatedROOTDEPconjflatNPc                    > U R                   S-   nTU R                      R                   H?  nUR                  T:X  a+  UR                  [        [
        4;   a  UR                   S-   nM>    U$    U$ )N   )irightsdepposr   r
   )wrindexrdepdocr   s      X/home/james-whalen/.local/lib/python3.13/site-packages/spacy/lang/tr/syntax_iterators.pyextend_right!noun_chunks.<locals>.extend_right    s]    qHOODxx4DHHu$=! $
     r   N)r%   has_annotation
ValueErrorr   E029vocabstringsaddlenreversedlist	enumerater!   r   r
   r	   r   r    	left_edge
right_edge)r   labelslabelnp_depsr   np_labelr'   prev_endr   wordcc_tokenr%   r   s              @@r&   noun_chunksr=      s    
	F ++Ce$$%%9?@syy  $$U+G@99  (D99  (Dyy  $$T*H 3x!|HD7!34588D%..66X88w~~''H..""L$6@@XX~~HzzH%%''!+\$-?II 6 As   AG3/G.7D2G3-AG3r=   N)typingr   r   r   errorsr   symbolsr   r	   r
   tokensr   r   intr=   SYNTAX_ITERATORS r)   r&   <module>rE      sT    ) )  ( ( /JsDy) /JhuS#s]7K.L /Jd ";/ r)   