如何在spacy中将POS和DEP一起使用在一个单一模式中



我正在使用spacy来解析一些文本。我正在定义我自己的模式。然而,我需要考虑POS,依赖性。例如,想要使用以下模式(使用POS和DEP(:

pattern = [
{'POS': {'IN': ['NOUN','ADJ'] } , 
"DEP": {'IN': ['attr', 'amod']}, 
"OP": "+"},
{'TEXT': {'IN': ['to','of', 'on','by','from','in']} , "OP": "+"},
{'POS': {'IN': ['NOUN','VERB']}}               
]

但是,间谍又回到了一个错误:

matcher.add('rule', [pattern])
^
IndentationError: unexpected indent

我已经导入了两个匹配器,但我只使用了一个匹配器:

from spacy.matcher import Matcher
from spacy.matcher import DependencyMatcher
matcher = Matcher(nlp.vocab)
matcher.add('rule', [pattern]) #### the error shows in this line####
matches = matcher(doc)

我想原因可能是,我同时使用POS和DEP,而我只在Matcher中添加了模式,而不是DependencyMatcher?是这样的吗?如果是,我应该如何更正?

谢谢!

它被解决了,这不是因为匹配器。

我只是重新调整代码,它有效。

这几行本来是对齐的,我把它们剪了,然后再粘贴,再重新对齐,然后就工作了。

最新更新