
    i@%                     D   d dl Z 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 ej                  d	        Zej                  d
        Zej                  d        Zej                  d        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z y)    N)registryutilEnglish)AttributeRuler)Doc)Example   )make_tempdirc                      t               S Nr        y/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/spacy/tests/pipeline/test_attributeruler.pynlpr      s
    9r   c                  N    ddigddiggddddddiggd	d
idddiggddiddgS NORTHa
irrelevanttheCase=Nom|Number=PlurLEMMAMORPHpatternsattrstestr   catr   Case=Nom|Number=Singr   )r   r   indexr   r   r   r   pattern_dictsr#      sm     "3-FL+A*BC$/EF	

 '()We4DE "6*+,56	
 r   c                      dddddddS )NPUNCTperi)POS	PunctTypecomm).,r   r   r   r   tag_mapr,   $   s     6262 r   c                      ddddddiiS )NDTr   DETr   Nom)r'   r   Caser   r   r   r   morph_rulesr2   ,   s    5%#uEFGGr   c                 N   t        | j                  g dg d      } | |      }t        t        |            D ]j  }|dk(  r2||   j                  dk(  sJ t        ||   j                        dk(  r8J ||   j                  dk(  sJ t        ||   j                        dk(  rjJ  y )NThisisr   r   r*   r.   VBZr.   NNr*   wordstags   r%   zPunctType=peri )r   vocabrangelenpos_strmorphrulerdocis      r   check_tag_maprI   1   s    
.+C
 *C3s8_ +6q6;;')))s1v||$(8888q6;;"$$$s1v||$***+r   c                 v   t        | j                  g dg d      } | |      }t        t        |            D ]~  }|dk7  r2||   j                  dk(  sJ t        ||   j                        dk(  r8J |d   j                  dk(  sJ |d   j                  dk(  sJ t        |d   j                        dk(  r~J  y )	N)r5   r6   r   r   r*   r7   r:   r
   r>   r/   r   zCase=Nom)r   r?   r@   rA   rB   rC   rD   lemma_rE   s      r   check_morph_rulesrL   A   s    
0+C
 *C3s8_ 36q6;;"$$$s1v||$***q6;;%'''q6==C'''s1v||$
2223r   c                 x   | j                  d      }|D ]  } |j                  di |   | d      }|d   j                  dk(  sJ t        |d   j                        dk(  sJ |d   j                  dk(  sJ t        |d   j                        dk(  sJ |j                  d	      sJ |j                  d
      sJ y )Nattribute_rulerThis is a test.r
   r   r      r    r!   r   r   r   )add_pipeaddrK   rC   rD   has_annotation)r   r#   r   prG   s        r   test_attributeruler_initrU   R   s    &'A 



 Cq6==E!!!s1v|| 6666q6==E!!!s1v|| 6666g&&&g&&&r   c                 Z   | j                  d      }|j                  d |        | d      }|d   j                  dk(  sJ t        |d   j                        dk(  sJ |d   j                  d	k(  sJ t        |d   j                        d
k(  sJ |j                  d      sJ |j                  d      sJ | j                  d       t        j                  d      d        }dddii| j                  d   d   d<   | j                  d       | j                           | d      }|d   j                  dk(  sJ t        |d   j                        dk(  sJ |d   j                  d	k(  sJ t        |d   j                        d
k(  sJ |j                  d      sJ |j                  d      sJ y )NrN   c                      g S r   r   r   r   r   <lambda>z3test_attributeruler_init_patterns.<locals>.<lambda>b       R r   r   rO   r
   r   r   rP   r    r!   r   r   attribute_ruler_patternsc                  N    ddigddiggddddddiggd	d
idddiggddiddgS r   r   r   r   r   r[   zCtest_attributeruler_init_patterns.<locals>.attribute_ruler_patternsm   sm      &sm_/E.FG#(3IJ
 #F+,-%8HI  &v./0!#9:
 	
r   r   @misc
initialize
components)
rQ   r^   rK   rC   rD   rS   remove_piper   miscconfig)r   r#   rF   rG   r[   s        r   !test_attributeruler_init_patternsrc   _   s   LL*+E	Z-8

 Cq6==E!!!s1v|| 6666q6==E!!!s1v|| 6666g&&&g&&&OO%& ]]-.
 /
" 	W89ACJJ|\*+<= LL"#NN

 Cq6==E!!!s1v|| 6666q6==E!!!s1v|| 6666g&&&g&&&r   c                     | j                  d      }t        |j                        rJ |j                  |       t        |j                        sJ |j	                  d        t        |j                        rJ y)z)Test that initialization clears patterns.rN   c                      g S r   r   r   r   r   rX   z0test_attributeruler_init_clear.<locals>.<lambda>   rY   r   N)rQ   rA   matcheradd_patternsr^   )r   r#   rF   s      r   test_attributeruler_init_clearrh      sf    LL*+E5==!!!	}%u}}	Z 5==!!!!r   c                 &   | j                  d      }|j                  d |        | d      }|d   j                  dk(  sJ t        |d   j                        dk(  sJ |d   j                  d	k(  sJ t        |d   j                        d
