in lama/evaluation_metrics.py [0:0]
def get_negation_metric(log_probs, masked_indices, log_probs_negated,
masked_indices_negated, vocab, index_list=None,
topk = 1):
return_msg = ""
# if negated sentence present
if len(masked_indices_negated) > 0:
log_probs, index_max_probs, _ = \
__max_probs_values_indices(masked_indices, log_probs, topk=topk)
log_probs_negated, index_max_probs_negated, _ = \
__max_probs_values_indices(masked_indices_negated,
log_probs_negated, topk=topk)
# overlap btw. affirmative and negated first ranked prediction: 0 or 1
overlap = __overlap_negation(index_max_probs_negated[0],
index_max_probs[0])
# rank corrl. btw. affirmative and negated predicted log_probs
spearman_rank_corr = scipy.stats.spearmanr(log_probs,
log_probs_negated)[0]
else:
overlap = np.nan
spearman_rank_corr = np.nan
return overlap, spearman_rank_corr, return_msg