Этот проект направлен на упрощение взаимодействия пользователей с Схемами комплексного использования и охраны водных объектов (СКИОВО) — подробными отчетами о состоянии более чем 70 речных бассейнов России. СКИОВО включают в себя следующие блоки:
- Общая характеристика речного бассейна: география, гидрология, геоморфология и климат.
- Оценка экологического состояния: выявление ключевых проблем и угроз.
- Целевые показатели: критерии, к которым необходимо стремиться для улучшения состояния водных ресурсов.
- Водохозяйственные балансы: данные о распределении водных ресурсов и балансах загрязняющих веществ.
- Лимиты и квоты: нормативы на забор воды и сброс сточных вод.
- План мероприятий: рекомендации по достижению целевого состояния речных бассейнов.
Проект SKIOVO автоматизирует предобработку, анализ и визуализацию этих данных, что делает их доступными и удобными для использования.
.
├── LICENSE # Лицензионное соглашение
├── README.md # Описание проекта
├── data # Исходные и предобработанные данные
│ ├── Base_Books # PDF-книги, разбитые по речным бассейнам
│ ├── JSON # Исходные и предобработанные JSON-файлы
├── documents # ТЗ, промежуточные отчеты
├── notebooks # Jupyter ноутбуки для выполнения этапов проекта
│ ├── data_collection # Про сбор данных
│ ├── data_preprocessing # Предобработка данных
│ ├── db_vectorization # Работа с векторными базами данных
│ ├── eda # Исследовательский анализ данных
│ ├── evaluation # Оценка моделей векторизации
│ ├── experiment_docling # Эксперименты с Markdown
│ ├── experiment_structurization_pdf # Эксперименты с PDF-структуризацией
│ └── getting_path # Объединение JSON с путями до PDF
├── poetry.lock # Зависимости проекта
├── pyproject.toml # Конфигурация проекта
git clone https://github.com/katimanova/skiovo.git
cd skiovoПроект использует Poetry для управления зависимостями. Убедитесь, что он установлен (это важно, чтобы использовать нужные версии библиотек питона):
poetry install
poetry shell -
📖 Анализ данных:
- В качестве исходного материала используется архив, содержащий данные восьми водных бассейнов: Волга, Дон, Кубань, Обь, Печора, Сура, Терек, Урал.
- -> все отчеты хранятся на ифнормационных сайтах БВУ регионов
notebooks/data_collection/collecting.ipynb.
-
🧹 Предобработка данных:
- Структуризация и преобразование:
- Данные структурированы в единый JSON и атомарные PDF-файлы для удобства работы и хранения. Подробнее в ноутбуке
notebooks/data_preprocessing/pdf_json_decomposer/structuring.ipynb.
- Данные структурированы в единый JSON и атомарные PDF-файлы для удобства работы и хранения. Подробнее в ноутбуке
- Подготовка к векторизации:
- Выполнена предобработка данных перед их векторизацией. Подробнее в
notebooks/db_vectorization/preprocessing_all_basin.ipynb.
- Выполнена предобработка данных перед их векторизацией. Подробнее в
- Структуризация и преобразование:
-
📊 Анализ данных (EDA):
-
Проведен исследовательский анализ данных, включающий:
- Изучение содержимого отчетов по бассейнам.
- Анализ частотности слов.
- Визуализацию данных в формате облака слов.
Подробнее см. вnotebooks/EDA/eda.ipynb. - Дашборд реализован на базе Plotly Dash -
notebooks/EDA/vector_db_dashboard.ipynb.
-
-
🎯 Оценка методов для веткоризации текста:
- Из нескольких методов, выбран итоговый -
USER-bge-m3от deepvk.notebooks/evaluation/metrics_model_emb.ipynb
- Из нескольких методов, выбран итоговый -
| Модель | Метрика | Результаты | Подходит? |
|---|---|---|---|
| USER-bge-m3 | cosine_similarity | 0.6997 | Да |
| TF-IDF | cosine_similarity | 0.3827 | Да |
| Sci-Rus-Tiny | cosine_similarity | 0.6394 | Нет (выдал не то) |
-
🗃 Создание векторной базы данных:
- Векторизация данных:
- Выполнена векторизация и размещение данных в локальной базе Qdrant. Подробности в
notebooks/db_vectorization/vectorization_all.ipynb.
- Выполнена векторизация и размещение данных в локальной базе Qdrant. Подробности в
- Оценка качества векторных данных:
- Проведена оценка данных на основе метрик качества. Подробности см. в
notebooks/evaluation/metrics.ipynb.
- Проведена оценка данных на основе метрик качества. Подробности см. в
- Векторизация данных:
Проект SKIOVO автоматизирует обработку и анализ данных из отчетов о водных ресурсах России (СКИОВО). Это позволяет:
-
Ускорить доступ к данным:
- Структурированные данные и векторная база упрощают поиск и анализ информации.
-
Подготовить основу для вопросно-ответной системы:
- Векторизация данных и прототип бота закладывают фундамент для будущей платформы, которая упростит взаимодействие с данными для водопользователей.
Проект является частью инициативы по цифровизации, направленной на повышение эффективности работы с водными ресурсами.
Проект SKIOVO активно разрабатывался с октября по январь и в настоящее время работа над ним продолжается.

