Используйте NLTK или аналогичный инструмент для определения границы предложения - PullRequest
0 голосов
/ 01 ноября 2019

Я знаю, как разделить предложение с помощью NLTK PunktSentenceTokenizer.

Однако у меня есть еще одна просьба: у меня есть текст, преобразованный из PDF, где разрыв страницы разделяет предложения. Есть ли способ использовать NLTK, чтобы определить, является ли конец строки границей предложения или нет? если это не граница предложения, я могу объединить строку со следующей строкой.

Например, вот мои строки:

"У меня есть преобразованный текст" "Есть ли способ сохранитьчеловеческий род? "

Первый не конец предложения, а второй.

1 Ответ

0 голосов
/ 01 ноября 2019

Если вы работаете с английским языком, nltk уже предоставил вам API: english.pickle.

import nltk.data
text = '''
(How does it deal with this parenthesis?)  "It should be part of the
previous sentence." "(And the same with this one.)" ('And this one!')
"('(And (this)) '?)" [(and this. )]
'''
sent_detector = nltk.data.load('tokenizers/punkt/english.pickle')
print('\n-----\n'.join(sent_detector.tokenize(text.strip())))

Вывод:

(How does it deal with this parenthesis?)
-----
"It should be part of the
previous sentence."
-----
"(And the same with this one.)"
-----
('And this one!')
-----
"('(And (this)) '?)"
-----
[(and this. )]

Подробнее в nltk.tokenize

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...