【问题标题】:python type hints for spaCyspaCy 的 python 类型提示
【发布时间】:2021-01-21 18:30:16
【问题描述】:

我正在努力为任何涉及 spaCy 类型的内容设置类型提示。

尝试使用 spaCy 文档中的“语言”和“令牌”等返回类型,但它们似乎不起作用......我在 python 3.8.5 上。

例如说我有这个:

import spacy

def load_lang() -> what_goes_here:
   return spacy.load("en_core_web_sm")

根据文档,此“返回语言”。 我尝试了 Language 或 spacy.Language 但没有运气。 我在使用令牌时遇到了类似的问题,例如做这样的事情:

return [token for token in doc if not token.is_stop]

文档再次提到“返回令牌”作为返回对象,但我无法输入提示。 我不想在输入时从 List[str] 中删除,因为我认为这是错误的方式。

任何帮助将不胜感激。 提前谢谢你。

【问题讨论】:

  • 您是否尝试使用“from spacy.language import Language”导入,然后使用 Language 作为返回类型?
  • 当你把Language作为类型提示时到底发生了什么?
  • 感谢两位的回复。如果我只使用语言或令牌等。我得到 NameError: name 'Language' is not defined。如果我按照 daniboy 的评论进行额外的导入,它会起作用。我以为导入 spacy 会带来这些。再次感谢。

标签: python spacy


【解决方案1】:

使用Language类导入应该没有问题:

from spacy.language import Language

然后将其用作类型提示:

def load_lang() -> Language:
   return spacy.load("en_core_web_sm")

【讨论】:

  • 类似from spacy.tokens import Token,然后使用List[Token]作为提到的其他功能的注释。
  • 工作就像一个魅力。谢谢!我(错误地)认为导入 spacy 会引入相关类型。再次感谢。
  • 不客气。你介意接受答案吗?
猜你喜欢
  • 2020-01-14
  • 2022-09-29
  • 2021-11-25
  • 2021-10-19
  • 2017-11-03
  • 2022-11-02
  • 2019-02-14
  • 1970-01-01
  • 2013-10-12
相关资源
最近更新 更多