| 63 | |
| 64 | |
| 65 | def categorise_answer(answer_blob): |
| 66 | if answer_blob["unanswerable"]: |
| 67 | answer = "unanswerable" |
| 68 | answer_type = "unanswerable" |
| 69 | return answer, answer_type |
| 70 | elif answer_blob["yes_no"]: |
| 71 | answer = "yes" |
| 72 | answer_type = "bool" |
| 73 | return answer, answer_type |
| 74 | elif answer_blob["free_form_answer"]: |
| 75 | answer = answer_blob["free_form_answer"] |
| 76 | answer_type = "free form answer" |
| 77 | return answer, answer_type |
| 78 | elif answer_blob["extractive_spans"]: |
| 79 | answer = answer_blob["extractive_spans"] |
| 80 | answer_type = "extractive_spans" |
| 81 | return answer, answer_type |
| 82 | elif answer_blob["yes_no"] is False: |
| 83 | answer = "no" |
| 84 | answer_type = "bool" |
| 85 | return answer, answer_type |
| 86 | |
| 87 | |
| 88 | def token_f1_score(prediction, ground_truth): |