    def _read(self, file_path) -> Iterable[Instance]:
        """
        Reads the instances from the given `file_path` and returns them as an
        `Iterable`.

        You are strongly encouraged to use a generator so that users can
        read a dataset in a lazy way, if they so choose.
        """
        # NOTE: `file_path` is left untyped here on purpose.
        # Technically the type should be `DatasetReaderInput`, but many subclass
        # implementations of `DatasetReader` define their `_read()` method to take a more
        # specific type, such as just `str`. But that would be a type error
        # according to mypy: https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
        raise NotImplementedError
Reads the instances from the given `file_path` and returns them as an
`Iterable`.

You are strongly encouraged to use a generator so that users can
read a dataset in a lazy way, if they so choose.
allennlp/data/dataset_readers/dataset_reader.py