我试图在我的机器上从official documentation工作中使Spacy'smatcher example工作。Spacy 2.0匹配器:add()至少需要4个位置参数(给出3个)
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)
不幸的是我会遇到以下错误:
类型错误:添加()采用至少4的位置参数(3给出)
对应的源代码可以发现here,重要部分是
def add(self, key, on_match, *patterns):
"""Add a match-rule to the matcher. A match-rule consists of: an ID
key, an on_match callback, and one or more patterns.
Spacy最近更新到2.0版,我安装了编辑该版本,并成功地将英文模型与它联系起来。感觉我在这里错过了一些非常明显的东西,但我不明白我做错了什么。
原来我忘了告诉virtualenv在设置新环境时使用Python 3。因此它确实使用Spacy版本1。感谢您的提示,非常感谢Spacy核心团队的反应如此之快。 – user3255061