
    +sg4                    8    d dl mZ d dlZddlmZ  G d d      Zy)    )annotationsN   )InputExamplec                       e Zd ZdZddZddZy)LabelSentenceReaderzReads in a file that has at least two columns: a label and a sentence.
    This reader can for example be used with the BatchHardTripletLoss.
    Maps labels automatically to integers
    c                J    || _         i | _        || _        || _        || _        y )N)folder	label_maplabel_col_idxsentence_col_idx	separator)selfr	   r   r   r   s        d/var/www/html/venv/lib/python3.12/site-packages/sentence_transformers/readers/LabelSentenceReader.py__init__zLabelSentenceReader.__init__   s'    * 0"    c                   g }d}t        t        j                  j                  | j                  |      d      D ]  }|j                         j                  | j                        }|| j                     }|| j                     }|| j                  vr"t        | j                        | j                  |<   | j                  |   }	d||fz  }
|dz  }|j                  t        |
|g|	             d|cxk  r|k  s |S   |S )Nr   zutf-8)encodingz%s-%dr   )guidtextslabel)openospathjoinr	   stripsplitr   r   r   r
   lenappendr   )r   filenamemax_examplesexamplesidlinesplitsr   sentencelabel_idr   s              r   get_examplesz LabelSentenceReader.get_examples   s    dkk8<wO 	DZZ\''7F4--.Ed334HDNN*(+DNN(;u%~~e,Hh^+D!GBOOLd8*HUV<%2% &	  r   N)r   r   	)r   )__name__
__module____qualname____doc__r   r'    r   r   r   r      s    
#r   r   )
__future__r   r    r   r   r-   r   r   <module>r0      s    " 	 ! !r   