Программный
комплекс «Брэдфорд» - специализированное программное
обеспечение (в том числе - на основе матмоделей с нечеткой
логикой поиска) для
выверки массивов нормативно-справочной информации (НСИ) и построения подсистем
ведения НСИ
Наиболее
эффективно использование ПО для
поиска и идентификации контрагентов с учетом случайных ошибок и расхождений, вызванных разными обычаями написания
наименований, адресов и других реквизитов разными операторами, а также для выверки справочников и
реестров контрагентов, для их объединения в эталонный сводный массив, для
разработки таблиц перекодировки (переходных ключей).
Предназначение
Программного комплекса:
q
Для
выполнения работ по объединению и
выверке массивов НСИ (в том числе – перед загрузкой в ERP-системы), создания на их основе
централизованных корпоративных справочников и классификаторов с таблицами
переходных ключей.
q
Для
обеспечения обязательной перепроверки на дублирование всех вновь вводимых
записей в справочники и классификаторы системы НСИ
q
Для
построения и поддержки распределенных систем ведения НСИ, автоматизации
процессов упорядочивания, классификации, кодирования и верификации
нормативно-справочной информации, обеспечения качества и взаимосогласованности
информации в различных системах НСИ, а
также в Хранилищах данных и контента.

Преимущества
поисковой системы ПК БРЭДФОРД
Наличие специализированной Поисковой системы с
механизмами
строгой и нечеткой логики для лингвистического поиска двойников и
аналогов в структурированных базах данных с расчетом
коэффициентов релевантности.
2.
Наличие
специализированного инструментария по контролю качества НСИ в части орфографии,
стилей написания, вкрапления латинских букв, повторений и слияний.
3.
Наличие
специализированных словарей и баз данных по транслитерациям наименований НСИ,
синонимам, сокращениям, аббревиатурам, а также вспомогательных справочников по
маркам и техническим характеристикам оборудования и материалов.
4.
Наличие
возможности проверки НСИ по внешним
источникам – Интернет, базы данных ГКС, ЕГРПО, МНС, ФКЦБ и др., Сводные Базы
ГОСТов и ТУ, Перечни марок продукции и т.п., плюс - наличие инструментария, обеспечивающего
пользователю возможность самому создавать, наполнять и вести Контент-хранилища,
расклассифицировать их содержимое, привязывать разнородные материалы из
собранного контента к узлам существующих классификаторов.
5.
Наличие уникальной
методологии и опыта организации АРМов обеспечения качества в справочниках
контрагентов, материально-технических ресурсов, основных средств, бюджетных
статей и показателей.
Сравнение с традиционными поисковыми системами.
Типовые
поисковики работают по принципу предварительной индексации массива поиска и
далее - с участием запроса пользователя. Плюс - ранжируют результаты по жестко
настроенному принципу.
У
Поискового механизма ПК «Брэдфорд» следующие
преимущества:
1. оперативнось. В корпоративной НСИ изменения в справочник (новая запись,
удаление, редактирование) могут вноситься разными людьми почти одновременно. И
поиск должен происходить с учетом самых постедних
изменений! Варианты с индексацией здесь уже отпадают - создание гигабайтных
индексов занимает многие часы работы мощных серверов.
(ссылку на анализ поисковиков этого типа направляю). У
нас требуется только перезагрузка массива в память. При регламенте реагирования
более чем на 3-минутные изменения пользователь при работе с Поисковой системой
ПК «Брэдфорд» не заметит задержки времени. В более
жестких условиях проблема решается за счет увеличения вычислительных можностей и распараллеливания выполнения запросов на разных
серверах.
2. автоматизм. Для нашей задачи ведения НСИ в
корпоративной среде необходимо, чтобы поисковая система была автоматической!
Т.Е. нельзя полагаться на то, что запросы будет делать обученный эксперт,
грамотно формирующий ключевые слова поиска. У нас идет потоковая разборка новых
записей "как есть"! Т.е., идет обработка по полному наименованию МТР
плюс полным наименованиям других полей. Работа по обучению поисковой системы
самостоятельно выбирать ключевые слова вынесена на
предварительный этап формирования вспомогательных справочников.
3. качество. В нашей поисковой системе не только
можно управлять качеством поиска, создавая и поддерживая вспомогательные
справочники, но и варьировать множеством факторов, влияющих на расчет
коэффициента релевантности (в последней версии эксперт может перепроверить
систему - тут же узнать почему у данного аналога
именно такой коэффициент релевантности, какие факторы на него повлияли)
4. специализированность. У
нас большое значение придается предподготовке обоих
массивов для поиска и для этого понаделано множество дополнительных программных
компонентов: выверка латиницы, сокращений и аббревиатур, синонимов, стилей и
порядка написания, проверка по маске (новая опция - для проверки ИНН, паспортов
и др. больших чисел).
Возможные схемы
организации работы Поисковой системы ПК «Брэдфорд»:
1.
Организация поиска в
«НСИ-мониторе» на основе SQL-доступа к массиву поиска (по IP-доступным сетям)
2.
Организация поиска в
«НСИ-мониторе» на основе загрузки массива в память локального компьютера.
3.
Организация поиска в
«НСИ-мониторе» через ETL-сервисы с массивами, загруженными в
память IP-сетевого сервера базы данных.
4.
Организация поиска
в «Интернет-мониторе»
через WEB-сервисы по Интернет/Интранет
сетям с массивами, загруженными на удаленных
серверах баз данных.
5.
Настройка поиска в
любом внешнем Windows-приложении через API-вызовы ETL-сервиса поисковой
системы.
В современных крупных холдингах, использующих
для работы нецентрализованные базы данных, очень часто возникает ситуация,
когда одна и та же позиция в территориально различных отделениях холдинга
отвечает многим записям в справочниках «на местах».
Централизация управления холдингом
предусматривает необходимость создания единой системы кодирования используемых
справочников и классификаторов.
В разных подразделениях холдинга и даже в
разных автоматизированных системах (АС) у одного и того же подразделения, как
правило, используются собственные справочники, коды и наименования которых
могут не совпадать с реквизитами таких же по сути записей в справочниках других
АС и подразделений. Помимо этого дублирование записи нередко встречается и
внутри одного и того же локального справочника.
Все это имеет целый ряд негативных последствий как в виде прямых экономических потерь, так и в
виде снижения эффективности системы управления.
Каждая запись обладает неким набором
атрибутов. Задача состоит в том, чтобы привести запись в различных справочниках
к одному виду (эталонному). Для этого необходимо составить некий алгоритм, с
помощью которого можно было бы осуществить нечеткое сравнение значений этих
атрибутов.
Входными данными системы являются базы данных
справочников. Выходные данные представляют собой коэффициенты релевантности
между одним и тем же атрибутом для каждой заданной эталонной записи и множества
записей-аналогов.
Укрупненная функциональная схема выглядит
следующим образом:

Для
обработки новой записи, ранее полученных записей и просто поиска какой-либо
информации по заданным условиям в ПК БРЭДФОРД предназначена система поиска с
использованием сценария. Данная система позволяет производить точный и поиск
похожих значений по введенным условиям. Найденная информация может быть
обработана (редактирование, экспорт, применение задач ETL приложения). Обработка
информации может быть настроена произвольно для решения требуемой задачи. Суть
данного поиска состоит также в том, что можно создавать настройки для поиска в других источниках данных,
отличающихся от текущего.
Ниже на рисунке
показана стартовая форма поисковой системы. В верхней части формы расположены
кнопки навигации по записям линейного справочника.
Входная (искомая)
запись показана в виде развернутой таблицы. В нижней части окна расположено
окно с иерархической структурой сценария поиска.



Пункт контекстного
меню «Показать настройку латиницы» показывает дополнительный столбец, в котором
можно указать флаг запуска проверки на вкрапления латинских букв в слова, написанные кириллицей. Если в процессе проверки
будет найдена возможная ошибка, откроется форма корректировки полностью
аналогичная рассмотренной ранее форме проверки на вкрапления латинских букв для
таблицы линейного справочника.
Форма поиска в
любом случае состоит из двух условно разделенных этапов (шагов). На первом
этапе происходит формирование структуры поиска, автоподстановка
искомых значений, ручное редактирование
искомых значений, дополнительные вызовы вспомогательных поисковых форм, прямой
вызов поиска в ресурсах Интернета с использованием сайта Яндекс. Первый этап
условно обозначен как «Открытие в режиме редактирования».
На втором этапе выводится результат поиска,
предоставляется возможность выбора необходимых для обработки записей и переход
к механизму обработки результата (выбранных записей). Второй этап условно обозначен как «Открытие в
режиме результата».
Переход от первого этапа ко второму
непосредственно на самой форме поиска может быть произведен с запуском
механизма поиска и без (соответственно с помощью кнопок навигации или кнопки
поиска). Вариант без запуска механизма
поиска может быть необходим в случае многократного поиска в пределах одной
настройки для просмотра предыдущего результата при редактировании искомых
значений поиска.
Точный поиск – это поиск присутствия искомой записи в источнике данных.
Вид формы для
точного поиска на этапе редактирования показан на рисунке ниже. В этом режиме
возможна корректировка значений подставленных автоматически из входной записи.
Значения подставляются по настроенным ранее
соответствиям подстановки в момент открытия формы или при переходе по
сценарию в пределах одной формы. В верхней части формы показана развернутая
таблица с входной записью. В нижней части формы расположена таблица условий
поиска. Пользователь может вручную задать значение условия в ячейках шаблона
поиска. Таблица с условиями поиска имеет
4 колонки условий, объединяемых при поиске по смыслу «ИЛИ». В пределах одной
колонки условия объединяются по смыслу «И».
Форма настройки
соответствия полей входной записи, и базы поиска может быть открыта
непосредственно из данной формы при нажатии соответствующей кнопки. Для точного
и LIKE поиска различия практически
состоят лишь в самом механизме поиска.
Т.е. различий в настройке поиска и показе результата нет. Поэтому данные
механизмы будут рассмотрены как один.






