интересно
Предыдущая | Содержание | Следующая

Построение информационно-поисковых систем и поиск по сходству

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

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

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

Со скоростью поиска все относительно понятно - чем быстрее вы найдете необходимые документы, тем лучше. А вот с эффективностью поиска документа ситуация не так проста. Что считать эффективным поиском? Для того чтобы понять это, рассмотрим модели поиска.

Здесь существует два подхода. Первый состоит в том, что в процессе поиска вы ищете документ, который точно существует в системе, и ваша задача - свести процесс к его нахождению. Этот метод применяется в 90% всех случаев. Второй подход состоит в том, что вы ищете все документы, которые могут относиться к интересующему вас вопросу. Очевидно, применение данного подхода целесообразно в аналитических и исследовательских задачах. Для него характерны такие термины, как полнота поиска - соответствие между найденными документами по данному запросу и действительному списку документов; шум при поиске - соотношение (соответствие) соответствующих и несоответствующих запросу документов.

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

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

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

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

Современная поисковая система содержит в себе несколько подсистем.

WEB-агенты. Осуществляют поиск серверов, извлекают оттуда документы и передают их системе обработки.

Система обработки. Индексирует полученные документы, используя синтаксический разбор и стоп-листы (где, помимо прочего, содержатся все стандартные операторы и атрибуты HTML).

Система поиска. Воспринимает запрос от системы обслуживания, осуществляет поиск в индексных файлах, формирует список найденных ссылок на документы.

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

Существующие поисковые системы успешно работают с HTML-документами, с обычными ASCII-текстами и новостями Usenet. Трудности возникают для текстов Winword и даже для текстов PostScript. Связано это с тем, что такие тексты содержат большое количество управляющих символов и текстов. Трудно (практически невозможно) осуществлять поиск для текстов, которые представлены в графической форме. К сожалению, к их числу относятся и математические формулы, которые в HTML имеют формат рисунков (это уже недостаток самого языка). Так что можно без преувеличения сказать, что в этой крайне важной области, имеющей немалые успехи, мы находимся лишь в начале пути.

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

В основе использования взвешенного индекса цитирования (PageRank или LinkPopularity) лежат следующие две идеи:

чем выше индекс цитирования страницы, тем весомее ссылка с нее;

чем больше ссылок на странице, тем меньше вклад в индекс цитирования каждой ссылки.

- коли-

чество исходящих со страницы у ссылок, a q — некоторый коэффициент затухания, в интервале от 0 до 1, тогда для взвешенного индекса цитирования выполняется равенство:

ссылающихся на стра-

ницу i.

Вообще говоря, существуют и другие модели описания документов: вероятностная модель информационных потоков и поиска и модель поиска в нечетких множествах.

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

Проблема, связанная с индексированием, заключается в том, что приписывание поискового образа документу или информационному ресурсу опирается на представление о словаре, из которого эти термины выбираются, как о фиксированной совокупности терминов. В традиционных системах существовало разбиение на системы с контролируемым словарем и системы со свободным словарем. Контролируемый словарь предполагал ведение некоторой лексической базы данных, добавление терминов в которую производилось администратором системы. Таким образом, все новые документы могли быть заиндексированы только теми терминами, которые были в этой базе данных. Свободный словарь пополнялся автоматически по мере появления новых документов. Однако на момент актуализации словарь также фиксировался. Актуализация предполагала полную перезагрузку базы данных. В момент этого обновления перегружались сами документы и обновлялся словарь, а после его обновления производилась переиндексация документов. Процедура актуализации занимала достаточно много времени, и доступ к системе в момент ее актуализации закрывался.

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

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

Язык задания поискового запроса может быть как формальным (булевым), так и естественным. По этому признаку запросы можно разделить на булевы или логические и ранжированные.

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

Возможны различные варианты сопоставления ключевых слов запроса и документа:

точное соответствие;

с учетом изменяемости слова;

по сходству.

Название первого пункта говорит само за себя: при поиске на точное равенство ищутся только те документы, в которые ключевое слово входит точно в той форме, которую указал в запросе пользователь.

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

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

представляет i-й

символ х.

Обобщенная задача сопоставления строк, включающая в себя нахождение подстрок строки текста, близких к заданному образцу строки, называется также задачей нечеткого сопоставления строк.

Задачу нечеткого сопоставления строк можно сформулировать следующим образом:

Пусть даны также целое к> 0 и функция расстояния d.

Задача, таким образом, состоит в том, чтобы при заданной функции расстояния найти все подстроки текста, отстоящие от образца не более, чем на к. Если d является расстоянием Хемминга (расстояние Хемминга между двумя строками одинаковой длины определяется как число позиций, в которых символы не совпадают. Это эквивалентно минимальной цене преобразования первой строки во вторую в случае, когда разрешена только операция замены с единичным весом), задача называется сопоставлением строк с к несовпадениями, если же d - расстояние Левенштайна, задача называется сопоставлением строк с к различиями.