in scripts/adapet/ADAPET/src/eval/Scorer.py [0:0]
def _compute_f1(self):
if self.is_multirc:
f1_pred_lbl = []
f1_true_lbl = []
for (idx, pred_true_lbl) in self.dict_idx2logits_lbl.items():
for (pred_lbl, true_lbl, _) in pred_true_lbl:
f1_pred_lbl.append(pred_lbl)
f1_true_lbl.append(true_lbl)
else:
f1_pred_lbl = []
f1_true_lbl = []
for (idx, pred_true_lbl) in self.dict_idx2logits_lbl.items():
f1_pred_lbl.append(pred_true_lbl[0][0])
f1_true_lbl.append(pred_true_lbl[0][1])
if self.is_record:
f1 = f1_score(f1_true_lbl, f1_pred_lbl)
avg_f1 = np.mean(f1)
else:
#f1 = f1_score(f1_true_lbl, f1_pred_lbl, average=None)
#avg_f1 = np.mean(f1)
# print('not record')
mic_f1 = f1_score(f1_true_lbl, f1_pred_lbl, average="micro")
mac_f1 = f1_score(f1_true_lbl, f1_pred_lbl, average="macro")
if len(set(list(f1_true_lbl))) == 2:
avg_pre = average_precision_score(f1_true_lbl, f1_pred_lbl, average="macro")
else:
avg_pre = 0
mic_avg_f1 = np.mean(mic_f1)
mac_avg_f1 = np.mean(mac_f1)
mean_avg_pre = np.mean(avg_pre)
mic_avg_f1 = round(mic_avg_f1, 4)
mac_avg_f1 = round(mac_avg_f1, 4)
mean_avg_pre = round(mean_avg_pre, 4)
return "f1_mic {} f1_mac {} avg_pre {}".format(mic_avg_f1, mac_avg_f1, mean_avg_pre)