Newer
Older
import abc
from scipy.stats import kendalltau, spearmanr
from scipy.stats import rankdata
class BaseEvaluator(abc.ABC):
def __init__(self, generated_summaries, dataset, metric):
self.summaries = generated_summaries
self.dataset = dataset
@abc.abstractmethod
def evaluate(self):
pass
def get_rc_func(self, metric):
if metric == "kendalltau":
f = lambda x, y: kendalltau(rankdata(-x), rankdata(-y))
elif metric == "spearmanr":
f = lambda x, y: spearmanr(x, y)
else:
raise RuntimeError
return f