def average_overlap(similarity_fn, samples, *ignore_params):
    """Returns the arithmetic mean of each candidate sentence in the samples

    Args:
        similarity_fn (function): similarity function used to compute the overlap
        samples (list of lists): tokenized version of the translated sentences
        *ignore_params: additional parameters will be ignored

    Returns:
        dict: scores of each sample
            key: index of the sample
            value: score of the sample
    """  
   
    # initialize dictionary
    scores = {}
   
    # run a for loop for each sample
    for index_candidate, candidate in enumerate(samples):    

        # initialize overlap to 0.0
        overlap = 0.0
       
        # run a for loop for each sample
        for index_sample, sample in enumerate(samples):

            # skip if the candidate index is the same as the sample index
            if index_candidate == index_sample:
                continue
               
            # get the overlap between candidate and sample using the similarity function
            sample_overlap = similarity_fn(candidate, sample)
           
            # add the sample overlap to the total overlap
            overlap += sample_overlap
           
        # get the score for the candidate by computing the average
        score = overlap/(len(samples)-1)
       
        # save the score in the dictionary. use index as the key.
        scores[index_candidate] = score

    return scores