Attributes grounding spans to source chunks using word overlap scoring.
For each span (hallucinated or faithful), computes what fraction of its words appear in each chunk. This is directional: a span "invented in 2010" gets 1.0 against a chunk containing those exact words, regardless of chunk length.
score = |words(span) ∩ words(chunk)| / |words(span)|
Summary
Functions
Adds :sources to each span based on word overlap with chunks.