Применение обобщенного дерева поиска для нечеткого поиска

реклама
УДК 004.4 (06) Информационные технологии
А.Е. КОРОТКОВ
Научный руководитель – В.В. ПАНФЕРОВ, к.т.н., доцент
Национальный исследовательский ядерный университет «МИФИ»
ПРИМЕНЕНИЕ ОБОБЩЕННОГО ДЕРЕВА ПОИСКА
ДЛЯ НЕЧЕТКОГО ПОИСКА ТЕКСТА
В данной работе реализовано новое применение обобщенного дерева поиска для нечеткого поиска текста, в котором для задания критерия запроса используется расстояние по Левенштейну.
В современных приложениях всё чаще возникает необходимость в выполнении нестандартных поисковых запросов. Одновременно с этим информационные системы часто строятся на больших объемах данных
и оказываются высоконагруженными. Поэтому задача построения структур данных, позволяющих ускорить
выполнение нестандартных поисковых запросов, является очень актуальной. Обобщенное дерево
поиска(GiST) является инфраструктурой разработки поисковых деревьев, расширяемой как с точки зрения
типа данных, по которым производится поиск, так и с точки зрения поисковых запросов [1]. В данной работе рассматривается применение GiST для нечеткого текста. Отличие от других работ в этой области состоит
в том, что в качестве меры расстояния между строками текста выбрано расстояние по Левенштейну. Расстояние по Левенштейну между двумя строками – это минимальное число операций вставки, удаления и
замены символа, которые требуются, чтобы получить из одной строки другую.
В GiST определен интерфейс, реализовав который можно создать новую разновидность индекса. Особенностью GiST является то, что этот интерфейс абстрагирован как от конкретного типа данных, так и от
конкретных поисковых запросов. Интерфейс GiST состоит из функций consistent, union, compress, decompress, penalty и picksplit. Рассмотрим то, как эти функции были реализованы в данной работе.
В GiST каждый узел дерева состоит из пары (p, ptr), где p – это предикат, а ptr – указатель на следующий
узел дерева. При этом предикат p должен быть истинным для кортежей всех листовых узлов, достижимых
из данного узла. В данной реализации предикат задается парой (s,d), где s – это некоторая строка, а d – максимальное расстояние по Левенштейну относительно этой строки. Таким образом предикат p имеет следующий вид p(t) = (levinshtein(s, t) ≤ d), где levinshtein – функция определения расстояния по Левенштейну.
Чтобы яснее понять смысл этого предиката, то множество слов, удовлетворяющих ему можно представить
себе как некую сферу в условном пространстве строк с центром в точке s и радиусом d. Предикат поискового запроса определяется аналогично предикату узла дерева. Он позволяет искать в базе данных такие строки, расстояние между которыми и заданной строкой s не превосходит фиксированного числа d, т.е. такие
строки, которые можно получить из s сделав не более d элементарных операций. Рассмотрим то, как в данной работе были реализованы интерфейсные функции GiST:
 Consistent должна для предиката узла дерева p и поискового предиката q определить их совместность. Пусть предикат p задан парой (s1, d1), а предикат q задан парой (s2, d2). Несложно показать, что предикаты p и q совместны, когда выполняется соотношение levinshtein(s1, s2) ≤ d1 + d2.
 Union выполняет объединение n поисковых предикатов. В данной работе union была реализована с
помощью попарного объединения предикатов. Для объединения двух предикатов был разработан специальный алгоритм, основанный на двумерном выравнивании, рассмотрение которого выходит за рамки данных тезисов.

Compress и decompress носят технический характер.
 Penalty для предикатов p и q оценивает увеличение размера union(p, q) по сравнению с p (под размером подразумевается некоторая мера объема множества значений, соответствующих предикату). В данной работе в качестве меры размера использовался d3, поскольку в ходе экспериментов он давал наилучшие
результаты.
 Picksplit разделяет заданный набор предикатов на два набора. При этом желательно, чтобы размер
получившихся наборов был минимален. В данной работе использовался алгоритм Гутмана.
Эксперименты с полученной структурой индекса показывают, что на словарях английского языка удается достичь уменьшения времени поиска от 50% до 80% по сравнению с последовательным поиском. Также
было выявлено существенное влияние на качество индекса параметра fillfactor, который определяет то,
насколько плотно GiST будет размещать узлы дерева в страницах памяти.
Список литературы
УДК 004.4 (06) Информационные технологии
1. J.M. Hellerstein, J.F. Naughton and A. Pfeffer, "Generalized Search Trees for Database Systems",
Proc. 21st Int'l Conf. on Very Large Data Bases,Zürich, Switzerland, Sep. 1995, 562-573.
Скачать