
    i                         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 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 Zg dZdg dg ddfdg dg ddfgZd Zd Zd Zd Zd Zd Zy)    N)assert_almost_equalassert_equal)get_current_ops)util)MORPH)English)Language)
Morphology)make_tempdir)Doc)Examplec                      t               } | j                  d      }|j                  d       t        j                  t
              5  |j                  d       d d d        y # 1 sw Y   y xY w)NmorphologizerzFeat=A	   )r	   add_pipe	add_labelpytestraises
ValueErrornlpr   s     x/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/spacy/tests/pipeline/test_morphologizer.pytest_label_typesr      sT    
*CLL1MH%	z	" #"# # #s   A!!A*)Feat=NFeat=VFeat=JzI like green eggs)r   r   r   r   )NOUNVERBADJr   )morphsposzEat blue ham)r    r"   )r"   r   r"   c            	         t               } | j                  dd      }| j                  ddt        d            }g i }t        D ]$  }|j	                  |       |j	                  |       & t
        D ]<  }j                  t        j                  | j                  |d         |d                > | j                  fd	
       |j                  j                  D cg c]  }|j                   c}      \  }}t               }	|	j                  |j!                  |      d   d         }
|	j                  |j!                  |      d   d         }t#        ||
z  d       y c c}w )Nr   no_label_smoothinglabel_smoothingg?)r%   )configr      c                       S N train_exampless   r   <lambda>z&test_label_smoothing.<locals>.<lambda>4            get_examplesg+?)r	   r   dictTAGSr   
TRAIN_DATAappendr   	from_dictmake_doc
initializemodelbegin_update	predictedr   to_numpyget_lossr   )r   morph_no_lsmorph_lslossestagteg
tag_scoresbp_tag_scoresopsno_ls_gradsls_gradsr,   s               @r   test_label_smoothingrI   &   sW   
*C,,0DEK||*43M  H NF  c"3   Kg//QqT0BAaDIJK NN 6N7 ( ; ; ./"/!J 
C,,{33NJOPQRSTUVK||H--njI!LQOPH;.
; 	0s    E%c                      t               } | j                  d       t        j                  t              5  | j                          d d d        y # 1 sw Y   y xY w)Nr   )r	   r   r   r   r   r8   )r   s    r   test_no_labelrK   >   s@    
*CLL!	z	"   s   AAc            	          t               } | j                  d       g t        D ]<  }j                  t	        j
                  | j                  |d         |d                > | j                  fd       y )Nr   r   r'   c                       S r)   r*   r+   s   r   r-   z%test_implicit_label.<locals>.<lambda>K   r.   r/   r0   )r	   r   r4   r5   r   r6   r7   r8   )r   rB   r,   s     @r   test_implicit_labelrN   E   sg    
*CLL!N Kg//QqT0BAaDIJKNN 6N7r/   c                     t               } | j                  d      }|j                  dt        j                  z   dz          |j                  dt        j                  z   dz          | j                          t        j                  t              5  |j                  dt        j                  z   dz          d d d        y # 1 sw Y   y xY w)Nr   POSr   r   r   )	r	   r   r   r
   	FIELD_SEPr8   r   r   r   r   s     r   test_no_resizerR   N   s    
