o
    7ti>                     @   s|   d dl Z d dlmZ d dlZd dlm  m  mZ d dlm	Z	 dd Z
dd Zdd	 Zd
d Zdd Zdd Zdd ZdS )    N)product)general_detokenizec                 C   s   | d   | dd   S )Nr      )lower)text r   U/home/ubuntu/.local/lib/python3.10/site-packages/lm_eval/tasks/spanish_bench/utils.pylowercase_first_letter
   s   r	   c                 C      dd }|  |S )Nc                 S   s   t | d  | d< t | d  | d< | d dr#| d d d n| d | d< t| d | d< | d ds>| d d n| d | d< | S )Npremise
hypothesis).,!?r   )r   stripendswithr	   docr   r   r   
process_fn   s   z#process_doc_nli.<locals>.process_fnmap)datasetr   r   r   r   process_doc_nli   s   
r   c                 C   r
   )Nc                 S   s0   t dd| d | d< t dd| d | d< | S )Nz + r   summary)resubr   r   r   r   _process_doc'   s   z#process_xlsum.<locals>._process_docr   r   r   r   r   r   process_xlsum&   s   
r!   c                    sR   g   fdd} g krt  }td| dt |  d   | dd |S )Nc                    s   | d dvr;| d dvr;t | d  | d< t | d  | d< | d dr1| d d d | d< t| d | d< | S  |  | S )N	sentence1N 	sentence2)r   r   ;r   )r   r   r   r	   appendr   
empty_docsr   r   r   3   s   
z.process_docs_paraphrases.<locals>._process_doczFound z empty documents out of the z total docs in the dataset: c                 S   s   | d dvo| d dvS )Nr"   r#   r%   r   r   r   r   r   <lambda>G   s    z*process_docs_paraphrases.<locals>.<lambda>)lenprintfilterr   )r   r   len_empty_docsr   r(   r   process_docs_paraphrases0   s   r/   c                 C   r
   )Nc                 S   s$   t | d | d< t | d | d< | S )Nchoice1choice2)r	   r   r   r   r   r   M   s   z*process_docs_copa_es.<locals>._process_docr   r    r   r   r   process_docs_copa_esL   s   
r2   c                 C   s   | S )z&
    # passthrough for efficiency
    r   )itemsr   r   r   rouge1U   s   r4   c                 C   s<   t t|  d }t t|  d }td}|j||dd S )z
    Higher is better
    r   r   rouge)predictions
referencesr4   )listzipevaluateloadcompute)r3   refspredsrouge_scorerr   r   r   
rouge1_agg\   s   
r@   )r   	itertoolsr   r:   'transformers.data.metrics.squad_metricsdatametricssquad_metricslm_eval.utilsr   r	   r   r!   r/   r2   r4   r@   r   r   r   r   <module>   s    
	