Для того чтобы
вызвать контекстное меню поиска в
Интернете, необходимо указать ячейку с искомой фразой в таблице входной записи
и вызвать контекстное меню «Искать в Яndex…». В качестве искомого значения будет передано значение
текущей ячейки или выделенная часть текста ячейки.
Ниже показан
рисунок формы точного или LIKE поиска на втором этапе (в режиме результата).








Программой
предусмотрено наличие четырех накопительных таблиц, в которые могут быть
помещены выбранные для обработки записи. Каждая из таблиц имеет свою особенность. В первой таблице (по умолчанию
закладка называется «Новая запись») всё время находится одна входная запись.
Если эта запись была получена из формы ввода, то в дальнейшем в процессе обработки её можно будет добавить
в какой-либо источник данных. В эту таблицу нет возможности добавлять другие
записи. После обработки новая запись из
данной таблицы удаляется, кнопка
«Обработать» для данной закладки блокируется, предотвращая повторный ввод новой
записи. Вторая таблица, у которой закладка по умолчанию называется «Полный
аналог», позволяет многократно запускать обработку, но только для одной
выбранной записи. Третья таблица, у которой закладка по умолчанию называется
«Ввод аналога», содержит строку входящей записи. В эту таблицу могут быть
перенесены любые другие записи. Запись в данную таблицу происходит с учетом
соответствия полей, настроенных ранее. После обработки таблица обработки
очищается, кнопка обработки блокируется. В четвёртую таблицу, у которой
закладка по умолчанию называется «Прочие двойники», могут быть добавлены любые
записи. После выполнения обработки таблица очищается. Обработка может
запускаться многократно. Макет каждой таблицы может быть сохранен при вызове
контекстного меню «Сохранить макет таблицы» на заголовках столбцов.
LIKE-поиск - это поиск присутствия искомой фразы в источнике данных.
См. Точный поиск
НОМ-поиск - это поиск возможной похожей записи по исходному предложению (т.е. цепочки слов).
НОМ-поиск
организован в двух вариантах: ручной (для одной записи) и автоматический (для
массива записей).
После выполнения поиска каждой найденной фразе
присваивается ранг и коэффициент релевантности.
Первый ранг поиска - точное
совпадение искомой фразы или совпадение всех поисковых фраз (т.е. совпадение
по нормализованной фразе), второй - совпадение по аббревиатурам
(если система распознает аббревиатурное написание слов), третий ранг и далее
(в зависимости от количества
нормализованных фраз поиска) - работает механизм ранжирования по количеству
совпавших слов в проверяемой записи. Например третий
ранг означает, что в нормализованном предложении из 5 слов совпало 4 слова,
четвертый ранг - 3 слова. В механизме ранжирования ранг рассчитывается только
до уровня двух слов.
Следующий ранг рассчитывается по
совпадению каждого одного отдельного слова из нормализованной фразы.
Далее массив нормализованных слов
подвергается дополнительной обработке, в результате чего появляется массив
усеченных слов (в зависимости от длины исходных слов).
По массиву усеченных слов
рассчитываются следующие ранги теми же механизмами ранжирования
по словам и поиска по каждому отдельному слову.
В процессе формирования результата
все найденные записи проверяются на их присутствие в таблице результата для
устранения возможности двоения.
Для получения каждого типа рангов выполняется свой SQL запрос.
В зависимости от версий использования ранги могут быть приведены к виду 0, 1
или 9 (т.е.абсолютное совпадение, нормализованное
точное и похожее). Это необходимо для более успешной реализации вывода
результатов с учетом коэффициента релевантности. Также при указании
дополнительных полей для расчета коэффициента релевантности выполняется точный
поиск для указанных в них
значениях в соответствующих полях поисковой базы. В некоторых случаях могут
быть использованы справочники для получения вариаций искомой фразы (справочник
сокращений и транслитерации). Если появляется вариация
искомой фразы механизм поиска запускается повторно для данной
вариации.
Соответствия полей
используются для настройки расчета коэффициента релевантности. В нижней
части формы поиска показаны поля поисковой базы настроенные в форме
соответствий. Для тех полей, у которых был установлен признак копирования, при
открытии формы будут скопированы значения искомой записи. При первом вызове
формы поиска или при добавлении новых полей для расчета коэффициента
релевантности («К2») необходимо произвести настройку
механизма релевантности (вызывается соответствующей кнопкой). После выбора
настройки релевантности ее название будет указано в поле «Настройка» в нижней таблице. В поле
«Метод» можно выбрать из списка нужный метод расчета «К2»
для получения наилучшего результата. Для
ограничения вывода найденных данных в соответствии с коэффициентом
релевантности служит поле с признаком «Отсечка».
В соседних полях
можно выбрать тип отсечки (из комбобокса) и указать
физическое числовое значение. При процентном соотношении отсечки, будет
предварительно вычислен максимальный коэффициент «К2» и затем от этого значения рассчитан
минимальный «К2» подлежащий отсечке. При
использовании абсолютного значения следует помнить, что значение максимально
похожего по «К2» - величина не постоянная. Порядок
записей с настройками для расчета коэффициента «К2»
влияет на порядок показа полей результата поиска. В том же порядке
осуществляется сортировка по «К2». Менять позиции
настроек можно «перетаскивая» записи вверх-вниз с помощью курсора мыши.
Настройка расчета коэффициента
релевантности.
Форма настройки имеет три
закладки:
1. Параметры.
Закладка с
информацией о параметрах замены и учета символов, позиции и длины слов при
нормализации фраз. В этой же закладке настраиваются значения коэффициента
прогресса для усиления коэффициента релевантности.

2. Нормализация.
Перед расчетом
коэффициента релевантности для двух фраз желательна их нормализация с учетом
содержания и качества справочников. Для того, чтобы
при нормализации фраз выполнялся какой-либо пункт, достаточно напротив него
поставить галочку.
При поиске кодов
контрагентов можно настроить маску разделения пробелами, согласно которой все
цифровые значения будут разделяться пробелами. Например, если маска равна 223
(структура ИНН), то все встречаемые числа будут преобразованы к виду ## ## ###
####.
При поиске
наименований материалов желательно настроить замену размеров и теххарактеристик, в
которых цифровые значения и размерности могут писаться слитно. Например, все
«мм», встречающиеся после групп цифр заменять на « мм».
Возможно три варианта замен: стоки, идущие за цифрами (мм,
см, м и т.д.), перед (ф, d,
Ду и т.д.) и между.
Внимание:
замены происходят циклически и нельзя, чтобы они друг другу противоречили.
Также можно
настроить справочники замен, особых слов и весовых коэффициентов.

3. Весовые коэффициенты.
Справочник коэффициентов влияния
параметров слов при расчете коэффициента релевантности.

