Нечёткий поиск и сопоставление
Нечёткое сопоставление строк (fuzzy matching) для поиска совпадений между контрагентами, юрлицами, ФИО, адресами из разных источников. Поиск дублей, объединение данных при нестрогом совпадении ключей. Используй этот навык, когда пользователь сравнивает списки, ищет дубли, сопоставляет стороны договоров или нормализует наименования.
Нечёткий поиск и сопоставление (Fuzzy Matching) v1.0
Когда активировать
- Сравнивает списки контрагентов / юрлиц из разных систем
- Ищет дубли в реестрах, базах, таблицах
- Сопоставляет стороны договоров из нескольких документов
- Нормализует названия компаний, ФИО, адреса
- Объединяет данные (merge/join) при нестрогом совпадении ключей
Доступные библиотеки
rapidfuzz— быстрый нечёткий поиск (C-расширение, замена fuzzywuzzy)pandas— работа с таблицамиopenpyxl— чтение/запись Excel
Выбор алгоритма
| Задача | Алгоритм | Функция rapidfuzz |
|---|---|---|
| Точность посимвольная | Расстояние Левенштейна | fuzz.ratio(a, b) |
| Слова в разном порядке | Сортировка токенов | fuzz.token_sort_ratio(a, b) |
| Одна строка — подмножество другой | Частичное совпадение | fuzz.partial_ratio(a, b) |
| Наборы слов (ООО, ИП и т.д.) | Множества токенов | fuzz.token_set_ratio(a, b) |
| Лучший кандидат из списка | Извлечение | process.extractBests(query, choices, score_cutoff=75) |
Порог совпадения
| Порог | Применение |
|---|---|
| >= 95 | Почти точное совпадение (опечатки, регистр) |
| 80-94 | Хорошее совпадение (сокращения, перестановки слов) |
| 65-79 | Возможное совпадение — требует ручной проверки |
| < 65 | Скорее всего разные сущности |
По умолчанию используй порог 80. Пользователь может попросить повысить или понизить.
Предобработка (ОБЯЗАТЕЛЬНО)
Перед сравнением ВСЕГДА нормализуй строки:
БЛОК 4: Сопоставление с ИНН/ОГРН (приоритет точных ключей)
Правило: ИНН/ОГРН > нечёткое название > адрес. Никогда не полагайся только на название, если есть числовой идентификатор.
Похожие навыки
Попробуйте этот навык
Зарегистрируйтесь и используйте навык «Нечёткий поиск и сопоставление» бесплатно.