我想在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
所以问题是,如果原始语句中的这些块索引如何获取起始索引和结束索引?
答案 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])
这将提供原始字符串中实体的开始索引和结束索引。