o
    i                     @   s  d dl Z d dlZ d dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZ d d	lmZ ejd
ddd Zejd
ddd Zejd
ddd Zejd
ddd Zejdd Zejdd Zejd
ddd Zejd
ddd Zejg dddd Zejd d! Zejd"d# Zejd$d% Z d&d' Z!d(d) Z"d*d+ Z#d,d- Z$e j%e j&' d.d/d0 Z(dS )1    N)ndarrays_of_shape)Language)	BeamBatch)ArcEager
StateClassDoc)ExampleVocabmodule)scopec                   C   s   t  S Nr    r   r   S/home/ubuntu/.local/lib/python3.10/site-packages/spacy/tests/parser/test_nn_beam.pyvocab      r   c                 C   s|   t | ji }|dd |dd |dd |dd |dd |dd |d	d
 |dd |dd |S )Nr          nsubjpunctaux	nsubjpass   dobj   ROOT)r   strings
add_action)r   aeagerr   r   r   moves   s   r"   c                 C   s$   t | g dg dg dg ddgS )N)Ratsbitethings)r   r   r   )r   r   r   )TFF)wordsheadsdepssent_startsr   )r   r   r   r   docs$   s   r*   c                 C      dd | D S )Nc                 S   s   g | ]	}t || qS r   )r
   copy.0docr   r   r   
<listcomp>3   s    zexamples.<locals>.<listcomp>r   r*   r   r   r   examples1      r2   c                 C   r+   )Nc                 S   s   g | ]}t |qS r   r   r-   r   r   r   r0   8   s    zstates.<locals>.<listcomp>r   r1   r   r   r   states6   r3   r4   c                 C   s:   g }| D ]}t jddt||f}|t | q|S )N皙皙?)numpyrandomuniformlenappendasarray)r*   vector_sizeoutputr/   vecr   r   r   tokvecs;   s
   r@   c                 C   s   t | S r   r:   r1   r   r   r   
batch_sizeD   s   rB   c                   C      dS )Nr   r   r   r   r   r   
beam_widthI      rD   )        g      ?      ?)paramsc                 C   s   | j S r   )param)requestr   r   r   beam_densityN   r   rK   c                   C   rC   )N   r   r   r   r   r   r=   S   rE   r=   c                 C   s"   |  |\}}}t| |||ddS )NrF   widthdensity)init_gold_batchr   )r"   r2   rD   r4   golds_r   r   r   beamX   s   rS   c                    s(   t jt  fddt|D ddS )Nc                    s"   g | ]}t jd d jfqS )r5   r6   )r7   r8   r9   n_moves)r.   rR   rD   r"   r   r   r0   b   s    zscores.<locals>.<listcomp>float32)dtype)r7   r<   concatenaterange)r"   rB   rD   r   rU   r   scores^   s   rZ   c                 C   s   d S r   r   )rS   r   r   r   test_create_beamk   s   r[   c                 C   s   |  | d S r   )advance)rS   rZ   r   r   r   test_beam_advanceo   s   r]   c                 C   s`   t dd | D }|d | }tt | |d d  W d    d S 1 s)w   Y  d S )Nc                 s       | ]}t |V  qd S r   rA   r.   rS   r   r   r   	<genexpr>t       z3test_beam_advance_too_few_scores.<locals>.<genexpr>)sumpytestraises
IndexErrorr\   )rS   rZ   n_stater   r   r    test_beam_advance_too_few_scoress   s
   "rh   c                    sL   t  }|d}||jd< |d | fdd |d}|| d S )Nbeam_parserrD   r   c                      s    S r   r   r   r2   r   r   <lambda>   s    z!test_beam_parse.<locals>.<lambda>zAustralia is a country)r   add_pipecfg	add_label
initializemake_doc)r2   rD   nlpparserr/   r   rj   r   test_beam_parsez   s   



rs   )hypc                 C   s   t |tjjdddd}| |\}}}t| ||||d}tdd |D }	|t|	| j	f}
|
|
 |D ]}|j}|j|ksEJ |d |d	 | ksQJ q9d S )
NrF   rG       )rN   rM   c                 s   r^   r   rA   r_   r   r   r   r`      ra   z$test_beam_density.<locals>.<genexpr>rb   r   )floatdraw
hypothesis
strategiesfloatsrP   r   rc   r   rT   r\   probsmin_density)r"   r2   rD   rt   rK   r4   rQ   rR   rS   rg   rZ   b
beam_probsr   r   r   test_beam_density   s   
r   ))rx   hypothesis.strategiesr7   rd   thinc.tests.strategiesr   spacy.languager   ,spacy.pipeline._parser_internals._beam_utilsr   *spacy.pipeline._parser_internals.arc_eagerr   +spacy.pipeline._parser_internals.stateclassr   spacy.tokensr	   spacy.trainingr
   spacy.vocabr   fixturer   r"   r*   r2   r4   r@   rB   rD   rK   r=   rS   rZ   r[   r]   rh   rs   givenry   datar   r   r   r   r   <module>   sT    


















