MaksimNS01/PII-Detector

PII Detector is a tool for automatically identifying personal data (PII) in PDF, DOCX and XLSX formats. The tool supports both classic search methods (regular expressions) and modern approaches based on neural network models Ner (recognition of named entities).

HTML

0

58 commits

updated Sep 27, 2025

See the code

README

Поиск персональных данных в документах

📌 Описание

PII Detector — это инструмент для автоматического выявления персональных данных (PII) в документах форматов PDF, DOCX и XLSX. Инструмент поддерживает как классические методы поиска (регулярные выражения), так и современные подходы на основе нейросетевых моделей NER (распознавание именованных сущностей), что позволяет более точно определять имена, адреса, организации и другие типы данных.

🧠 Возможности

  • 🔍 Обнаружение персональных данных:
    • Телефонные номера
    • Email-адреса
    • ИНН, СНИЛС
    • Паспортные данные
    • Даты
    • Имена, адреса, организации (с использованием NER)
  • 📄 Поддержка форматов: PDF, DOCX, XLSX
  • 🧪 Валидация ИНН и СНИЛС
  • 🎨 Подсветка найденных данных
  • 📊 Статистика обнаружений
  • 💾 Экспорт результатов в текстовый файл
  • ☁️ Веб-интерфейс на Streamlit
  • 💻 Десктоп-интерфейс на Flet

🛠️ Используемые технологии

  • Язык программирования: Python 3.13
  • Библиотеки:
    • pdfplumber — извлечение текста из PDF
    • python-docx — работа с DOCX
    • openpyxl — чтение XLSX
    • transformers (Hugging Face) — NER модели
    • torch — вычисления на GPU (опционально)
    • re — регулярные выражения
    • psutil, gc — управление памятью
    • plotly — визуализация статистики
    • tesseract-ocr — распознавание текста на изображениях
    • flet — десктоп-разработка
    • pyinstaller — сборка
  • NER-модели:
    • 0x7o/rubert-base-massive-ner (основная)
    • ai-forever/ruBert-base
    • Davlan/bert-base-multilingual-cased-ner-hrl
    • Babelscape/wikineural-multilingual-ner
    • sberbank-ai/ruBert-large

🚀 Установка и запуск

1. Клонируйте репозиторий:

git clone https://github.com/MaksimNS01/pii-detector.git
cd pii-detector

2. Установите Tesseract:

  • Скачайте установочный файл
  • Выберите путь установки по умолчанию (обычно C:\Program Files\Tesseract-OCR)

3. Создайте виртуальное окружение

python -m venv venv
venv/scripts/activate # Для Windows
# или
source venv/bin/activate  # Linux/Mac

4. Установите зависимости:

pip install -r requirements.txt

5. Запустите:

Веб-интерфейс

streamlit run web_app.py

Десктоп-интерфейс

flet desktop_app.py

Сборка исполняемого файла (.exe)

pyinstaller --noconsole --onefile --add-data "assets;assets" --add-data "tesseract;tesseract" --icon="assets/icon.ico" desktop_app.py

📁 Структура проекта

pii-detector/
├── assets              # Ассеты для сборки  
├── examples            # Примеры работы приложения   
├── .gitignore          # Исключения Git  
├── README.md           # Этот файл  
├── desktop_app.py      # Декстоп-интерфейс Flet 
├── download_models.py  # Скрипт загрузки моеделей для локального использования    
├── main.py             # Основной класс PIIDetector  
├── requirements.txt    # Зависимости  
└── web_app.py          # Веб-интерфейс Streamlit  

📈 Скриншоты

Веб-интерфейс:

Веб-интерфейс

Пример распознавания .docx

Пример распознавания .docx

Пример распознавания .docx

Десктоп-интерфейс:

Десктоп-интерфейс

Пример распознавания .docx

Пример распознавания .docx

Пример распознавания .docx

Лицензия

Проект распространяется под MIT License.

