Как получить индекс токена в предложении в SPACY? - PullRequest
0 голосов
/ 07 июня 2018

Есть ли элегантный способ получить индекс слова / токена в его предложении?Мне известны атрибуты токенов https://spacy.io/api/token#attributes Атрибут «i» возвращает индекс во всем родительском документе.Но родительский документ может содержать несколько предложений.

Пример: «Это пример. Это еще один пример».

Мне нужно, чтобы оба «Это» были возвращены в качестве индекса 0,оба "is" должны быть возвращены как индекс 1 и т. д ...

Заранее спасибо:)

1 Ответ

0 голосов
/ 08 июня 2018

Объект spaCy Doc также позволяет перебирать doc.sents, которые являются Span объектами отдельного предложения.Чтобы получить начальный и конечный индекс диапазона в родительском документе, вы можете посмотреть атрибуты start и end.Поэтому, если вы перебираете предложения и вычитаете начальный индекс предложения из token.i, вы получаете относительный индекс токена в предложении:

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

Сегментация предложений по умолчанию использует анализ зависимостей, который обычноболее точным.Однако вы также можете подключить основанное на правилах или полностью настраиваемое решение ( подробности см. Здесь ).

...