o
    
 ¢i]  ã                   @   s´   d dl mZmZ d dlmZ d dlmZ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ee
 ee f ded dededededee defdd„Zdd„ Zd	S )é    )ÚOptionalÚList)ÚFloats2d)ÚModelÚ	zero_initÚuse_ops)ÚDoc)ÚLiteral)ÚErrors)ÚregistryTNÚtok2vecÚ
state_type)ÚparserÚnerÚextra_state_tokensÚhidden_widthÚmaxout_piecesÚ	use_upperÚnOÚreturnc                 C   s  t  dd¡}t  dd¡}t  dd¡}	t  dd¡}
t  dd¡}|dkr)|r&dnd	}n|d
kr4|r1dnd}n	ttjj|dƒ‚|  d¡rG|  d¡nd }|| |ƒ |	||ƒƒ} |  d|¡ ||r^|n|||  d¡|d}|r…t	dƒ |	|t
d}W d   ƒ n1 sw   Y  nd }|
| ||tdS )NÚlayerszchain.v1zlist2array.v1ú	Linear.v1zspacy.TransitionModel.v1zspacy.PrecomputableAffine.v1r   é   é   r   é   é   )Úvaluer   )r   ÚnFÚnIÚnPÚnumpy)r   Úinit_W)Úresize_output)r   ÚgetÚ
ValueErrorr
   ÚE917ÚformatÚhas_dimÚget_dimÚset_dimr   r   Úresize_output_v1)r   r   r   r   r   r   r   ÚchainÚ
list2arrayÚLinearÚTransitionModelÚPrecomputableAffineÚnr_feature_tokensÚ	t2v_widthÚlowerÚupper© r4   úU/home/ubuntu/.local/lib/python3.10/site-packages/spacy_legacy/architectures/parser.pyÚTransitionBasedParser_v1   s4   

ü
þ€r6   c                 C   sˆ  t  dd¡}|  d¡}|  d¡}| jd s$| d¡d u r"| d|¡ d S | d¡d u r3| d|¡ d S || d¡kr<d S |}d }| d¡rJ| d¡}tdƒ |||d	}|j|_W d   ƒ n1 scw   Y  |r·|j	 
||¡}|j	 |¡}	| d
¡}
| d¡}| d¡r«|
|d | d¡…< ||	d | d¡…< t| d¡|ƒD ]
}| jd  |¡ q | d
|¡ | d|	¡ || jd< |  d|¡ | S )Nr   r   r2   r3   Ú	has_upperr   r   r    )r   r   ÚWÚbÚunseen_classeséÿÿÿÿ)r   r#   Úget_refÚattrsr'   r)   r(   r   ÚinitÚopsÚalloc2fÚalloc1fÚ	get_paramÚrangeÚaddÚ	set_paramÚ_layersÚset_ref)ÚmodelÚnew_nOr-   r2   r3   Úsmallerr   ÚlargerÚlarger_WÚlarger_bÚ	smaller_WÚ	smaller_bÚir4   r4   r5   r*   3   sF   






þ



r*   )TN)Útypingr   r   Úthinc.typesr   Ú	thinc.apir   r   r   Úspacy.tokensr   Úspacy.compatr	   Úspacy.errorsr
   Ú
spacy.utilr   ÚboolÚintr6   r*   r4   r4   r4   r5   Ú<module>   s6    	ùÿþýüûúù
ø(