Обзор алгоритмов нечеткого сопоставления записей

advertisement
УДК 004 (06) Информационные технологии
Н.Л. ЦЫГАНОВ, М.В. МАРКОВСКИЙ
Московский инженерно-физический институт (государственный университет)
ОБЗОР АЛГОРИТМОВ НЕЧЕТКОГО СОПОСТАВЛЕНИЯ ЗАПИСЕЙ ПРИМЕНИТЕЛЬНО
К ЗАДАЧЕ ИСКЛЮЧЕНИЯ ДУБЛИРОВАНИЯ ПЕРСОНАЛЬНЫХ ДАННЫХ
В работе рассматриваются алгоритмы нечеткого сопоставления строк как ключевой части алгоритмов нечеткого
сопоставления записей баз данных, содержащих персональные данные, применительно к задаче исключения
дублирования данных в практике Европейской Организации Ядерных Исследований (ЦЕРН).
Поиск дублирующихся учетных записей, а, следовательно, нечеткое сопоставление записей, является
одной из ключевых операций при работе с базами данных персонала крупных организаций [1]. Из практики
группы Автоматизированных информационных систем департамента Информационных технологий (IT-AIS)
ЦЕРН следуют следующие требования к алгоритму нечеткого сопоставления строк как части алгоритма
нечеткого сопоставления записей:
 поиск всех возможных дубликатов;
 возможность сопоставления строк, содержащих пробелы и дефисы;
 высокая вероятность принятия положительного решения при сравнении строк с одним пропуском
(пропуск части имени);
 некритичность затрат памяти и времени работы относительно размеров сравниваемых строк (средняя
длина строк < 8)
 относительная простота алгоритма.
Алгоритмы нечеткого сопоставления строк можно поделить на два класса: фонетические и
орфографические. Орфографические алгоритмы оценивают сходство между двумя строками с помощью
количества шагов, необходимых для трансформации одной строки в другую или на основе общих подстрок.
Мерами измерения являются, соответственно, дистанция редактирования (edit-distance) и сходство
(similarity).
Фонетические алгоритмы ставят в соответствие каждой из строк фонетический код, а затем применяют
операции сравнения, обычно основанные на фонетических свойствах, иногда в сочетании с методами
вычисления дистанции редактирования. До середины 90-х годов фонетические алгоритмы (наиболее
известными являются Soundex, реализованный в некоторых СУБД, и Phonix) считались превосходящими
орфографические. Однако было показано, что они позволяют извлечь только около 25% потенциально
дублирующихся записей по сравнению с более чем 60% результативностью орфографических алгоритмов
при тех же условиях эксперимента [2]. Кроме того, Soundex принципиально не подходит при сопоставлении
отличающихся в первом символе или имеющих пробелы строк.
Одним из наиболее распространенных орфографических алгоритмов является метод динамического
программирования Вагнера-Фишера, идея которого состоит в последовательной оценке расстояния между
всё более длинными префиксами строк с помощью матрицы весов замен. Затраты времени и памяти можно
оцениваются как O(mn), однако, этот метод прост в реализации и эффективен для строк небольшой длины.
Другим широко известным методом динамического программирования является алгоритм СмитаВатермана [3]. Как и предыдущий метод, он использует понятия дистанции редактирования и весов замен,
однако вводит два дополнительных параметра: s – стоимость начала и c – стоимость продолжения пропуска.
При s > c поощряются одиночные пропуски по сравнению с множественными пропусками, что и требуется в
случае сравнения персональных данных. Затраты можно оценить как O(mn).
Существует большое многообразие орфографических алгоритмов, имеющих схожий принцип, но
отличающихся метриками, либо значительным усложнением логики и введением дополнительных структур
данных для улучшения производительности и уменьшения ресурсоемкости для длинных строк, либо
имеющих менее интуитивно-понятные результаты. Тем не менее, для использования в конкретной
предметной области часто имеет смысл провести оптимизацию выбранных алгоритмов либо использовать
их комбинацию.
Большое значение имеет выбор стратегии предварительного отбора записей, которая позволила бы
существенно ограничить количество сопоставляемых записей, однако не вела бы к падению точности и
потери потенциальных дубликатов. Кроме того, существенна методика задания априорных правил и
обучения методов нечеткого сопоставления записей.
Список литературы
1. Цыганов Н. Проблемы очистки и избежания дублирования персональных данных с помощью методики нечеткого
сопоставления в практике Европейской Организации Ядерных Исследований // Науч. сессия МИФИ-2005. Сб. науч. тр. М.: МИФИ,
2005. Т.12.
2. Kolatch E., Toye J., Dorr B. Look alike: Sound alike algorithms for assessing drug name similaritie. Project Performance Corporation,
University of Maryland, 2004.
3. Monge A.E. Adaptive detection of approximately duplicate database records and the database integration approach to information
discovery. University of California, San Diego, 1997.
_______________________________________________________________________
ISBN 5-7262-0633-9. НАУЧНАЯ СЕССИЯ МИФИ-2006. Том 15
1
Download