如何在SPACY的句子中获取令牌的索引?

时间:2018-06-07 13:27:33

标签: nlp spacy dependency-parsing

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

实施例: "这是一个例子。这是另一个例子。"

我需要的是"这个"作为索引0返回,两者"是"作为索引1等返回...

提前致谢:)

1 个答案:

答案 0 :(得分:6)

spaCy Doc对象还允许您迭代doc.sents,这是Span objects个别句子的see here。要在父文档中获取span的开始和结束索引,您可以查看startend属性。因此,如果您迭代句子并从token.i中减去句子起始索引,则会在句子中获得令牌的相对索引:

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

默认句子分段使用依赖关系解析,通常更准确。但是,您也可以插入基于规则或完全自定义的解决方案(https://github.com/vuejs/vue-cli/issues/1511以获取详细信息)。