Научная статья на тему 'Использование хеширования по нескольким сигнатурам для очистки и объединения словарей данных на примере названий географических объектов'

Использование хеширования по нескольким сигнатурам для очистки и объединения словарей данных на примере названий географических объектов Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
38
8
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Тодорико О. О., Добровольский Г. А.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Application of the Multiple Signature Search Index to Record Linkage in Geographical Names Dictionary

In this paper we present a new technique for improving the efficiency and scalability of record linkage. The algorithm constructs a hash set for each dictionary record attribute in such way that slight variations of attribute value cause small changes in the hashes. That kind of a hash set allows a fast detection of most of the unmatched records. The measured effectiveness of the algorithm proves high quality of a proposed method.

Текст научной работы на тему «Использование хеширования по нескольким сигнатурам для очистки и объединения словарей данных на примере названий географических объектов»

УДК: 004.7 : 004.512

О.А. Тодорико, Г.А. Добровольский

ИСПОЛЬЗОВАНИЕ ХЕШИРОВАНИЯ ПО НЕСКОЛЬКИМ СИГНАТУРАМ ДЛЯ ОЧИСТКИ И ОБЪЕДИНЕНИЯ СЛОВАРЕЙ ДАННЫХ НА ПРИМЕРЕ НАЗВАНИЙ ГЕОГРАФИЧЕСКИХ ОБЪЕКТОВ

Постановка проблемы. Со временем в словарях данных накапливаются ошибочные записи. Кроме лексического шума, возникающего из-за несогласованного употребления терминов и сокращений, ошибочного написания слов, серьёзной проблемой является структурная неоднородность [1]. Она появляется при объединении записей разной структуры. Однако успешный анализ требует правильных данных, поэтому после ввода необходимо исправить ошибки, установить правильные связи, убрать дубликаты. При этом элементарной операцией является поиск похожих записей.

Целью работы является применение разработанных словарных алгоритмов поиска по сходству для решения задачи очистки-объединения словарей с учетом лексической несогласованности.

Постановка задачи. Из двух источников данных А={а} и B={b} необходимо составить множества пар М={(а ,b) : a е A, b е B, a=b}, U ={(a ,b) : a e A, b e B, a Ф b} и P = {(a, b):(a, b) £M ^U} . Множество М — содержит пары близких записей, U — отличающиеся записи, Р - пары с неопределенной близостью. Основная задача — определить какому множеству принадлежит произвольно взятая пара (a,b).

Каждая запись из множества А или множества В содержит n атрибутов a={fai, fa2, ..., fan} и b={fbi, fb2, ... , fbn}. Для каждой пары записей (a,b) попарное сравнение атрибутов даст набор из n чисел d={di,d2, ... dn}, где d - расстояние между fai и fbi. На основании этого набора принимается решение о принадлежности пары к одному из трех множеств M, U или P.

Анализ публикаций. Описанная проблема известна под разными названиями [1]: связывание записей, удаление дубликатов, очистка-объединение, идентификация экземпляров, уплотнение базы данных, сопоставление названий. Далее в тексте будет использоваться термин очистка-объединение.

В настоящее время для очистки-объединения применяются и разрабатываются программные инструменты: Febrl, TAILOR, WHIRL, Flamingo, WizSame, BigMatch [1]. В них для вычисления близости строк чаще всего используются известные метрики: Jaro-Winkler, дистанция редактирования, n-граммы и их модификации [1], иногда применяется фонетическое кодирование. Для поиска записей применяются упорядоченные списки, разбиение на блоки, упорядоченные хеш-таблицы и т. д. [1]. Для принятия решения о близости записей, имеющих несколько строковых атрибутов, применяются различные варианты классификаторов: максимизация математического ожидания (EM-Based), минимизация погрешности (Error-Based), минимизация стоимости (Cost-Based), классификаторы, основанные на правилах, разные способы кластеризации, смешанные модели. Показателями качества очистки-объединения служат относительное сокращение объема данных, полнота и точность выборки близких пар [1].

Алгоритм очистки-объединения словарей в простейшей реализации имеет сложность порядка 0(n*m), где n - количество элементов множества А={а}, m -количество элементов множества B={b}. Поэтому для работы с большими объемами данных необходимо реализовать максимально быструю проверку близости записей.