Примечание: при настройке таблицы
расчета коэффициента релевантности важно помнить, что к разным типам
справочников нужен разный подход. Например, при поиске контрагентов совершенно
не важны настройки, связанные с теххарактеристиками,
которые играют немаловажную роль в справочнике материалов.
Выполнение поиска возможно в двух
вариантах организации массивов, по которым происходит поиск.
Использование той или иной технологии зависит от количества данных (для Like поиска). Если данных немного, быстрее будет работать SQL поиск, а если много то DataCache.Иногда Оракл вообще подвисает при Like-поиске, если данных миллион и более, а DataCache будет работать, если массив загрузится в память, т.е. если нет технических проблем.
SQL и DataCache-вариант НОМ-поиска отличаются кардинально, DataCache поиск и мощнее и умеет делать значительно больше, т.к. у него программное ядро, а у SQL очень много ограничений.
Предподготовка искомой фразы - нормализация с учетом точек, запятых, кавычек и т.п.
В качестве
массива используется строка SQL-запроса.
Порядок
выполнения:
-
предподготовка искомой фразы
(нормализация с учетом точек, запятых, кавычек и т.п.
-
подготовка массива поисковых фраз, исключение ненужных слов.
Данный тип поиска выполняется
аналогично правилам SQL поиска, за исключением отсутствия поиска по массиву
усеченных слов, более гибкому механизму варьирования (расчет коэффициента
релевантности ведется сразу по найденой фразе и
фильтруется в соответствии с коэффициентом отсечки), что в свою очередь
позволяет более качественно выполнить поиск. К достоинству следует также
отнести отсутствие нагрузки на СУБД (сервер, сети), т.к. расчет происходит в
памяти локальной машины, а также в росте производительности поиска (при
оптимальной настройке) за счет выполнения только одного прохода по записям
поисковой базы для одной искомой фразы. Недостаток - кэш данных статический,
т.е. для синхронизации с СУБД требует перезагрузки.
Определим
коэффициент сходства двух строк как число от 0 до 1. Пусть имеется функция f(S1, S2) от двух
строк, которая осуществляет отображение меры сходства двух строк на отрезок [0;
1], где 1 соответствует полному смысловому совпадению строк.
Пусть
существует множество пар строк, которые считаются одинаковыми в смысловом плане
даже при их формальном несовпадении. В этом случае задача состоит в том, чтобы
определить функцию коэффициента сходства таким образом, чтобы на этих парах
строк функция принимала бы максимальные значения. Ослабив условие строгого
максимума, можно сказать, что функция сходства не должна принимать значения
меньше порогового коэффициента на таких парах строк.
Итак,
если множество пар строк обозначить как S0, а функцию от двух строк – f(S1, S2), то формальная постановка задачи записывается так:
для всех пар строк <S1, S2> Î S0 при условии
, где Kп – пороговый
коэффициент сходства.
При
ослабленном условии необходимо всего лишь найти такую функцию f, значение
которой на данном множестве будет больше заданного порогового коэффициента Kп.
Основная
работа по нахождению функции f в данной задаче находится тремя методами: методом
вычисления редакционного расстояния (расстояния Левенштайна)
и двумя методами, использующими N-граммы. В качестве
дополнительных условий сравнения строк используется частичный формальный
синтаксический анализ строк.
Задача
нахождения редакционного расстояния (иначе, оптимального выравнивания)
представляет собой задачу динамического программирования. Редакционное
расстояние представляет собой последовательность операций вставки, удаления и
замены символа /!!!!!/. Редакционное расстояние будет минимальным, если будет
минимальна функция
d(S1,S2) = k1I + k2R + k3D + k4M, где
I – количество операций вставки символа,
R – количество операций замены
символа другим символом,
D – количество операций удаления
символа,
M – количество «пустых» операций,
когда на шаге не делается ничего.
Коэффициенты ki в зависимости от конкретного применения выбираются различными. В данной задаче k1=k2=k3=1, а k4=0. Программная реализация системы позволяет выбирать k2 в зависимости от
того, какой именно символ каким заменяется (алфавитно-взвешенное редакционное
расстояние).
Соответственно,
искомая функция сходства строк выглядит так:
, где
d(S1,S2) – редакционное расстояние между строками S1 и S2,
|S1|, |S2| – длины строк S1 и S2.
При
использовании методов, основанных на N-граммах,
математически задача сводится к разбиению обеих сравниваемых строк на множество
N-грамм, нахождение среди них повторяющихся элементов и
вычисление пересечения и объединения множеств N-грамм
первой и второй строки.
Алфавитом
для строк в данном случае являются буквы русского алфавита, цифры и специальные
символы (например, кавычки). Допустим, есть слово A = a1a2a3a4a2a3 и слово B = b1b2a4a2a3, а длина N-граммы равна двум. Задача заключается в том, чтобы найти
все кортежи вида <a1, a2>, <a2, a3>,…, <b1, b2>,…. Также предполагается дополнение слов начальным и
конечным пробелом, т.е. в данном примере необходимо учесть кортежи вида <_, a1>, <a3, _>,….
После
разбиения строк на множество кортежей необходимо вычислить коэффициент Пфайфера, который определен как
, где a и b – множества N-грамм слов А и В.
Методы
решения с использованием N-грамм
N-граммы представляют собой конструкции из N символов, идущих в строке подряд. Как было сказано выше, все строки дополняются начальным и
конечным пробелами. Используя различные значения N,
можно улучшить либо ухудшить результат сравнения в зависимости от характера
сравниваемых строк. Для данной работы N принимается
равным двум и все последующие алгоритмические
вычисления делаются с учетом неизменности N
в течение всего времени работы программы.
Рассмотрим две строки:
S1
= a1 a2 a3
a4 a5
S2 = b1 b2 a3 a4 a5
Каждое из слов
дополняется начальным и конечным пробелами. Значение N
принимается равным двум и слова
разбиваются на диграммы следующим образом:
a = { _a1, a1a2,
a2a3, a3a4, a4a5,
a5_ }– множество диграмм первого слова.
b = {_b1, b1b2, b2a3, a3a4, a4a5, a5_ } – множество диграмм второго
слова.
Тогда
a Ç b = { a3a4, a4a5,
a5_
} – пересечение множеств диграмм
первого и второго слова.
a È b = { a1, a1a2, a2a3, a3a4, a4a5,
a5_, _b1, b1b2, b2a3 }
– объединение множеств диграмм первого и второго
слова.
| a Ç b | – мощность множества a Ç b.
| a È b | – мощность
множества a È b.
Очевидно, что | a Ç b | = 3 , | a È b | = 9.
Тогда коэффициент Пфайфера,
определяющий меру сходства строк вычисляется по формуле (0):
В данном случае
.
Таким образом, один из методов, основанный на N-граммах, подразумевает построение множеств N-грамм сравниваемых строк и вычисление отношения мощности
пересечения множеств N-грамм первой и второй строки к
мощности их объединения.
В
качестве более сложного метода взят метод поиска совпадений
с использованием так называемого «строкового графа», который представляет собой
следующую конструкцию:
Допустим,
сравниваются две строки «прокат» и «проект». Разбив эти слова, дополненные
начальным и концевым пробелами, на диграммы, можно
построить следующую зависимость:
_п ® пр ® ро ® ок ® ка ®ат ®т_
_п ® пр ® ро ® ое ® ек ® кт ®
т_
Из
примера видно, какие именно диграммы присутствуют в
обеих строках: «_п», «пр», «ро», «т_». Стрелки на схеме показывают порядок следования N-грамм в слове. Можно сказать, что та диграмма,
из которой выходит стрелка, является порождающей, а в ту, в которую входит –
порождаемой диграммой. Если все диграммы
записать в заголовках строк и столбцов некой таблицы, можно построить матрицу
смежности ориентированного графа, вершинами которого являются диграммы.
В
данном примере граф порождения диграмм выглядит так:

Рисунок 0. Граф, построенный на диаграммах
Матрица
смежности для этого графа выглядит так:
Таблица 0. Матрица смежности для графа,
построенного на диграммах
|
|
_п |
пр |
ро |
ок |
ка |
ат |
т_ |
ое |
ек |
кт |
|
_п |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
пр |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
ро |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
|
ок |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
|
ка |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
|
ат |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
|
т_ |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
ое |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
|
ек |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
|
кт |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
Суть
метода сводится к решению задачи о нахождении всех «развилок» в построенном
графе и вычислению длин всех цепочек, которые находятся «вне» разветвлений.
Иначе говоря,
а) из одной вершины в другую должен вести
один и единственный путь,
б) исходя из вершины, с которой начинается
цепочка, можно дойти в ту и только в ту вершину, где начинается развилка, либо
в терминальную вершину (вариант, когда совпадают суффиксы строк).
Алгоритмически задача сводится к нахождению
пересечения путей из всех вершин, в которые не входит ни одно ребро, до тех
вершин, из которых ни одно ребро не выходит. Задачу можно решить, перенумеровав
вершины графа и запоминая на каждом шаге из вершины к вершине их номера. Пути
записываются в виде множества кортежей, первый элемент которых – вершина, из
которой начинается шаг, а второй – вершина, где шаг кончается. Пройдя по всем
возможным путям такого рода и взяв пересечение множеств кортежей для каждого
пути, находятся общие участки пути в графе.
Мера
сходства в данном случае определяется как сумма длин путей всех неразветвленных
цепочек к максимальной длине пути между вершинами в графе.
Метод
был разработан в основном для нахождения орфографических ошибок в словах,
нахождения однокоренных слов в строках и нахождения максимальной общей
подстроки двух строк.
Можно
проиллюстрировать применение всех вышеизложенных методов сравнения строк на
примере сравнения слов «прокат» и «проект».
Построим таблицу для вычисления редакционного расстояния
между словами «прокат» и «проект». Значения
в нулевой строчке и нулевом столбце определяются из базовых условий (0).
|
d(i, j) |
|
|
п |
р |
о |
к |
а |
т |
|
|
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
|
|
0 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
|
п |
1 |
1 |
0 |
1 |
2 |
3 |
4 |
5 |
|
р |
2 |
2 |
1 |
0 |
1 |
2 |
3 |
4 |
|
о |
3 |
3 |
2 |
1 |
0 |
1 |
2 |
3 |
|
е |
4 |
4 |
3 |
2 |
1 |
1 |
2 |
3 |
|
к |
5 |
5 |
4 |
3 |
2 |
1 |
2 |
3 |
|
т |
6 |
6 |
5 |
4 |
3 |
2 |
2 |
2 |
Значения таблицы получаются из рекуррентных
соотношений (0), значение в каждой ячейке таблицы представляет собой
редакционное расстояние между префиксами первой и второй строки длины i и j соответственно. Таким образом, значение в правом нижнем
углу таблицы дает искомое минимальное редакционное расстояние.
Мера
сходства между строками рассчитывается по формуле (0) и для данного примера
будет равна 2/3:
![]()
Рассмотрим
пример нахождения меры сходства по первому методу N-грамм.
Рассмотрим множество a = { _п, пр,
ро, ое, ек , кт, т_ }– множество диграмм первого слова и множество b
= {_п,
пр, ро, ок, ка, ат, т_
} – множество диграмм второго слова.
Тогда пересечением множеств диграмм первого и второго слова a Ç b будет множество {_п, пр, ро, т_ }.
Соответственно,
объединением a È b будет множество
{_п, пр, ро, ое, ек , кт, ок,
ка,
ат, т_ }.
Мощности множеств будут соответственно равны:
| a Ç b | = 4 и | a È b | = 10.
Тогда по формуле (0) коэффициент
релевантности между словами «прокат» и «проект»
.
Рассмотрим
использование второго метода N-грамм на данном
примере. В соответствии с рисунком (0), можно записать все нужные пути в
строковом графе:
_п ® пр ® ро ® ок ® ка ®ат ®т_
_п ® пр ® ро ® ое ® ек ® кт ®
т_
Длина каждого из путей равна 7.
Общими для всех путей являются вершины «_п», «пр», «ро»
и «т_». Количество таких вершин для данного примера равно 4.
Мера сходства находится как отношение
количества вершин, общих для всех путей, к количеству вершин в самом длинном
пути в графе, для данного примера d = 4/7 »
0,57142857.
Метод
вычисления минимального редакционного расстояния
С помощью динамического программирования находится
редакционное расстояние между двумя строками.
Для двух строк, S1
и S2, значение d(i, j) определяется
как редакционное расстояние между S1[l..i] и S2[1..j].
Значит, d(i, j) определяет минимальное
число редакционных операций, необходимых для преобразования первых i символов S1 в
первые j символов S2. При использовании
этой нотации если |S1|= n и |S2| = т, то редакционное расстояние между S1 и S2 равно в точности значению
d(n, т).
Чтобы найти d(n, т), надо
решить более общую задачу вычисления значений d(i,
j) для всех комбинаций i и j, когда i меняется
от 0 до n, a j от 0 до т.
Это стандартный подход динамического программирования, применяемый в
большом числе вычислительных задач.
Рекуррентное соотношение задаёт рекурсивное
отношение между значением d(i, j) для положительных i и j и
значениями d с индексными парами, меньшими i, j. Когда
меньших индексов нет, значение d(i, j) должно получаться
явно из условий, которые будем называть базовыми условиями для d(i,
j).
Для задачи о редакционном
расстоянии базовые условия таковы:
d(i, 0) = i
d(0,
j) = j
Базовое условие d(i, 0) = i
очевидно корректно (т.е. оно даёт число, требуемое определением d(i, 0)), так как единственный способ
преобразования первых i символов S1 в нуль символов S2 заключается в удалении всех этих i символов. Аналогично, условие d(0,
j) = j корректно, потому что для преобразования нуля символов S1 в j символов S2 требуется вставить j символов.
Рекуррентное соотношение для d(i, j), когда i и j строго положительны,
выглядит так:
d(i, j) =
min{d(i–1, j)+1, d(i, j–1)+1,
d(i–1, j–1)+t(i, j)},
где значение t(i, j) no определению равно 1, если S1(i)
S2(j), и 0, если S1(i)
= S2(j).
Соответственно, значение d(n,m), вычисленное из рекуррентного
соотношения для d(i–1, j)+1, d(i, j–1)+1, d(i–1, j–1)+t(i, j), дает минимальное редакционное
расстояние для строк S1 и S2. Таким образом, функция сходства
двух строк S1 и S2 находится как
. (0)
Этот же метод может быть применен для решения задачи о наибольшей общей подстроке. Ее можно найти, если известны все оптимальные редакционные предписания. Соответственно, наибольшей общей подстрокой будет та подстрока, для которой максимально значение M-операций (пустых операций), идущих друг за другом. Это значение и соответствующую ему подстроку можно найти любым переборным методом, просмотрев все полученные в результате решения задачи оптимальные предписания
Все описанные выше методы являются в той или
иной степени формальными методами, которые не учитывают особенности русского
языка в построении наименований предприятий, для работы с которыми и была
создана данная система.
Разумеется, все формальные методы будут
давать хорошие результаты для тех строк, которые мало отличаются друг от друга,
например, при наличии орфографических ошибок в словах.
При разработке прототипа системы были опытным
путем получены пороговые коэффициенты для меры сходства. Для метода нахождения
минимального редакционного расстояния все строки из тестовой совокупности,
значение меры сходства которых было больше 0.8,
оказались одинаковыми (в смысле, который был предусмотрен заказчиком). Для
методов, основанных на N-граммах, пороговый коэффициент равен
0.7.
Изначально было
предусмотрено только сравнение строк как таковых, но для более точного анализа
строк было принято решение в тех случаях, когда мера сходства оказывается хоть
и достаточно высокой, но все же недостаточной (ниже пороговых значений), чтобы
по ней можно было однозначно назвать строки одинаковыми в данном смысле,
использовать дальнейший формальный синтаксический анализ построения фраз с
использованием сравнения не строк, а
слов, входящих в строки.
Известно, что каждому слову, входящему, к
примеру, в наименование торговой фирмы, соответствует некоторое количество
формальных атрибутов, например:
- является ли слово частью названия фирмы;
- является ли слово указанием на
территориальное расположение контрагента и так далее.
Путем логического анализа существующих
справочников фирм-контрагентов были найдено более десятка подобных атрибутов
для каждого слова, входящего в наименование контрагента.
Ярким примером подобного атрибута являются
слова, заключенные в кавычки. В соответствии с синтаксисом русского языка, в
кавычки заключаются непосредственно названия фирм. В разных справочниках при
сохранении записанного в кавычках названия часто
оставшиеся за кавычками слова просто опускают. Тогда для получения адекватных
результатов надо учитывать то, что совпадение (четкое или нечеткое) слов,
заключенных в кавычки, намного больше влияет на то, что строки одинаковы в
данном смысле, нежели совпадение тех слов из строк, которые находятся за
кавычками.
Для
того, чтобы учесть все найденные при сравнении слов
атрибуты, был разработан алгоритм, который позволяет учесть их и разбить
множество строк, сравниваемых с эталонной строкой, на несколько групп,
объединенных по степени сходства с учетом наличия тех или иных атрибутов для
слов в сравниваемых строках.
Алгоритм
формального синтаксического анализа
Пусть
имеются две строки S1 и S2, состоящие из N и M слов соответственно. Базы данных в программе построены
таким образом, что в качестве S1 берется строка из той таблицы, значения которой мы
принимаем за эталон или исходную точку, а в качестве S2 – последовательно
берутся те строки, которые являются возможными аналогами эталонной строки.
Далее
производится разбивка каждой пары строк (эталон, кандидат) по словам.
Дальнейшие сравнения будут производиться для всех пар слов, входящих в первую и
вторую строки. Каждому слову из первой строки сопоставляется каждое слово из
второй строки.
Все
пары слов сравниваются между собой по любому из методов нечеткого сравнения,
описанных выше. Для каждой пары строк рассматриваются пары слов, в которых
достигнута мера сходства, большая порогового значения для того метода, который
использовался для их сравнения.
Для
каждой пары слов проводится учет факторов (атрибутов):
1.
Совпадение имен
существительных. В текущей реализации программы существует справочник имен
существительных, и тот случай, когда совпадают существительные, имеет большее
значение в плане сходства, нежели совпадение других частей речи.
2.
Совпадение длинных
слов. Как правило, длинные слова обозначают либо одно из частей собственно названия
контрагента, либо (менее распространено) – его сущность («мясокомбинат»).
3.
Совпадение
аббревиатур. Исключая общеупотребительные аббревиатуры, используемые для
обозначения юридической формы устройства предприятия (ЗАО, ООО и т.д.),
совпадение аббревиатур часто указывает на совпадение сущностей, а иногда и
названий фирм.
4.
Совпадение слов в
кавычках. Как и было описано выше, слова в кавычках позволяют с весьма большой
вероятностью определить название фирмы-контрагента.
5.
Совпадение
переведенных слов. В программе предусмотрена возможность транслитерации из
латиницы в кириллицу. Практически всегда записанное латиницей слово является
частью названия фирмы.
6.
Совпадение количества
символов слова. Иногда позволяет (в частности, при вычислении редакционного
расстояния) сделать вывод о похожести строк.
7.
Совпадение места
слова. Порядок слов в строках важен для данной системы: перестановка слов в
наименовании фирмы встречается очень редко.
8.
Совпадение слов из
справочника исключений. Можно определить небольшой словарь исключений (в
основном используется для ручной обработки результатов работы программы),
который будет содержать, возможно, те слова, которые не подходят под действие
ни одного из этих факторов.
9.
Совпадение слов с
большой буквы. Достаточно очевидный фактор – названия фирм являются именами
собственными.
10.
Совпадение слов с
большим количеством цифр. Для государственных учреждений часто используются
различные коды и цифры в наименовании, они, как правило, уникальны и наличие
данного фактора сильно свидетельствует в сторону похожести строк.
11.
Совпадение главного
слова. Наличие данного фактора объясняется тем, что программа может сравнивать
не только строковые наименования фирм, но и любые другие их строковые атрибуты,
например, как ИНН фирмы. Опять же, в силу уникальности, совпадение ИНН говорит
о совпадении контрагентов. К сожалению, не во всех записях справочников имеется
данное (или похожее) поле.
Далее рассчитывается коэффициент
совпадения строк k2 по формуле
где
Nmin – минимальное количество слов в каждой фразе из пары
(иначе говоря, максимальное количество слов в фразах,
которые могут совпасть);
(Nmin –
количество пар слов, совпадающих с максимальным значением коэффициента,
превышающем пороговое значение.)
Nф – количество
факторов, учитываемых для данной пары слов;
k1 – значение посчитанного коэффициента сходства для i-й пары слов;
kпр –
коэффициент прогресса, который рассчитывается следующим образом: если k1=1,
то kпр=8; если 0.9<=k1<1, то kпр=5; если
kпор<=k1<0.9, то kпр=3;
αj – коэффициент присутствия
j-го фактора;
fj – коэффициент влияния j-го фактора.
Расчет влияния количества слов:
![]()
αкол – коэффициент присутствия количества
слов фразы;
fкол – коэффициент влияния количества слов фразы.
Расчет влияния качества слов:
![]()
αкач –
коэффициент присутствия качества слов фразы;
fкач – коэффициент влияния качества слов фразы.
Поисковая
система, позволяющая настроить различные сценарии поиска, вызывается нажатием
кнопки
на панели инструментов. Поисковая система,
вызываемая по данной кнопке, имеет ряд настроек, позволяющий создавать
произвольные сценарии поиска и выполнять определенные действия с найденными
записями или искомой записью. Действия по обработке записей также имеют гибкие
настройки
Данная система позволяет производить точный поиск и поиск похожих значений по введенным условиям. Найденная информация может быть обработана (редактирование, экспорт, применение задач ETL приложения). Обработка информации может быть настроено произвольно для решения требуемой задачи.
Суть данного поиска состоит также в том, что можно создавать настройки для поиска в других источниках данных, отличающихся от текущего.
При вызове стартовой формы поисковой системы (рис.) показывается исходная, искомая запись. Эта запись является копией текущей записи линейного справочника или массивом собранной информации формы ввода. В верхней части формы расположены кнопки навигации по записям линейного справочника (для последовательного прохождения набора записей) «Предыдущая», «Следующая». Кнопка «Подтвердить» является настраиваемой кнопкой, служит для обновления какого-либо значения в указанном поле искомой записи таблицы линейного справочника. По идеологическим соображениям подразумевается, что это поле флага показывающее, что данная запись обработана.
Входная (искомая) запись показана в виде развернутой таблицы. В нижней части окна расположено окно с иерархической структурой сценария поиска.



