Skip to content
Snippets Groups Projects
BaseEvaluator.py 604 B
Newer Older
Hussain Kanafani's avatar
Hussain Kanafani committed
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