@pcdesign

Как распознавать абзацы в тексте?

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


Цель: скормить текст программе без абзацев и получить на выходе текст разбитый на абзацы.
  • Вопрос задан
  • 1255 просмотров
Решения вопроса 2
@fireSparrow
С хорошей точностью - никак.
Но если какой-то процент ошибок допустим, то можно попробовать взять достаточно большой корпус текстов уже разбитых на абзацы, вычленять в нём отдельные предложения и считать для этих предложений какие-то метрики. Например, количество слов, количество знаков препинания, отношения числа знаков препинания к число слов, средняя длинна слова, результирующий вектор в пространстве слов, ну и ещё хотя бы несколько десятков подобных метрик придумать.

А дальше всё стандартно - есть набор входных параметров, есть результат (является ли предложение первым предложением абзаца, и является ли оно последним). На выходе у вас будет модель, которая для каждого предложения определяет вероятность того, что оно является "головой" абзаца и вероятность того, что это предложение является "хвостом".

А дальше вы просто ставите абзац после тех предложений с высокой вероятность "хвоста", за которым идёт предложение с высокой вероятностью "головы".
Ответ написан
Комментировать
@alex-t
Прогр. в команде rco.ru
Когда нам надо было выделить абзацы, определили два понятия: "длинные строки" и "короткие строки". Длинные строки, например, дает простой текстовый экспорт из Ворда. Там каждый абзац просто заврешается переводом строки. А вот текст из коротких строк имеет размер строки не более, например, 72 символов, а абзац отмечается несколькими дополнительными отступами в начале первой строки, иногда двойным переводом строки, иногда и тем, и тем.

Если тексты из одного источника, то надо просто настроить алгоритм на конкретный вид абзацев. Если неизвестно - надо анализировать длины строк в тексте и отступы.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы