5

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

例子:

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

我需要的是既"This"作为索引返回0"is"又作为索引返回1等......

4

1 回答 1

16

spaCyDoc对象还允许您遍历doc.sents,它们是单个句子的Span对象。要在父文档中获取跨度的开始和结束索引,您可以查看startandend属性。因此,如果您遍历句子并从 中减去句子开始索引token.i,您将获得该标记在句子中的相对索引:

for sent in doc.sents:
    for token in sent:
        print(token.text, token.i - sent.start)

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

于 2018-06-08T00:29:03.147 回答