Настройка
показа входной (искомой) записи.
При необходимости часть полей входной таблицы (если они не несут информации участвующей в поиске) можно убрать. Для этого надо указать курсором «мыши» на лишнюю строку в таблице входной записи и нажать клавишу «Delete» на клавиатуре. Строка будет убрана из списка и при следующем вызове формы не покажется. Если возникнет необходимость вывести вновь скрытые поля, нужно вызвать контекстное меню «Показать все поля», нажав правую кнопку «мыши» на заголовке столбцов таблицы входной записи. Старый список полей будет удален и сформирован новый полный список. Дополнительно пункт контекстного меню «Сохранить макет таблицы» сохраняет размер колонок и высоту строк таблицы входной записи, а также отметки о запуске проверки на латиницу.

Пункт контекстного меню «Показать настройку латиницы» показывает дополнительный столбец, в котором можно указать флаг запуска проверки на вкрапления латинских букв в слова, написанные кириллицей. После выбора флажков необходимо выполнить пункт контекстного меню «Сохранить макет таблицы» для запоминания настройки. Проверка вкраплений будет запускаться автоматически, при каждой загрузке новой входной записи в форму поиска. Если в процессе проверки будет найдена возможная ошибка, откроется форма корректировки полностью аналогичная рассмотренной ранее форме проверки на вкрапления латинских букв для таблицы линейного справочника.
Настройка
кнопки подтверждения.
Для того чтобы открыть окно настройки кнопки «Подтвердить», нужно нажать клавишу «Ctrl» на клавиатуре. В нижней части формы на время нажатия появится кнопка «Настроить».

