"""Base Scorer class and relate utils.""" | |
class Scorer(object): | |
"""A Base class that every scoring method should derived from.""" | |
def __init__(self, opts): | |
self.opts = opts | |
def compute_score(self, preds, texts_refs): | |
raise NotImplementedError | |
def build_scorers(opts, scorers_cls): | |
"""Build scorers in `scorers_cls`.""" | |
scorers = {} | |
for metric, scorer_cls in scorers_cls.items(): | |
scorer_obj = scorer_cls(opts) | |
scorers[metric] = {"scorer": scorer_obj, "value": 0} | |
return scorers | |