Spacy 2.0 Matcher:add()至少接受4个位置参数(给定3个)

2024-10-02 18:22:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我想让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版,我安装了那个版本,还成功地将英文版链接到它上面。我觉得我错过了一些很明显的东西,但我不知道我做错了什么。在


Tags: from机器addhelloworlddocnlpspacy
1条回答
网友
1楼 · 发布于 2024-10-02 18:22:56

这确实很奇怪,我无法使用您的示例重现错误(在spacyv2.0.2上,它对我来说非常好)。因此,最简单的解释是,您的脚本实际上执行了错误的错误的spacy。(spacyv1.x还有一个Matcher.add()方法,它采用了4 positional arguments,因此这可以适应错误。)

如果您以前安装了spacyv1.x,但它仍然在您的PYTHONPATH上(在不同的环境中,系统Python等),则可能会执行错误的spacy。也可能是您安装了spaCy,但忘记告诉pip进行升级,即通过运行pip install -U spacy。在

最简单的方法是在文件顶部添加以下行:

print(spacy.__version__)

顺便说一句,如果你需要重新安装或升级到新版本,别忘了下载新的型号!在

相关问题 更多 >