From a33c7e0144d1a74343411ed0e77002802c2b9969 Mon Sep 17 00:00:00 2001 From: kadarakos Date: Fri, 2 Jun 2023 11:13:25 +0200 Subject: [PATCH 1/2] Update spacy/tests/pipeline/test_span_finder.py Co-authored-by: Adriane Boyd --- spacy/tests/pipeline/test_span_finder.py | 1 + 1 file changed, 1 insertion(+) diff --git a/spacy/tests/pipeline/test_span_finder.py b/spacy/tests/pipeline/test_span_finder.py index b035a2aa5..1d0140ff7 100644 --- a/spacy/tests/pipeline/test_span_finder.py +++ b/spacy/tests/pipeline/test_span_finder.py @@ -254,6 +254,7 @@ def test_overfitting_IO(): assert f"span_finder_{span_finder.spans_key}_f" in scores # XXX Its not perfect 1.0 F1 because we want it to overgenerate for now. assert scores[f"span_finder_{span_finder.spans_key}_f"] == 0.4 + assert scores[f"span_finder_{span_finder.spans_key}_r"] == 1.0 # also test that the spancat works for just a single entity in a sentence doc = nlp("London") From 3abdca27e4a26932f026b406080eb98e310ef4c3 Mon Sep 17 00:00:00 2001 From: Adriane Boyd Date: Fri, 2 Jun 2023 11:52:21 +0200 Subject: [PATCH 2/2] Apply suggestions from code review --- spacy/pipeline/span_finder.py | 4 +++- spacy/tests/pipeline/test_span_finder.py | 3 +-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/spacy/pipeline/span_finder.py b/spacy/pipeline/span_finder.py index cc65e2e36..8727be953 100644 --- a/spacy/pipeline/span_finder.py +++ b/spacy/pipeline/span_finder.py @@ -107,7 +107,9 @@ def span_finder_score(examples: Iterable[Example], **kwargs) -> Dict[str, Any]: "getter", lambda doc, key: doc.spans.get(key[len(attr_prefix) :], []) ) kwargs.setdefault("has_annotation", lambda doc: key in doc.spans) - return Scorer.score_spans(examples, **kwargs) + scores = Scorer.score_spans(examples, **kwargs) + scores.pop(f"{kwargs['attr']}_per_type", None) + return scores class _MaxInt(int): diff --git a/spacy/tests/pipeline/test_span_finder.py b/spacy/tests/pipeline/test_span_finder.py index 1d0140ff7..7050f4653 100644 --- a/spacy/tests/pipeline/test_span_finder.py +++ b/spacy/tests/pipeline/test_span_finder.py @@ -135,7 +135,6 @@ def test_span_finder_component(): nlp.initialize() docs = list(span_finder.pipe(docs)) - # TODO: update hard-coded name assert SPANS_KEY in docs[0].spans @@ -252,7 +251,7 @@ def test_overfitting_IO(): # Test scoring scores = nlp.evaluate(train_examples) assert f"span_finder_{span_finder.spans_key}_f" in scores - # XXX Its not perfect 1.0 F1 because we want it to overgenerate for now. + # It's not perfect 1.0 F1 because it's designed to overgenerate for now. assert scores[f"span_finder_{span_finder.spans_key}_f"] == 0.4 assert scores[f"span_finder_{span_finder.spans_key}_r"] == 1.0