from typing import List, Dict
from abc import ABCMeta, abstractmethod
from .. import Vocabulary
[docs]class Field(metaclass=ABCMeta):
"""
A ``Field`` is an ingredient of a data instance. In most NLP tasks, ``Field``
stores data of string types. It contains one or more indexers that map string
data to the corresponding index. Data instances are collections of fields.
"""
[docs] @abstractmethod
def count_vocab_items(self, counter: Dict[str, Dict[str, int]]) -> None:
"""
We count the number of strings if the string needs to be mapped to one
or more integers. You can pass directly if there is no string that needs
to be mapped.
Parameters
----------
counter : ``Dict[str, Dict[str, int]]``
``counter`` is used to count the number of each item. The first key
represents the namespace of the vocabulary, and the second key represents
the string of the item.
"""
pass
[docs] @abstractmethod
def index(self, vocab: Vocabulary) -> None:
"""
Gets one or more index mappings for each element in the Field.
Parameters
----------
vocab : ``Vocabulary``
``vocab`` is used to get the index of each item.
"""
pass