
    i8                     d   d dl Z d dlmZmZ d dl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 d d	lmZ d d
lmZ d dlmZ e j.                  d        Ze j.                  d        Zd Zd Zd Zd Zd Zd Ze j@                  jC                  dedefedefg      d        Z"d Z#d Z$d Z%d Z&y)    N)Adamfix_random_seed)registry)NORM)Language)DependencyParserEntityRecognizer)DEFAULT_PARSER_MODEL)DEFAULT_NER_MODEL)Doc)Example)Vocabc                  (    t        t        d i      S )Nc                     | S N )ss    r/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/spacy/tests/parser/test_add_label.py<lambda>zvocab.<locals>.<lambda>   s    1     )lex_attr_getters)r   r   r   r   r   vocabr      s    4"566r   c                 b    dt         i}t        j                  |d      d   }t        | |      }|S )NmodelTvalidate)r
   r   resolver   )r   cfgr   parsers       r   r   r      s5    (
)CS409EeU+FMr   c                      y r   r   r   s    r   test_init_parserr"      s    r   c                 <    t        d        j                  d        j                   fd       t        d      }t	        d      D ]Q  }i }t         j                  g d      }g dg d	d
}t        j                  ||      } j                  |g||       S  S )N   leftc                      t               gS r   )_parser_exampler!   s   r   r   z_train_parser.<locals>.<lambda>#   s    v67 r   MbP?   abcdwordsr$   r$      r2   )r%   ROOTr%   r3   headsdepssgdlosses)
r   	add_label
initializer   ranger   r   r   	from_dictupdate)r   r8   ir9   docgoldexamples   `      r   _train_parserrC       s    A
V
78
u+C1X 9&,,&:;%/OP##C.wiS89 Mr   c                 r    t        | j                  g d      }g dg dd}t        j                  ||      S )Nr*   r/   r1   )rightr3   r%   r3   r4   r   r   r   r=   )r   r@   rA   s      r   r'   r'   /   s1    
fll"6
7C!+LMDS$''r   c                 l    t        | j                  g d      }dddgi}t        j                  ||      S )N)JoelovesvisitingLondonduringtheweekendr/   entities)r   r2   PERSON)      LOCrF   )nerr@   rA   s      r   _ner_examplerU   5   s;    
		PC )?;<DS$''r   c                 D   t        |       } | j                  d       t        d      }t        d      D ]"  }i }| j	                  t        |       g||       $ t        | j                  g d      } | |      }|d   j                  dk(  sJ |d   j                  d	k(  sJ y )
NrE   r(   d   r7   r*   r/   r      r%   )	rC   r:   r   r<   r>   r'   r   r   dep_)r   r8   r?   r9   r@   s        r   test_add_labelrZ   >   s    6"F
W
u+C3Z Iv./SHI fll"6
7C
+Cq6;;'!!!q6;;&   r   c                     dt         i} t        j                  | d      d   }t        t	               |      j                  d       j                  d       j                  d       j                  fd       t        t	               |      } |j                  j                  d   |j                  j                  j                         |j                  j                                j                  j                  |j                  j                  k(  sJ t        j                  j                        D ];  }j                  j                  |      |j                  j                  |      k(  r;J  y )	Nr   Tr   CBAc                      t               gS r   )rU   )ner1s   r   r   z7test_add_label_deserializes_correctly.<locals>.<lambda>R   s    \$/0 r   resize_output)r   r   r   r	   r   r:   r;   r   attrsmovesn_moves
from_bytesto_bytesr<   get_class_name)r   r   ner2r?   r`   s       @r   %test_add_label_deserializes_correctlyri   K   s   %
&CS409EEGU+DNN3NN3NN3OO01EGU+D &DJJ_%djj$**2D2DEOODMMO$::!3!33334::%%& Lzz((+tzz/H/H/KKKKLr   zpipe_cls,n_moves,model_configr)      c                 ,   g d}t        j                  d|id      d   } | t               |      }|D ]  }|j                  |        t	        |j
                        t	        |      |z  k(  sJ t        t        |j                              }||k(  sJ y)zTest that added labels are returned correctly. This test was added to
    test for a bug in DependencyParser.labels that'd cause it to fail when
    splitting the move names.
    r^   r]   r\   r   Tr   N)	r   r   r   r:   len
move_namessortedlistlabels)pipe_clsrd   model_configrq   r   pipelabelpipe_labelss           r   test_add_label_get_labelrw   ]   s     Fg|4tDWMEEGU#D ut3v;#8888dkk*+K&   r   c                  >   t               } | j                  d      }dD ]  }|j                  |        | j                          t	        | j
                  ddgddg      } ||       |D cg c]  }|j                   c}dd	gk(  sJ d|j                  v sJ y c c}w )
NrT   rl   helloworldB-DOr0   entsD )r   add_piper:   r;   r   r   	ent_type_rq   )nlprT   ru   r@   ts        r   +test_ner_labels_added_implicitly_on_predictr   s   s    
*C
,,u
C  eNN
cii1
ECH!$%AAKK%#r222#** &s   ,Bc                  
   t               } | j                  d      }dD ]  }|j                  |        | j                          t	        | j
                  ddgddg      }|j                  |gd	       d
|j                  v sJ y )Nbeam_nerrl   ry   rz   r{   r|   r}       )
beam_widthr   )r   r   r:   r;   r   r   
beam_parserq   r   rT   ru   r@   s       r   .test_ner_labels_added_implicitly_on_beam_parser      s{    
*C
,,z
"C  eNN
cii1
ECNNC5RN(#**r   c                     t               } | j                  d      }dD ]  }|j                  |        | j                          t	        | j
                  ddgddg      }|j                  |g       d|j                  v sJ y )	Nr   rl   ry   rz   r{   r|   r}   r   )r   r   r:   r;   r   r   greedy_parserq   r   s       r   0test_ner_labels_added_implicitly_on_greedy_parser      sy    
*C
,,z
"C  eNN
cii1
ECcU#**r   c                  p   t               } | j                  d      }dD ]  }|j                  |        | j                          t	        | j
                  ddgddg      }t        | j                  |j                        |      }d|j                  vsJ | j                  |g       d|j                  v sJ y )	NrT   rl   ry   rz   r{   r|   r}   r   )r   r   r:   r;   r   r   r   make_doctextrq   r>   )r   rT   ru   r@   rB   s        r   *test_ner_labels_added_implicitly_on_updater      s    
*C
,,u
C  eNN
cii1
ECcll388,c2Gcjj   JJy#**r   )'pytest	thinc.apir   r   spacyr   spacy.attrsr   spacy.languager   spacy.pipeliner   r	   spacy.pipeline.dep_parserr
   spacy.pipeline.nerr   spacy.tokensr   spacy.trainingr   spacy.vocabr   fixturer   r   r"   rC   r'   rU   rZ   ri   markparametrizerw   r   r   r   r   r   r   r   <module>r      s     +   # = : 0  "  7 7  	((
!L$ #	123	1/0!!	
r   