Однако значительная вычислительная сложность алгоритмов Jaro-Winkler и дистанции редактирования делает неэффективным их использование для работы с большими массивами данных. Метод n-грамм работает быстро, пока не возникает необходимость интенсивного произвольного доступа к файлу поискового индекса. Также следует отметить, что отличающиеся всего одной буквой слова с длиной менее 2n не всегда имеют общие подстроки длины п.

Вследствие низкой скорости традиционных методов сравнения строк, большинство существующих программных систем не могут работать с наборами данных большого объёма. Исключением является только система BigMatch, но и в ней количество данных ограничено объемом оперативной памяти.

Ранее было показано [1,6], что значительно ускорить поиск по сходству может предварительная фильтрация с помощью быстрых и неточных функций сравнения. Наиболее известными из таких методов являются хеширование по сигнатуре [1] и, в случае поиска точного соответствия, фильтр Блума[1]. Такие алгоритмы легко адаптируются для параллельных вычислений и оптимальны при обработке больших объемов данных.

Другой недостаток перечисленных выше систем, хорошо работающих с англоязычными данными, - их неприспособленность к работе с синтетическими языками (украинским, русским и т.д.). В частности отсутствуют подходящие фонетические алгоритмы и морфологические анализаторы.

Основная часть. Опыт эксплуатации системы учёта абитуриентов показал, что ошибки чаще всего встречаются в географических названиях и адресах. Поэтому для иллюстрации предлагаемого метода были выбраны словари «Школы» и «Населенные пункты». Эталонным считался словарь «Населенные пункты».

Аналогичная задача решалась Андреевым А.М., Березкиным Д.В., Нечкиным А.С., Симаковым К.В., Шаровым Ю.Л. [1] c помощью метода расширения выборки. При этом выполнялся только поиск опечаток, а межобъектные связи игнорировались. Кроме того следует отметить, что поиск 2-х и более опечаток методом расширения выборки значительно замедляется [5].

Предварительное изучение словаря «Школы» показало, что чаще всего допускаются ошибки в написании, в переводе на украинский язык, подмена символа на его визуальный эквивалент, например, украинская «i» заменяется латинской «i». Кроме того, встречаются ошибки в связях: отнесение населенного пункта к неправильному району или к микрорайону, пропуск района.

В отличие от исправления обычных текстов, эта задача имеет свою специфику. Для географических названий практически не требуется морфологический анализ, существует эталонное множество — список населённых пунктов, в котором заданы связи между ними (населенный пункт принадлежит известным району и области) [1].

Запись в словаре «Населенные пункты» содержит несколько атрибутов (населенный пункт, район, область), при этом населенный пункт может не относиться ни к одному району. Запись в словаре «Школы» также содержит кроме идентификатора и названия школы атрибуты (населенный пункт, район, область). Таким образом, необходимо сопоставить каждой школе правильный населённый пункт, район и область с учётом связей между ними.

Для принятия решения о похожести двух записей необходимо сначала вычислить расстояние между парами соответствующих атрибутов, и на основании полученного набора расстояний, отнести записи к множеству М, U или Р. При этом учитываются и расстояние, и связи между атрибутами - наличие населенного пункта в данной области и данном районе. Во множество М попадают только пары с минимальным расстоянием и связанными атрибутами. Если какое-то условие не

выполняется, запись относится к множеству Р, при невыполнении всех условий к множеству и:

(a,b) е

M если d(fai, fbi) < limit, i = r, a, c

P если d(far, fbr ) < limit или d(faa, fba ) < limit или d(faс, fbc ) < limit U во всех остальных случаях

(1)

где a={far, faa, fac} - эталонная запись, имеющая строковые атрибуты far -область, faa -район, fac -населенный пункт; b={fbr, fba, fbc} - запись школы содержит аналогичные

поля; d(fai,fbi), i = r,a,c - дистанция между атрибутами записей.

