Задача №8 Сервис формирования задач для москвичей по контролю работ подрядчиков в сфере городского благоустройства
Актуальность:
Мониторинг хода выполнения работ по благоустройству отнимает у контрольных органов массу времени на аналитику закупочной документации. Описание работ по благоустройству в сметах излишне детализировано и замедляет процесс подготовки к обследованиям.
Разработка технического решения, способного укрупнить и структурировать производимые работы до необходимого уровня, позволит не только ускорить мониторинг их выполнения, но и дополнительно привлечь к данным мероприятиям неравнодушных граждан, желающих принять участие в контрольных мероприятиях.
Описание:
Разработайте сервис, который с помощью распознавания документации проектов городского благоустройства сформирует для москвичей задания по мониторингу выполненных подрядчиками работ
Суть проекта:
Платформа «Живой город» решает проблемы оптимизации работы со сметами, проверки правильности заполненной сметы, проверку стоимости работ в смете, категоризацию разделов в смете, что делает наш продукт уникальным а рынке удобной работы со сметами и оптимизации расчётов, который не имеет аналогов. С платформой «Живой город», составление сметы будет занимать в два раза меньше времени, благодаря простоте платформы
Описание алгоритма получения результата:
Получив загруженный пользователем файл(ы) сметы, парсер первым делом проверяет формат сметы, выделяется шапка сметы из нее выделяются названия и положение колонок. После этого колонки проверяются на соответствие СН или ТСН структур. Далее определяются границы разделов, подразделов, и каждой отдельной записи. После этого каждая отдельная позиция преобразовывается в словарь в соответствии с именами колонок. Все словари складываются по разделам и подразделам. После этого обрабатывается итоговая сумма сметы и выделяются сущности из текста над шапкой. Алгоритм адаптивен и подстраивается под извлечение необходимых полей и их групп, формируя структуру обработанной сметы.
Сложности при обработке данных:
- Мультистраничные файлы XLSX (определение наличия сметы на странице)
- Шапка как и другие объекты сметы не имеют точного расположения
- Присутствие объединенных колонок в таблице
- Наличие формул с ссылками на ячейки из других вкладок
- Разнородное название для вкладок с ведомостями в сметах
- Отсутствие вкладок для расчета стоимости ресурсов в некоторых сметах
- Множество единиц измерений
- Наличие позиций с дробным номером (необходимо объединить к родительской позиции)
- В некоторых листах смет присутствуют несколько локальных смет
Возможности сервиса:
- Использование микросервисной архитектуры
- Подготовлен API для последующего внедрения ЕАИСТ
- Использование доп. классификаторов
- Выделения адреса и сопостовление с ФИАС
- Использование языковых и статистических моделей для вывления ключевых позиций
- Многопоточная, быстрая обработка смет
- Устойчивость к изменениям формата сметы
Описание алгоритма получения результата:
Получив загруженный пользователем файл(ы) сметы, парсер первым делом проверяет формат сметы, выделяется шапка сметы из нее выделяются названия и положение колонок. После этого колонки проверяются на соответствие СН или ТСН структур. Далее определяются границы разделов, подразделов, и каждой отдельной записи. После этого каждая отдельная позиция преобразовывается в словарь в соответствии с именами колонок. Все словари складываются по разделам и подразделам. После этого обрабатывается итоговая сумма сметы и выделяются сущности из текста над шапкой. Алгоритм подстраивается под извлечение необходимых полей и их групп, формируя структуру обработанной сметы.
1 место - Good Genius
Решение:
Платформа "Живой город" позволяет оптимизировать работы со сметами по благоустройству, а также в короткие сроки подготовить данные для взаимодействия с ЕАИСТ. При работе со сметами используется информация из дополнительных классификаторов и справочников (ФИАС, ОКЕИ и т. д.). Платформа проверяет правильность заполненной сметы, стоимости работ в смете и сопоставляет ключевые позиции с позициями справочника предметов госзаказа. Ключевая особенность сервиса – использование вероятностных алгоритмов, использующих возможности библиотеки FastText, расстояние Левенштейна и, как поправочный коэффициент, стоимость позиции.
https://github.com/progressionnetwork/livecity
Стек используемых технологий и библиотек:
- Python/Pandas/regex
- Levenshtein/TfidfVectorizer/NLTK
- FastText/Pymorphy
- Sbercloud IaaS/PaaS Infrastructure
- Docker
- React js
- Django/python
- Nginx
- Postgresql
- Rabbitmq
https://vc.ru/dev/545938-kak-my-proveli-final-samogo-masshtabnogo-hakatona-rossii-v-2022-godu