
    hh                        S SK JrJr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 SKJr  S SKJr  S SKJr  S SKJr    SS	\S
S.S\\   S\\   S\\   S\S\S\\\   \	4   4S jjjrS\\\   \	4   S\\   S\S\\	\4   4S jr  SS\S\\\   \	4   S\\\      S\\	   S\\\   \	4   4
S jjrS\S\4S jrS\S\S\\   S\\   4S jrg	)    )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          
      N    [        S[        [        [        U5      SS0XBS.XS.S9$ )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        ^/home/james-whalen/.local/lib/python3.13/site-packages/spacy_legacy/layers/staticvectors_v1.pyStaticVectors_v1r#      s4     T6"T{#=!     modeldocsis_trainc                 t  ^ ^	^
^ [        S U 5       5      (       d%  [        T R                  T R                  S5      5      $ T R                  S   n[        [        T R                  R                  T R                  S5      5      5      n[        [        US   R                  R                  R                  5      m	T R                  R                  U Vs/ s H4  oUR                  R                  R                  UR                  U5      S9PM6     sn5      m T R                  R                  T R                  R                  T	T   5      USS9n[)        UT R                  R+                  U Vs/ s H  n[-        U5      PM     snS	S
95      nS m
U(       aU  [/        T R                  UR0                  S   T R                  R3                  S5      5      m
T
b  U=R                  T
-  sl        S[(        S[4        [6           4U	U
U U4S jjnXx4$ s  snf ! [          a    [#        [$        R&                  5      ef = fs  snf )Nc              3   8   #    U  H  n[        U5      v   M     g 7fN)len).0docs     r"   	<genexpr>forward.<locals>.<genexpr>$   s     (4Cs3xx4s   r   r   r   r   )keysT)trans2i)dtyper   d_outputr   c           
         > Tb  U =R                   T-  sl         TR                  STR                  R                  U R                   TR                  R	                  TT   5      SS95        / $ )Nr   T)trans1)datainc_gradopsgemm	as_contig)r4   Vmaskr%   rowss    r"   backpropforward.<locals>.backprop9   sZ    MMT!MIINN8==%))*=*=ag*FtNT	
 	r$   )sum_handle_emptyr9   get_dimr   r   r
   r;   	get_paramvocabvectorsr7   flattenfindto_arrayr:   
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(BTcST(B#'NF DeiiU[[__^5TUKK4K6 d3i   1 	N  (6;;''( )Cs   ;H	7H +H5$H2XYc                 h   UR                  S5      (       a  UR                  S5      OS nUR                  S5      (       a  UR                  S5      OS nUb@  [        U5      (       a0  US   R                  R                  R
                  R                  S   nUb  UR
                  R                  S   nUc  [        [        R                  5      eUc  [        [        R                  5      eUR                  SU5        UR                  SU5        UR                  SU " UR                  XT45      5        U$ )Nr   r   r      r   )has_dimrC   r+   rE   rF   r7   rO   rJ   r   E905E904set_dim	set_paramr9   )r   r%   rS   rT   r   r   s         r"   r   r   E   s     !&d 3 3t	B %d 3 3t	B}QqTZZ$$**1-}VV\\!_	z%%	z%%	MM$	MM$	OOC		B845Lr$   r9   c                 ^    [        U R                  SU5      U R                  S5      5      S 4$ )Nr   c                     / $ r*    )d_raggeds    r"   <lambda>_handle_empty.<locals>.<lambda>]   s    r$   )r	   alloc2falloc1i)r9   r   s     r"   rB   rB   \   s(    #++a$ckk!n57JJJr$   ratec                 2    Ub  U R                  U4U5      $ S $ r*   )get_dropout_mask)r9   r   rd   s      r"   rN   rN   `   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   rB   rN   r^   r$   r"   <module>rs      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$   