*CLL1MEJ$8$886ABEJ$8$886ABNN	z	" F
(<(< <u DEF F Fs   &B>>Cc            	      `   t               } | j                  d      }|j                  dt        j                  z   dz          g t
        D ]<  }j                  t        j                  | j                  |d         |d                > | j                          | j                  fd       t        j                  t              5  | j                  d        d d d        t        j                  t              5  | j                         d d d        y # 1 sw Y   >xY w# 1 sw Y   y xY w)	Nr   rP   r   r   r'   c                       S r)   r*   r+   s   r   r-   z*test_initialize_examples.<locals>.<lambda>b   r.   r/   r0   c                       y r)   r*   r*   r/   r   r-   z*test_initialize_examples.<locals>.<lambda>d   s    r/   )r	   r   r   r
   rQ   r4   r5   r   r6   r7   r8   r   r   	TypeError)r   r   rB   r,   s      @r   test_initialize_examplesrW   Y   s    
*CLL1MEJ$8$886ABN Kg//QqT0BAaDIJK NNNN 6N7	y	! 2L12	y	! 4N34 42 24 4s   D<D$D!$D-c            	      |   t               } | j                  d       g t        D ]<  }j                  t	        j
                  | j                  |d         |d                > | j                  fd      }t        d      D ]  }i }| j                  ||        d   dk  sJ d	} | |      }g d
}g d}|D 	cg c]  }	t        |	j                         c}	|k(  sJ |D 	cg c]  }	|	j                   c}	|k(  sJ t               5 }
| j                  |
       t        j                   |
      } ||      }|D 	cg c]  }	t        |	j                         c}	|k(  sJ |D 	cg c]  }	|	j                   c}	|k(  sJ 	 d d d        g d}| j#                  |      D cg c]  }|j%                  t&        g       }}| j#                  |      D cg c]  }|j%                  t&        g       }}|D cg c]
  } | |       c}D cg c]  }|j%                  t&        g       }}t)        ||       t)        ||       | j+                  d       | j                  d       D ]  }|j,                  D ]	  }d|_          | j                  fd      }t        d      D ]  }i }| j                  ||        |d   dk  sJ d	} | |      }g d
}g d}|D 	cg c]  }	t        |	j                         c}	|k(  sJ |D 	cg c]  }	|	j                   c}	|k(  sJ g d}t/        | j0                  g d|      }|D 	cg c]  }	t        |	j                         }}	|D 	cg c]  }	|	j                   }}	| j3                  d      }d|j4                  d<    ||      }|D 	cg c]  }	t        |	j                         c}	|k(  sJ |D 	cg c]  }	|	j                   c}	|k(  sJ d|j4                  d<   d|j4                  d<   t/        | j0                  ddgddg      } ||      }|D 	cg c]  }	t        |	j                         c}	ddgk(  sJ d|j4                  d<   d|j4                  d<   t/        | j0                  ddgddg      } ||      }|D 	cg c]  }	t        |	j                         c}	ddgk(  sJ d|j4                  d<   d|j4                  d<   t/        | j0                  ddgddg      } ||      }|D 	cg c]  }	t        |	j                         c}	ddgk(  sJ | j+                  d       | j                  d       D ]B  }|j,                  D ]1  }|j6                  dk(  rd |_        nd|_        |j9                  d        3 D | j                  fd!      }| j3                  d      j:                  J t        d      D ]  }i }| j                  ||        |d   dk  sJ d	} | |      }g d}g d"}|D 	cg c]  }	t        |	j                         c}	|k(  sJ |D 	cg c]  }	|	j                   c}	|k(  sJ y c c}	w c c}	w c c}	w c c}	w # 1 sw Y   xY wc c}w c c}w c c}w c c}w c c}	w c c}	w c c}	w c c}	w c c}	w c c}	w c c}	w c c}	w c c}	w c c}	w c c}	w )#Nr   r   r'   c                       S r)   r*   r+   s   r   r-   z%test_overfitting_IO.<locals>.<lambda>p       N r/   r0   2   )sgdr@   gh㈵>zI like blue ham)r   r   r"   r"   )r   r   r   r"   )zJust a sentence.z$Then one more sentence about London.zHere is another one.zI like London.r"   c                       S r)   r*   r+   s   r   r-   z%test_overfitting_IO.<locals>.<lambda>   rZ   r/   )r"   r"   r"   r"   )r   r   _)bluehamlike)wordsr    F	overwriteTextendIra   zFeat=A|That=A|This=AzFeat=N|That=A|This=Ar   zThat=BzFeat=V|That=Br   r`   r   c                       S r)   r*   r+   s   r   r-   z%test_overfitting_IO.<locals>.<lambda>   rZ   r/   )r   r   r   r   )r   r   r4   r5   r   r6   r7   r8   rangeupdatestrmorphpos_r   to_diskr   load_model_from_pathpipeto_arrayr   r   remove_pipe	referencer   vocabget_pipecfgtext	set_morphlabels)r   inst	optimizerir@   	test_textdocgold_morphsgold_pos_tagsrB   tmp_dirnlp2doc2textsbatch_deps_1batch_deps_2ru   no_batch_depsexampletokenr    orig_morphsorig_pos_tagsr   r,   s                           @r   test_overfitting_IOr   i   s   
)CLL!N Qg//T!W0EtAwOPQ,BCI2Y A

>y
@A /"W,,, "I
i.C.K/M"%&QCL&+555 qAFF M111 
 77G((1I&*+AGG+{::: $%1%6667E 69XXe_EcCLL%)ELE58XXe_EcCLL%)ELEMR6STs4y6STsS\\5'*TMT|,}- OOO$LL!! && 	EEJ	 ,BCI2Y A

>y
@A /"W,,, "I
i.C.K$M"%&QCL&+555 qAFF M111 'F
cii6v
FC),-A3qww<-K-%()QVV)M)LL1M &+Mk"

C"%&QCL&+555 qAFF M111 &*Mk""&Mh
ciiV}6Lb5Q
RC

C"%&QCL&+A8*LLLL &+Mk""&Mh
ciiV}6Lh5W
XC

C"%&QCL&+A?*SSSS &*Mk""'Mh
ciiV}6Lb5Q
RC

C"%&QCL&8X*>>>> OOO$LL!! "&& 	"EzzU"#

OOD!	"" ,BCI<<(//;;;2Y A

>y
@A /"W,,, "I
i.C"K4M"%&QCL&+555 qAFF M111M '  ,%7 7 FE6ST* '  .) '  ' ' '0 ' s   ?Y'Y3Y&?YY&'Y!:Y&"Y3Y87Y=ZZZZ%Z&ZZ /Z%Z*Z/Z46Z9
Y&&Y0)r   numpy.testingr   r   	thinc.apir   spacyr   spacy.attrsr   spacy.lang.enr   spacy.languager	   spacy.morphologyr
   spacy.tests.utilr   spacy.tokensr   spacy.trainingr   r   r3   r4   rI   rK   rN   rR   rW   r   r*   r/   r   <module>r      s~     ; %   ! # ' )  "# & 	>2	
  2?KL

<08F4 y2r/   