【问题标题】:Why does Presidio StanzaNlpEngine throw NameError: name 'StanzaLanguage' is not defined?为什么 Presidio StanzaNlpEngine 会抛出 NameError: name 'StanzaLanguage' is not defined?
【发布时间】:2021-10-10 01:58:27
【问题描述】:

我正在尝试将 Stanza 语言模型与 Presidio 一起使用,但遇到了这个阻止程序。

import stanza
stanza.download("en")

from presidio_analyzer.nlp_engine import StanzaNlpEngine
StanzaNlpEngine(models={"en": "en"})

以上抛出...

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File ".../presidio_analyzer/nlp_engine/stanza_nlp_engine.py", line 41, in __init__
    for lang_code, model_name in models.items()
  File ".../presidio_analyzer/nlp_engine/stanza_nlp_engine.py", line 41, in <dictcomp>
    for lang_code, model_name in models.items()
NameError: name 'StanzaLanguage' is not defined

这看起来应该可行,看看the code

即使这样也会引发同样的错误。

StanzaNlpEngine()

【问题讨论】:

    标签: python python-3.x stanza presidio


    【解决方案1】:

    问题是fixed in version 2.2.2:

    Spacy-Stanza 界面在 spaCy 3 中发生了变化。此 PR 建议:

    1. 对 spacy-stanza 界面的修复。
    2. 修复了在给定 nlp 引擎的情况下获取正确识别器的错误(SpacyRecognizer 用于 SpancyNlpEngineStanzaRecognizer 用于 StanzaNlpEngine)
    3. 修复了 Stanza 的决策过程字符串中的错误

    【讨论】:

      猜你喜欢
      • 2015-01-20
      • 1970-01-01
      • 2022-12-02
      • 1970-01-01
      • 2018-06-28
      • 2021-11-17
      • 2012-05-22
      • 2013-04-09
      • 1970-01-01
      相关资源
      最近更新 更多