Если в записях a и b заданы все атрибуты, то решение принимается по правилу (1) с учетом дистанций между всеми атрибутами. Если населенный пункт не относится ни к одному району, дистанция между районами считается равной нулю, даже если он задан в записи школы. Отдельно рассматривается случай, когда район указан в эталонном образце, а в записи школы - нет. Если в заданной области одна запись с данным населенным пунктом, то результат записывается во множество М, если несколько - во множество Р, иначе во множество U.

Вычисление расстояния между строковыми атрибутами выполняется в два этапа. Сначала отбрасываются совсем неподходящие пары, для чего эффективнее всего использовать хеширование по нескольким сигнатурам[5]. А на оставшемся множестве пар уже используется более точный метод - метрика Дамерау-Левенштейна.

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

Сигнатурой строки sign(v) при заданном алфавите Abc размера m называется битовый вектор размерности m, к-й элемент которого равняется единице, если в строке v есть к-й символ алфавита. Полученный битовый вектор интерпретируется как двоичная запись числа - значения хеш-функции H(v). Если строка v получена из строки u в результате одной операции редактирования, то в силу определения сигнатуры, битовые векторы sign(v) и sign(u) отличаются не более чем в двух разрядах. Это свойство позволяет использовать сигнатуры для поиска по сходству.

Структура данных, использованная для хеширования по нескольким сигнатурам, легко поддается горизонтальному масштабированию - разделению записей в поисковом индексе на группы, которые хранятся и обрабатываются на разных серверах.

Для реализации было выбрано два различных варианта построения сигнатур.

Вариант 1. Каждый атрибут в поисковом индексе описывается набором сигнатур H={Ho,Hi,...,Hn}, в котором Ho - все символы атрибута, указанные в алфавите Abc, Hi (i=1,2,...,n, где n=L/3, L — длина атрибута) — сигнатуры непересекающихся подстрок длиной три символа. Если количество символов не кратно трем, то в конец добавляются пробелы.

До вычисления расстояния между атрибутами вычисляется количество общих бит dw сигнатур H0(fa) - атрибута эталона и H0(fb) - атрибута школы. Если dw меньше минимально допустимого значения, то запись считается неподходящей и пропускается.

Дополнительные хеши Ht (i=1,2,3,...,n) используются для ранжирования результатов поиска с помощью релевантности, вычисляемой по формуле:

п

Кв1=^ + ^ ^ (2)

1=1

где wi - количество общих бит 1-й сигнатуры Hi(fb) и 1-й сигнатуры Hi(fa).

Вариант 2. В этом варианте для сравнения строк fa и_/Ь используются сигнатуры H={Ho,Hь ■■■,Hn}. Для построения H1(х) используются все символы строки хе {fa, fb}. Для каждого из п наиболее частых символов языка находится его позиция k в строке, и сигнатура Hi(x) (¡=2,...,п) вычисляется для подстроки из символов, находящихся на позициях ^1, ^ k+1. В H0(x) хранится длина строки x. Ближайшими считаются строки с минимальной величиной Dist:

I I п

Яш = -|+¿¿Ш + +£w¿. (3)

¿=1

где Lfa и Lfb длины атрибутов fa и /Ь соответственно, diff - количество символов, которые есть в fa, но нет в_/Ь; dw - количество символов, которые есть в /Ь, но нет в /а^ wi - количество несовпадающих бит в сигнатурах Hi(fb) и Hi(fa), если Hi(fb) и Hi(fa) не равны нулю, при этом wi=0, если обе сигнатуры нулевые, иначе wi=1.

Если в формуле (3) одно из слагаемых превышает допустимое количество ошибок, пара записей отбрасывается и далее не рассматривается.

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

Показателем качества предварительной фильтрации служит эффективность отбора индекса — процент пар, которые могут оказаться близкими[6]. Таким образом, чем больше доля правильно отброшенных пар, тем меньше показатель эффективности и тем качественнее работает алгоритм.

В процессе очистки справочника школ необходимо было каждой из 1525 записей найти соответствие в эталонном справочнике населенных пунктов, содержащем 29 801 запись. Таким образом, необходимо было рассмотреть 45 446 525 пар. Этап предварительной фильтрации оставил 21 894 пар для подробного анализа, сократив выборку в 2075.75 раз. То есть эффективность отбора индекса равна 0.048 %.

По результатам работы были вычислены общепринятые показатели работы алгоритмов с различными способами индексирования — полнота и точность [4].

