
    i[                        d dl 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mZmZmZ d dlmZ ddlmZ dd	lmZmZ dd
lmZ ddlmZ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)"    N)CallableListOptionalTuplecast)ModelOps)glorot_uniform_init)Floats1dFloats2dInts1dRagged)partial   )ORTH)ErrorsWarnings)Doc)ModeVectors)Vocabr   )dropoutinit_Wkey_attrnOnMr   r   r   returnc          
          |dk7  r(t        j                  t        j                  t               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.
    r   static_vectorsWN)r   dropout_rate)r   r   )initparamsattrsdims)	warningswarnr   W125DeprecationWarningr   forwardr   r"   )r   r   r   r   r   s        g/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/spacy/ml/staticvectors.pyStaticVectorsr,      sS     6hmm%78T6"T{#W=b!     modeldocsis_trainc                 r    t        d |D              }|s%t         j                   j                  d            S |d   j                  }t        |j                  dt              } j                  j                  |D cg c]!  }t        t        |j                  |            # c}      }t        t         j                  j                   j                  d                  }t        |j                  t               r|j                  j"                  t$        j&                  k(  rj j                  j)                  |j                  j*                        |j                  j-                  |      }	 j                  j                  |	         nt        |j                  t               r^|j                  j"                  t$        j.                  k(  r7|j                  j1                  |       j                  j                        nft3        |j                  d      r7|j                  j1                  |       j                  j                        nt5        t6        j8                        	  j                  j;                  |d	      }
t        |j                  t               r/|j                  j"                  t$        j&                  k(  rd|
	dk  <   t?        |
 j                  jA                  |D cg c]  }tC        |       c}            }d |rTtE         j                  |jF                  d    jH                  jK                  d
            |xj*                  z  c_        dt>        dtL        tN           f fd}||fS c c}w # t<        $ r t5        t6        j8                        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     /3c#h/s   r   r   attrr    )keys	get_batchT)trans2r!   d_outputr   c                    | xj                   z  c_         j                  dj                  j                  t	        t
        | j                         t	        t
        j                  j                              d             g S )Nr    T)trans1)datainc_gradopsgemmr   r   	as_contig)r<   Vmaskr.   s    r+   backpropzforward.<locals>.backpropM   sl    MMT!MIINNXx}}-Xuyy22156  	
 	r-   )(sum_handle_emptyrA   get_dimvocabgetattrvectorsr   flattenr   r   to_arrayr   rC   	get_param
isinstancer   moder   defaultasarrayr?   findfloretr:   hasattrRuntimeErrorr   E896rB   
ValueErrorr   	asarray1ir4   _get_drop_maskshaper$   getr   r   )r.   r/   r0   token_countrJ   r   r6   r9   r    rowsvectors_dataoutputrF   rD   rE   s   `            @@r+   r*   r*   (   s    /$//KUYYd(;<<7==EEMM648H99dSsd63<<+ABSTDXuyy**5??3+?@AA%--)emm.@.@DLL.PIIemm001}}!!t!,II$(	EMM7	+0B0Bdkk0QMM##D)II"		,MM##D)II"6;;''(yy~~a4~8 %--)emm.@.@DLL.P "#TAXL%))"5"546PCs3x6P"QRFDeiiU[[__^5TUKK4K6 d3i  8U T   (6;;''( 7Qs    &N	/N 5N4#N1XYc                 0   |j                  d      r|j                  d      nd }|j                  d      r|j                  d      nd }|1t        |      r&|d   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_dimrI   r4   rJ   rL   r\   r?   rY   r   E905E904set_dim	set_paramrA   )r   r.   rb   rc   r   r   s         r+   r"   r"   ]   s     !&d 3t	B %d 3t	B}QqTZZ%%a(}VV\\!_	z%%	z%%	MM$	MM$	OOC		B845Lr-   rA   c                 ^    t        | j                  d|      | j                  d            d fS )Nr   c                     g S r3    )d_raggeds    r+   <lambda>z_handle_empty.<locals>.<lambda>u   s     r-   )r   alloc2falloc1i)rA   r   s     r+   rH   rH   t   s(    #++a$ckk!n57JJJr-   ratec                 2    || j                  |f|      }|S y r3   )get_dropout_mask)rA   r   rr   rE   s       r+   r[   r[   x   s$    ##RE40r-   )NN)(r&   typingr   r   r   r   r   	thinc.apir   r	   thinc.initializersr
   thinc.typesr   r   r   r   
thinc.utilr   r$   r   errorsr   r   tokensr   rL   r   r   rJ   r   intfloatstrr,   boolr*   r"   rH   r[   rm   r-   r+   <module>r      s    8 8   2 : :   %  #    $* e_	
   49f02cF"#2+/92@D2
682p "	cF"# S	 	
 49f.Ks K K  HUO @R r-   