Система баллов¶
Баллы --- числовая мера сходства между двумя объектами (документами или документом и строкой реестра). Система баллов используется в двух подсистемах: группировке документов и сопоставлении с реестром. В каждой подсистеме шкала и правила подсчёта свои, но принцип общий: чем больше совпавших признаков, тем выше балл.
Баллы при группировке документов¶
Подробное описание модуля группировки --- в разделе Группировка документов.
Шкала¶
Для каждой пары документов, извлечённых из одного задания обработки, вычисляется балл связи. Баллы начисляются по фиксированным критериям:
| Критерий | Баллы | Условие |
|---|---|---|
| Совпадение номера | +35 | Цифры номеров совпадают после удаления нецифровых символов |
| Совпадение даты (точное) | +30 | Даты совпадают с учётом всех толкований неоднозначных дат |
| Совпадение даты (приблизительное) | +20 | Разница не более одного дня |
| Совпадение контрагента | +25 | Нечёткое сравнение после удаления организационно-правовых форм (ООО, АО и других) даёт сходство выше 0.85 |
| Один исходный файл | +5 | Оба документа извлечены из одного загруженного файла |
| Близость страниц | +5 | Документы расположены через 0--2 страницы в исходном файле |
| Запасной критерий | +25 | У одного из документов нет номера, но документы рядом и совпадают по дате |
Порог¶
Пары с баллом 65 и выше объединяются в группу. Этот порог выбран так, чтобы:
- пара «номер + дата + один файл» (35 + 30 + 5 = 70) уверенно попадала в группу;
- пара «номер + контрагент» (35 + 25 = 60) не попадала, потому что одного номера с контрагентом без даты недостаточно для уверенной связи;
- пара без номера, но с датой, рядом в одном файле (30 + 5 + 5 + 25 = 65) попадала на нижней границе.
Примеры подсчёта¶
Счёт-фактура и акт с одинаковым номером, датой и контрагентом из одного файла:
35 + 30 + 25 + 5 + 5 = 100 → группа
Два документа без номера, рядом в одном файле, одна дата:
0 + 30 + 5 + 5 + 25 = 65 → группа (нижняя граница)
Одинаковый номер, но разные даты и контрагенты, из разных файлов:
35 + 0 + 0 + 0 = 35 → не группируются
Баллы при сопоставлении с реестром¶
Подробное описание сопоставления --- в разделе Сопоставление с реестром и Импорт и поиск по реестру.
Шкала¶
При сопоставлении используется взвешенная сумма баллов по полям. Каждому полю пользователь назначает вес при настройке правила. Веса нормализуются так, чтобы их сумма равнялась 1:
нормализованный вес = вес поля ÷ сумма всех весов
Балл по каждому полю --- число от 0 до 1, которое зависит от типа поля и способа сравнения.
Баллы по типам полей¶
Номера:
| Ситуация | Балл |
|---|---|
| Цифры совпадают полностью | 1.0 |
| Десятизначный системный номер: совпали первые две и последние четыре цифры | 1.0 |
| Расстояние Левенштейна между цифрами < 40 % | Пропорционально сходству |
| Нет совпадения | 0.0 |
Даты:
| Ситуация | Балл |
|---|---|
| Обе даты однозначны, совпадение | 1.0 |
| Одна неоднозначна, пересечение найдено | 0.95 |
| Обе неоднозначны, пересечение найдено | 0.85 |
| Диапазонное совпадение (в пределах допуска) | 0.8--1.0 (зависит от расстояния) |
| Нет совпадения | 0.0 |
Суммы:
| Расхождение | Балл |
|---|---|
| Менее 0,01 (абсолютное) | 1.0 |
| Менее 1 % (относительное) | 0.95 |
| Менее 5 % (относительное) | 0.8 |
| При диапазонном сравнении в пределах допуска | 0.8--1.0 |
| Более 5 % | 0.0 |
Текст:
| Способ | Ситуация | Балл |
|---|---|---|
| Точный | Строки совпадают после нормализации | 1.0 |
| Вхождение | Одна строка содержит другую | 0.9--1.0 |
| Приблизительный | Нечёткое сходство (лучшее из трёх алгоритмов) | 0.0--1.0 |
Три алгоритма нечёткого сравнения текста:
- Полное сходство --- посимвольное сравнение целых строк;
- Частичное сходство --- поиск лучшего совпадения подстроки (с коэффициентом 0.95);
- Сортировка по словам --- слова сортируются по алфавиту и сравниваются (с коэффициентом 0.9).
Итоговый балл документа¶
итоговый балл = сумма(балл по полю × нормализованный вес)
Пример. Правило с двумя полями: номер договора (вес 40) и дата (вес 20).
Нормализованные веса: 40/60 ≈ 0.667, 20/60 ≈ 0.333
Номер совпал (балл 1.0), дата не совпала (балл 0.0)
Итоговый балл: 1.0 × 0.667 + 0.0 × 0.333 = 0.667
Минимальный порог¶
Каждое правило сопоставления имеет параметр «минимальный балл совпадения». Документы с итоговым баллом ниже этого порога отбрасываются. Рекомендуемые значения:
| Порог | Когда полезен |
|---|---|
| 0.9--1.0 | Поиск по номерам и суммам, где важна точность |
| 0.7--0.9 | Поиск по текстовым полям с возможными опечатками |
| 0.5--0.7 | Поиск по неполным или сокращённым названиям |
Разница между двумя системами баллов¶
| Признак | Группировка | Сопоставление с реестром |
|---|---|---|
| Шкала | Фиксированные баллы (0--100) | Взвешенная сумма (0--1) |
| Веса | Заданы в коде | Настраиваются пользователем |
| Порог | 65 (фиксированный) | Настраивается пользователем |
| Назначение | Связать листы одного пакета документов | Найти документ, соответствующий строке реестра |
| Критерии | Номер, дата, контрагент, расположение в файле | Любые поля, указанные в правиле |