I successfully installed transformers-srl library using my Jupyter-notebook terminal. However, I encountered the following error while trying to run the following code. I am using a Windows 10 system with Python- 3.8.
from transformer_srl import dataset_readers, models, predictors
predictor = predictors.SrlTransformersPredictor.from_path("D:/srl_bert_base_conll2012.tar.gz", "transformer_srl")
predictor.predict(sentence="Did Uriah honestly think he could beat the game in under three hours?")
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-1-27de09498ecb> in <module>
1 from transformer_srl import dataset_readers, models, predictors
2
----> 3 predictor = predictors.SrlTransformersPredictor.from_path("D:/srl_bert_base_conll2012.tar.gz", "transformer_srl")
4 predictor.predict(sentence="Did Uriah honestly think he could beat the game in under three hours?")
~\anaconda3\lib\site-packages\transformer_srl\predictors.py in from_path(cls, archive_path, predictor_name, cuda_device, dataset_reader_to_load, frozen, import_plugins, language, restrict_frames, restrict_roles)
153 if import_plugins:
154 plugins.import_plugins()
--> 155 return SrlTransformersPredictor.from_archive(
156 load_archive(archive_path, cuda_device=cuda_device),
157 predictor_name,
~\anaconda3\lib\site-packages\transformer_srl\predictors.py in from_archive(cls, archive, predictor_name, dataset_reader_to_load, frozen, language, restrict_frames, restrict_roles)
197 model.eval()
198
--> 199 return predictor_class(model, dataset_reader, language)
~\anaconda3\lib\site-packages\transformer_srl\predictors.py in __init__(self, model, dataset_reader, language)
20 self, model: Model, dataset_reader: DatasetReader, language: str = "en_core_web_sm",
21 ) -> None:
---> 22 super().__init__(model, dataset_reader, language)
23
24 @staticmethod
~\anaconda3\lib\site-packages\allennlp_models\structured_prediction\predictors\srl.py in __init__(self, model, dataset_reader, language)
22 ) -> None:
23 super().__init__(model, dataset_reader)
---> 24 self._tokenizer = SpacyTokenizer(language=language, pos_tags=True)
25
26 def predict(self, sentence: str) -> JsonDict:
~\anaconda3\lib\site-packages\allennlp\data\tokenizers\spacy_tokenizer.py in __init__(self, language, pos_tags, parse, ner, keep_spacy_tokens, split_on_spaces, start_tokens, end_tokens)
61 end_tokens: Optional[List[str]] = None,
62 ) -> None:
---> 63 self.spacy = get_spacy_model(language, pos_tags, parse, ner)
64 if split_on_spaces:
65 self.spacy.tokenizer = _WhitespaceSpacyTokenizer(self.spacy.vocab)
~\anaconda3\lib\site-packages\allennlp\common\util.py in get_spacy_model(spacy_model_name, pos_tags, parse, ner)
273 disable.append("ner")
274 try:
--> 275 spacy_model = spacy.load(spacy_model_name, disable=disable)
276 except OSError:
277 logger.warning(
~\AppData\Roaming\Python\Python38\site-packages\spacy\__init__.py in load(name, **overrides)
28 if depr_path not in (True, False, None):
29 deprecation_warning(Warnings.W001.format(path=depr_path))
---> 30 return util.load_model(name, **overrides)
31
32
~\AppData\Roaming\Python\Python38\site-packages\spacy\util.py in load_model(name, **overrides)
162 return load_model_from_link(name, **overrides)
163 if is_package(name): # installed as package
--> 164 return load_model_from_package(name, **overrides)
165 if Path(name).exists(): # path to model data directory
166 return load_model_from_path(Path(name), **overrides)
~\AppData\Roaming\Python\Python38\site-packages\spacy\util.py in load_model_from_package(name, **overrides)
183 """Load a model from an installed package."""
184 cls = importlib.import_module(name)
--> 185 return cls.load(**overrides)
186
187
~\anaconda3\lib\site-packages\en_core_web_sm\__init__.py in load(**overrides)
8
9 def load(**overrides):
---> 10 return load_model_from_init_py(__file__, **overrides)
~\AppData\Roaming\Python\Python38\site-packages\spacy\util.py in load_model_from_init_py(init_file, **overrides)
226 if not model_path.exists():
227 raise IOError(Errors.E052.format(path=path2str(data_path)))
--> 228 return load_model_from_path(data_path, meta, **overrides)
229
230
~\AppData\Roaming\Python\Python38\site-packages\spacy\util.py in load_model_from_path(model_path, meta, **overrides)
207 config = meta.get("pipeline_args", {}).get(name, {})
208 factory = factories.get(name, name)
--> 209 component = nlp.create_pipe(factory, config=config)
210 nlp.add_pipe(component, name=name)
211 return nlp.from_disk(model_path, exclude=disable)
~\AppData\Roaming\Python\Python38\site-packages\spacy\language.py in create_pipe(self, name, config)
298 raise KeyError(Errors.E108.format(name=name))
299 else:
--> 300 raise KeyError(Errors.E002.format(name=name))
301 factory = self.factories[name]
302 return factory(self, **config)
KeyError: "[E002] Can't find factory for 'tok2vec'. This usually happens when spaCy calls `nlp.create_pipe` with a component name that's not built in - for example, when constructing the pipeline from a model's meta.json. If you're using a custom component, you can write to `Language.factories['tok2vec']` or remove it from the model meta and add it via `nlp.add_pipe` instead."
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-1-27de09498ecb> in <module>
----> 1 from transformer_srl import dataset_readers, models, predictors
2
3 predictor = predictors.SrlTransformersPredictor.from_path("D:/srl_bert_base_conll2012.tar.gz", "transformer_srl")
4 predictor.predict(sentence="Did Uriah honestly think he could beat the game in under three hours?")
~\anaconda3\lib\site-packages\transformer_srl\dataset_readers.py in <module>
12 from allennlp.data.tokenizers import Token
13 from allennlp_models.common.ontonotes import Ontonotes, OntonotesSentence
---> 14 from allennlp_models.structured_prediction import SrlReader
15 from conllu import parse_incr
16 from nltk import Tree
~\anaconda3\lib\site-packages\allennlp_models\structured_prediction\__init__.py in <module>
1 # flake8: noqa: F403
----> 2 from allennlp_models.structured_prediction.predictors import *
3 from allennlp_models.structured_prediction.dataset_readers import *
4 from allennlp_models.structured_prediction.metrics import *
5 from allennlp_models.structured_prediction.models import *
~\anaconda3\lib\site-packages\allennlp_models\structured_prediction\predictors\__init__.py in <module>
2 BiaffineDependencyParserPredictor,
3 )
----> 4 from allennlp_models.structured_prediction.predictors.constituency_parser import (
5 ConstituencyParserPredictor,
6 )
~\anaconda3\lib\site-packages\allennlp_models\structured_prediction\predictors\constituency_parser.py in <module>
3 from overrides import overrides
4 from nltk import Tree
----> 5 from spacy.lang.en.tag_map import TAG_MAP
6
7 from allennlp.common.util import JsonDict, sanitize
ModuleNotFoundError: No module named 'spacy.lang.en.tag_map'
I am not sure, how to resolve the issue. Kindly help.
Any help is deeply appreciated. Thanks in advance.