Введение

Классическая модель поиска информации.

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

Определения

Индексный термин – это слово или выражение, которое может быть подвергнуто стеммингу, описывающее или характеризующее документ, например, ключевое слово, указанное для статьи в журнале. Пусть L – множество всех таких индексных терминов. Документ – это любое подмножество множества L. Запрос – это булево выражение в нормальной форме: где истинно для когда (эквивалентно, запрос может быть представлен в дизъюнктивной нормальной форме). Наша задача – найти множество документов, удовлетворяющих запросу Q. Эта операция называется поиском и состоит из следующих двух шагов:

1. Для каждого элемента из L найти множество документов, удовлетворяющих :
2. Тогда множество документов, удовлетворяющих Q, определяется следующим образом:

Структуры данных и алгоритмы

С чисто формальной математической точки зрения, BIR прост. Однако с практической точки зрения необходимо решить ряд дополнительных задач, связанных с алгоритмами и структурами данных, таких как, например, выбор терминов (ручной, автоматический или комбинированный), стемминг, хеш-таблицы и инвертированная структура файлов и так далее.

Наборы с гашиш

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

Файл подписи

Каждый документ может быть представлен фильтром Блума, отражающим набор слов в этом документе и хранящимся в битовой строке фиксированной длины, называемой сигнатурой. Файл сигнатур содержит такую объединенную битовую строку для каждого документа в коллекции. Каждый запрос также может быть представлен фильтром Блума, отражающим набор слов в запросе и хранящимся в битовой строке той же фиксированной длины. Битовая строка запроса сравнивается с каждой сигнатурой. Такой файл сигнатур используется в BitFunnel.