ó
    pyüiŠ  ã                   ó~   • S r SSKrSSKJr  SSKJrJr  \R                  " \5      r " S S\5      r	S	\	0r
S	S
0rS	S0rg)z+XNLI utils (dataset loading and evaluation)é    Né   )Úloggingé   )ÚDataProcessorÚInputExamplec                   ó4   • \ rS rSrSrS	S jrS rS rS rSr	g)
ÚXnliProcessoré   z›
Processor for the XNLI dataset. Adapted from
https://github.com/google-research/bert/blob/f39e881b169b9d53bea03d2d341b31707a6c052b/run_classifier.py#L207
Nc                 ó   • Xl         X l        g ©N©ÚlanguageÚtrain_language)Úselfr   r   s      Ú^/home/mande/repo/quber/.venv/lib/python3.13/site-packages/transformers/data/processors/xnli.pyÚ__init__ÚXnliProcessor.__init__    s   € Ø ŒØ,Õó    c           
      ó:  • U R                   c  U R                  OU R                   nU R                  [        R                  R                  USU S35      5      n/ n[        U5       H±  u  pVUS:X  a  M  SU 3nUS   nUS   n	US   S:X  a  SOUS   n
[        U[        5      (       d  [        S	U S
35      e[        U	[        5      (       d  [        S	U	 S
35      e[        U
[        5      (       d  [        SU
 S
35      eUR                  [        XxXšS95        M³     U$ )úSee base class.z$XNLI-MT-1.0/multinli/multinli.train.z.tsvr   ztrain-r   é   ÚcontradictoryÚcontradictionúTraining input ú is not a stringúTraining label ©ÚguidÚtext_aÚtext_bÚlabel)r   r   Ú	_read_tsvÚosÚpathÚjoinÚ	enumerateÚ
isinstanceÚstrÚ	TypeErrorÚappendr   )r   Údata_dirÚlgÚlinesÚexamplesÚiÚliner   r   r    r!   s              r   Úget_train_examplesÚ XnliProcessor.get_train_examples$   s  € à"×1Ñ1Ñ9ˆT�]Š]¸t×?RÑ?RˆØ—‘œrŸw™wŸ|™|¨HÐ8\Ð]_Ð\`Ð`dÐ6eÓfÓgˆØˆÜ  Ö'‰GˆAØ�A‹vÙØ˜A˜3�<ˆDØ˜!‘WˆFØ˜!‘WˆFØ'+¨A¡w°/Ó'A‘OÀtÈAÁwˆEÜ˜f¤c×*Ñ*Ü /°&°Ð9IÐ JÓKÐKÜ˜f¤c×*Ñ*Ü /°&°Ð9IÐ JÓKÐKÜ˜e¤S×)Ñ)Ü /°%°Ð8HÐ IÓJÐJØ�O‰OœL¨dÈ&Ñ^Ö_ñ (ð ˆr   c           
      óþ  • U R                  [        R                  R                  US5      5      n/ n[	        U5       H¼  u  pEUS:X  a  M  US   nX`R
                  :w  a  M#  SU 3nUS   nUS   n	US   n
[        U[        5      (       d  [        SU S35      e[        U	[        5      (       d  [        SU	 S35      e[        U
[        5      (       d  [        S	U
 S35      eUR                  [        XxXšS
95        M¾     U$ )r   zXNLI-1.0/xnli.test.tsvr   ztest-é   é   r   r   r   r   r   )r"   r#   r$   r%   r&   r   r'   r(   r)   r*   r   )r   r+   r-   r.   r/   r0   r   r   r   r    r!   s              r   Úget_test_examplesÚXnliProcessor.get_test_examples9   sü   € à—‘œrŸw™wŸ|™|¨HÐ6NÓOÓPˆØˆÜ  Ö'‰GˆAØ�A‹vÙØ˜A‘wˆHØŸ=™=Ó(ÙØ˜1˜#�;ˆDØ˜!‘WˆFØ˜!‘WˆFØ˜‘GˆEÜ˜f¤c×*Ñ*Ü /°&°Ð9IÐ JÓKÐKÜ˜f¤c×*Ñ*Ü /°&°Ð9IÐ JÓKÐKÜ˜e¤S×)Ñ)Ü /°%°Ð8HÐ IÓJÐJØ�O‰OœL¨dÈ&Ñ^Ö_ñ! (ð" ˆr   c                 ó
   • / SQ$ )r   )r   Ú
entailmentÚneutral© )r   s    r   Ú
get_labelsÚXnliProcessor.get_labelsP   s   € â9Ð9r   r   r   )
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r1   r6   r<   Ú__static_attributes__r;   r   r   r	   r	      s   † ñô
-òò*õ.:r   r	   ÚxnliÚclassification)rB   r#   Úutilsr   r   r   Ú
get_loggerr>   Úloggerr	   Úxnli_processorsÚxnli_output_modesÚxnli_tasks_num_labelsr;   r   r   Ú<module>rL      s_   ðñ 2ã 	å ß .ð 
×	Ò	˜HÓ	%€ô8:�Mô 8:ðx ˆMð€ð
 ÐðÐ ð
 ˆAðÑ r   