Введение в информационный поиск

Лекция 1

Основы информационного поиска

Структура инвертированного индекса

Информационный поиск

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

Information Retrieval

Базовые термины

Документ - единица поиска, напр., веб-страница, глава в книге, файл изображения

Коллекция (или корпус) - группа документов

Информационная потребность - тема, по которой пользователь стремится получить больше информации

Поисковый запрос - способ передачи информационной потребности

Релевантность - степень соответствия документа информационной потребности с точки зрения пользователя

Ad Hoc Information Retrieval

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

Информационная потребность

  • Навигационные
    • аэрофлот; вконтакте
  • Информационные
    • год основания кфу; как приготовить пиццу
  • Транзакционные
    • купить кроссовки; хостел в Питере

A. Broder предложил выделить 3 типа запросов:

Алгоритмы обработки часто зависят от типа запроса

A. Broder. A Taxonomy of Web Search (2002)

Принципиальная схема поисковой системы

Формирование словаря

  1. Разбиение на лексемы (tokenization)
    • определение языка
    • сегментация на слова
  2. Нормализация
    • перевод в нижний регистр
    • преобразование акронимов: U.S.A. => USA 
  3. Стемминг и лемматизация
    • Стемминг:  car, cars, car's, cars' => car
    • Лемматизация: see, seen, saw => see
  4. Фильтрация стоп-слов
  • списки стоп-слов: INQUERY stopwords
  • по статистике частот в коллекции

Матрица инцидентности

термин-документ

Простой инвертированный индекс

Словарь (dictionary) терминов

Словопозиции  (posting list) - отсортированный список идентификаторов документов, содержащих данный термин

Структуры данных для хранения словопозиций

  • Массивы фиксированной длины
    • Лишняя трата памяти, ввиду разных документных частот
  • Односвязные списки
    • Быстрая вставка новых документов при обновлении индекса
  • Массивы переменной длины
    • Выигрыш в объеме занимаемой памяти
    • Выигрыш в скорости обработки за счет использования непрерывных областей памяти на современных CPU с кэшем

Построение индекса

Булевский поиск

Поисковые запросы: 

Поисковый запрос в общем случае:

q = q_1 \wedge (q_2 \vee \neg q_3)
q=q1(q2¬q3)

Brutus AND Caesar

Brutus OR Caesar AND NOT Calpurnia

Алгоритм пересечения словопозиций

Вычислительная сложность по длине словопозиций m и n? По количеству документов N?

Алгоритм пересечения словопозиций

O(m+n)
O(m+n)
\Theta(N)
Θ(N)

Реализовать алгоритм объединения словопозиций

Brutus OR Calpurnia

Общий алгоритм пересечения для конъюнктивного запроса

(Calpurnia AND Brutus) AND Caesar

Список словопозиций с пропусками

Сублинейная сложность, напр., 

\Theta(\sqrt{N})
Θ(N)

Координатный индекс

Словопозиция = координата лексемы в документе (порядковый номер)

Пересечение словопозиций в координатном индексе

Окно ширины k (k word proximity)

Запрос: to be or not to be

Пересечение словопозиций в координатном индексе

Окно ширины k (k word proximity)

Вычислительная сложность алгоритма?

Пересечение словопозиций в координатном индексе

Окно ширины k (k word proximity)

\Theta(T)
Θ(T)

Комбинированные схемы

  • Индекс фраз + координатный индекс:
    • michael jordan
    • britney spears
    • the who
  • + частичный индекс следующих слов (Williams et al., 2004)
    • +26% к размеру индекса
    • x4 быстрее

Williams et al. Fast phrase querying with combined indexing (2004)

Заключение

  • Основные определения
  • Словарь и списки словопозиций
  • Инвертированный индекс
  • Булевский поиск
  • Алгоритмы пересечений словопозиций
  • Координатный индекс
Made with Slides.com