我可以帮您翻译中文,这篇文章涉及到IT技术。"Original Answer"可以翻译成"最初的回答"。以下是需要翻译的内容:
如果我想要获取单词'striker'的
此外,有doc[1].tag_,但我需要像doc ['striker'] .tag_这样的内容...
是否有可能?
最初的回答:要获取单词'striker'的
我遇到了一个情况,需要从spacy doc对象中获取pos_和tag_。
例如:
text = "Australian striker John hits century"
doc = nlp(text)
for nc in doc.noun_chunks:
print(nc) #Australian striker John
doc[1].tag_ # gives for striker
如果我想要获取单词'striker'的
pos_
和tag_
,我需要再次将该句子提供给nlp()
吗?此外,有doc[1].tag_,但我需要像doc ['striker'] .tag_这样的内容...
是否有可能?
最初的回答:要获取单词'striker'的
pos_
和tag_
,您需要将整个句子提供给nlp()
。如果您只想获取特定单词的tag_
,您可以使用以下代码:doc[doc.vocab['striker'].i].tag_。
doc['striker'].tag_
这样的表达会产生歧义。但是关于你最初的问题,你说的“我需要再次给出那个句子”是什么意思?你已经有了doc[1].tag_ == 'NN'
和doc[1].pos_ == 'NOUN'
。 - darkskynlp()
吗?是的,因为词性标注取决于上下文。例如,没有上下文的情况下,“hits” 可能是名词(“hit”的复数形式)或动词。你可以将每个标记映射到它们的位置,然后执行类似于doc[index[word]]
的操作,但如果同一个词出现多次会引起问题。 - Lomtrurdoc
准备好时,所有位置已经根据上下文正确计算了,就像你说的那样。你可以执行print([token.pos_ for token in doc])
,它会返回['ADJ', 'NOUN', 'PROPN', 'VERB', 'NOUN']
。 - darkskyspacy.tokens.span.Span
,而不是一个标记。您需要对其进行迭代,以打印块内每个标记的标签,例如print([[token.tag_ for token in nc] for nc in doc.noun_chunks])
。 - darksky