
    +sg                    @    d dl mZ d dlZd dlZddlmZ  G d d      Zy)    )annotationsN   )InputExamplec                  :    e Zd ZdZd ZddZed        Zd Zd Z	y)	NLIDataReaderz@Reads in the Stanford NLI dataset and the MultiGenre NLI datasetc                    || _         y N)dataset_folder)selfr
   s     ^/var/www/html/venv/lib/python3.12/site-packages/sentence_transformers/readers/NLIDataReader.py__init__zNLIDataReader.__init__   s
    ,    c           
        t        j                  t        j                  j	                  | j
                  d|z         dd      j                         }t        j                  t        j                  j	                  | j
                  d|z         dd      j                         }t        j                  t        j                  j	                  | j
                  d|z         dd      j                         }g }d}t        |||      D ]Y  \  }}	}
d||fz  }|d	z  }|j                  t        |||	g| j                  |
      
             d|cxk  rt        |      k  sV |S  [ |S )a  
        data_splits specified which data split to use (train, dev, test).
        Expects that self.dataset_folder contains the files s1.$data_split.gz,  s2.$data_split.gz,
        labels.$data_split.gz, e.g., for the train split, s1.train.gz, s2.train.gz, labels.train.gz
        zs1.rtzutf-8)modeencodingzs2.zlabels.r   z%s-%dr   )guidtextslabel)gzipopenospathjoinr
   	readlineszipappendr   	map_labellen)r   filenamemax_exampless1s2labelsexamplesid
sentence_a
sentence_br   r   s               r   get_exampleszNLIDataReader.get_examples   s:    YYrww||D$7$79IJQU`ghrrtYYrww||D$7$79IJQU`ghrrtGGLL,,i(.BC$Y`

)+ 	 -0R-@ 	)J
Eh^+D!GBOOLd:z:RZ^ZhZhinZopq<03x=0 1	 r   c                     ddddS )Nr   r      )contradiction
entailmentneutral r/   r   r   
get_labelszNLIDataReader.get_labels'   s    !"!BBr   c                4    t        | j                               S r	   )r   r0   )r   s    r   get_num_labelszNLIDataReader.get_num_labels+   s    4??$%%r   c                `    | j                         |j                         j                            S r	   )r0   striplower)r   r   s     r   r   zNLIDataReader.map_label.   s#     !4!4!677r   N)r   )
__name__
__module____qualname____doc__r   r)   staticmethodr0   r2   r   r/   r   r   r   r   	   s/    J-0 C C&8r   r   )
__future__r   r   r    r   r   r/   r   r   <module>r=      s    "  	 &8 &8r   