| 211 | |
| 212 | |
| 213 | def cal_ceval(res): |
| 214 | acc_sum_dict = dict() |
| 215 | acc_norm_sum_dict = dict() |
| 216 | cnt_dict = dict() |
| 217 | acc_sum = 0.0 |
| 218 | cnt = 0 |
| 219 | hard_cnt = 0 |
| 220 | hard_acc_sum = 0.0 |
| 221 | for tt in res.keys(): |
| 222 | name = tt.split("-")[-1] |
| 223 | acc_sum += float(res[tt]) |
| 224 | cnt += 1 |
| 225 | class_ = TASK_NAME_MAPPING[name][2] |
| 226 | if class_ not in acc_sum_dict: |
| 227 | acc_sum_dict[class_] = 0.0 |
| 228 | acc_norm_sum_dict[class_] = 0.0 |
| 229 | cnt_dict[class_] = 0.0 |
| 230 | if name in hard_list: |
| 231 | hard_cnt += 1 |
| 232 | hard_acc_sum += float(res[tt]) |
| 233 | acc_sum_dict[class_] += float(res[tt]) |
| 234 | cnt_dict[class_] += 1 |
| 235 | print("\n\n\n") |
| 236 | for k in ["STEM", "Social Science", "Humanities", "Other"]: |
| 237 | if k in cnt_dict: |
| 238 | print("%s acc: %.2f " % (k, acc_sum_dict[k] / cnt_dict[k])) |
| 239 | if hard_cnt > 0: |
| 240 | print("Hard acc:%.2f " % (hard_acc_sum / hard_cnt)) |
| 241 | print("AVERAGE acc:%.2f " % (acc_sum / cnt)) |
| 242 | |
| 243 | |
| 244 | TASK_NAME_MAPPING = { |