如何在 spacy 中以单一模式一起使用 POS 和 DEP
How to use POS and DEP together in one single pattern in spacy
我正在使用 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']}}
]
但是,spyderreturn报错了:
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中添加?是这样的吗?
如果是这样,我该如何纠正?
谢谢!
解决了,不是matcher的问题
我只是重新对齐代码,它起作用了。
这几行本来是对齐的,我把它们剪下来,重新粘贴,重新对齐,然后就成功了。
我正在使用 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']}}
]
但是,spyderreturn报错了:
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中添加?是这样的吗? 如果是这样,我该如何纠正?
谢谢!
解决了,不是matcher的问题
我只是重新对齐代码,它起作用了。
这几行本来是对齐的,我把它们剪下来,重新粘贴,重新对齐,然后就成功了。