Разработать анализатор html и pdf на принципах машинного обучения
Задача:
У нас есть работающий парсер, который скачивает данные по работникам образовательных учреждений и их классам/группам со всех сайтов этих самых учреждений по России.
Очень многие сайты сделаны таким образом, что там есть разделы с работниками.
И на некоторых сайтах есть отдельно информация по классам (и классным руководителям) и группам детских садов (и воспитателям).
Сейчас парсер выдает результат, и из полного списка организаций появились контакты для каждой четвертой организации. Парсер сделан алгоритмически, он не использует машинное обучение для анализа страниц и вложенных файлов.
Мы хотим заказать создание небольшого анализатора html страниц и файлов (pdf, jpg, jpeg, rtf, docx, doc, ppt, xlsx, xls и др), который был бы завернут в docker контейнер. Парсер бы направлял в контейнер html и файлы несколько одновременно по одной образовательной организации, а получал бы информацию по работникам и группам/классам.
Цель - достичь 80% качества разбора. То есть я вручную возьму 20 школ случайным образом, на которых информация по педагогам опубликована. И проверю, качественно ли спарсились данные. Если они спарсились качественно для 16 школ, значит результат хороший.
То есть от вас нужен именно docker контейнер, куда мы сами будем загружать html, pdf и другие файлы.
Что нужно получить из html и pdf:
- Получить перечень работников
- Фамилия (обязательно)
- Имя (обязательно)
- Отчество
- Должность (одна из списка. алгоритмически ее определяли с помощью регулярных выражений, см файл teachers.txt)
- Телефон
- Ссылка на фотографию (например, 101лицейспб.рф/upload/images/workers/workers_1.jpg )
- Получить перечень классов
- Номер (обязательно, например 9Б)
- Дату документа (некоторые файлы не обновляются каждый год, а висят на сайте довольно долго, у них внутри документа написано, например Сезон 2024/25. Или 01.09.2023 )
Если документ создавался 1 сентября 23 года, то сейчас это уже не 9Б, а 10Б. И мы алгоритмически эту цифру увеличим.
- Работники (ссылка на одного или нескольких работников)
Получить перечень групп
- Название (обязательно, например Звездочка или Группа)
- Вид: Подготовительная, Старшая, Средняя, Младшая, Ясли, Другая Если возраст детей
6-7 лет -> Подготовительная.
5-6 лет -> Старшая
4-5 лет -> Средняя
2-3 года -> Младшая
1.5-2 года -> Ясли
Бывают группы смешанные (когда возраст сразу нескольких групп, например 3-7 лет). Бывают группы, которые не являются напрямую садичными группами. Например, группа по рисованию. Там может быть возраст 4-12 лет. Такие группы нужно возвращать в виде "Другая".
Также бывают еще группы 1.6-2 года или 5-7 лет. Тут правило алгоритмически такое: если разница в возрасте не больше 2 лет, то это не смешанные группы. И мы всегда судим, что они ближе к старшей цифре.
То есть группа 5-7 - это тоже Подготовительная
Группа 1.6-2 - это Ясли
- Дату документа (некоторые файлы не обновляются каждый год, а висят на сайте довольно долго, у них внутри документа написано, например Сезон 2024/25. Или 01.09.2023 )
Если документ создавался 1 сентября 23 года, то сейчас это уже не 9Б, а 10Б. И мы алгоритмически эту цифру увеличим.
- Работники (ссылка на одного или нескольких работников)
Считаем что в одной образовательной организации не бывает полных однофамильцев.
Еще считаем, что на разных страничках одно и то же ФИО может быть написано полностью или сокращенно. Это один и тот же человек. Это нужно пытаться исправлять. Например Левушкина Наталья Ивановна и Левушкина Н.И. это один и тот же человек.