centre-for-humanities-computing / odyCy

A general-purpose NLP pipeline for Ancient Greek
https://centre-for-humanities-computing.github.io/odyCy/
MIT License
17 stars 2 forks source link

custom attribute 'backoff_lookup' not found when evaluating models #15

Closed jankounchained closed 1 year ago

jankounchained commented 1 year ago

Running spacy project run evalulate_trf raises an error with the frequency lemmatizer.

Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/ucloud/homerCy/environments/training/lib/python3.8/site-packages/spacy/__main__.py", line 4, in <module>
    setup_cli()
  File "/home/ucloud/homerCy/environments/training/lib/python3.8/site-packages/spacy/cli/_util.py", line 71, in setup_cli
    command(prog_name=COMMAND)
  File "/home/ucloud/homerCy/environments/training/lib/python3.8/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/home/ucloud/homerCy/environments/training/lib/python3.8/site-packages/typer/core.py", line 778, in main
    return _main(
  File "/home/ucloud/homerCy/environments/training/lib/python3.8/site-packages/typer/core.py", line 216, in _main
    rv = self.invoke(ctx)
  File "/home/ucloud/homerCy/environments/training/lib/python3.8/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/ucloud/homerCy/environments/training/lib/python3.8/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/ucloud/homerCy/environments/training/lib/python3.8/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/home/ucloud/homerCy/environments/training/lib/python3.8/site-packages/typer/main.py", line 683, in wrapper
    return callback(**use_params)  # type: ignore
  File "/home/ucloud/homerCy/environments/training/lib/python3.8/site-packages/spacy/cli/evaluate.py", line 42, in evaluate_cli
    evaluate(
  File "/home/ucloud/homerCy/environments/training/lib/python3.8/site-packages/spacy/cli/evaluate.py", line 76, in evaluate
    nlp = util.load_model(model)
  File "/home/ucloud/homerCy/environments/training/lib/python3.8/site-packages/spacy/util.py", line 434, in load_model
    return load_model_from_path(Path(name), **kwargs)  # type: ignore[arg-type]
  File "/home/ucloud/homerCy/environments/training/lib/python3.8/site-packages/spacy/util.py", line 514, in load_model_from_path
    return nlp.from_disk(model_path, exclude=exclude, overrides=overrides)
  File "/home/ucloud/homerCy/environments/training/lib/python3.8/site-packages/spacy/language.py", line 2140, in from_disk
    util.from_disk(path, deserializers, exclude)  # type: ignore[arg-type]
  File "/home/ucloud/homerCy/environments/training/lib/python3.8/site-packages/spacy/util.py", line 1352, in from_disk
    reader(path / key)
  File "/home/ucloud/homerCy/environments/training/lib/python3.8/site-packages/spacy/language.py", line 2134, in <lambda>
    deserializers[name] = lambda p, proc=proc: proc.from_disk(  # type: ignore[misc]
  File "/home/ucloud/homerCy/environments/training/lib/python3.8/site-packages/spacy/pipeline/entityruler.py", line 495, in from_disk
    from_disk(path, deserializers_patterns, {})
  File "/home/ucloud/homerCy/environments/training/lib/python3.8/site-packages/spacy/util.py", line 1352, in from_disk
    reader(path / key)
  File "/home/ucloud/homerCy/environments/training/lib/python3.8/site-packages/spacy/pipeline/entityruler.py", line 482, in <lambda>
    "patterns": lambda p: self.add_patterns(
  File "/home/ucloud/homerCy/environments/training/lib/python3.8/site-packages/spacy/pipeline/entityruler.py", line 309, in add_patterns
    for label, pattern, ent_id in zip(
  File "/home/ucloud/homerCy/environments/training/lib/python3.8/site-packages/spacy/language.py", line 1589, in pipe
    for doc in docs:
  File "/home/ucloud/homerCy/environments/training/lib/python3.8/site-packages/spacy/util.py", line 1651, in _pipe
    yield from proc.pipe(docs, **kwargs)
  File "spacy/pipeline/pipe.pyx", line 58, in pipe
  File "/home/ucloud/homerCy/environments/training/lib/python3.8/site-packages/spacy/util.py", line 1670, in raise_error
    raise e
  File "spacy/pipeline/pipe.pyx", line 55, in spacy.pipeline.pipe.Pipe.pipe
  File "/home/ucloud/homerCy/custom_components/lemmatizer.py", line 153, in __call__
    error_handler(self.name, self, [doc], e)
  File "/home/ucloud/homerCy/environments/training/lib/python3.8/site-packages/spacy/util.py", line 1670, in raise_error
    raise e
  File "/home/ucloud/homerCy/custom_components/lemmatizer.py", line 150, in __call__
    token.lemma_ = self.lemmatize(token)
  File "/home/ucloud/homerCy/custom_components/lemmatizer.py", line 108, in lemmatize
    lookup = self.backoff_lookup
AttributeError: 'FrequencyLemmatizer' object has no attribute 'backoff_lookup'
jankounchained commented 1 year ago

seems to be fixed in 6025bfedd4b774753e0e98c99ac4d192bd33c022