Аннотация 2
ВВЕДЕНИЕ 5
1 Постановка задачи 7
1.1 Проблематика 7
1.2 Классификация 8
2 Модели обучения и обработки 9
2.1 Обучение 9
2.2 Обработка 10
3 Автоматизация процесса получения входных данных 12
3.1 Преобразование в PDF-файл 12
3.2 Классификация и получение CSV-файла 15
4 Нейронная сеть 19
4.1 Загрузка данных 19
4.2 Препроцессинг 20
4.3 Обучение, тестирование модели и поиск подходящей конфигурации .. 24
5 Docker 29
ЗАКЛЮЧЕНИЕ 32
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ 33
Знание структуры текста в документе помогает определять информацию, которую возможно из него получить. Например, оглавление даёт информацию о том, где в документе находится нужная тема, номер страницы - расположение фрагмента текста в документе, абзац - информацию о том, что конкретный фрагмент текста имеет единую смысловую нагрузку. Подобная информация позволяет, например, расставлять интонации при прочтении в слух, восстанавливать последовательность текста при нарушении структуры документа. В этом случае наиболее очевидно использовать оптическую обработку данных.
Если предположить, что необходимо провести массовую обработку PDF-документов или подготовить текст из таких документов к использованию в программе электронного чтеца, то в первом случае оптическая обработка текста проблематична из-за количества расходуемого ресурса и высокой вероятности возникновения ошибок, а во втором случае просто невозможна, так как текст изначально поставляется в программу в электронном виде.
Решение этой проблемы - разработка алгоритма классификации символов в тексте. Информация о принадлежности символов к тем или иным классам практически равноценна той, которую можно получить с использованием оптической обработки текста.
Признак, по которому можно отнести символы в PDF-документах к их классам - это положение символа на странице (координаты символа в документе по осям x и у), и наиболее очевидным решением поставленной математической задачи классификации является использование нейронной сети, поэтому в рамках данной работы было решено провести построение и обучение нейронной сети, создать на основе её модели сервис, производящий обработку PDF-документов. Задачи данной работы:
1. Автоматизировать получение обучающих данных с помощью издательской системы TeX;
2. С помощью TensorFlow для Python построить нейронную сеть, анализирующую посимвольно содержимое PDF-документов;
3. Создать Docker-контейнер для облака сервиса books.luwrain.org.
В результате проделанной работы выполнены все поставленные задачи:
1. Автоматизирован процесс получения обучающих данных с помощью издательской системы TeX;
2. На основе библиотеки TensorFlow для Python получена модель нейронной сети с полносвязными слоями, способная распознавать символы PDF-документов с заданным процентом ошибок;
3. Разработан Docker-контейнер, содержащий полученную модель нейронной сети.
Дальнейшая работа с полученной моделью нейронной сети зависит от классификации символов, которая в свою очередь зависит от структуры обрабатываемых PDF-документов, в результате чего придётся менять структуру методов обработки символов разработанных утилит. Однако полученные исходники, модели обработки и обучения и классификация символов являются рабочим прототипами и удобным «каркасом» для дальнейшего расширения, и вся дальнейшая разработка зависит от структуры обрабатываемых PDF-документов, что не входило в изначальные задачи работы.