nvm.aux_spacy package

Subpackages

Submodules

nvm.aux_spacy.aux_spacy module

nvm.aux_spacy.set_container_extensions module

nvm.aux_spacy.set_container_extensions.set_container_extensions_from_dict(container, fn_dict, log0=<Logger dummy (WARNING)>)[source]

Update Token extensions based on dictionary of functions.

Parameters
  • container (Union[Doc, Span, Token]) – SpaCy container to set extensions to (Doc, Span or Token).

  • fn_dict (Dict[str, Callable]) – Dictionary of functions. Extensions will be named after keys in the dictionary.

  • log0 (Optional[logging.Logger]) – Logger (optional)

Examples

For Token

>>> import spacy
>>> from spacy.tokens import Token
>>> from nvm.aux_spacy import set_container_extensions_from_dict
>>>
>>> tok_fn_dict = dict(
>>>     is_good_color=lambda token: token.text in ("black", "blue", "orange"),
>>>     is_good_fruit=lambda token: token.text in ("apple", "pear", "orange"),
>>> )
>>> set_container_extensions_from_dict(Token, fn_dict=tok_fn_dict)
>>>
>>> nlp = spacy.blank("en")
>>> doc = nlp("I have an orange orange and a pink apple in the black box")
>>> assert doc[3]._.is_good_fruit
>>> assert doc[3]._.is_good_color
>>> assert doc[4]._.is_good_fruit
>>> assert doc[4]._.is_good_color
>>> assert not doc[7]._.is_good_color
>>> assert doc[8]._.is_good_fruit
>>> assert doc[11]._.is_good_color
>>> assert not doc[12]._.is_good_fruit
>>> assert not doc[12]._.is_good_color

For Doc

>>> import spacy
>>> from spacy.tokens import Doc
>>> from nvm.aux_spacy import set_container_extensions_from_dict
>>>
>>> doc_fn_dict = dict(
>>>     has_good_fruit=lambda doc: any(
>>>         fruit in doc.text for fruit in ("apple", "pear", "orange")
>>>     ),
>>>     has_good_color=lambda doc: any(
>>>         color in doc.text for color in ("black", "blue", "orange")
>>>     ),
>>> )
>>> set_container_extensions_from_dict(Doc, fn_dict=doc_fn_dict)
>>>
>>> nlp = spacy.blank("en")
>>> doc = nlp("I have an orange orange and a pink apple in the black box")
>>> assert doc._.has_good_fruit
>>> assert doc._.has_good_color
>>> doc = nlp("No fruits and no colors")
>>> assert not doc._.has_good_fruit
>>> assert not doc._.has_good_color

For Span

>>> import spacy
>>> from spacy.tokens import Span
>>> from nvm.aux_spacy import set_container_extensions_from_dict
>>>
>>> spn_fn_dict = dict(
>>>     has_good_fruit=lambda span: any(
>>>         fruit in span.text for fruit in ("apple", "pear", "orange")
>>>     ),
>>>     has_good_color=lambda span: any(
>>>         color in span.text for color in ("black", "blue", "orange")
>>>     ),
>>> )
>>> set_container_extensions_from_dict(Span, fn_dict=spn_fn_dict)
>>>
>>> nlp = spacy.blank("en")
>>> doc = nlp("I have an orange orange and a pink apple in the black box")
>>> assert doc[0:4]._.has_good_fruit
>>> assert doc[0:4]._.has_good_color
>>> assert not doc[0:2]._.has_good_fruit
>>> assert not doc[0:2]._.has_good_color

Module contents

This module provides auxiliary stuff for spaCy.