如何在Polyglot python库找到的实体的原始文本中获取索引?

时间:2018-07-03 23:35:29

标签: python polyglot

我想在python的poplyglot库中找到的实体的原始文本中获取索引。

    # Polyglot example NER
    from polyglot.text import Text
    text1 = u'Ik wil Ben mijn zoontje met de naam Ben ziek melden.'
    print(text1)
    ptext1 = Text(text1)
    print(ptext1.entities)
    for sent in ptext1.sentences:
        for entity in sent.entities:
          print(entity.tag, entity, entity.start, entity.end)

结果是: [I-PER(['Ben'])] I-PER ['Ben'] 8 9

所以问题是,如果原始语句中的这些块索引如何获取起始索引和结束索引?

1 个答案:

答案 0 :(得分:0)

刚刚找到了解决我问题的方法(也许不是最好的方法,但是现在可以使用):

ptext1 = Text(text1) 
prevIndex = 0 
for sent in ptext1.sentences: 
    for entity in sent.entities: 
        print(entity.tag, entity, entity.start, entity.end) 
        currentIndex = ptext1.index(entity[0], prevIndex) 
        print('startindex={}, endindex={}'.format(currentIndex, currentIndex+len(entity[0]))) 
        prevIndex = currentIndex+len(entity[0]) 

这将提供原始字符串中实体的开始索引和结束索引。