Перейти к содержанию

Внутренние механизмы

В этом разделе описаны ключевые алгоритмы, которые лежат в основе обработки документов и сверки с реестрами. Каждый алгоритм вынесен в отдельную страницу с подробным разбором логики, параметров и взаимосвязей с другими подсистемами.

Содержание раздела

  • Сравнение неоднозначных дат --- как программа разбирает все возможные толкования даты и находит пересечение при сравнении. Этот алгоритм используется во всех подсистемах: группировке, сопоставлении, поиске по реестру и импорте.
  • Многоиндексный поиск --- как строятся прямой и обратный указатели по всем толкованиям полей, и как быстрый поиск по указателю дополняется приблизительным.
  • Система баллов --- шкала баллов для группировки документов и сопоставления с реестром, выбор порогов и значение каждой цифры.
  • Правила сопоставления с реестром --- несколько независимых правил, подправила, режимы «первое совпадение» и «все совпадения», объединение результатов.
  • Извлечение названий месторождений --- поиск по ключевым словам с учётом границ слов, причина, по которой результаты языковой модели используются как вспомогательные.
  • Партионная обработка --- экономия за счёт пакетного сервиса Anthropic, ограничения, расписание проверки готовности и влияние памяти.

Как связаны алгоритмы между собой

Путь документа от загрузки до итоговой таблицы проходит через несколько алгоритмов последовательно:

  1. Загрузка и распознавание. Исходный файл поступает в партионную обработку, где языковая модель Claude извлекает из страниц данные документов.
  2. Постобработка. Результаты Claude дополняются поиском месторождений по ключевым словам.
  3. Группировка. Извлечённые документы сравниваются попарно по системе баллов, и связанные документы объединяются в группы.
  4. Сверка с реестром. При загрузке реестра строятся указатели для быстрого поиска. Поиск выполняется по правилам сопоставления, а сравнение неоднозначных дат обеспечивает корректное сопоставление дат во всех форматах.

На каждом этапе используется единая логика нормализации и сравнения значений, описанная в разделах Сопоставление с реестром и Работа с неоднозначными датами.