首页 > 解决方案 > 使用 spacy.matcher.matcher.Matcher.add() 方法的问题

问题描述

尝试使用 spacy 时出现错误matcher

~\Anaconda3\lib\site-packages\spacy\matcher\matcher.pyx in spacy.matcher.matcher.Matcher.add()
TypeError: add() takes exactly 2 positional arguments (3 given)

是否有任何替代功能spacy.matcher.matcher.Matcher.add()

标签: spacymatcher

解决方案


请参阅SpaCyMatcher.add()文档

在 v3.0
中更改 从 spaCy v3.0 开始,Matcher.add将模式列表作为第二个参数(而不是可变数量的参数)。on_match回调成为可选的关键字参数。

patterns = [[{"TEXT": "Google"}, {"TEXT": "Now"}], [{"TEXT": "GoogleNow"}]] - matcher.add("GoogleNow", on_match, *patterns) + matcher.add("GoogleNow", patterns, on_match=on_match)

示例用法:

from spacy.matcher import Matcher

matcher = Matcher(nlp.vocab)
pattern = [{"LOWER": "hello"}, {"LOWER": "world"}]
matcher.add("HelloWorld", [pattern])
doc = nlp("hello world!")
matches = matcher(doc)

推荐阅读