如何在SPACY中获取句子中标记的索引?

Joh*_*mer 2 nlp spacy dependency-parsing

是否有一种优雅的方法来获取句子中单词/标记的索引?我知道令牌的属性https://spacy.io/api/token#attributes “ i”属性返回整个父文档中的索引。但是父文档可以包含多个句子。

示例:“这是一个例子。这是另一个例子。”

我需要的都是将“ This”作为索引0返回,将“ is”都作为索引1返回等等。

提前致谢 :)

Ine*_*ani 10

一个spaCy Doc对象,您还可以遍历doc.sents,这是Span对象的单个句子。要在父文档中获取跨度的开始和结束索引,可以查看startand end属性。因此,如果您遍历句子并从中减去句子起始索引,则token.i可以得到标记在句子中的相对索引:

for sent in doc.sents:
    for token in sent:
        print(token.text, token.i - sent.start)
Run Code Online (Sandbox Code Playgroud)

默认的句子分段使用依赖项解析,通常更准确。但是,您也可以插入基于规则的解决方案或完全自定义的解决方案(有关详细信息,请参见此处)。