o
    h                     @   s^   d Z ddlZddlmZ ddlmZmZ eeZG d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                   @   s2   e Zd ZdZdddZdd Zdd Zd	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                 C   s   || _ || _d S N)languagetrain_language)selfr	   r
    r   W/var/www/html/ai/venv/lib/python3.10/site-packages/transformers/data/processors/xnli.py__init__"   s   
zXnliProcessor.__init__c              	   C   s   | j du r| jn| j }| tj|d| d}g }t|D ]T\}}|dkr(qd| }|d }|d }	|d dkr=d	n|d }
t|tsNt	d
| dt|	ts[t	d
|	 dt|
tsht	d|
 d|
t|||	|
d q|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
ValueErrorappendr   )r   data_dirlglinesexamplesiliner   r   r   r   r   r   r   get_train_examples&   s$   



z XnliProcessor.get_train_examplesc              	   C   s   |  tj|d}g }t|D ]V\}}|dkrq|d }|| jkr#qd| }|d }|d }	|d }
t|tsAtd| dt|	tsNtd|	 dt|
ts[td	|
 d|	t
|||	|
d
 q|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   r   r   r   get_test_examples;   s(   




zXnliProcessor.get_test_examplesc                 C   s   g dS )r   )r   
entailmentneutralr   )r   r   r   r   
get_labelsR   s   zXnliProcessor.get_labelsr   )__name__
__module____qualname____doc__r   r*   r-   r0   r   r   r   r   r      s    
r   xnliclassification)r4   r   utilsr   r   r   
get_loggerr1   loggerr   xnli_processorsxnli_output_modesxnli_tasks_num_labelsr   r   r   r   <module>   s   
<