有没有一种优雅的方法可以在句子中获取单词/标记的索引? 我知道令牌的属性 https://spacy.io/api/token#attributesi
属性返回整个父文档中的索引。但父文档可以包含多个句子。
例:
"这是一个例子。这是另一个例子。
我需要的是作为索引0
返回的"This"
,"is"
都作为索引1
返回等......
一个spaCyDoc
对象还允许您迭代doc.sents
,这些是单个句子的Span
对象。若要在父文档中获取 span 的开始和结束索引,您可以查看start
和end
属性。因此,如果您遍历句子并从token.i
中减去句子开始索引,则会在句子中得到标记的相对索引:
for sent in doc.sents:
for token in sent:
print(token.text, token.i - sent.start)
默认句子分割使用依赖项分析,这通常更准确。但是,您也可以插入基于规则或完全自定义的解决方案(有关详细信息,请参阅此处(。