Средство форматирования текста, которое понимает грамматику

Я преобразовал некоторые PDF-документы, содержащие JPEG, в текст ASCII.

К сожалению, в середине предложений есть много разрывов
строк , в результате чего в некоторых строках остается всего несколько слов, а текст в целом трудно читать.


Есть ли какой-нибудь
инструмент, который переформатирует
текст с учетом предложений и
абзацев
, которые могут быть разбиты таким образом
. Он должен
распознавать структуру английских предложений - они обычно
заканчиваются
точкой,
знаком вопроса
и т. д.

Какие типы структуры предложения (например, точки) вы хотели бы сделать перерывом?
Я хотел бы, чтобы программа понимала грамматику английского языка.

Ответы (1)

Вы можете сделать это в большинстве программ для редактирования (текстовые процессоры/текстовые редакторы), которые позволяют вам искать/заменять знаки абзаца или разрывы строк. Вот пример стратегии, описанной в синтаксисе Word, где ^pесть разрыв абзаца, при условии отсутствия различий между символами новой строки и разрывами страниц (как в случае с текстовыми файлами), и в которой я буду использовать _ для символов пробела.

Сначала вставьте лишние знаки абзаца после знаков препинания в предложениях:

  • Заменить .на.^p
  • Заменить ?на?^p
  • Заменить !на!^p

Удалите начальные и конечные пробелы, продолжайте повторять, пока больше не будет найдено:

  • Заменить _^pна^p
  • Заменить ^p_на^p

Сократите количество последовательных разрывов абзаца максимум до двух. Продолжайте повторять, пока больше не будет найдено:

  • Заменить ^p^p^pна^p^p

Дополнительные шаги, если вы хотите объединить предложения в один абзац:

  • Замените ^p^pна $$##$$(или любую строку, которой нет в вашем документе)
  • Заменить ^pна_
  • Заменить $$##$$на^p

Дополнительные замечания:

  • Поместите все это в макрос клавиатуры, если вам нужно сделать это в нескольких документах.
  • Вы можете сократить разрыв до одного абзаца. Тогда вам нужен вариант этой стратегии.
  • Вы также можете использовать регулярные выражения, но я ими не владею.
  • Для этого дополнительного шага ваше программное обеспечение должно быть в состоянии обрабатывать очень длинные строки, потому что у вас будет промежуточный результат, который в основном состоит из одной строки.
  • Делайте все это на копиях своих файлов, чтобы у вас была резервная копия.
Как бы я ни предпочел, чтобы это делала программа, я подумал об этом, поэтому +1. Мне нужно будет использовать текстовый редактор, который поддерживает макросы, чтобы я мог хранить эту последовательность и повторять ее для многих файлов. К счастью, NotePad++ позволяет мне это сделать.