MaksimNS01/PII-Detector

PII Detector is a tool for automatically identifying personal data (PII) in PDF, DOCX and XLSX formats. The tool supports both classic search methods (regular expressions) and modern approaches based on neural network models Ner (recognition of named entities).

HTML

0

58 commits

updated Sep 27, 2025

See the code

README

Поиск персональных данных в документах

📌 Описание

PII Detector — это инструмент для автоматического выявления персональных данных (PII) в документах форматов PDF, DOCX и XLSX. Инструмент поддерживает как классические методы поиска (регулярные выражения), так и современные подходы на основе нейросетевых моделей NER (распознавание именованных сущностей), что позволяет более точно определять имена, адреса, организации и другие типы данных.

🧠 Возможности

  • 🔍 Обнаружение персональных данных:
    • Телефонные номера
    • Email-адреса
    • ИНН, СНИЛС
    • Паспортные данные
    • Даты
    • Имена, адреса, организации (с использованием NER)
  • 📄 Поддержка форматов: PDF, DOCX, XLSX
  • 🧪 Валидация ИНН и СНИЛС
  • 🎨 Подсветка найденных данных
  • 📊 Статистика обнаружений
  • 💾 Экспорт результатов в текстовый файл
  • ☁️ Веб-интерфейс на Streamlit
  • 💻 Десктоп-интерфейс на Flet

🛠️ Используемые технологии

  • Язык программирования: Python 3.13
  • Библиотеки:
    • pdfplumber — извлечение текста из PDF
    • python-docx — работа с DOCX
    • openpyxl — чтение XLSX
    • transformers (Hugging Face) — NER модели
    • torch — вычисления на GPU (опционально)
    • re — регулярные выражения
    • psutil, gc — управление памятью
    • plotly — визуализация статистики
    • tesseract-ocr — распознавание текста на изображениях
    • flet — десктоп-разработка
    • pyinstaller — сборка
  • NER-модели:
    • 0x7o/rubert-base-massive-ner (основная)
    • ai-forever/ruBert-base
    • Davlan/bert-base-multilingual-cased-ner-hrl
    • Babelscape/wikineural-multilingual-ner
    • sberbank-ai/ruBert-large

🚀 Установка и запуск

1. Клонируйте репозиторий:

git clone https://github.com/MaksimNS01/pii-detector.git
cd pii-detector

2. Установите Tesseract:

  • Скачайте установочный файл
  • Выберите путь установки по умолчанию (обычно C:\Program Files\Tesseract-OCR)

3. Создайте виртуальное окружение

python -m venv venv
venv/scripts/activate # Для Windows
# или
source venv/bin/activate  # Linux/Mac

4. Установите зависимости:

pip install -r requirements.txt

5. Запустите:

Веб-интерфейс

streamlit run web_app.py

Десктоп-интерфейс

flet desktop_app.py

Сборка исполняемого файла (.exe)

pyinstaller --noconsole --onefile --add-data "assets;assets" --add-data "tesseract;tesseract" --icon="assets/icon.ico" desktop_app.py

📁 Структура проекта

pii-detector/
├── assets              # Ассеты для сборки  
├── examples            # Примеры работы приложения   
├── .gitignore          # Исключения Git  
├── README.md           # Этот файл  
├── desktop_app.py      # Декстоп-интерфейс Flet 
├── download_models.py  # Скрипт загрузки моеделей для локального использования    
├── main.py             # Основной класс PIIDetector  
├── requirements.txt    # Зависимости  
└── web_app.py          # Веб-интерфейс Streamlit  

📈 Скриншоты

Веб-интерфейс:

Веб-интерфейс

Пример распознавания .docx

Пример распознавания .docx

Пример распознавания .docx

Десктоп-интерфейс:

Десктоп-интерфейс

Пример распознавания .docx

Пример распознавания .docx

Пример распознавания .docx

Лицензия

Проект распространяется под MIT License.