def compute_score(gts, val_caps, train_imgids, val_imgids, i, j): res = {} for imgid in train_imgids: res[imgid] = [val_caps[val_imgids[i]][j]] scorer = Meteor() score, scores = scorer.compute_score(gts, res, train_imgids) #print(score) #print(len(scores)) return np.array(scores)
def evaluate(ref, hyp): with open(hyp, 'r') as r: hypothesis = r.readlines() res = { k: [" ".join(v.strip().lower().split())] for k, v in enumerate(hypothesis) } with open(ref, 'r') as r: references = r.readlines() gts = {k: [v.strip().lower()] for k, v in enumerate(references)} meteor = Meteor() score_Meteor = meteor.compute_score(gts, res) print("Meteor: " + str(score_Meteor)) rouge = Rouge() scores_Rouge = rouge.get_scores([i[0] for i in gts.values()], [i[0] for i in res.values()], avg=True) print("Rouge: " + str(scores_Rouge))