我想使用spaCy的依赖项解析器在我的文档中定义否定范围。
我有以下代码:
import spacy
nlp = spacy.load("en_core_web_sm")
doc = nlp(u'Hi alll, some dividend is omnipresent even if not paid')
negation_tokens = [tok for tok in doc if tok.dep_ == 'neg']
negation_head_tokens = [token.head for token in negation_tokens]
print(negation_tokens) # not
print(negation_head_tokens) # paid
for token in negation_head_tokens:
# print(token.text, token.dep_, token.head.text, token.head.pos_, [child for child in token.children])
start = token.i # 5
end = token.head.i # 10
negated_tokens = doc(start, end) # this an gives error
所需的输出应为:
is omnipresent even if not paid
有什么建议吗?
答案 0 :(得分:0)
由于doc
是一个字符串,因此无法调用(就像方法一样)。您想要对它建立索引(占一小部分)。为此,请使用方括号:
negated_tokens = doc[start:end]
尽管实际上您想要的是
negated_tokens = doc[end:start + 1]
print(negated_tokens)
> is omnipresent even if not paid