
    ih                        d dl mZmZ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 dlmZ d dlmZ d dlmZ d dlmZ 	 	 dd	ed
ddee   dee   dee   dededeee   e	f   fdZdeee   e	f   dee   dedee	ef   fdZ	 	 ddedeee   e	f   deee      dee	   deee   e	f   f
dZdedefdZdededee   dee   fdZy	)    )ListTupleCallableOptionalcast)partial)RaggedFloats2dFloats1d)ModelOps)glorot_uniform_init)Doc)Errors)registryNORTH)dropoutinit_Wkey_attrnOnMr   r   r   returnc          
      X    t        dt        t        t        |      ddi||d| |d      S )zEmbed Doc objects with their vocab's vectors table, applying a learned
    linear projection to control the dimensionality. If a dropout rate is
    specified, the dropout is applied per dimension over the whole batch.
    static_vectorsWN)r   dropout_rate)r   r   )initparamsattrsdims)r   forwardr   r   )r   r   r   r   r   s        u/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/spacy_legacy/layers/staticvectors_v1.pyStaticVectors_v1r#      s8     T6"T{#W=b!     modeldocsis_trainc                 b   	
 t        d |D              s%t         j                   j                  d            S  j                  d   }t        t         j                  j                   j                  d                  }t        t        |d   j                  j                  j                        	 j                  j                  |D cg c]7  }|j                  j                  j                  |j                  |            9 c}      	  j                  j                   j                  j                  	         |d      }t)        | j                  j+                  |D cg c]  }t-        |       c}d	
            }d 
|rTt/         j                  |j0                  d    j                  j3                  d            

|xj                  
z  c_        dt(        dt4        t6           f	
 fd}||fS c c}w # t         $ r t#        t$        j&                        w xY wc c}w )Nc              3   2   K   | ]  }t        |        y wN)len).0docs     r"   	<genexpr>zforward.<locals>.<genexpr>$   s     (Cs3x(s   r   r   r   r   )keysT)trans2i)dtyper   d_outputr   c           
          | xj                   z  c_         j                  dj                  j                  | j                   j                  j	                           d             g S )Nr   T)trans1)datainc_gradopsgemm	as_contig)r3   Vmaskr%   rowss    r"   backpropzforward.<locals>.backprop9   sZ    MMT!MIINN8==%))*=*=ag*FtNT	
 	r$   )sum_handle_emptyr8   get_dimr   r   r
   r:   	get_paramvocabvectorsr6   flattenfindto_arrayr9   
ValueErrorRuntimeErrorr   E896r	   asarrayr+   _get_drop_maskshapegetr   r   )r%   r&   r'   r   r   r-   vectors_dataoutputr>   r;   r<   r=   s   `        @@@r"   r!   r!   !   s    (4((UYYd(;<<{{:&HXuyy**5??3+?@AAXtAw}},,112A99HLM				S\\(%;		<MD(yy~~eii&9&9!D'&BAd~S eii''T(BcS(B#'NF DeiiU[[__^5TUKK4K6 d3i   81 	N  (6;;''( )Cs   <H:H *H,#H)XYc                 D   |j                  d      r|j                  d      nd }|j                  d      r|j                  d      nd }|;t        |      r0|d   j                  j                  j
                  j                  d   }||j
                  j                  d   }|t        t        j                        |t        t        j                        |j                  d|       |j                  d|       |j                  d | |j                  ||f             |S )Nr   r   r      r   )has_dimrA   r+   rC   rD   r6   rM   rH   r   E905E904set_dim	set_paramr8   )r   r%   rQ   rR   r   r   s         r"   r   r   E   s     !&d 3t	B %d 3t	B}QqTZZ$$**1-}VV\\!_	z%%	z%%	MM$	MM$	OOC		B845Lr$   r8   c                 ^    t        | j                  d|      | j                  d            d fS )Nr   c                     g S r*    )d_raggeds    r"   <lambda>z_handle_empty.<locals>.<lambda>]   s     r$   )r	   alloc2falloc1i)r8   r   s     r"   r@   r@   \   s(    #++a$ckk!n57JJJr$   ratec                 0    || j                  |f|      S d S r*   )get_dropout_mask)r8   r   ra   s      r"   rL   rL   `   s!    040@3t,JdJr$   )NN) typingr   r   r   r   r   
thinc.utilr   thinc.typesr	   r
   r   	thinc.apir   r   thinc.initializersr   spacy.tokensr   spacy.errorsr   
spacy.utilr   intfloatstrr#   boolr!   r   r@   rL   r\   r$   r"   <module>rp      s~   8 8  2 2   2      $* e_	
   49f,!cF"#!+/9!@D!
68!N "	cF"# S	 	
 49f.Ks K KK K KHUO K@R Kr$   