При проведении анализа процессов и формировании атрибутов событий часто бывает нужно провести некую сложную обработку. Например, сопоставить тексту в произвольно записанной транлитерации текст на кириллице. В этом случае scala становится просто незаменимой, так как позволяет быстро и эффективно реализовать любой алгоритм. В том числе и быстрое соединение столбцов в кириллице и латинице с помощью предварительной разбивки текста на куски, которые можно сопоставить и куски, которые сопоставить нельзя.
ИПФ - индексная поисковая функциия - функция, отображающая текст в целое число, обладающая тем свойством, что для двух различных своих аргументов, один из которых может быть переведён в другой посредством транслитерации, функция возвращает одно и то же значение.
ИПФ, реализованная для кириллицы и латиницы, позволяет повысить качество сравнения между собой различных вариантов транслитерации без значительного роста алгоритмической сложности за счёт того, что сначала поиск идёт по ИПФ, которая позволяет сравнивать быстро, но даёт ложноположительные срабатывания, а затем производится дополнительное сравнение среди найденного, с применением более сложных алгоритмов, таких, к примеру, как формированиие регулярного выражения с вариантами транслитерации и поиск с использованием его.
Проверить работу ИПФ можно на форме ниже. Введите в левое текстовое поле ФИО на латинице или кириллице, вперемешку, по одному ФИО на строке и нажмите на кнопку "Вычислить ИПФ". ИПФ будет вычислена для каждой введённой строки, результат появится в правом текстовом поле.
Пример поиска по ИПФ + редакционное растояниие. ИПФ нарезает неподъёмные куски текста на небольшие массивы, внутри которых идёт поиск с помощью попарного нешустрого вычисления трудоёмкой метрики.
По вопросам использования ИПФ пишите на почту inl@yandex.ruНаписано на Dotty и Wicket
!без Web 2.0!
Адаптировано для работы в Lynx
канал в Дзен