o
    sh                     @   s&   d dl Z ddlmZ G dd dZdS )    N   )InputExamplec                   @   s$   e Zd ZdZd
ddZdddZd	S )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
    r   r   	c                 C   s"   || _ i | _|| _|| _|| _d S )N)folder	label_maplabel_col_idxsentence_col_idx	separator)selfr   r   r	   r
    r   o/var/www/html/alpaca_bot/venv/lib/python3.10/site-packages/sentence_transformers/readers/LabelSentenceReader.py__init__   s
   
zLabelSentenceReader.__init__c                 C   s   g }d}t tj| j|ddD ]I}| | j}|| j }|| j	 }|| j
vr1t| j
| j
|< | j
| }	d||f }
|d7 }|t|
|g|	d d|  k rW|krY |S  qq|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   r   r   r   get_examples   s"   



z LabelSentenceReader.get_examplesN)r   r   r   )r   )__name__
__module____qualname____doc__r   r#   r   r   r   r   r      s    
r   )r    r   r   r   r   r   r   <module>   s    