Python: извлечение данных MS Word в древовидной структуре - PullRequest
0 голосов
/ 06 октября 2019

Есть ли способ извлечь данные из файла MS Word в древовидную структуру. Я имею в виду, что файл документа содержит заголовок, абзац и таблицу. Я хотел бы извлечь эту информацию в иерархии заголовков. Не уверен, что это лучший подход. Кто-нибудь может поделиться своим опытом разбора текстового документа с python?

1 Ответ

1 голос
/ 06 октября 2019

Заголовки или «заголовки разделов» на языке печати не являются объектами-контейнерами в Word;каждый из них - просто объект абзаца с форматированием, которое заставляет их отображаться как заголовок раздела, часто жирным шрифтом и шрифтом несколько большего размера, чем основной текст.

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

Лучший подход немного зависит от документов, с которыми вы будете работать. В лучшем случае каждый раздел начинается с абзаца, имеющего один из стилей Заголовок {n} , например «Заголовок 1» и «Заголовок 2». Затем вы можете просто пройти через абзацы, проверяя каждый из них на один из этих стилей, и соответственно заполнить вашу иерархию. Существуют веские причины, по которым автор может придерживаться этой дисциплины, потому что это значительно упрощает формирование оглавления.

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

Обратите внимание, что в Word также есть понятие «раздел», которое весьма отличается от того, как я здесь использую слово. В Word раздел представляет собой непрерывный блок страниц с одинаковым форматом страницы (например, поля, портрет / пейзаж и т. Д.). На языке публикации раздел является подразделом chapter или аналогичного блока, который имеет заголовок (но обычно не разрыв страницы) и может сам делиться на подразделы каждого уровня с меньшим заголовком.

...