Я хочу извлечь предложения из текста, но мне нужна точная позиция результатов. Текущая реализация tokenize.sent_tokenize
в NLTK не возвращает позицию извлекаемых предложений, поэтому я пытался что-то вроде этого:Поиск точной позиции токенизированных предложений
offset, length = 0, 0
for sentence in tokenize.sent_tokenize(text):
length = len(sentence)
yield sentence, offset, length
offset += length
Но он не возвращает точное положение предложений, потому что sent_tokenize
удаляет некоторые письменные символы (например, символы новой строки, лишние пробелы и ...) вне границы вынесенного предложения. Я не хочу использовать простой шаблон регулярного выражения для разделения предложений, и я знаю, что в этом случае эта проблема тривиальна.
Спасибо.
try 'offset = text.find (предложение, смещение)' для замены цикла while. – jfs
Является ли он более эффективным? – nournia
Дело в том, что вам следует избегать переопределения существующих методов, которые документированы, проверены и могут быть даже оптимизированы для вас *, если у вас нет веской причины не использовать их. – jfs