Как получить номер предложения в spaCy? - PullRequest
1 голос
/ 02 октября 2019

Я получаю токены для строки как

doc = nlp(u"This is the first sentence. This is the second sentence.")
for token in doc:
    print(token.i, token.text)

с выводом

0 This
1 is
2 the
3 first
4 sentence
5 .
6 This
7 is
8 the
9 second
10 sentence
11 .

Как я могу получить номер предложения как (SENTENCE_NUMBER, token.i, token.text)

0 0 This
0 1 is
0 2 the
0 3 first
0 4 sentence
0 5 .
1 0 This
1 1 is
1 2 the
1 3 second
1 4 sentence
1 5 .

Я могу сбросить номер токена в цикле, но как я могу получить номер предложения из doc?

1 Ответ

2 голосов
/ 02 октября 2019

Нет встроенного индекса предложения, но вы можете перебирать предложения:

for sent_i, sent in enumerate(doc.sents):
    for token in sent:
        print(sent_i, token.i, token.text)

Вы можете использовать пользовательские расширения для сохранения индекса предложения на участках или токенах, если вам нужно сохранить его для использования в другом месте. : https://spacy.io/usage/processing-pipelines#custom-components-attributes

...