![]() |
![]() |
|||||
![]() | ||||||
![]() |
![]() АЛГОРИТМЫ Новости Рассылка новостей Форум AlgoPascal Редактор блок-схем Статьи О сайте Контакты |
![]() |
![]() Обзор поисковых методов.
Автор: Бойцов Леонид Обзор поисковых методов.Наиболее распространенные в настоящее время методы поиска, используемые информационно-поисковыми системами (ИПС), можно разделить на две группы:
В первую группу попадает, по-видимому, абсолютное большинство современных ИПС, в том числе и ПС, которые обрабатывают запросы на естественных языках (Яндекс, Yahoo, и.т.д.). В процессе поиска такие системы, как правило, производят выборку всех документов, содержащих хотя бы одно ключевое слово (грамматическую форму данного слова или синонима), а затем ранжируют эти документы по убыванию степени соответствия (релевантности) поисковому запросу. Кластерные методы основаны на следующем наблюдении: близкие в смысле значения функции соответствия документы обычно выбираются одинаковыми поисковым запросам. Таким образом, разбив все документы на группы или кластеры и построив в каждой группе характерного представителя: центроид кластера, можно сравнивать запрос не с каждым документом по отдельности, а сначала только с центроидами. Если центроид релевантен запросу, то нужно продолжать поиск внутри кластера, нет - перейти к рассмотрению другого кластера. Поиск по ключевым словам (терминам). Обратимся к более подробному описанию поиска по ключевым словам. Будучи весьма эффективным и легко реализуемым, он получил наибольшее распространение. Для поиска по ключевым словам используют, в основном, индексы следующих двух типов:
ИФ являются аналогом предметного указателя в конце книги. ИФ - это множество пар: ключевое слово, адрес вхождения ключевого слова в документ. Детализация адреса термина бывает различной: вхождение слова может быть задано на уровне документа, абзаца, или даже на уровне точного местоположения в тексте. Основным недостатком ИФ является его большой объем. Если не применять специальные методы кодирования списков вхождений, то размер ИФ может превышать размер информационного массива документов в 2-3 раза. СФ разрабатывались как альтернативный по отношению к ИФ с более компактным индексом. Размер СФ составляет около 50% от размера исходных данных. В настоящее время разработаны методы кодирования [4], позволяющие строить компактные ИФ, поэтому СФ применяются не очень часто. Рассмотрим типы запросов в ИПС. Типы поисковых выражений можно классифицировать по нескольким параметрам. Прежде всего, можно выделить контекстно-зависимые и контекстно-независимые запросы. В случае контекстно-независимых запросов предполагается, что документ состоит из некоторых неделимых компонентов: в большинстве случаев, слов. Контекстно-зависимые запросы могут быть очень разнообразны, начиная с поиска подстроки в документе, и заканчивая условием на наличие определенных ключевых слов в одном предложении, абзаце, и.т.д. Язык задания поискового запроса может быть, как формальным (булевым), так и естественным. По этому признаку запросы можно разделить на булевы или логические и ранжированные. В случае булева поиска пользователь задает условие вхождения ключевых слов в документ в виде булевской функции. При поиске по ранжированным запросам текст запроса обычно записывается на естественном языке. ИПС разбирает запрос, выделяя в нем слова, или устойчивые выражения, расширяет запрос синонимами терминов поискового запроса и производит поиск всех документов, содержащих хотя бы один термин. Найденные документы ранжируются по степени релевантности запросу. Возможны различные варианты сопоставления ключевых слов запроса и документа:
Название первого пункта говорит само за себя: при поиске на точное равенство ищутся только те документы, в которые ключевое слово входит точно в той форме, которую указал в запросе пользователь. К сожалению, поиск на точное соответствие не позволяет найти слово, если в документе оно встречается в другой грамматической форме, поэтому большинство ИПС осуществляет поиск с учетом изменяемости слова. Современные системы также отождествляют такие слова как делать и дело, осуществляя поиск по словоформе. Поиск по словоформе и поиск с учетом изменяемости слова являются одним из вариантов поиска по сходству, учитывающим только определенный тип ошибок. В электронных документах бывают орфографические ошибки да и сам пользователь не всегда набирает термины запроса правильно, поэтому ИПС должна "уметь" находить достаточно "похожие" слова. Ключевым моментом поиска по сходству является выбор меры степени "похожести". Я буду использовать метрику (функцию) Левенштайна, которую также часто называют расстоянием редактирования. Расстояние Левенштайна между словами u и v равно минимальному количеству операций редактирования, необходимых для преобразования u в v. Выбор в качестве меры близости метрики Левенштайна обусловлен двумя факторами. Во-первых, расстояние Левенштайна формализует интуитивное понятие об "ошибке", а во-вторых, существует множество алгоритмов эффективного его вычисления [2,6,8,13,14,17]. Фактически, при поиске требуется не столько значение расстояния между строками u и v, сколько знание превышает ли L(u,v) некоторое наперед заданное пороговое значение. Тестирование программы agrep [13,14] показывает, что время, затрачиваемое на сравнение слов, на порядок меньше времени считывания с диска, в том числе, при поиске по сходству. Таким образом, оптимизация поиска по сходству почти напрямую зависит от сокращения объема дисковых операций. Для поиска на неточное равенство также целесообразно использовать ИФ. Правда, при этом в словаре нужно обязательно хранить все без исключения термины, встречающиеся в документах. Следует отметить, что в контексте нечеткого поиска в инвертированном файле одним из самых важных моментов является индексация словаря, потому что поиск по сходству требует больших временных затрат. Обзор методов поиска по сходству в словаре.В настоящее время для поиска термина в словаре применяют, в основном, следующие методы:
Полный перебор. Данный метод осуществляет последовательное считывание данных с диска и сравнение с термином запроса. Основным достоинством этого метода является простота реализации и, как это ни странно, довольно высокая скорость работы. Дело в том, что при последовательном считывании больших файлов (при условии невысокой фрагментации на диске) достигается пиковая скорость чтения. Кроме того, этот метод позволяет реализовать многофункциональный поиск, например, по подстроке или регулярным выражениям, без каких-либо существенных ограничений. Метод расширения выборки. Суть данного метода заключается в следующем: строится множество всевозможных "ошибочных" слов, например, получающихся из исходного в результате одной операции редактирования, после чего построенные термины ищутся в словаре (на точное соответствие). Метод n-грам. Идея этого метода заключается в следующем: если строка v "похожа" на строку u, то у них должны быть какие-либо общие подстроки. Поэтому бывает целесообразно строить инвертированный файл, в котором роль документов играют сами термины, а роль терминов - подстроки длины n, называемые также n-грамами. Основной недостаток метода n-грам - большой размер файла. Trie-деревья. В отличии от обычных сбалансированных деревьев, в trie-дереве все строки, имеющие общее начало, располагаются в одном поддереве. Каждое ребро помечено некоторой строкой. Терминальным вершинам ("листьям") соответствуют слова списка. Пусть список строк содержит термины: дерево, деревья, пол, половик; тогда соответствующее ему trie-дерево изображено на рис. 1:
Чтобы ни одно из слов не было префиксом другого слова (как в случае слов пол и половик), в конец каждого слова добавляется специальный символ $, отсутствующий в алфавите. Обычно trie-деревья используются для поиска по подстроке, но их можно использовать, и весьма эффективно, для поиска по сходству [13]. Чтобы обеспечить поиск по подстроке, необходимо хранить в trie-дереве все суффиксы (или префиксы терминов). При этом, как и в случае метода n-грам размер индекса в 2-10 раз превышает размер словаря. Триангуляционные деревья. Триангуляционные деревья [18] позволяют индексировать множества произвольной структуры, при условии, что на них задана метрика. Существует довольно много различных модификаций этого метода, но все они не слишком эффективны в случае текстового поиска и чаще используются для организации поиска в базе данных изображений или других сложных объектов. Литература.
1. Э. Озкарахан, Машины баз данных и управление базами данных, М. Мир 1989. |
![]() |
||
|
![]() |