
    h              	          S SK Jr  S SKJrJrJrJrJr  S SKJ	r	J
r
JrJrJrJrJrJrJr  S SKJr  SSKJr  SSKJrJrJrJrJr  SSKJrJr  SS	KJ r   SS
K!J"r"  SSK#J#r#   SS\S\\$   S\\\   \4   4S jjr%SS\$S\4S jjr&S\\   S\\\4   4S jr'S\S\\"/\4   4S jr(S\\"\$/\4   4S jr)S\$S\\"/\4   4S jr*S\\\/\\   4   4S jr+S\\\\   /\\\      4   4S jr,g)    )Path)CallableIterableListOptionalTuple)	LinearMaxoutModelRaggedchainlist2raggedreduce_meanresidualtuplify)Floats2d   )Errors)	CandidateInMemoryLookupKBKnowledgeBaseget_candidatesget_candidates_batch)DocSpan)registryVocab   )extract_spansNtok2vecnOreturnc                    [         R                  " [        [        S.5         U R	                  S5      n[        XS9nU [        5       -	  [        5       -  [        5       -	  [        5       -	  [        [        X"SSS95      -	  U-	  nUR                  SU5        UR                  SU 5        S S S 5        S	WR                  S
'   U$ ! , (       d  f       N= f)N)z>>&r"   )r"   nIr   g        )r"   r&   nPdropoutoutput_layerr!   Tinclude_span_maker)r   define_operatorsr   r   maybe_get_dimr	   r   build_span_makerr    r   r   r
   set_refattrs)r!   r"   token_widthr)   models        W/home/james-whalen/.local/lib/python3.13/site-packages/spacy/ml/models/entity_linker.pybuild_nel_encoderr3      s     
		u7 ;	<++D14&*:*<<} +!SQRS 	 	 	nl3i) 
= )-EKK$%L 
=	<s   BC  
Cn_sentsc                 >    [        S[        S9nXR                  S'   U$ )N
span_maker)forwardr4   )r   span_maker_forwardr/   )r4   r1   s     r2   r-   r-   3   s     /ABE$KK	L    docsc                 `   U R                   nU R                  S   n/ nU H  n/ n UR                   Vs/ s H  oPM     n	nUR                   Hv  n U	R                  UR                  5      n[        SX-
  5      n[        [        U	5      S-
  X-   5      nX   R                   nX   R"                  nUR%                  UU45        Mx     UR%                  UR'                  U5      5        M     U R                   R)                  U Vs/ s H  n[        U5      PM     sn5      n[+        U R                   R-                  U5      U5      nUS 4$ s  snf ! [         a'    U H  n
U
R                  S:H  U
l        M     US S  /n	 GN>f = f! [         a    [        [        R                  5      S ef = fs  snf )Nr4   r      c                     / $ N )xs    r2   <lambda>$span_maker_forward.<locals>.<lambda>[   s    "r9   )opsr/   sents
ValueErroriis_sent_startentsindexsentAttributeErrorRuntimeErrorr   E030maxminlenstartendappend	asarray2i	asarray1ir   flatten)r1   r:   is_trainrC   r4   
candidatesdoccandss	sentencestokent
sent_indexstart_sentenceend_sentencestart_token	end_tokenlengthsouts                      r2   r8   r8   9   s   
))Ckk)$GJ	!$'II.IqII. 88C:&__SXX6

 !J$89Ns9~1:3GHL#399K!/33ILL+y12 " 	#--./5 6 ii!!:"F:%3u::"FGG
"":.
8C7 / 	!$'EEQJ! QI		! " :"6;;/T9: #Gs3   EE
EFF+
E-F ?F %F(kb_pathc                 $   ^  S[         4U 4S jjnU$ )Nvocabc                 >   > [        U SS9nUR                  T5        U$ )Nr<   )entity_vector_length)r   	from_disk)rh   kbrf   s     r2   kb_from_fileload_kb.<locals>.kb_from_filea   s     e!<
W	r9   r   )rf   rm   s   ` r2   load_kbro   ^   s    E 
 r9   c                  (    S[         S[        4S jn U $ )Nrh   rj   c                     [        XS9$ Nrh   rj   r   rs   s     r2   empty_kb_factory-empty_kb_for_config.<locals>.empty_kb_factoryj   s    eWWr9   )r   int)ru   s    r2   empty_kb_for_configrx   i   s     X XS X r9   rj   c                 $   ^  S[         4U 4S jjnU$ )Nrh   c                    > [        U TS9$ rr   rt   rs   s    r2   ru   "empty_kb.<locals>.empty_kb_factorys   s    eBVWWr9   r   )rj   ru   s   ` r2   empty_kbr|   p   s    X X r9   c                      [         $ r>   )r   r?   r9   r2   create_candidatesr~   y   s    r9   c                      [         $ r>   )r   r?   r9   r2   create_candidates_batchr   }   s
      r9   r>   )r   )-pathlibr   typingr   r   r   r   r   	thinc.apir	   r
   r   r   r   r   r   r   r   thinc.typesr   errorsr   rl   r   r   r   r   r   tokensr   r   utilr   rh   r   r    rw   r3   r-   r8   ro   rx   r|   r~   r   r?   r9   r2   <module>r      sN    < <
 
 
 !       ) )- 
49h(c % "DI "E&(BR<S "Jug}$%XuclM&AB ug}$%8]D$98I;N$NO  HTN#Xhy.A%BB"  r9   