
    i              	          d dl mZ d dlmZmZmZmZmZ d dlm	Z	m
Z
mZmZmZmZmZmZmZ d dlmZ ddlmZ ddlmZmZmZmZmZ ddlmZmZ dd	lm Z  d
dl!m!Z! 	 ddedee"   deee   ef   fdZ#dde"defdZ$dee   deeef   fdZ%dedee gef   fdZ&dee e"gef   fdZ'de"dee gef   fdZ(deeegee   f   fdZ)deeee   geee      f   fdZ*y)    )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Vocab   )extract_spansNtok2vecnOreturnc           
         t        j                  t        t        d      5  | j	                  d      }t        ||      }| t               z	  t               z  t               z	  t               z	  t        t        ||dd            z	  |z	  }|j                  d|       |j                  d|        d d d        d	j                  d
<   |S # 1 sw Y   xY w)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        n/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/spacy/ml/models/entity_linker.pybuild_nel_encoderr2      s     
		u7 ;	< *++D14&*:*<<} ++!SQRS 	 	 	nl3i)* )-EKK$%L* *s   BCCn_sentsc                 F    t        dt              }| |j                  d<   |S )N
span_maker)forwardr3   )r   span_maker_forwardr.   )r3   r0   s     r1   r,   r,   2   s"    /ABE$EKK	L    docsc                 N   | j                   }| j                  d   }g }|D ]  }g }	 |j                  D cg c]  }| }	}|j                  D ]y  }	 |	j                  |j                        }t        d||z
        }t        t        |	      dz
  ||z         }|	|   j                   }|	|   j"                  }|j%                  ||f       { |j%                  |j'                  |              | j                   j)                  |D cg c]  }t        |       c}      }t+        | j                   j-                  |      |      }|d fS c c}w # t        $ r% |D ]  }
|
j                  dk(  |
_         |d d  g}	Y 8w xY w# t        $ r t        t        j                        d w xY wc c}w )Nr3   r      c                     g S N )xs    r1   <lambda>z$span_maker_forward.<locals>.<lambda>Z   s    " r8   )opsr.   sents
ValueErroriis_sent_startentsindexsentAttributeErrorRuntimeErrorr   E030maxminlenstartendappend	asarray2i	asarray1ir   flatten)r0   r9   is_trainrA   r3   
candidatesdoccandss	sentencestokent
sent_indexstart_sentenceend_sentencestart_token	end_tokenlengthsouts                      r1   r7   r7   8   s   
))Ckk)$GJ 0	!$'II.q.I. 88 	3C:&__SXX6

 !J$89Ns9~1:3GHL#N399K!,/33ILL+y12	3" 	#--./506 ii!!:"F%3u:"FGG
"":.
8C7 / 	! /$'EEQJ!/QI		! " :"6;;/T9: #Gs3   E
	EE
E;F"E

*E87E8;$Fkb_pathc                       dt         f fd}|S )Nvocabc                 D    t        | d      }|j                         |S )Nr;   )entity_vector_length)r   	from_disk)rf   kbrd   s     r1   kb_from_filezload_kb.<locals>.kb_from_file`   s     e!<
W	r8   r   )rd   rk   s   ` r1   load_kbrl   ]   s    E 
 r8   c                  &    dt         dt        fd} | S )Nrf   rh   c                     t        | |      S Nrf   rh   r   rp   s     r1   empty_kb_factoryz-empty_kb_for_config.<locals>.empty_kb_factoryi   s    eBVWWr8   )r   int)rr   s    r1   empty_kb_for_configrt   h   s     X XS X r8   rh   c                       dt         f fd}|S )Nrf   c                     t        |       S ro   rq   rp   s    r1   rr   z"empty_kb.<locals>.empty_kb_factoryr   s    eBVWWr8   r   )rh   rr   s   ` r1   empty_kbrw   o   s    X X r8   c                      t         S r=   )r   r>   r8   r1   create_candidatesry   x   s    r8   c                      t         S r=   )r   r>   r8   r1   create_candidates_batchr{   |   s
      r8   r=   )r   )+pathlibr   typingr   r   r   r   r   	thinc.apir	   r
   r   r   r   r   r   r   r   thinc.typesr   errorsr   rj   r   r   r   r   r   tokensr   r   rf   r   r   rs   r2   r,   r7   rl   rt   rw   ry   r{   r>   r8   r1   <module>r      sK    < <
 
 
 !      ) )- 
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"  r8   