Как получить индекс в необработанном тексте сущности, найденной библиотекой Python Polyglot? - PullRequest
0 голосов
/ 04 июля 2018

Я хотел бы получить индекс в необработанном тексте сущности, найденной с помощью библиотеки 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 голосов
/ 06 августа 2018

Только что нашел решение для моей проблемы (возможно, не лучшее, но оно работает сейчас):

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]) 

Это обеспечит начальный индекс и конечный индекс объекта в исходной строке.

...