
    g                         d Z ddlZddlmZ ddlmZmZ  ej        e          Z G d de          Z	d	e	iZ
d	d
iZd	diZdS )z+XNLI utils (dataset loading and evaluation)    N   )logging   )DataProcessorInputExamplec                   ,    e Zd ZdZddZd Zd Zd ZdS )XnliProcessorz
    Processor for the XNLI dataset. Adapted from
    https://github.com/google-research/bert/blob/f39e881b169b9d53bea03d2d341b31707a6c052b/run_classifier.py#L207
    Nc                 "    || _         || _        d S N)languagetrain_language)selfr   r   s      ]/var/www/html/ai-engine/env/lib/python3.11/site-packages/transformers/data/processors/xnli.py__init__zXnliProcessor.__init__!   s     ,    c           	      l   | j         | j        n| j         }|                     t          j                            |d| d                    }g }t          |          D ]\  }}|dk    rd| }|d         }|d         }	|d         dk    rd	n|d         }
t          |t                    st          d
| d          t          |	t                    st          d
|	 d          t          |
t                    st          d|
 d          |
                    t          |||	|
                     |S )See base class.Nz$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_examplesz XnliProcessor.get_train_examples%   s_   "19T]]t?Rrw||H6e]_6e6e6effgg '' 	` 	`GAtAvvA<<D!WF!WF'+Aw/'A'AOOtAwEfc** L J& J J JKKKfc** L J& J J JKKKeS)) K I% I I IJJJOOLd6&X]^^^____r   c           	      F   |                      t          j                            |d                    }g }t	          |          D ]\  }}|dk    r|d         }|| j        k    r d| }|d         }|d         }	|d         }
t          |t                    st          d| d          t          |	t                    st          d|	 d          t          |
t                    st          d	|
 d          |	                    t          |||	|

                     |S )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,   r-   r   r   r   r   r   s              r   get_test_exampleszXnliProcessor.get_test_examples:   sD   rw||H6NOOPP '' 	` 	`GAtAvvAwH4=((1;;D!WF!WFGEfc** L J& J J JKKKfc** L J& J J JKKKeS)) K I% I I IJJJOOLd6&X]^^^____r   c                 
    g dS )r   )r   
entailmentneutral )r   s    r   
get_labelszXnliProcessor.get_labelsQ   s    9999r   r   )__name__
__module____qualname____doc__r   r.   r2   r7   r6   r   r   r	   r	      s_         
- - - -  *  .: : : : :r   r	   xnliclassification)r;   r    utilsr   r   r   
get_loggerr8   loggerr	   xnli_processorsxnli_output_modesxnli_tasks_num_labelsr6   r   r   <module>rD      s     2 1 				       . . . . . . . . 
	H	%	%8: 8: 8: 8: 8:M 8: 8: 8:x M
  
 A   r   