3
d]              
   @   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eee
 ee f ed eeeeee edddZdd Zd	S )    )OptionalList)Floats2d)Model	zero_inituse_ops)Doc)Literal)Errors)registryTNparserner)tok2vec
state_typeextra_state_tokenshidden_widthmaxout_pieces	use_uppernOreturnc             C   s
  t jdd}t jdd}t jdd}	t jdd}
t jdd}|dkrR|rLdnd	}n(|d
krh|rbdnd}nttjj|d| jdr| jdnd }|| | |	||} | jd| ||r|n||| jd|d}|rt	d |	|t
d}W d Q R X nd }|
| ||tdS )Nlayerszchain.v1zlist2array.v1z	Linear.v1zspacy.TransitionModel.v1zspacy.PrecomputableAffine.v1r         r         )valuer   )r   ZnFnIZnPnumpy)r   Zinit_W)Zresize_output)r   get
ValueErrorr
   ZE917formathas_dimget_dimset_dimr   r   resize_output_v1)r   r   r   r   r   r   r   chainZ
list2arrayLinearZTransitionModelZPrecomputableAffineZnr_feature_tokensZ	t2v_widthlowerupper r)   S/var/www/html/virt/lib/python3.6/site-packages/spacy_legacy/architectures/parser.pyTransitionBasedParser_v1   s.    


r+   c             C   s~  t jdd}| jd}| jd}| jd sH|jdd krD|jd| d S |jdd krf|jd| d S ||jdkrxd S |}d }|jdr|jd}td |||d	}|j|_W d Q R X |rd|j	j
||}|j	j|}	|jd
}
|jd}|jdrL|
|d |jd< ||	d |jd< x*t|jd|D ]}| jd j| q2W |jd
| |jd|	 || jd< | jd| | S )Nr   z	Linear.v1r'   r(   Z	has_upperr   r   r   )r   r   WbZunseen_classes   )r   r   Zget_refattrsr!   r#   r"   r   initopsZalloc2fZalloc1f	get_paramrangeadd	set_paramZ_layersZset_ref)modelZnew_nOr&   r'   r(   Zsmallerr   ZlargerZlarger_WZlarger_bZ	smaller_WZ	smaller_bir)   r)   r*   r$   3   sD    








r$   )TN)r   r   )typingr   r   Zthinc.typesr   Z	thinc.apir   r   r   Zspacy.tokensr   Zspacy.compatr	   Zspacy.errorsr
   Z
spacy.utilr   boolintr+   r$   r)   r)   r)   r*   <module>   s   	 ( 