segram.nlp.grammar.doc module

class segram.nlp.grammar.doc.DocNLP(doc: Doc | Doc, smap: Mapping[tuple[int, int], Sent] | None = None)[source]

Bases: GrammarNLP, Doc

Abstract base class for document elements with NLP backend methods.

All grammar classes must be defined as slots classes. This is necessary for ensuring low-memory footprint and better computational efficiency. Even classes with no new slots need to declare __slots__ = (). This requirement is checked during class construction. Other class-specific requirements of this sort as well as their related validation checks may be implemented on specialized grammar classes using the standard __init_subclass__ interface. This allows abstract base classes further down the inheritance chain to check for more complex requirements as well as apply dynamic class customizations.