U
    &ºc›  ã                   @   sZ   d Z ddlZddl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é   )ÚDataProcessorÚInputExamplec                   @   s2   e Zd ZdZddd„Zdd„ Zdd„ Zd	d
„ ZdS )ÚXnliProcessorzProcessor for the XNLI dataset.
    Adapted from https://github.com/google-research/bert/blob/f39e881b169b9d53bea03d2d341b31707a6c052b/run_classifier.py#L207Nc                 C   s   || _ || _d S )N)ÚlanguageÚtrain_language)Úselfr   r   © r	   úE/tmp/pip-unpacked-wheel-ymerj3tt/transformers/data/processors/xnli.pyÚ__init__    s    zXnliProcessor.__init__c              	   C   sÀ   | j dkr| jn| j }|  tj |d |¡¡¡}g }t|ƒD ]~\}}|dkrNq<dd|f }|d }|d }	|d dkrzd	n|d }
t|t	ƒr t|	t	ƒr t|
t	ƒs¤t
‚| t|||	|
d
¡ q<|S )úSee base class.Nz*XNLI-MT-1.0/multinli/multinli.train.{}.tsvr   ú%s-%sZtrainr   é   ZcontradictoryÚcontradiction©ÚguidÚtext_aÚtext_bÚlabel)r   r   Ú	_read_tsvÚosÚpathÚjoinÚformatÚ	enumerateÚ
isinstanceÚstrÚAssertionErrorÚ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 ]‚\}}|dkr2q |d }|| jkrFq dd|f }|d }|d }	|d }
t|tƒrˆt|	tƒrˆt|
tƒsŒt‚| 	t
|||	|
d¡ q |S )	r   zXNLI-1.0/xnli.test.tsvr   r   Ú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
   Úget_test_examples4   s    
"zXnliProcessor.get_test_examplesc                 C   s
   dddgS )r   r   Z
entailmentZneutralr	   )r   r	   r	   r
   Ú
get_labelsF   s    zXnliProcessor.get_labels)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r$   r(   r)   r	   r	   r	   r
   r      s
   
r   ZxnliZclassificationé   )r-   Úloggingr   Úutilsr   r   Ú	getLoggerr*   Úloggerr   Zxnli_processorsZxnli_output_modesZxnli_tasks_num_labelsr	   r	   r	   r
   Ú<module>   s   
0 ÿ ÿ ÿ