Щелкните кнопку «Настроить» для открытия настройки обновления по нажатию кнопки подтверждения.
Рисунок формы настройки показан ниже.

В таблице перечислены поля принадлежащие источнику диалога. Напротив каждого поля можно ввести требуемое значение, которым будет обновлено поле после нажатия кнопки «Подтвердить». После завершения настройки нажмите кнопку «Сохранить» и закройте окно кнопкой «Закрыть». Форма вернётся в прежний режим сценария поиска.
Переход
к режиму настройки шагов поиска сценария.
В левой нижней части формы расположена кнопка настройки сценария поиска. При нажатии кнопки открывается форма общих настроек шагов поиска. Ниже показан рисунок данной формы.



![]()
![]()


В левой части формы расположен список всех настроенных линейных справочников. Если есть необходимость, можно не выходя из этой формы создать настройку нового линейного справочника. Также возможно редактирование ранее созданной настройки. При редактировании следует помнить, что данная настройка может быть уже связана с иерархическим справочником или задействована ранее в других местах.
Создание,
редактирование, удаление настройки поиска.
Для создания
новой настройки поиска выберите настроенный линейный справочник из списка и нажмите
кнопку
.
В правом окне формы появится новая настройка поиска с одноименным названием.
Для удаления
настройки поиска выберите её название в списке и нажмите кнопку
.
Настройка будет незамедлительно удалена из списка. Если ваше действие было
ошибочно, закройте форму без нажатия кнопки сохранения.
Для редактирования названия щелкните один раз на надписи настройки поиска и дождитесь появления текстового курсора:
Напишите новое название и нажмите клавишу «Enter» на клавиатуре.
Каждая настройка может быть включена или отключена. Когда настройка отключена, она не показывается в форме сценария поиска. Используя данное свойство можно временно отключать не нужные на данный момент настройки. Слева от названия настройки расположен флажок отключения настройки используя его, можно управлять данным свойством. Для выбора метода поиска нужно вызвать контекстное меню правой кнопкой «мыши» на названии настройки поиска. На рисунке ниже показан пример контекстного меню.





Первый пункт меню указывает, к какому источнику принадлежит настройка. Остальные пункты меню задают методы поиска. Цвет значка ромбика указывает на тип выбранного механизма поиска: красный - точный поиск, зеленый - LIKE поиск (поиск похожих значений), синий - НОМ поиск.
После выбора метода поиска необходимо настроить соответствия полей входной записи и базы поиска (для возможности обобщенной обработки записей), также необходимо настроить поля входной записи, используемые для автоматической подстановки в таблицы условий в форме результатов поиска. При использовании механизма точного или LIKE поиска следует задать соответствия полей входной записи для автоматической подстановки в таблицу условий формы результата LIKE поиска. При использовании NOM поиска следует задать соответствия полей для аналогичной подстановки искомых значений NOM поиска. В любом случае необходимо установить соответствия полей входной записи и базы поиска для вывода обобщенного результата.
Установление соответствий полей входной записи автоматической
подстановки для механизма точного и Like и
НОМ поиска.
Нужно выбрать настройку в списке, расположенном в правой части формы. Для открытия формы настройки соответствий подстановки нажать требуемую кнопку настройки. Смотрите всплывающие подписи к кнопкам и пояснения на предыдущем рисунке. На рисунке ниже показана форма настройки автоматической подстановки для точного поиска. Практически внешний вид форм не изменен. Настройка происходит за счет перетаскивания названия поля источника на название поля поисковой базы с помощью указателя «мыши». Поля, для которых установлено соответствие, показываются в правом окне формы.


![]()



По данной настройке будет сформировано примерно следующее условие для поиска:

Форма установления соответствия полей автоматической подстановки для варианта Like поиска будет дополнена в правом окне флажком «Развернуть». Когда данный флажок активен, игнорируются все другие флажки копирования значения для выбранного соответствия. Ниже на рисунке показана форма установления соответствий полей входной записи и базы поиска для варианта Like метода.

Если флажок «Развернуть» активен, то в таблицу искомых значений формы результата поиска будет подставлена комбинация из слов искомого предложения. В данной комбинации будут участвовать слова длиннее двух символов. В первую ячейку условия будет подставлено первое и второе слово предложения соединенное пробелом. Во вторую ячейку будет подставлено второе и третье слово предложения и т.д.
Для НОМ-поиска форма практически аналогична рассмотренным ранее вариантам. Отличие состоит в том, что может быть подставлено только одно значение искомой записи в соответствие поиска. Соответственно флажок «НОМ копирование» только один. Рисунок формы в данном режиме показан ниже.

После настройки соответствий для автоматической подстановки значений, закройте форму. Все настройки будут переданы в основную форму и сохранены вместе с сохранением основных настроек.
Настройка
соответствия полей входной записи и базы поиска для объединения записей в
процессе обработки.
Чтобы иметь возможность обработки найденных записей в таблицах результата (обобщение записей), необходимо установить соответствия полей входной записи и базы поиска. Форма установления соответствия полей аналогична рассмотренным выше формам соответствий. Ниже показан рисунок формы.

В данной форме нужно установить только смысловое соответствие. После настройки форму закрыть. Настроенные параметры будут переданы в основную форму настройки.
Для сохранения всех параметров настройки сценария поиска необходимо нажать кнопку сохранения на форме настройки. Параметры будут сохранены в системном файле, форма закроется, окно списка сценария будет обновлено в соответствии с выбранными настройками.
Каждая настройка поиска, входящая в сценарий может быть открыта в одном из двух режимов: в режиме редактирования условий поиска или в режиме результата. Способ открытия можно выбрать, вызвав контекстное меню на выбранной настройке и выбрав соответствующий пункт меню. На рисунке ниже показано контекстное меню для одного узла окна сценария.