k(  sJ | j                  d      }t        j                  |dg di      g}| j                  |      }|d   t        j                  d      k(  sJ |d   J | j                  d       t        j                  d      d        }| j                  ddddii      }|j                  d |       | j                  |ddi      }|d   dk(  sJ d|v sJ d|vsJ | j                  |ddi      }|d   dk(  sJ y )NrN   c                      g S r   r   r   r   r   rX   z+test_attributeruler_score.<locals>.<lambda>   rY   r   rZ   rO   r
   r   r   rP   r    r!   lemmas)thisr6   r   r    r*   	lemma_accg?	morph_acczweird_scorer.v1c                      d } | S )Nc                 
    d|iS )Nweird_scorer   )examplesrq   kwargss      r   weird_scorerzJtest_attributeruler_score.<locals>.make_weird_scorer.<locals>.weird_scorer   s    !;//r   r   )rt   s    r   make_weird_scorerz4test_attributeruler_score.<locals>.make_weird_scorer   s    	0 r   scorerr]   )rb   c                      g S r   r   r   r   r   rX   z+test_attributeruler_score.<locals>.<lambda>   rY   r   rq   g|Pk?)
scorer_cfg	token_accgy?)rQ   r^   rK   rC   rD   make_docr	   	from_dictevaluatepytestapproxr`   r   ra   )r   r#   rF   rG   dev_examplesscoresru   s          r   test_attributeruler_scorer      s   LL*+E	Z-8

 Cq6==E!!!s1v|| 6666q6==E!!!s1v|| 6666
,,(
)C%%cH6U+VWXL\\,'F+&--"4444+&&&OO%& ]]$% & LL8g7H-I"J  E 
Z-8\\,M73K\LF- G+++&   f$$$\\,M73K\LF- G+++r   c                     t        | j                        }ddiggddidddiggddidg}|j                  |       t        | j                  g dg d	      } ||      }|d
   j                  dk(  sJ y )NTAGr8   r'   VERBr   NOUNr4   r7   r:      )r   r?   rg   r   rB   )r   r   r   rG   s       r   test_attributeruler_rule_orderr      s    syy!Au~&'5&/Bu~&'5&/BH NN8
		.+C
 C&Cq6;;&   r   c                 f    t        | j                        }|j                  |       t        |       y r   )r   r?   load_from_tag_maprI   r   r,   rF   s      r   test_attributeruler_tag_mapr      s&    399%E	G$%r   c                 d    | j                  d      }|j                  d |       t        |       y )NrN   c                      g S r   r   r   r   r   rX   z8test_attributeruler_tag_map_initialize.<locals>.<lambda>   rY   r   )r,   )rQ   r^   rI   r   s      r   &test_attributeruler_tag_map_initializer      s,    LL*+E	Z1%r   c                 f    t        | j                        }|j                  |       t        |       y r   )r   r?   load_from_morph_rulesrL   r   r2   rF   s      r   test_attributeruler_morph_rulesr      s&    399%E	,er   c                 d    | j                  d      }|j                  d |       t        |       y )NrN   c                      g S r   r   r   r   r   rX   z<test_attributeruler_morph_rules_initialize.<locals>.<lambda>   rY   r   )r2   )rQ   r^   rL   r   s      r   *test_attributeruler_morph_rules_initializer      s,    LL*+E	Z[9er   c                    | j                  d      }|j                  ddiddiggdddd	       |j                  dd
iddiggdddd	       |j                  ddiddiggddid	       d} | |      }t        t        |            D ]  }|dk(  r2||   j                  dk(  sJ t        ||   j                        dk(  r8J |dk(  r2||   j                  dk(  sJ t        ||   j                        dk(  roJ |dk(  r||   j                  dk(  rJ t        ||   j                        dk(  rJ  |j                  ddiddiggddid	       t        j                  t              5   | |      }d d d        |j                  ddiddiggddid	       t        j                  t              5   | |      }d d d        y # 1 sw Y   QxY w# 1 sw Y   y xY w)NrN   r   r   r   r   r   r   r   )r"   r5   r6   wasr!   r   r   r    rO   r
   rP   r>   
   )
rQ   rR   r@   rA   rK   rC   rD   r}   raises
ValueError)r   r   textrG   rH   s        r   test_attributeruler_indicesr      s   &'AEE3-&&)	*+"89 
 
 EE6
VTN	+,"89 
 
 EEVSMFF+,
-/?rEJD
d)C3s8_ 
+6q6==E)))s1v||$(>>>>!Vq6==E)))s1v||$(>>>>!Vq6==E)))s1v||$***
+ EEVSMFF+,
-/?qEI	z	" $i EEVSMFF+,
-/?rEJ	z	" $i 	  s   )	G0	GGGc                     | j                  d      }|j                  |       t        ||j                        D ]>  \  }}|d   |d   k(  sJ |d   |d   k(  sJ |j	                  d      s2|d   |d   k(  r>J  y )NrN   r   r   r"   )rQ   rg   zipr   get)r   r#   r   p1p2s        r   !test_attributeruler_patterns_propr   	  s    &'ANN=!mQZZ0 .B*~J///'{bk)))66'?g;"W+---	.r   c                    | j                  d      }|j                  |       d}g d} | |      }t        | j                        j	                  |j                               }|j                         |j                         k(  sJ  || j                  |            }t        j                  |j                  |      |j                  |             |j                  |j                  k(  sJ t               5 }| j                  |       t        j                  |      }	 |	|      }
|	j                  d      j                         |j                         k(  sJ t        j                  |j                  |      |
j                  |            sJ |j                  |	j                  d      j                  k(  sJ 	 d d d        y # 1 sw Y   y xY w)NrN   rO   )r   r   r   )rQ   rg   r   r?   
from_bytesto_bytesrz   numpyarray_equalto_arrayr   r   to_diskr   load_model_from_pathget_pipe)r   r#   r   r   r   rG   
a_reloadeddoc1tmp_dirnlp2doc2s              r   test_attributeruler_serializer     so   &'ANN=!D&E
d)C		*55ajjlCJ::<:..0000cll4()D	cll5)4==+?@::,,,,,	 G7G((1Dz}}./88:ajjlJJJ  e!4dmmE6JKKKzzT]]+<=FFFFFG G Gs   6CGG
)!r   r}   spacyr   r   spacy.lang.enr   spacy.pipeliner   spacy.tokensr   spacy.trainingr	   r   fixturer   r#   r,   r2   rI   rL   rU   rc   rh   r   r   r   r   r   r   r   r   r   r   r   r   <module>r      s        ! )  "     "   H H+ 3"
'*'Z"#,L! "J.Gr   