o
    Zh                     @   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   P/var/www/auris/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      Z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_dirZ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   Z
entailmentZneutralr   )r   r   r   r   
get_labelsQ   s   zXnliProcessor.get_labelsr   )__name__
__module____qualname____doc__r   r(   r+   r,   r   r   r   r   r      s    
r   ZxnliZclassification)r0   r   utilsr   r   r   Z
get_loggerr-   loggerr   Zxnli_processorsZxnli_output_modesZxnli_tasks_num_labelsr   r   r   r   <module>   s   
<