Выбранный пункт автоматически будет запомнен после закрытия формы. Значок узла символически показывает, в каком режиме будет открыта форма результата поиска.
Список сценария формируется следующим образом: объединяются все настройки с одинаковой базой поиска и показываются в виде отдельного узла с дочерними настройками. В дальнейшем в форме результата поиска можно будет передвигаться по выбранным настройкам кнопками «Вперед» и «Назад». Настройки, принадлежащие к одному источнику, будут загружаться в одну и ту же форму поиска (если форма не закрывалась, будут наследованы выбранные записи). При вызове поиска в разных источниках будут открыты соответственно новые формы поиска.
Для запуска поиска необходимо выбрать один из пунктов сценария и сделать двойной щелчок левой кнопкой «мыши» на нем. После проделанного действия будет открыта форма результата поиска, в том режиме, которому соответствует настройка поиска.
Далее будут рассмотрены единичные случаи запуска формы поиска для различных поисковых механизмов. Форма поиска в любом случае состоит из двух условно разделенных этапов (шагов). На первом этапе происходит формирование структуры поиска, автоподстановка искомых значений, ручное редактирование искомых значений, дополнительные вызовы вспомогательных поисковых форм, прямой вызов поиска в ресурсах Интернета с использованием сайта Яндекс. Первый этап условно обозначен как «Открытие в режиме редактирования» (см. контекстное меню для окна источников экспертного поиска).
На втором этапе выводится результат поиска, предоставляется возможность выбора необходимых для обработки записей и переход к механизму обработки результата (выбранных записей). Второй этап условно обозначен как «Открытие в режиме результата» (см. контекстное меню для окна источников экспертного поиска).
Переход от первого этапа ко второму непосредственно на самой форме поиска может быть произведен с запуском механизма поиска и без (соответственно с помощью кнопок навигации или кнопки поиска). Вариант без запуска механизма поиска может быть необходим в случае многократного поиска в пределах одной настройки для просмотра предыдущего результата при редактировании искомых значений поиска.
Обработка результата.
После того, как в форме поиска были выбраны записи для обработки, вызывается форма обработки результата (показана на рисунке ниже).
![]()



Перед выполнением действия с записями можно внести нужные изменения в их содержимое. Для разрешения редактирования нужного поля необходимо нажать клавишу Ctrl на клавиатуре и удерживая ее вызвать контекстное меню на соответствующем заголовке. Выбрать пункт меню разрешающий редактирование. Цвет редактируемой колонки станет более темным. Если необходимо вставить значение во все ячейки указанного столбца, то можно написать новое значение в поле «Копируемое значение» и вызвав контекстное меню на заголовке столбца выбрать пункт «Вставить ...». При вызове меню на ячейке - вставка производится в ячейку. Пункт «Копировать» копирует значения из ячейки в окно «Копируемое значение». Пункт меню «Настроить справочник» вызывает настройку подключенного справочника, смотрите описание ниже. Когда справочник подключен, в контекстном меню появится пункт «Вызвать справочник». Данный пункт открывает форму справочника, который был настроен ранее для выбранного столбца. Пример формы справочника показан ниже. Для выбора справочного значения пользователь должен указать на его ячейку и нажать кнопку «Выбрать». Также можно просто сделать двойной щелчок левой кнопкой «мыши» на нужном значении.
Вид формы для точного поиска на этапе редактирования показан на рисунке ниже. В этом режиме возможно корректировка значений подставленных автоматически из входной записи. Значения подставляются по настроенным ранее соответствиям подстановки в момент открытия формы или при переходе по сценарию в пределах одной формы. В верхней части формы показана развернутая таблица с входной записью. В нижней части формы расположена таблица условий поиска. Пользователь может вручную задать значение условия в ячейках шаблона поиска. Таблица с условиями поиска имеет 4 колонки условий, объединяемых при поиске по смыслу «ИЛИ». В пределах одной колонки условия объединяются по смыслу «И».
Кнопки «Назад» и «Вперед» позволяют переходить к другим шагам сценария. Кнопка «Искать» запускает механизм поиска и выводит результат. Форма настройки соответствия полей входной записи, и базы поиска может быть открыта непосредственно из данной формы при нажатии соответствующей кнопки. Для точного и LIKE поиска различия практически состоят лишь в самом механизме поиска. Т.е. различий в настройке поиска и показе результата нет. Поэтому данные механизмы будут рассмотрены как один.






Для того чтобы вызвать контекстное меню поиска в Интернете, необходимо указать ячейку с искомой фразой в таблице входной записи и вызвать контекстное меню «Искать в Яndex…». В качестве искомого значения будет передано значение текущей ячейки или выделенная часть текста ячейки. При выделении текста в текущей ячейки меню необходимо вызывать на любой другой ячейке. Для тех ячеек, у которых настроено соответствие автоматической подстановки, в конце ячейки, принадлежащей столбцу «Значение», появляются кнопки для повторной подстановки значения. В ячейках условий шаблона поиска, для тех ячеек, у которых есть значения, появляются кнопки, с помощью которых можно очистить содержимое данной ячейки. В средней части формы находится окно, в котором постоянно показывается текущее значение выбранной ячейки входящей записи. Кнопка «Копировать», расположенная слева от этого окна, позволяет поместить содержимое окна или выделенную часть в буфер обмена (если выделена). Для того чтобы использовать информацию из буфера обмена, необходимо указать на ячейку условия в таблице шаблона поиска и воспользоваться контекстным меню «Вставить». Также для вставки можно использовать комбинации клавиш на клавиатуре клавиатуры Ctrl + Insert и Shift + Insert, знак ‘+’ указывает на одновременное нажатие.
В правой верхней части формы располагается окно дополнительных вызовов. Данное окно универсально и может быть настроено на запуск дополнительного поиска (из списка общих настроек для данного искомого источника), вызов любого имеющегося линейного справочника, запуск задачи ETL или непосредственный запуск программы операционной среды. Для настройки и управления объектами в окне дополнительных вызовов пользуйтесь контекстным меню этого окна. С помощью пункта меню «Добавить просмотр данных» вызывается форма выбора диалога. Пункт «Добавить операцию поиска» вызывает форму добавления дополнительного поиска, в которой также возможен выбор нужного варианта механизма поиска. При запуске дополнительного поиска будет создана новая дочерняя форма поиска и запущен непосредственно тот механизм поиска, который был выбран ранее. В качестве искомых значений будут использованы значения полученные методом автоподстановки из входной записи родительской формы поиска в соответствии с настройками. Если источники родительской и дочерней формы совпадают, то на дочерней форме будет доступна кнопка передачи результата в родительскую форму («Наследовать»). Форма дополнительного поиска абсолютно схожа, и отдельно рассматриваться не будет.
Для добавления ссылки на программу необходимо «затащить» её иконку из файловой системы Windows в окно дополнительного запуска. Для добавления задачи ETL необходимо «затащить» иконку задачи из списка объектов ETL сервера непосредственно из оболочки ETL.
Ниже показан рисунок формы точного или LIKE поиска на втором этапе (в режиме результата).








По результату поиска пользователь может достигнуть следующих целей: завести новой аналог на основе искомой записи и объединить другие записи в группу аналогов. Выбор режима обработки осуществляется закладками с соответствующими названиями в форме поиска. Для множественного переноса записей в нижнее результирующее окно, можно выделять нужные записи с помощью клавиш «Ctrl» и «Shift» и указателя мыши (соответственно по одной и блоками, было рассмотрено ранее). В нижнее окно переносятся только те записи, которых еще там нет (т.е. двойной перенос записи заблокирован программой). Для предотвращения двойного переноса проверяется наличие записи по полю идентификатора указанному в настройке полей линейного справочника. После набора записей в таблицы результатов для перехода к форме результата необходимо нажать кнопку «Обработать». Используя контекстное меню на закладках режимов обработки можно подсветить выбранные записи. Подсветка происходит единовременно и при изменении набора записей не изменяется. Также на предыдущем рисунке показано контекстное меню настройки закладок. Вызывается такое меню традиционным способом, но при нажатой клавише «Ctrl» на клавиатуре. Пункт «Вывести все закладки» восстанавливает все удаленные закладки. Пункт «Переименовать» позволяет задать новое имя для активной закладки. Следует обратить внимание, что контекстное меню вызывается для активной закладки, а не на той, на которой было совершен щелчок правой кнопкой мыши. Пункт меню «Удалить закладку» позволяет удалить активную закладку. Перед удалением выводится запрос, в котором будет уточнено выбранное действие и название удаляемой закладки.
Программой предусмотрено наличие четырех накопительных таблиц, в которые могут быть помещены выбранные для обработки записи. Соответственно закладок тоже четыре. Названия закладок могут быть переименованы, ненужные закладки могут быть удалены. Каждая из таблиц имеет свою особенность. В первой таблице (по умолчанию закладка называется «Новая запись») всё время находится одна входная запись. Если эта запись была получена из формы ввода, то в дальнейшем в процессе обработки её можно будет добавить в какой-либо источник данных. В эту таблицу нет возможности добавлять другие записи. После обработки новая запись из данной таблицы удаляется, кнопка «Обработать» для данной закладки блокируется, предотвращая повторный ввод новой записи. Вторая таблица, у которой закладка по умолчанию называется «Полный аналог», позволяет многократно запускать обработку, но только для одной выбранной записи. Третья таблица, у которой закладка по умолчанию называется «Ввод аналога», содержит строку входящей записи. В эту таблицу могут быть перенесены любые другие записи. Запись в данную таблицу происходит с учетом соответствия полей, настроенных ранее. После обработки таблица обработки очищается, кнопка обработки блокируется. В четвёртую таблицу, у которой закладка по умолчанию называется «Прочие двойники», могут быть добавлены любые записи. После выполнения обработки таблица очищается. Обработка может запускаться многократно. Макет каждой таблицы может быть сохранен при вызове контекстного меню «Сохранить макет таблицы» на заголовках столбцов.
См. Точный поиск
Кроме вызова
НОМ-поиска для одной записи можно запустить задачу автоматического НОМ-поиска
для многих записей. Настройка и вызов автоматического поиска происходит в ETL-сервере. В форме задачи
указываются источник и поисковый справочник (это может быть SQL-запрос или массив Data Cache), индексные и поисковые поля, mdb-файл, в котором будет сохраняться результат.


