Реализация AI-классификации входящих документов по типу
Автоматическая классификация входящих документов — первый шаг к интеллектуальной обработке документооборота. Система определяет тип каждого документа и направляет его на правильный пайплайн обработки.
Типовая таксономия
Для корпоративного документооборота типичная иерархия:
Финансовые документы
├── Счёт-фактура
├── Накладная (ТОРГ-12, UPD)
├── Акт выполненных работ
├── Счёт на оплату
└── Платёжное поручение
Договоры
├── Договор поставки
├── Договор оказания услуг
├── NDA
└── Дополнительное соглашение
Кадровые документы
├── Заявление
├── Приказ
└── Трудовой договор
Входящая корреспонденция
├── Официальное письмо
├── Претензия
└── Запрос информации
Мультимодальная классификация
Тип документа определяется по нескольким сигналам:
def classify_document(file_path: str) -> DocumentClass:
features = {}
# Текстовые признаки
text = extract_text(file_path)
features["text_class"] = text_classifier.predict(text[:2000])
# Структурные признаки
features["has_tables"] = detect_tables(file_path)
features["page_count"] = get_page_count(file_path)
features["filename_hint"] = extract_filename_hint(file_path)
# Метаданные документа
features["creation_date"] = get_document_metadata(file_path).get("created")
# Ансамблевое решение
return ensemble_classifier.predict(features)
Точность мультимодальной классификации: 97–99% для чётко различимых типов.
Обработка неизвестных типов
Документы, которых нет в таксономии, должны определяться явно — не относиться к ближайшему классу с низкой уверенностью. Класс UNKNOWN + флаг для ручной классификации + логирование для расширения таксономии.
Регулярный review: какие UNKNOWN-документы встречаются чаще всего → добавить новый класс и дообучить модель.







