Ë
    `›¾jj%  ã                   ó<  — d dl Z d dlmZ d dlmZmZmZmZ d dl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mZmZmZmZmZ  ej6                  d«       ej6                  d«       edd¬«       eddd¬«       eddddd¬«       edddd¬«       edddd¬«       edd d!d"¬«       edd#d$d%dd¬&«       ed'd(d)d*¬«       edd+d,d-¬«       ed.d/d0d1¬«      f
d2ed3ed4ee   d5ee   d6ed7ed8ee   d9ed:ed;efd<„«       «       Z	 	 	 	 	 	 	 	 dQd2ed3ed4ee   d6ed7ed8ee   d9ed=ed;ed:ed>eeef   fd?„Z i fd.dd@œdAeeef   dBeeef   d;ed=ed>eeef   f
dC„Z!	 	 	 	 	 dRdDee   dEedFedGedHedIedJefdK„Z"dLedAeeeee#f   f   dMedNed>df
dO„Z$dLedAeeeee#f   f   d>dfdP„Z%y)Sé    N)ÚPath)ÚAnyÚDictÚListÚOptional)Úfix_random_seed)ÚPrinteré   )ÚdisplacyÚutil)ÚDoc)ÚCorpusé   )ÚArgÚOptÚappÚbenchmark_cliÚimport_codeÚ	setup_gpuÚaccuracyÚevaluate.zModel name or path)Úhelpz3Location of binary evaluation data in .spacy formatT)r   Úexistsz--outputz-ozOutput JSON file for metricsF)r   Údir_okayz--codez-czNPath to Python file with additional code (registered functions) to be importedéÿÿÿÿz--gpu-idz-gzGPU ID or -1 for CPUz--gold-preprocz-GzUse gold preprocessingz--displacy-pathz-dpz+Directory to output rendered parses as HTML)r   r   Ú	file_okayé   z--displacy-limitz-dlz!Limit of parses to render as HTMLz--per-componentz-PzSReturn scores per component, only applicable when an output JSON file is specified.Úscz--spans-keyz-skz*Spans key to use when evaluating Doc.spansÚmodelÚ	data_pathÚoutputÚ	code_pathÚuse_gpuÚgold_preprocÚdisplacy_pathÚdisplacy_limitÚper_componentÚ	spans_keyc
                 óD   — t        |«       t        | |||||||d|	¬«
       y)am  
    Evaluate a trained pipeline. Expects a loadable spaCy pipeline and evaluation
    data in the binary .spacy format. The --gold-preproc option sets up the
    evaluation examples with gold-standard sentences and tokens for the
    predictions. Gold preprocessing helps the annotations align to the
    tokenization, and may result in sequences of more consistent length. However,
    it may reduce runtime accuracy due to train/test skew. To render a sample of
    dependency parses in a HTML file, set as output directory as the
    displacy_path argument.

    DOCS: https://spacy.io/api/cli#benchmark-accuracy
    F)r!   r#   r$   r%   r&   r'   Úsilentr(   N)r   r   )
r   r    r!   r"   r#   r$   r%   r&   r'   r(   s
             ú\/home/spazio/kingdom_calls/work5/transenv/lib/python3.12/site-packages/spacy/cli/evaluate.pyÚevaluate_clir,      s3   € ôr �	ÔÜØØØØØ!Ø#Ø%Ø#ØØöó    r*   Úreturnc
           	      óÞ  — t        || ¬«      }
t        «        t        ||¬«       t        j                  |«      }t        j                  |«      }t        j                  |«      }|j                  «       s|
j                  d|d¬«       |r$|j                  «       s|
j                  d|d¬«       t        ||¬«      }t        j                  | «      }t         ||«      «      }|j                  ||	¬«      }|	r*|}|€|
j                  d	«       �n"|
j                  d
«       �ni dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd “d!d"“d#d$“d%d&“d'd(|› d)�“d*d(|› d+�“d,d(|› d-�“d.d/i¥}i }i }|j                  «       D ]‘  \  }}||v sŒ|d k(  r|d0z   |j                  d1d2«      z   d3z   }t        ||   t         t"        f«      r|d/k(  r||   d4›||<   n||   d5z  d6›||<   nd7||<   ||   |t%        j&                  d8d9|j)                  «       «      <   Œ“ |
j+                  |d:¬;«       t-        ||||¬<«      }|rŠ|j.                  D �cg c]  }|j1                  |«      j2                  ‘Œ }}t        |j5                  d=„ |d | D «       «      «      }d>|v }d?|v }d@|v }t7        ||| ||||¬A«       |
j9                  dB|› dC�|«       |�*t;        j<                  ||«       |
j9                  dD|› �«       |S c c}w )EN©Úno_printÚpretty)r*   zEvaluation data not foundr   )Úexitsz(Visualization output directory not found)r$   )r'   zdThe per-component option is enabled but there is no output JSON file provided to save the scores to.z7Per-component scores will be saved to output JSON file.ÚTOKÚ	token_accÚTAGÚtag_accÚPOSÚpos_accÚMORPHÚ	morph_accÚLEMMAÚ	lemma_accÚUASÚdep_uasÚLASÚdep_laszNER PÚents_pzNER RÚents_rzNER FÚents_fÚTEXTCATÚ
cats_scorezSENT PÚsents_pzSENT RÚsents_rzSENT FÚsents_fzSPAN PÚspans_Ú_pzSPAN RÚ_rzSPAN FÚ_fÚSPEEDÚspeedz (Úcats_score_descÚunkú)z.0féd   ú.2fú-z[\s/]Ú_ÚResults)Útitle©r(   r*   c              3   óH   K  — | ]  }|j                   j                  –— Œ y ­w)N)Ú	referenceÚtext)Ú.0Úexs     r+   ú	<genexpr>zevaluate.<locals>.<genexpr>¢   s   è ø€ ÒV°2˜RŸ\™\×.Õ.ÑVùs   ‚ "ÚparserÚnerÚspancat)Ú
model_nameÚlimitÚdepsÚentsÚspansz
Generated z parses as HTMLzSaved results to )r	   r   r   r   Úensure_pathr   Úfailr   Ú
load_modelÚlistr   ÚwarnÚinfoÚitemsÚgetÚ
isinstanceÚintÚfloatÚreÚsubÚlowerÚtableÚhandle_scores_per_typeÚ
pipe_namesÚget_pipe_metaÚfactoryÚpipeÚrender_parsesÚgoodÚsrslyÚ
write_json)r   r    r!   r#   r$   r%   r&   r*   r(   r'   ÚmsgÚoutput_pathÚcorpusÚnlpÚdev_datasetÚscoresÚdataÚmetricsÚresultsÚmetricÚkeyr{   Úfactory_namesÚdocsÚrender_depsÚrender_entsÚrender_spanss                              r+   r   r   W   s¨  € ô ˜6¨f¨*Ô
5€CÜÔÜˆg˜fÕ%Ü× Ñ  Ó+€IÜ×"Ñ" 6Ó*€KÜ×$Ñ$ ]Ó3€MØ×ÑÔØ�‰Ð,¨i¸qˆÔAÙ˜]×1Ñ1Ô3Ø�‰Ð;¸]ÐRSˆÔTÜ�I¨LÔ9€FÜ
�/‰/˜%Ó
 €CÜ‘v˜c“{Ó#€KØ�\‰\˜+°]ˆ\ÓC€FÙØˆØˆ>Ø�H‰HØvöð �H‰HÐNÖOð
Ø�;ð
à�9ð
ð �9ð
ð �[ð	
ð
 �[ð
ð �9ð
ð �9ð
ð �Xð
ð �Xð
ð �Xð
ð �|ð
ð �ið
ð �ið
ð �ið
ð ˜˜y˜k¨Ð,ð
ð  ˜˜y˜k¨Ð,ð!
ð" ˜˜y˜k¨Ð,ð#
ð$ �Wñ%
ˆð( ˆØˆØ"Ÿ=™=›?ò 	G‰KˆF�CØ�fŠ}Ø˜,Ò&Ø# d™]¨V¯Z©ZÐ8IÈ5Ó-QÑQÐTWÑW�FÜ˜f S™k¬C´¨<Ô8Ø˜g’~Ø-3°C©[¸Ð,=˜ šà-3°C©[¸3Ñ->¸sÐ,C˜ šà&)�G˜F‘OØ;AÀ#¹;�”R—V‘V˜H c¨3¯9©9«;Ó7Ò8ð	Gð 	�	‰	�' ˆ	Ô+Ü% f¨d¸iÐPVÔWˆáØEHÇ^Á^ÖT¸T˜×*Ñ*¨4Ó0×8Ó8ÐTˆÐTÜ�C—H‘HÑV¸À_ÀnÐ9UÔVÓVÓWˆØ -Ð/ˆØ˜}Ð,ˆØ  MÐ1ˆäØØØØ ØØØõ	
ð 	�‰�:˜nÐ-¨_Ð=¸}ÔMàÐÜ×Ñ˜ dÔ+Ø�‰Ð$ [ MÐ2Ô3Ø€Kùò) Us   É "K*rY   r…   r†   c                óÞ  — t        || ¬«      }d| v r| d   rt        || d   dd«       | d   |d<   d| v r| d   rt        || d   dd«       | d   |d<   d| v r| d   rt        || d   d	d«       | d   |d<   d
|› d�| v r.| d
|› d�   r%t        || d
|› d�   dd«       | d
|› d�   |d
|› d�<   d| v r| d   rt        || d   dd«       | d   |d<   d| v r| d   rt        || d   «       | d   |d<   | S )Nr0   Úmorph_per_featr:   ÚfeatÚdep_las_per_typer@   ÚtypeÚents_per_typeÚNERrJ   Ú	_per_typeÚSPANSÚcats_f_per_typez	Textcat FÚlabelÚcats_auc_per_type)r	   Úprint_prf_per_typeÚprint_textcats_auc_per_cat)r…   r†   r(   r*   r€   s        r+   rw   rw   ¸   s�  € ô ˜6¨f¨*Ô
5€CØ˜6Ñ!ØÐ"Ò#Ü˜s FÐ+;Ñ$<¸gÀvÔNØ%+Ð,<Ñ%=ˆDÐ!Ñ"Ø˜VÑ#ØÐ$Ò%Ü˜s FÐ+=Ñ$>ÀÀvÔNØ'-Ð.@Ñ'AˆDÐ#Ñ$Ø˜&Ñ Ø�/Ò"Ü˜s F¨?Ñ$;¸UÀFÔKØ$*¨?Ñ$;ˆD�Ñ!Ø	�	ˆ{˜)Ð$¨Ñ.Ø�F˜9˜+ YÐ/Ò0ÜØ�V˜f Y K¨yÐ9Ñ:¸GÀVôð 39¸6À)ÀÈIÐ9VÑ2WˆD�6˜)˜ IÐ.Ñ/Ø˜FÑ"ØÐ#Ò$Ü˜s FÐ+<Ñ$=¸{ÈGÔTØ&,Ð->Ñ&?ˆDÐ"Ñ#Ø˜fÑ$ØÐ%Ò&Ü& s¨FÐ3FÑ,GÔHØ(.Ð/BÑ(CˆDÐ$Ñ%Ø€Mr-   rŒ   r�   rc   rd   re   rf   rg   c                 óF  — || d   j                   d<   |rKt        j                  | d | dd¬«      }|dz  j                  dd¬	«      5 }|j	                  |«       d d d «       |rNt        j                  | d | d
dddi¬«      }|dz  j                  dd¬	«      5 }|j	                  |«       d d d «       |rLt        j                  | d | dd¬«      }|dz  j                  dd¬	«      5 }|j	                  |«       d d d «       y y # 1 sw Y   Œ¨xY w# 1 sw Y   ŒdxY w# 1 sw Y   y xY w)Nr   rX   ÚentT)ÚstyleÚpagezentities.htmlÚwÚutf8)ÚencodingÚdepÚcompact)r    r¡   Úoptionszparses.htmlÚspanz
spans.html)Ú	user_datar   ÚrenderÚopenÚwrite)	rŒ   r�   rc   rd   re   rf   rg   ÚhtmlÚfile_s	            r+   r|   r|   Ý   s2  € ð ",€Dˆ�G×Ñ�gÑÙÜ�‰˜t F U˜|°5¸tÔDˆØ˜OÑ+×1Ñ1°#ÀÐ1ÓGð 	È5Ø�K‰K˜Ô÷	áÜ�‰Ø��%ˆL ¨D¸9ÀdÐ:Kô
ˆð ˜MÑ)×/Ñ/°¸fÐ/ÓEð 	ÈØ�K‰K˜Ô÷	ñ Ü�‰˜t F U˜|°6ÀÔEˆØ˜LÑ(×.Ñ.¨s¸VÐ.ÓDð 	ÈØ�K‰K˜Ô÷	ð 	ð ÷	ð 	ú÷	ð 	ú÷
	ð 	ús$   ÁC?ÂDÃ#DÃ?DÄDÄD r€   Únamer”   c           	      ó
  — g }|j                  «       D ]S  \  }}|g}dD ]5  }||   }	|j                  t        |	t        t        f«      r|	dz  d›n|	«       Œ7 |j                  |«       ŒU | j                  |dd|› d|› d�¬«       y )	N)ÚpÚrÚfrS   rT   )Ú ÚPÚRÚF)Úlr²   r²   r²   z (per rR   ©ÚheaderÚalignsrX   )rn   Úappendrp   rq   rr   rv   )
r€   r…   r¯   r”   r†   rŠ   ÚvalueÚrowÚkÚvs
             r+   rœ   rœ   ø   s    € ð €DØ—l‘l“nò ‰
ˆˆUØˆeˆØ ò 	OˆAØ�a‘ˆAØ�J‰J¬:°a¼#¼u¸Ô+F˜!˜c™' #™ÈAÕNð	Oð 	�‰�CÕðð ‡I�IØØ"Ø#Ø��f˜T˜F !Ð$ð	 õ r-   c                 ó´   — | j                  |j                  «       D ��cg c]#  \  }}|t        |t        t        f«      r|d›n|f‘Œ% c}}ddd¬«       y c c}}w )NrT   )r´   zROC AUC)r¸   r²   zTextcat ROC AUC (per label)r¹   )rv   rn   rp   rr   rq   )r€   r…   r¿   rÀ   s       r+   r�   r�   
  s_   € ð ‡I�Ið Ÿ™›÷	
á��1ð œj¨¬U´C¨LÔ9�1�S‘'¸qÒAó	
ð ØØ+ð õ ùó	
s   Ÿ(A
)Nr   FNr   Tr   F)r´   éú   TTT)&rs   Úpathlibr   Útypingr   r   r   r   r~   Ú	thinc.apir   Úwasabir	   r´   r   r   Útokensr   Útrainingr   Ú_utilr   r   r   r   r   r   ÚcommandÚstrrq   Úboolr,   r   rw   r|   rr   rœ   r�   © r-   r+   ú<module>rÎ      sy  ðÛ 	Ý ß ,Ó ,ã Ý %Ý ç Ý Ý ß G× Gð €×ÑØóð €‡�ˆZÓñ �SÐ3Ô4ÙØÐGÐPTôñ !Øˆj˜$Ð%CÈeôñ !$ØØØØ]ô	!ñ �r˜: tÐ2HÔIÙØÐ Ð,Dôñ %(ØØØØ:ØØô%ñ Ø
Ð Ð,Oôñ ØØØØbô	ñ Øˆm˜UÐ)UôñIAàðAð ðAð �T‰NðAð ˜‰~ðAð ðAð  ð!Að& ˜D‘>ð'Að6 ð7Að< ð=AðH òIAó óðAðN "ØØØ$(ØØØØñ^Øð^àð^ð �T‰Nð^ð ð	^ð
 ð^ð ˜D‘>ð^ð ð^ð ð^ð ð^ð ð^ð 
ˆ#ˆsˆ(�^ó^ðF ð"ð Øò"Ø��c�‰Nð"à
ˆs�Cˆx‰.ð"ð ð	"ð
 ð"ð 
ˆ#ˆsˆ(�^ó"ðP ØØØØñØ
ˆs‰)ðàðð ðð ð	ð
 ðð ðð óð6Ø	ðØ˜s D¨¨e¨Ñ$4Ð4Ñ5ðØ=@ðØHKðà	óð$Ø	ðØ˜s D¨¨e¨Ñ$4Ð4Ñ5ðà	ôr-   