Team.name: cannot access private member declared in class Team.
Hackathon.name: cannot access private member declared in class Hackathon.
Project.name: cannot access private member declared in class Project.
- Описание
- Реализованная функциональность
- Особенности проекта
- Основной стек технологий
- Среда запуска
- Использование
- Разработчики
Перед нашей командой была поставлена задача "Анализ почты в режиме offline для оптимизации процессов выявления утечек конфиденциальной информации", на реализацию которой давалось 2 дня. Также нам был предоставлен датасет из ~70Гб писем формата .eml.
Увы, но изначально размеченных данных оказалось совсем мало, всего 23 файла на все 5 классов данных. Размечать достаточное количество данных для обучения нейронной модели не предоставлялось возможным, ибо на это ушло бы слишком много времени. Основная часть времени была бы потрачена на разметку данных, а на написание самой нейронной модели и её отладки осталось бы совсем мало времени и результат нельзя было бы назвать MVP. Поэтому было решено прибегнуть к написанию алгоритма на основе регулярных выражений и компьютерного зрения.
Нами было разработано desktop-приложение для анализа локального почтового ящика в режиме offline. Алгоритм поиска, основанный на регулярных выражениях и компьютерном зрении, определяет наличие конфиденциальных данных в письме и при их наличии сигнализирует об этом пользователю. Также был реализован фильтр сообщений по классу данных и счётчик писем с утечкой данных.
При нажатии на письмо, файл открывается в Microcoft Outlook.
Но, дабы вовсе не отказываться от нейросетевого метода решения данной задачи, мы также создали удобное desktop-приложения для разметки писем формата .eml. Пользователь запускает приложение, выбирает папку с .eml файлами и начинает сортировать их, путём нажатия на кнопки соответсвуюшего класса данных. Размеченные данные сохраняются в папке с названием соответсвующего класса в формате .txt.
Был реализован поиск конфиденциальных данных (паспортных данных, телефонов, данных аккаунтов, данных СНИЛСа, данных банковских карт и QR-кодов):
- в тексте сообщений;
- в тексе вложенных .pdf-файлов;
- на изображениях вложенных .pdf-файлов;
- во вложенных файлах формата .zip.
- Алгоритм детектирования конфиденциальных данных в письмах, разработанный на основе регулярных выражений и компьютерного зрения, позволяет добиться более высокой точности, чем нейросетевые алгоритмы при данном наборе исходных данных;
- Дополнительное desktop-приложение для удобной разметки датасета. Позволяет в дальнейшем легко собрать обучающее множество для обучение нейронной модели.
- Python 3.11.0
- Re
- OpenCV
- Os
Для развёртывания проекта необходимо виртуальное окружение с установленным пакетом Python 3.10.0
Для создания и активации виртуального окружения последовательно введите последующие команды в терминал:
For Windows:
python -m venv venv
venv\Scripts\activate.bat
For Linux/MacOS:
python3 -m venv venv
source venv/bin/activate
Скачайте репозиторий:
For Windows:
git clone https://github.com/Whynot46/Anonymous_project
For Linux:
sudo git clone https://github.com/Whynot46/Anonymous_project
Установите необходимые библиотеки с помощью команды:
For Windows:
pip install -r requirements.txt
For Linux:
pip3 install -r requirements.txt
Запустите проект с помощью команды:
For Windows:
py EmailDataDetector/main.py
For Linux:
python3 EmailDataDetector/main.py
- Алексей Пахалев | Project manager/Python Middle developer |
- Фролкова Дарья | Python Junior developer |
- Мальцев Никита | Fullstack developer/Python Middle developer |
- Нурмухамедов Наиль | Python Junior developer |
- Воронов Александр | Python Junior developer |