有没有一种优雅的方法来获取句子中单词/标记的索引?
我知道 token 的属性 https://spacy.io/api/token#attributesi
属性返回整个父文档中的索引。但是父文档可以包含多个句子。
例子:
"This is an example. This is another example."
我需要的是两个
"This"
作为索引返回 0
, 两者 "is"
作为索引返回 1
等等...
最佳答案
一个空间 Doc
对象还允许您遍历 doc.sents
, 分别是 Span
objects的个别句子。要在父文档中获取跨度的开始和结束索引,您可以查看 start
和 end
属性。因此,如果您遍历句子并从 token.i
中减去句子开始索引,您将在句子中获得 token 的相对索引:
for sent in doc.sents:
for token in sent:
print(token.text, token.i - sent.start)
默认的句子切分使用依赖解析,通常更准确。但是,您也可以插入基于规则或完全自定义的解决方案(see here 了解详细信息)。
关于nlp - 如何在spaCy中获取句子中 token 的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50742516/