spaCy/spacy/pipeline
Adriane Boyd f99d6d5e39
Refactor scoring methods to use registered functions (#8766)
* Add scorer option to components

Add an optional `scorer` parameter to all pipeline components. If a
scoring function is provided, it overrides the default scoring method
for that component.

* Add registered scorers for all components

* Add `scorers` registry
* Move all scoring methods outside of components as independent
  functions and register
* Use the registered scoring methods as defaults in configs and inits

Additional:

* The scoring methods no longer have access to the full component, so
  use settings from `cfg` as default scorer options to handle settings
  such as `labels`, `threshold`, and `positive_label`
* The `attribute_ruler` scoring method no longer has access to the
  patterns, so all scoring methods are called
* Bug fix: `spancat` scoring method is updated to set `allow_overlap` to
  score overlapping spans correctly

* Update Russian lemmatizer to use direct score method

* Check type of cfg in Pipe.score

* Fix check

* Update spacy/pipeline/sentencizer.pyx

Co-authored-by: Sofie Van Landeghem <svlandeg@users.noreply.github.com>

* Remove validate_examples from scoring functions

* Use Pipe.labels instead of Pipe.cfg["labels"]

Co-authored-by: Sofie Van Landeghem <svlandeg@users.noreply.github.com>
2021-08-10 15:13:39 +02:00
..
_parser_internals Support negative examples in partial NER annotations (#8106) 2021-06-17 17:33:00 +10:00
__init__.py Add SpanCategorizer component (#6747) 2021-06-24 12:35:27 +02:00
attributeruler.py Refactor scoring methods to use registered functions (#8766) 2021-08-10 15:13:39 +02:00
dep_parser.pyx Refactor scoring methods to use registered functions (#8766) 2021-08-10 15:13:39 +02:00
entity_linker.py Refactor scoring methods to use registered functions (#8766) 2021-08-10 15:13:39 +02:00
entityruler.py Refactor scoring methods to use registered functions (#8766) 2021-08-10 15:13:39 +02:00
functions.py Tidy up and auto-format 2021-02-13 12:55:56 +11:00
lemmatizer.py Refactor scoring methods to use registered functions (#8766) 2021-08-10 15:13:39 +02:00
morphologizer.pyx Refactor scoring methods to use registered functions (#8766) 2021-08-10 15:13:39 +02:00
multitask.pyx Replace negative rows with 0 in StaticVectors (#7674) 2021-04-22 18:04:15 +10:00
ner.pyx Refactor scoring methods to use registered functions (#8766) 2021-08-10 15:13:39 +02:00
pipe.pxd TrainablePipe (#6213) 2020-10-08 21:33:49 +02:00
pipe.pyx Refactor scoring methods to use registered functions (#8766) 2021-08-10 15:13:39 +02:00
sentencizer.pyx Refactor scoring methods to use registered functions (#8766) 2021-08-10 15:13:39 +02:00
senter.pyx Refactor scoring methods to use registered functions (#8766) 2021-08-10 15:13:39 +02:00
spancat.py Refactor scoring methods to use registered functions (#8766) 2021-08-10 15:13:39 +02:00
tagger.pyx Refactor scoring methods to use registered functions (#8766) 2021-08-10 15:13:39 +02:00
textcat_multilabel.py Refactor scoring methods to use registered functions (#8766) 2021-08-10 15:13:39 +02:00
textcat.py Refactor scoring methods to use registered functions (#8766) 2021-08-10 15:13:39 +02:00
tok2vec.py Ensemble textcat with listener (#8012) 2021-05-31 18:21:06 +10:00
trainable_pipe.pxd Refactor scoring methods to use registered functions (#8766) 2021-08-10 15:13:39 +02:00
trainable_pipe.pyx Pass excludes when serializing vocab (#8824) 2021-08-03 14:42:44 +02:00
transition_parser.pxd TrainablePipe (#6213) 2020-10-08 21:33:49 +02:00
transition_parser.pyx Refactor scoring methods to use registered functions (#8766) 2021-08-10 15:13:39 +02:00