Normalize first, then exact match or token F1
String scoring is the cheapest, most deterministic scorer available — and the most sensitive to formatting. Normalization (case, whitespace, punctuation, articles) is applied before comparison, because 'The Eiffel Tower.' and 'eiffel tower' should not be different answers. Token F1 extends the idea with partial credit over bags of words.
Normalization is the scorer
Every normalization choice changes the score. Fix it in the protocol and keep it constant across models.
Exact match
All-or-nothing after normalization. Correct for multiple choice, named entities, and numeric answers.
Token F1
Multiset overlap between prediction and reference tokens. Tolerates word-order changes and gives partial credit.
Prediction 'the quick brown fox' against 'the quick fox': precision 3/4, recall 3/3, F1 ≈ 0.857. The extra adjective costs precision without costing recall.
- SQuAD reporting uses normalized exact match plus token F1 as the two standard extractive-QA metrics.
- Numeric answers are compared after rounding and unit normalization, never as raw strings.