Количество
найденных аналогов для фразы в целом и по отдельным словам ограничено
значениями, прописанными в поле «Общее количество (не более)» и «По каждому
отдельному полю». Так же, как и при ручном поиске, можно настроить справочники
сокращений, транслитераций и исключений.

Результат автоматического подбора аналогов записывается в
результирующую таблицу НОМ-обработки, в которой слева (столбец Наименование
МТР) находится новое значение МТР, а справа (столбец Наименование ЕКМТР) —
найденные в результате НОМ-обработки возможные аналоги. Коэффициент
релевантности К2 показывает степень соответствия
найденной позиции справочника МТР нераскодированному
значению, чем он больше, тем более схожи наименования.
Основная задача пользователя — в массиве
возможных аналогов выявить максимальное количество прямых аналогов, отмечая их
флагом в поле «Аналог». Для каждой позиции может быть отмечен только
один прямой аналог.

Идеология условий для ручного НОМ
поиска примерно аналогична рассмотренному варианту LIKE поиска. Исключение
составляет то, что поиск ведется по одному основному полю. Из комбинации слов
входной фразы, вариации ее длины строятся специфичные запросы к базе поиска.
Полученная таким образом информация в
дальнейшем отсеивается с использованием настройки коэффициента релевантности.
Пример рисунка
формы для шага НОМ поиска смотрите ниже.






Если подключены
справочники транслитерации и расшифровки аббревиатур при открытии формы
происходит автоматическое варьирование фразы поиска. Дополнительные варианты с
расшифровкой появляются в окнах дополнительных вариаций поиска. Для
дополнительного запуска механизма вариаций (при ручном задании основной фразы
поиска) предусмотрена соответствующая кнопка. Кнопка «Искать» запускает
механизм НОМ поиска.
Вид формы поиска с
НОМ результатом аналогичен шагу LIKE результата. Основное отличие
состоит в появлении дополнительных полей в таблице результата, с префиксом «К2» скомбинированным с названием поля для которого он был
рассчитан. Заголовки столбцов с «К2» дополнительно
выделяются цветом.

На рисунке ниже
показана форма настройки НОМ параметров и справочников вариаций.
Для настройки
механизма НОМ поиска и справочников вариаций нужно нажать клавишу «Ctrl» на клавиатуре, при этом
появится кнопка открытия формы настройки.
В верхней части
формы имеются окна ограничивающие количество найденных записей для НОМ поиска.
Ограничивать
значения следует осторожно. Ограничение
по ранжированию предложения – ограничивает количество поиска записей при поиске
комбинации слов (не менее двух любых найденных слов из предложения и не более количества слов в
предложении за вычетом единицы). Из основного
искомого предложения строится новое поисковое предложение, в котором слова
укорачиваются для получения более широко охватывающего поиска. Для этого метода
также существует два типа ограничения. Правильной представляется идеология
снятия ограничений на количество найденных записей, но это в свою очередь
требует больших временных затрат при поиске.
Комбобокс «Поле идентификатора» позволяет
выбрать поле идентификатора записи (если ранее не настраивалось в основной
настройке диалога). Справочник исключаемых слов необходим для нормирования
искомого предложения при поиске и исключения слов, не имеющих смысла при поиске
и дающих только лишние паразитные записи результата (например «НПО», «ОАО» и
т.п.). Справочник должен представлять собой любую таблицу, в одном поле, которого находятся
исключаемые слова (по одному на запись таблицы).

Для получения вариаций сокращений и аббревиатур необходимо настроить справочник вариантов сокращений. Справочная таблица сокращений должна содержать поле с искомым названием, поле с расшифрованным названием и полем поиска аббревиатур. В процессе варьирования искомого предложения каждое слово предложения будет сравниваться с искомым и при совпадении строиться новое предложение с дополнением расшифровки. Также буде произведен поиск значений из поля поиска аббревиатур (если оно не пустое) и при совпадении добавлена аббревиатура. Аналогично работает механизм расшифровки транслитераций.
Форма настройки механизмов справочников для дополнительных вариаций и исключаемых слов показана на рисунке ниже. Необходимо указать соединение к базе данных (кнопка «Соединить»). Указать запрос к справочной таблице в окне «Строка SQL запроса» ( кнопка «Редактировать SQL»). Для появления списка полей нажать кнопку обновления списка полей. Из списка полей в правой части формы перенести с помощью указателя мыши нужные названия полей в соответствующие их функциям окна настройки в нижней части формы. После завершения настройки, для запоминания параметров нажать кнопку сохранения.
Следует учесть, что каждая дополнительная вариация поиска запускает НОМ механизм заново и требует соответственно дополнительное время. Результат поиска дополнительной вариации объединяется с ранее найденными записями (ограничения количества записей в данном случае действуют на каждый из вариантов поиска, а не на весь объем найденных записей).

Настройка справочника исключаемых слов
довольна простая и будет рассмотрена ниже.
Для получения
вариаций сокращений и аббревиатур необходимо настроить справочник вариантов
сокращений. Справочная таблица сокращений должна содержать поле с искомым
названием, поле с расшифрованным названием и полем поиска аббревиатур. В процессе варьирования искомого предложения
каждое слово предложения будет сравниваться с искомым и при совпадении
строиться новое предложение с дополнением расшифровки. Также буде произведен
поиск значений из поля поиска аббревиатур (если оно не пустое) и при совпадении
добавлена аббревиатура. Аналогично
работает механизм расшифровки транслитераций.
Следует учесть, что
каждая дополнительная вариация поиска запускает НОМ механизм заново и требует
соответственно дополнительное время. Результат поиска дополнительной вариации
объединяется с ранее найденными записями
(ограничения количества записей в данном случае действуют на каждый из вариантов
поиска, а не на весь объем найденных записей).

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

Справочник транслитераций и
весовых коэффициентов:






Матричный и линейный фильтры вызываются нажатием соответствующих кнопок на панели инструментов.
- вызов формы матричного
фильтра;
- вызова формы линейного фильтра.
Каждая из форм фильтрации позволяет хранить настроенные ранее фильтры.
Кнопка отмены условий фильтра. Отменяет
наложенные на источник линейного справочника условия фильтрации.
В разделе «Классификаторы» пользователю предлагается удобный механизм поиска нужной ему позиции в текущем классификаторе. Для этого можно воспользоваться либо верхним меню программы, либо специальными кнопками (с подсветкой их функций), либо функциональными клавишами клавиатуры: F3 (Поиск), Ctrl + F3 (Поиск следующего) и Shift + Ctrl + F3 (Найти все).

Рис. 1. Вызов режима поиска
Система предлагает пользователю искать нужные ему позиции:
- по всей базе данных классификатора (основной режим);
- только по раскрытым на экранной форме ветвям классификатора (по дереву);
- только по текущему уровню.

Рис. 2
Форма линейного фильтра предназначена для визуального создания условий, которые будут использованы для фильтрации источника записей линейного справочника. При первом открытии форма линейного фильтра выглядит примерно следующим образом.




Для начала
работы необходимо выбрать поля, на которые будут наложены условия. Для этого в
верхнем окне списка доступных полей (если список скрыт, необходимо вывести его
на экран кнопкой
)
нужно выбрать требуемое поле и добавить его в таблицу условий, которая
расположена в нижней части формы. Добавление осуществляется кнопкой
.
Поле при необходимости может быть добавлено неограниченное количество раз.
Удалить лишние поля из списка можно кнопкой
.
На рисунке
ниже показан пример формы с набранными полями для фильтрации. После того, как
список фильтруемых полей набран, можно убрать список полей источника кнопкой
.



Для каждого
введенного поля можно выбрать тип операции фильтрации из списка доступных. При открытии списка важно выбрать какое-либо
значение в нем, иначе пользователь не сможет покинуть ячейку со списком. В этой
же форме можно сразу указать требуемую сортировку для фильтруемых данных. Тип
сортировки также выбирается из значений доступных в открывающемся списке. Далее
пользователь должен задать условия фильтрации, расположив их значения в
столбцах по смыслу. Кнопка
отрабатывает условия фильтра, формируя
вложенный запрос для источника данных линейного фильтра. После выполнения
запроса форма закрывается, автоматически запоминая текущее состояние. Перед
нажатием кнопки фильтрации, необходимо уйти с редактируемой ячейки таблицы
условий, для того чтобы выбранное значение зафиксировалось. Если тип операции
не указан, будет производиться фильтрация с применением операции «Подобно».
Внешний вид таблицы условий фильтра (размеры колонок и строк) может быть сохранен через контекстное меню, вызванное на заголовках столбцов «Сохранить вид таблицы».
Для удобства
использования фильтра на форме расположено окно, показывающее содержимое
текущей ячейки таблицы линейного справочника. При перемещении по ячейкам
линейного справочника содержимое этого окна будет синхронно меняться. Справа
расположена кнопка
,
которая позволяет вставить значение целиком или выделенную часть (если
выделена) в текущую ячейку таблицы условий фильтра.
![]()
При необходимости каждую настройку линейного фильтра можно сохранить и позднее открыть для использования. Для работы с настройками служит окно названия настройки и кнопки добавления, сохранения и удаления настройки.
Вид окна названия настройки и кнопок работы с настройкам:
![]()
Для создания
новой настройки наберите нужные поля и условия фильтрации и нажмите кнопку создания
новой настройки
.
Откроется диалог для ввода названия настройки. Введите название настройки
запоминаемого фильтра, соответствующее тематике. Подтвердите ввод. Значения
условий фильтра и список полей будут сохранены под введенным названием. Для
перехода к другой сохраненной настройке просто выберите её название из
открывающегося списка названий настроек. После выбора названия настройки,
таблица условий фильтрации будет перезагружена и покажет сохраненную настройку.
В том случае,
если настройка была поправлена и возникла необходимость сохранить изменения,
воспользуйтесь кнопкой сохранения условий фильтрации
.
Все параметры настройки будут перезаписаны под текущим названием.
Если в
дальнейшем использовании настройки нет больше необходимости её можно удалить из
списка. Предварительно выберите удаляемое название в раскрывающемся списке и
нажмите кнопку удаления настройки
.
Подтвердите диалог с запросом о выполняемом действии.
Матричный фильтр предназначен для интуитивно понятного создания условия выбора записей из базы данных. Фильтр создается на основе лексем - простых условий. Лексемы отображаются в табличном виде.


