| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | from eval_func.cider.cider_scorer import CiderScorer |
| | import pdb |
| |
|
| | class Cider: |
| | """ |
| | Main Class to compute the CIDEr metric |
| | |
| | """ |
| | def __init__(self, test=None, refs=None, n=4, sigma=6.0): |
| | |
| | self._n = n |
| | |
| | self._sigma = sigma |
| |
|
| | def compute_score(self, gts, res): |
| | """ |
| | Main function to compute CIDEr score |
| | :param hypo_for_image (dict) : dictionary with key <image> and value <tokenized hypothesis / candidate sentence> |
| | ref_for_image (dict) : dictionary with key <image> and value <tokenized reference sentence> |
| | :return: cider (float) : computed CIDEr score for the corpus |
| | """ |
| |
|
| | cider_scorer = CiderScorer(n=self._n, sigma=self._sigma) |
| |
|
| | for i in range(len(res)): |
| | hypo = res[i] |
| | ref = gts[i] |
| |
|
| | |
| | assert(type(hypo) is list) |
| | assert(len(hypo) == 1) |
| | assert(type(ref) is list) |
| | assert(len(ref) > 0) |
| |
|
| | cider_scorer += (hypo[0], ref) |
| |
|
| | (score, scores) = cider_scorer.compute_score() |
| |
|
| | return score, scores |
| |
|
| | def method(self): |
| | return "CIDEr" |