Всего выбрано 1478 пар записей, из них правильно сопоставлено 1477, т.е. точность равна 1477/1478=0,9993. В одной паре при наличии двух равнозначных результатов был выбран первый встретившийся. С ошибочно введённым названием населенного пункта «Бшецьке», было связано название «Бшеньке», хотя в той же области существует и «Бшицьке».

В списке записей, которым не нашлось соответствия в эталоне, содержатся школы, имеющие более четырех ошибок в названии населенного пункта, или неправильно выбранные область или район. Если ослабить требования к близости названий района или области, нельзя однозначно выбрать пару искомой записи, так как возможно несколько равноценных вариантов. Исключение составляют три записи, у которых совпадают область и населенный пункт, но не совпадает район. Эти записи эксперт может связать с эталонными, поэтому общее число релевантных пар будем считать равным 1480=1477+3. Таким образом полнота равна 1477/1480=0,9980.

Вычисленные показатели точности и полноты подтверждают высокое качество работы метода.

Выводы. На примере словарей данных «Населенные пункты» и «Школы» показано, что предложенные методы предварительной фильтрации позволяют существенно сократить количество трудоемких операций вычисления близости строк.

Одним из важных преимуществ данного метода является его независимость от языка - он одинаково эффективно работает с украинским, русским, английским и другими языками.

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

ЛИТЕРАТУРА:

1. Elmagarmid K. Ahmed, Duplicate Record Detection: A Survey / Ahmed K. Elmagarmid, Panagiotis G. Ipeirotis, and Vassilios S. Verykios // IEEE transactions on knowledge and data engineering, january 2007. - 2007.- Vol. 19. - No. 1.

2. Manning Christopher, Introduction to Information Retrieval / Christopher D. Manning, Prabhakar Raghavan, Hinrich Schütze // Cambridge University Press, 2008. - 496 р.

3. Record Linkage: A Machine Learning Approach, A Toolbox, and A Digital Government Web Service / Mohamed G. Elfeky, Vassilios S. Verykios, Ahmed K. Elmagarmid, Thanaa M. Ghanem, Ahmed R. Huwait // Dept. of Computer Sciences, Purdue University, Technical Report CSD-03-024. - Р.29.

4. Тодоршо, О.О. Словниковий пошук за схож1стю за допомогою хешiв на основi сигнатур / О.О. Тодоршо, Г.А. Добровольський // Вюник ХНТУ. - Херсон: ХНТУ. - 2010. - № 3(39). - С. 467-471.

5. Бойцов, Л. М. Классификация и экспериментальное исследование современных алгоритмов нечеткого словарного поиска [Электронный ресурс] / Л. М. Бойцов // Труды шестой всероссийской научной конференции (RCDL'2004) - Пущино, Россия, 2004. - Режим доступа: http://www.rcdl.ru/papers/2004/paper27.pdf

6. Bloom Burton Howard Space/time trade-offs in hash coding with allowable errors / Burton H. Bloom // Communications of the ACM 1970. - Т. 13 (7). - P.422-426.

7. Автоматизация обнаружения и исправления опечаток в названиях географических объектов для системы семантического контроля документов электронной библиотеки / А.М. Андреев, Д.В. Березкин, А.С. Нечкин, К.В. Симаков, Ю.Л. Шаров // Труды девятой всероссийской научной конференции (RCDL'2007) - Переславль-Залесский: Университет города Переславль, 2007. -Т.2. - С. 49-56.

8. Органи мюцевого самоврядування: Законодавство, щодо адмшютративно-територiального устрою [Электронный ресурс]. - Режим доступа: http://www.rada.gov.ua/zakon/new/ADM/zmist.html

ТОДОРИКО Ольга Алексеевна - ассистент кафедры информационных технологий Запорожского национального университета. Научные интересы:

- методы и технологии информационного поиска.

ДОБРОВОЛЬСКИЙ Геннадий Анатольевич - зав. лаб. веб-технологий и дистанционного обучения ЗНУ. Научные интересы:

- информационные технологии в образовании, разработка архитектуры современного программного обеспечения.

i Надоели баннеры? Вы всегда можете отключить рекламу.