我想让Spacy'smatcher example在我的机器上工作。在
from spacy.matcher import Matcher
matcher = Matcher(nlp.vocab)
pattern = [{'LOWER': "hello"}, {'LOWER': "world"}]
matcher.add("HelloWorld", None, pattern)
doc = nlp(u'hello world!')
matches = matcher(doc)
不幸的是,我遇到了以下错误:
类型错误:add()至少有4个位置参数(给定3个)
相应的源代码可以找到here,重要的部分是
^{pr2}$Spacy最近更新到2.0版,我安装了那个版本,还成功地将英文版链接到它上面。我觉得我错过了一些很明显的东西,但我不知道我做错了什么。在
这确实很奇怪,我无法使用您的示例重现错误(在spacyv2.0.2上,它对我来说非常好)。因此,最简单的解释是,您的脚本实际上执行了错误的错误的
spacy
。(spacyv1.x还有一个Matcher.add()
方法,它采用了4 positional arguments,因此这可以适应错误。)如果您以前安装了spacyv1.x,但它仍然在您的
PYTHONPATH
上(在不同的环境中,系统Python等),则可能会执行错误的spacy
。也可能是您安装了spaCy,但忘记告诉pip进行升级,即通过运行pip install -U spacy
。在最简单的方法是在文件顶部添加以下行:
顺便说一句,如果你需要重新安装或升级到新版本,别忘了下载新的型号!在
相关问题 更多 >
编程相关推荐