Разделение предложения с использованием простейшего предложения - PullRequest
0 голосов
/ 23 октября 2019

Я использую предложитель spaCy для разделения предложений.

from spacy.lang.en import English
nlp = English()
sbd = nlp.create_pipe('sentencizer')
nlp.add_pipe(sbd)

text="Please read the analysis. (You'll be amazed.)"
doc = nlp(text)

sents_list = []
for sent in doc.sents:
   sents_list.append(sent.text)

print(sents_list)
print([token.text for token in doc])

OUTPUT

['Please read the analysis. (', 
"You'll be amazed.)"]

['Please', 'read', 'the', 'analysis', '.', '(', 'You', "'ll", 'be', 
'amazed', '.', ')']

Токенизация выполнена правильно, но я не уверен, что она не разбивает 2-е предложение вместе с (и принимает это как конец в первом предложении.

1 Ответ

0 голосов
/ 23 октября 2019

sentencizer - это очень быстрый, но также очень минимальный разделитель предложений, который не будет иметь хороших результатов с такой пунктуацией. Это удобно для разделения текстов на фрагменты предложений, но если вам нужна более качественная сегментация предложений, используйте компонент parser английской модели для сегментации предложений.

...