Лексемы в матричном фильтре могут создаваться в двух режимах
· Обычная лексема – содержащая поле, операцию и значения с которым сравнивается поле.
· Лексема сравнения полей – лексема, которая может содержать в себе несколько полей и операцию сравнения этих полей или сравнение суммы, разности, произведения или частного двух полей с заданным значением.
Тип лексемы определяется кнопкой «Режим создания лексемы». При нажатой кнопке Вы выбираете режим «сравнения полей», при отжатой кнопке (по умолчанию) выбран режим создания обычной лексемы.
После того как режим создания лексемы выбран, необходимо выбрать «поле» и «операцию сравнения» поля со значением.
Операция сравнения определяет количество и вид полей ввода значений. Так, если выбрана операция «В интервале» или «Не в интервале», то необходимо ввести два значения, определяющих интервал, если же выбрана операция «Пусто» или «Не пусто», то значений для сравнения вводить вообще не нужно. Для всех остальных операций необходимо ввести одно значение, с которым будет сравниваться поле.
Исключение составляет операция «Входит в». Для этой операции в одном поле ввода значения можно перечислить несколько значений, разделив их запятой.
Операция «Подобно» означает условие, при котором будет осуществлен поиск всех значений выбранного поля, в которое входит заданная подстрока. Например, если для поля «Город» выбрана операция «Подобно», а в подстроку введено значение «орск», то будут найдены все города, в наименовании которых встречается подстрока «орск», например, «Приморск», «Загорск» и т. п.
В случае, если в лексеме необходимо сравнить два поля или сравнить сумму, разность, произведение или частное двух полей со значением, необходимо переключить матричный фильтр в режим сравнения полей и создать необходимую лексему.
После того как лексема создана, необходимо добавить ее в
матрицу (или таблицу) лексем, нажав кнопку добавления лексемы.
Для редактирования лексемы выберите ее, а затем нажмите кнопку «Редактирование лексемы».
Для удаления лексемы, выберите ее, щелкнув на ней мышкой, а затем нажмите кнопку «Удалить лексему».
Правила формирования
условия.
Условие, задаваемое фильтром, формируется следующим образом:
Матричный фильтр может иметь несколько панелей типа «И» или типа «ИЛИ» (первая панель не имеет какого-либо типа). Панели определяют группу лексем, объединенную в общие скобки. Операцию между панелями определяет ее тип. Так если мы создали три панели (см. рисунок ниже) при этом панель 2 типа «И» а панель 3 типа «ИЛИ», то общее условие определяется так:
( «Лексемы панели 1» ) «И» («Лексемы панели 2» ) «ИЛИ» («Лексемы панели 3» )

Внутри панели условие формируется в зависимости от типа операции по колонкам (по строкам операция всегда противоположна ) при этом условие определяемое каждой строкой заключается в скобки.
Например, если по колонкам определена операция «ИЛИ», то условие будет сформировано так: («Лексемы строки 1») И («Лексемы строки 2») И («Лексемы строки 3») И …
Если же по колонкам определена операция «И», то условие будет сформировано так :
(«Лексемы строки 1») ИЛИ («Лексемы строки 2») ИЛИ («Лексемы строки 3») ИЛИ …
Операция между лексемами определяется типом колонки.
Таким образом, для рассмотренного примера, общее условие будет выглядеть следующим образом:
((БИК=123) ИЛИ (БИК=345)) И (Город Входит В Москва, Брянск, Смоленск, Калуга …).
Рассмотрим еще один пример

Здесь по колонкам стоит операция И поэтому:
В данном случае условие, определяемое панелью 1, будет выглядеть так:
((БИК=123) И (БИК=345) И (БИК=456)) ИЛИ ((Город входит «…») И (БАНК=»АВТОБАНК»))
Управление таблицей лексем.
Управление таблицей лексем осуществляется кнопкой управления
таблицей
.
При нажатии на эту кнопку появляется всплывающее меню, где пользователь может выбрать нужную ему операцию.

1. В случае если на одной панели пользователю не хватает колонок он может добавить ее, выбрав команду «Добавить колонку».
2. В случае если на одной панели пользователю не хватает строк он может добавить их, выбрав команду «Добавить строку».
3. Для добавления панели типа «И» выберите команду «Добавить панель “И”»
4. Для добавления панели типа «ИЛИ» выберите команду «Добавить панель “ИЛИ”»
5. Для удаления панели выберите команду «Удалить панель»
6. Для изменения типа операции внутри панели выберите команду «Тип колонок». (по умолчанию тип колонок «ИЛИ»).
Контекстные меню вызываются при нажатии правой кнопки манипулятора «мышь» на каком либо элементе таблицы линейного справочника.

Пункт «Фильтровать похожих…» вызывает окно фильтра для столбца, на котором было вызвано меню.

Особенность данного фильтра состоит в том, что фильтруется источник на вхождение искомой фразы в любое значение выбранного поля. После ввода значения необходимо нажать клавишу «Enter» клавиатуры или щелкнуть левой кнопкой «мыши» вне синего окна фильтра. Для того, чтобы убрать форму без применения фильтра нужно нажать клавишу «Esc» клавиатуры.
Пункт «Фильтровать…» аналогичен пункту «Фильтровать похожих…», разница состоит в том, что данные фильтруются точно по указанному условию.

Пункт «фильтр-форма» вызывает форму фильтрации для столбца, на котором было вызвано меню.
Особенность данной формы состоит в том, что в ней показываются значения записей выбранного столбца в виде окна со списком и происходит последовательная фильтрация значений при многократном вызове. В списке поддерживается множественный выбор значений. Для множественного выбора используется клавиши «Shift» и «Ctrl» клавиатуры. Нажав и удерживая клавишу «Shift», нужно щелкнуть левой кнопкой мыши на записи в окне списка. При этом произойдет выделение всех записей, начиная с ранее выбранной, до той, на которой был произведен щелчок. Для выделения нужной записи и сохранения, ранее выделенных записей нужно нажать и удерживать при щелчке клавишу «Ctrl».

Для данной формы-фильтра возможны следующие опции:
- Флажок, позволяющий сужать список значений
при последовательной фильтрации данных, и наоборот показывать все значения при
уже отфильтрованных данных.
- Флажок, позволяющий использовать фильтр для
исключения выбранных значений.
- Опция дополнительного значения фильтра и
флажок фильтрации на вхождение заданной фразы в значение записи заданного
столбца. Данное окно может быть использовано, если возникла необходимость
ввести дополнительное условие. При сброшенном флажке «Фильтровать подобных» фильтрация будет происходить на точное совпадение
искомой фразы и значения записи.
- Кнопка выполнения фильтрации выбранных
значений. При нажатии на кнопку выполняется запрос над текущим источником
записей линейного справочника, т.е. условия ранее примененных фильтров остаются
в силе. Отменить фильтр можно с помощью соответствующей кнопки в панели
инструментов линейного справочника, или выполнив фильтрацию из формы линейного
или матричного фильтра.
Пункт меню «Искать в [имя столбца]» вызывает окно поиска и перехода к найденной записи. Поиск ведется по показанным в таблице линейного справочника записям. При ограничении количества показываемых записей в окне поиска будет выдано соответствующее предупреждение. Для того чтобы предварительно выбрать подходящий массив записей нужно воспользоваться каким-либо фильтром.

При запуске поиска, в том случае если указанная фраза входит в значение записи для выбранного столбца, происходит перемещение курсора таблицы на найденную запись. Если значение не найдено выдается соответствующее сообщение о завершении поиска.
Пункт меню «Искать следующее…» запускает механизм поиска с ранее введенным условием от последней найденной записи.

Данное меню во многом схоже с контекстным меню заголовков столбцов. Будут рассмотрены только новые пункты.
Пункт «Фильтр по выделенному» позволяет отфильтровать источник линейного справочника, используя в качестве условия текущее значение ячейки таблицы, на которой было вызвано меню.
Пункт «Исключить выделенное» позволяет отфильтровать источник линейного справочника, исключив значение ячейки таблицы, на котором было вызвано меню.
Пункт
«Отменить фильтр» отменяет все условия фильтра. Данный пункт меню аналогичен
нажатию кнопки отмены фильтра в панели инструментов линейного справочника.