PlusLabNLP / DEGREE

Code for our NAACL-2022 paper DEGREE: A Data-Efficient Generation-Based Event Extraction Model.
Apache License 2.0
74 stars 12 forks source link

A small bug in "eval_end2endEE.py" #8

Closed OStars closed 1 year ago

OStars commented 1 year ago

I noticed the evaluation scores in "eval_end2endEE.py" are calculated like this:

scores = {
  'tri_id': (gold_tri_id_num, pred_tri_id_num, match_tri_id_num) + compute_f1(gold_tri_id_num, pred_tri_id_num, match_tri_id_num),
  'tri_cls': (gold_tri_cls_num, pred_tri_cls_num, match_tri_cls_num) + compute_f1(gold_tri_cls_num, pred_tri_cls_num, match_tri_cls_num),
  'arg_id': (gold_arg_id_num, pred_arg_id_num, match_arg_id_num) + compute_f1(gold_arg_id_num, pred_arg_id_num, match_arg_id_num),
  'arg_cls': (gold_arg_cls_num, pred_arg_cls_num, match_arg_cls_num) + compute_f1(gold_arg_cls_num, pred_arg_cls_num, match_arg_cls_num),
}

But the function compute_f1 is defined as compute_f1(predicted, gold, matched) which means predited is the first arg and gold is the second arg. So the evaluation scores in "eval_end2endEE.py" should be calculated like this:

scores = {
    'tri_id': (gold_tri_id_num, pred_tri_id_num, match_tri_id_num) + compute_f1(pred_tri_id_num, gold_tri_id_num, match_tri_id_num),
    'tri_cls': (gold_tri_cls_num, pred_tri_cls_num, match_tri_cls_num) + compute_f1(pred_tri_cls_num, gold_tri_cls_num, match_tri_cls_num),
    'arg_id': (gold_arg_id_num, pred_arg_id_num, match_arg_id_num) + compute_f1(pred_arg_id_num, gold_arg_id_num, match_arg_id_num),
    'arg_cls': (gold_arg_cls_num, pred_arg_cls_num, match_arg_cls_num) + compute_f1(pred_arg_cls_num, gold_arg_cls_num, match_arg_cls_num),
}
ej0cl6 commented 1 year ago

Thanks for pointing out this. We just fixed it.