Introduction to Information RetrievalIntroduction to Information Retrieval
Introduction to
Information Retrieval
Информационный поиск
Введение в
Автоматическая обработка естественного языка. Лекция 10
А.В. Луканин
Информационный поиск
 Информационный поиск (IR) – это
процесс поиска в большой коллекции
(хранящейся, как правило, в памяти
компьютеров) некоторого
неструктурированного материала
(обычно – документа),
удовлетворяющего информационные
потребности.
2
Неструктурированные (текст) и
структурированные (базы данных)
данные в 1996 г.
3
Неструктурированные (текст) и
структурированные (базы данных)
данные в 2009 г.
4
Неструктурированные данные в 1680 г.
 Какие пьесы Шекспира содержат слова
Brutus И Caesar но НЕ Calpurnia?
 Можно найти (grep) все пьесы, где есть слова
Brutus и Caesar, затем удалить те, в которых
встречается имя Calpurnia
 Почему так не делают?
 Медленно (для больших корпусов)
 Запрос НЕ Calpurnia трудно обработать
 Др. запросы (напр., найти слово Romans возле слова
countrymen) не допустимы
 Ранжированный поиск (найти лучший ответ)
5
Sec. 1.1
Матрица «термин-документ»
Antony and Cleopatra Julius Caesar The Tempest Hamlet Othello Macbeth
Antony 1 1 0 0 0 1
Brutus 1 1 0 1 0 0
Caesar 1 1 0 1 1 1
Calpurnia 0 1 0 0 0 0
Cleopatra 1 0 0 0 0 0
mercy 1 0 1 1 1 1
worser 1 0 1 1 1 0
1, если пьеса содержит
слово, 0 - нетBrutus И Caesar но НЕ
Calpurnia
Sec. 1.1
Векторы терминов и документов
 Каждому термину соответствует бинарный
(0/1) вектор документов.
 Для ответа на запрос нужно выполнить
поразрядную операцию AND векторов для
Brutus, Caesar и двоичного дополнения
для Calpurnia.
 110100 AND 110111 AND 101111 = 100100.
7
Sec. 1.1
Ответ на запрос
 Antony and Cleopatra, Act III, Scene ii
Agrippa [Aside to DOMITIUS ENOBARBUS]: Why, Enobarbus,
When Antony found Julius Caesar dead,
He cried almost to roaring; and he wept
When at Philippi he found Brutus slain.
 Hamlet, Act III, Scene ii
Lord Polonius:
I did enact Julius Caesar I was
killed i' the Capitol; Brutus killed me.
8
Sec. 1.1
Базовые понятия IR
 Коллекция: группа документов, по
которой осуществляется поиск
 Цель: найти в коллекции документы,
которые являются наиболее
релевантными по отношению к
произвольным информационным
потребностям пользователя
9
Sec. 1.1
Классическая модель поиска
Корпус
Задача
Информацион
ная
потребность
Запрос
Словесна
я форма
Результаты
ИПС
Улучшение
запроса
Get rid of mice in a
politically correct way
Info about removing mice
without killing them
How do I trap mice alive?
mouse trap
Непонимание?
Неверное
выражение
мысли?
Не те
ключевые
слова?
Эффективна ли система?
 Точность (Precision) : Какая доля
результатов является релевантной
по отношению к информационной
потребности?
 Полнота (Recall) : Какая доля
релевантных документов из
коллекции возвращена системой?
11
Sec. 1.1
Более реалистичный пример
 Допустим, у нас есть N = 1 миллион
документов, каждый из которых содержит
1000 слов.
 В среднем 6 байт/слово, включая пробелы
и пунктуационные знаки
 Объём корпуса = 6GB.
 В таком корпусе, как правило, может быть
M = 500 000 разных терминов.
12
Sec. 1.1
Нельзя построить матрицу
 Матрица 500K x 1M содержит
полтриллиона нулей и единиц.
 Но в ней не больше одного
миллиарда единиц.
 Матрица очень разрежена, в ней больше
99,8% нулей.
 Есть ли лучший способ записи?
 Записывать только единицы.
13
Почему?
Sec. 1.1
Инвертированный индекс
 Для каждого термина t необходимо
хранить список всех документов, которые
содержат t.
14
Brutus
Calpurnia
Caesar 1 2 4 5 6 16 57 132
1 2 4 11 31 45 173
2 31
Sec. 1.2
174
54101
Инвертированный индекс
 Нужны списки словопозиций переменной
длины
15
Словарь
Списки словопозиций
Отсортированы по ID документа
СловопозицияСловопозиция
Sec. 1.2
Brutus
Calpurnia
Caesa
r
1 2 4 5 6 16 57 132
1 2 4 11 31 45 173
2 31
174
54101
Выделение лексем
Список лексем. Friends Romans Countrymen
Построение инвертированного индекса
Лингв. обработка
Нормализованные
лексемы.
friend roman countryman
Индексируемые
документы.
Friends, Romans, countrymen.
Sec. 1.2
Индекси-
рование
Инвертированный
индекс.
friend
roman
countryman
2 4
2
13 16
1
Шаг 1
 Список пар (лексема, ID документа).
I did enact Julius
Caesar I was killed
i' the Capitol;
Brutus killed me.
Doc 1
So let it be with
Caesar. The noble
Brutus hath told you
Caesar was ambitious
Doc 2
Sec. 1.2
Шаг 2: Сортировка
 Сортировать
термины
 А затем ID документов
Важный момент
Sec. 1.2
Шаг 3: Словарь и списки
словопозиций
 Для одинаковых
терминов в
документе – 1
пара.
 Разбить на
словарь и списки
словопозиций
 Добавить инф. о
частоте термина.
Sec. 1.2
Индекс построен
 Как обработать запрос?
 И какие запросы можно обработать,
используя такой индекс?
20
Sec. 1.3
Обработка запроса: AND
 Рассмотрим следующий запрос:
Brutus AND Caesar
 Найти термин Brutus в словаре;
 Получить его список словопозиций.
 Найти термин Caesar в словаре;
 Получить список его словопозиций.
 Найти пересечение 2 списков словопозиций:
21
128
34
2 4 8 16 32 64
1 2 3 5 8 13 21
Brutus
Caesar
Sec. 1.3
Пересечение
 Сравнить 2 списка последовательно и
выписать совпадающие документы
22
34
1282 4 8 16 32 64
1 2 3 5 8 13 21
128
34
2 4 8 16 32 64
1 2 3 5 8 13 21
Brutus
Caesar
2 8
Если длины списков равны x и y, объединение займёт
O(x+y) операций.
Важно: списки словопозиций отсортированы по docID.
Sec. 1.3
Пересечение 2 списков словопозиций
(алгоритм слияния)
23
Булевы запросы: точное совпадение
 В модели булева поиска можно задавать
запросы, которые являются булевыми
выражениями:
 Булевы запросы используют булевы операторы AND,
OR и NOT для объединения терминов
 Рассматривают документы как множества слов
 Точны: документ либо удовлетворяет запросу либо нет
 Простейшая модель информационного поиска
 Использовалась в первых коммерческих
системах в течение 30 лет
 Используется во многих ИПС до сих пор:
 Эл. почта, библиотечный каталог
24
Sec. 1.3
Пример: WestLaw http://www.westlaw.com/
 Самая крупная коммерческая ИПС правовых
документов (с 1975; ранжирование с 1992)
 Десятки терабайт данных; 700 000
пользователей
 Большинство пользователей до сих пор
пользуются булевыми запросами
 Пример запроса:
 What is the statute of limitations in cases involving the
federal tort claims act?
 LIMIT! /3 STATUTE ACTION /S FEDERAL /2 TORT /3
CLAIM
 /3 = within 3 words, /S = in same sentence
25
Sec. 1.4
Пример: WestLaw http://www.westlaw.com/
 Другой пример запроса:
 Requirements for disabled people to be able to access a
workplace
 disabl! /p access! /s work-site work-place (employment /3
place
 ПРОБЕЛ для дизъюнкции, не конъюнкции!
 Длинные точные запросы; операторы близости;
постоянно улучшаемые
 Многие профессионалы предпочитают булев
поиск
 Вы точно знаете, что получите
 Но это не значит, что он лучше…
Sec. 1.4
Оптимизация запроса
 Какой порядок обработки слов запроса лучше?
 Рассмотрим запрос с операцией AND для n
терминов.
 Для каждого из n терминов получить списки
словопозиций, и выполнить их пересечение.
Brutus
Caesar
Calpurnia
1 2 3 5 8 16 21 34
2 4 8 16 32 64 128
13 16
Запрос: Brutus AND Calpurnia AND Caesar 27
Sec. 1.3
Пример оптимизации запроса
 Обработать в порядке увеличивающейся
частоты:
28
Для этого необходимо
хранить документную частоту
Выполнить запрос как (Calpurnia AND Brutus) AND Caesar.
Sec. 1.3
Brutus
Caesar
Calpurnia
1 2 3 5 8 16 21 34
2 4 8 16 32 64 128
13 16
Общая оптимизация
 напр., (madding OR crowd) AND
(ignoble OR strife)
 Получить док. частоты всех терминов
 Оценить размер каждой операции OR
как сумму док. частот.
 Обработать в порядке увеличения
размеров операций OR.
29
Sec. 1.3
Задание
 Предложить порядок
обработки след.
запроса: Term Freq
eyes 213312
kaleidoscope 87009
marmalade 107913
skies 271658
tangerine 46653
trees 316812
30
(tangerine OR trees) AND
(marmalade OR skies) AND
(kaleidoscope OR eyes)
Более сложные модели поиска
 Нечёткий поиск (нечувствительный к
опечаткам)
 Фразовый поиск
 Stanford University
 Близость терминов: найти Gates возле
Microsoft.
 Необходимо хранить в индексе информацию о
позициях терминов.
 Поиск в зонах документов: найти
документы, где (автор = Ullman) AND
(текст содержит automata).
31
Частота встречаемости
 Термин запроса встречается в документе
1 или 0 раз
 2 или 1 раз
 3 или 2 раза, и т.д.
 Обычно, чем больше, тем лучше
 Нужно хранить в индексе частоту
встречаемости термина для каждого
документа
32
Ранжирование результатов поиска
 Булев поиск возвращает только
документы, которые включают/исключают
термины запроса.
 Часто нужно получить ранжированные или
сгруппированные результаты
 Необходимо оценить близость каждого
документа запросу.
 Нужно решить, являются ли документы
одиночными или группами, отражающими
разные аспекты запроса.
33
IR vs. базы данных: информация
структурирована или нет
 Структурированная информация обычно
хранится в “таблицах”
34
Работник Начальник Зарплата
Иванов Петров 50000
Петров Васильев 60000
50000Моргунов Петров
Обычно в запросах можно использовать диапазоны
значений и точное совпадение (для текста) queries:
Зарплата < 60000 AND Начальник = Петров.
Неструктурированная информация
 Оперирует текстом в свободной форме
 Позволяет использовать
 Ключевые слова и операторы в запросах
 Более сложные запросы с «концептами»
 Найти все страницы о наркотиках
 Классическая модель поиска текстовых
документов
35
Полу-структурированная
информация
 «Неструктурированной» информации не
существует
 Например, в презентациях есть заголовки
и списки тезисов
 Позволяет строить запросы вида:
 Заголовок содержит информация AND
Список_тезисов содержит запрос
… не говоря уже о лингвистической структуре
36
Более сложный поиск полу-
структурированной информации
 Заголовок об объектно-ориентированном
программировании AND Автор что-то
вроде stro*rup
 где * - символ подстановки
 Проблемы:
 Как обработать запрос «об»?
 Как ранжировать результаты поиска?
 XML поиск
37
Кластеризация, классификация и
ранжирование
 Кластеризация: группировать имеющиеся
документы в группы по содержимому.
 Классификация: на базе набора тем и
нового документа D, определить, к какой
теме(ам) принадлежит D.
 Ранжирование: как лучше упорядочить
документы (результаты поиска)?
38
Поиск по интернету
 Разнотипные документы
 Разнообразные пользователи, запросы
и информационные потребности
 Кроме ключевых слов можно
использовать информацию из
социальных сетей
 анализ ссылок, переходов по ссылкам ...
 Как работают поисковые системы? Как
их можно улучшить?
39
Более сложные аспекты
информационного поиска
 Межязыковой информационный поиск
 Ответы на вопросы
 Аннотирование
 Интеллектуальный анализ текстов (Text
mining)
 …
40

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

  • 1.
    Introduction to InformationRetrievalIntroduction to Information Retrieval Introduction to Information Retrieval Информационный поиск Введение в Автоматическая обработка естественного языка. Лекция 10 А.В. Луканин
  • 2.
    Информационный поиск  Информационныйпоиск (IR) – это процесс поиска в большой коллекции (хранящейся, как правило, в памяти компьютеров) некоторого неструктурированного материала (обычно – документа), удовлетворяющего информационные потребности. 2
  • 3.
  • 4.
  • 5.
    Неструктурированные данные в1680 г.  Какие пьесы Шекспира содержат слова Brutus И Caesar но НЕ Calpurnia?  Можно найти (grep) все пьесы, где есть слова Brutus и Caesar, затем удалить те, в которых встречается имя Calpurnia  Почему так не делают?  Медленно (для больших корпусов)  Запрос НЕ Calpurnia трудно обработать  Др. запросы (напр., найти слово Romans возле слова countrymen) не допустимы  Ранжированный поиск (найти лучший ответ) 5 Sec. 1.1
  • 6.
    Матрица «термин-документ» Antony andCleopatra Julius Caesar The Tempest Hamlet Othello Macbeth Antony 1 1 0 0 0 1 Brutus 1 1 0 1 0 0 Caesar 1 1 0 1 1 1 Calpurnia 0 1 0 0 0 0 Cleopatra 1 0 0 0 0 0 mercy 1 0 1 1 1 1 worser 1 0 1 1 1 0 1, если пьеса содержит слово, 0 - нетBrutus И Caesar но НЕ Calpurnia Sec. 1.1
  • 7.
    Векторы терминов идокументов  Каждому термину соответствует бинарный (0/1) вектор документов.  Для ответа на запрос нужно выполнить поразрядную операцию AND векторов для Brutus, Caesar и двоичного дополнения для Calpurnia.  110100 AND 110111 AND 101111 = 100100. 7 Sec. 1.1
  • 8.
    Ответ на запрос Antony and Cleopatra, Act III, Scene ii Agrippa [Aside to DOMITIUS ENOBARBUS]: Why, Enobarbus, When Antony found Julius Caesar dead, He cried almost to roaring; and he wept When at Philippi he found Brutus slain.  Hamlet, Act III, Scene ii Lord Polonius: I did enact Julius Caesar I was killed i' the Capitol; Brutus killed me. 8 Sec. 1.1
  • 9.
    Базовые понятия IR Коллекция: группа документов, по которой осуществляется поиск  Цель: найти в коллекции документы, которые являются наиболее релевантными по отношению к произвольным информационным потребностям пользователя 9 Sec. 1.1
  • 10.
    Классическая модель поиска Корпус Задача Информацион ная потребность Запрос Словесна яформа Результаты ИПС Улучшение запроса Get rid of mice in a politically correct way Info about removing mice without killing them How do I trap mice alive? mouse trap Непонимание? Неверное выражение мысли? Не те ключевые слова?
  • 11.
    Эффективна ли система? Точность (Precision) : Какая доля результатов является релевантной по отношению к информационной потребности?  Полнота (Recall) : Какая доля релевантных документов из коллекции возвращена системой? 11 Sec. 1.1
  • 12.
    Более реалистичный пример Допустим, у нас есть N = 1 миллион документов, каждый из которых содержит 1000 слов.  В среднем 6 байт/слово, включая пробелы и пунктуационные знаки  Объём корпуса = 6GB.  В таком корпусе, как правило, может быть M = 500 000 разных терминов. 12 Sec. 1.1
  • 13.
    Нельзя построить матрицу Матрица 500K x 1M содержит полтриллиона нулей и единиц.  Но в ней не больше одного миллиарда единиц.  Матрица очень разрежена, в ней больше 99,8% нулей.  Есть ли лучший способ записи?  Записывать только единицы. 13 Почему? Sec. 1.1
  • 14.
    Инвертированный индекс  Длякаждого термина t необходимо хранить список всех документов, которые содержат t. 14 Brutus Calpurnia Caesar 1 2 4 5 6 16 57 132 1 2 4 11 31 45 173 2 31 Sec. 1.2 174 54101
  • 15.
    Инвертированный индекс  Нужнысписки словопозиций переменной длины 15 Словарь Списки словопозиций Отсортированы по ID документа СловопозицияСловопозиция Sec. 1.2 Brutus Calpurnia Caesa r 1 2 4 5 6 16 57 132 1 2 4 11 31 45 173 2 31 174 54101
  • 16.
    Выделение лексем Список лексем.Friends Romans Countrymen Построение инвертированного индекса Лингв. обработка Нормализованные лексемы. friend roman countryman Индексируемые документы. Friends, Romans, countrymen. Sec. 1.2 Индекси- рование Инвертированный индекс. friend roman countryman 2 4 2 13 16 1
  • 17.
    Шаг 1  Списокпар (лексема, ID документа). I did enact Julius Caesar I was killed i' the Capitol; Brutus killed me. Doc 1 So let it be with Caesar. The noble Brutus hath told you Caesar was ambitious Doc 2 Sec. 1.2
  • 18.
    Шаг 2: Сортировка Сортировать термины  А затем ID документов Важный момент Sec. 1.2
  • 19.
    Шаг 3: Словарьи списки словопозиций  Для одинаковых терминов в документе – 1 пара.  Разбить на словарь и списки словопозиций  Добавить инф. о частоте термина. Sec. 1.2
  • 20.
    Индекс построен  Какобработать запрос?  И какие запросы можно обработать, используя такой индекс? 20 Sec. 1.3
  • 21.
    Обработка запроса: AND Рассмотрим следующий запрос: Brutus AND Caesar  Найти термин Brutus в словаре;  Получить его список словопозиций.  Найти термин Caesar в словаре;  Получить список его словопозиций.  Найти пересечение 2 списков словопозиций: 21 128 34 2 4 8 16 32 64 1 2 3 5 8 13 21 Brutus Caesar Sec. 1.3
  • 22.
    Пересечение  Сравнить 2списка последовательно и выписать совпадающие документы 22 34 1282 4 8 16 32 64 1 2 3 5 8 13 21 128 34 2 4 8 16 32 64 1 2 3 5 8 13 21 Brutus Caesar 2 8 Если длины списков равны x и y, объединение займёт O(x+y) операций. Важно: списки словопозиций отсортированы по docID. Sec. 1.3
  • 23.
    Пересечение 2 списковсловопозиций (алгоритм слияния) 23
  • 24.
    Булевы запросы: точноесовпадение  В модели булева поиска можно задавать запросы, которые являются булевыми выражениями:  Булевы запросы используют булевы операторы AND, OR и NOT для объединения терминов  Рассматривают документы как множества слов  Точны: документ либо удовлетворяет запросу либо нет  Простейшая модель информационного поиска  Использовалась в первых коммерческих системах в течение 30 лет  Используется во многих ИПС до сих пор:  Эл. почта, библиотечный каталог 24 Sec. 1.3
  • 25.
    Пример: WestLaw http://www.westlaw.com/ Самая крупная коммерческая ИПС правовых документов (с 1975; ранжирование с 1992)  Десятки терабайт данных; 700 000 пользователей  Большинство пользователей до сих пор пользуются булевыми запросами  Пример запроса:  What is the statute of limitations in cases involving the federal tort claims act?  LIMIT! /3 STATUTE ACTION /S FEDERAL /2 TORT /3 CLAIM  /3 = within 3 words, /S = in same sentence 25 Sec. 1.4
  • 26.
    Пример: WestLaw http://www.westlaw.com/ Другой пример запроса:  Requirements for disabled people to be able to access a workplace  disabl! /p access! /s work-site work-place (employment /3 place  ПРОБЕЛ для дизъюнкции, не конъюнкции!  Длинные точные запросы; операторы близости; постоянно улучшаемые  Многие профессионалы предпочитают булев поиск  Вы точно знаете, что получите  Но это не значит, что он лучше… Sec. 1.4
  • 27.
    Оптимизация запроса  Какойпорядок обработки слов запроса лучше?  Рассмотрим запрос с операцией AND для n терминов.  Для каждого из n терминов получить списки словопозиций, и выполнить их пересечение. Brutus Caesar Calpurnia 1 2 3 5 8 16 21 34 2 4 8 16 32 64 128 13 16 Запрос: Brutus AND Calpurnia AND Caesar 27 Sec. 1.3
  • 28.
    Пример оптимизации запроса Обработать в порядке увеличивающейся частоты: 28 Для этого необходимо хранить документную частоту Выполнить запрос как (Calpurnia AND Brutus) AND Caesar. Sec. 1.3 Brutus Caesar Calpurnia 1 2 3 5 8 16 21 34 2 4 8 16 32 64 128 13 16
  • 29.
    Общая оптимизация  напр.,(madding OR crowd) AND (ignoble OR strife)  Получить док. частоты всех терминов  Оценить размер каждой операции OR как сумму док. частот.  Обработать в порядке увеличения размеров операций OR. 29 Sec. 1.3
  • 30.
    Задание  Предложить порядок обработкислед. запроса: Term Freq eyes 213312 kaleidoscope 87009 marmalade 107913 skies 271658 tangerine 46653 trees 316812 30 (tangerine OR trees) AND (marmalade OR skies) AND (kaleidoscope OR eyes)
  • 31.
    Более сложные моделипоиска  Нечёткий поиск (нечувствительный к опечаткам)  Фразовый поиск  Stanford University  Близость терминов: найти Gates возле Microsoft.  Необходимо хранить в индексе информацию о позициях терминов.  Поиск в зонах документов: найти документы, где (автор = Ullman) AND (текст содержит automata). 31
  • 32.
    Частота встречаемости  Терминзапроса встречается в документе 1 или 0 раз  2 или 1 раз  3 или 2 раза, и т.д.  Обычно, чем больше, тем лучше  Нужно хранить в индексе частоту встречаемости термина для каждого документа 32
  • 33.
    Ранжирование результатов поиска Булев поиск возвращает только документы, которые включают/исключают термины запроса.  Часто нужно получить ранжированные или сгруппированные результаты  Необходимо оценить близость каждого документа запросу.  Нужно решить, являются ли документы одиночными или группами, отражающими разные аспекты запроса. 33
  • 34.
    IR vs. базыданных: информация структурирована или нет  Структурированная информация обычно хранится в “таблицах” 34 Работник Начальник Зарплата Иванов Петров 50000 Петров Васильев 60000 50000Моргунов Петров Обычно в запросах можно использовать диапазоны значений и точное совпадение (для текста) queries: Зарплата < 60000 AND Начальник = Петров.
  • 35.
    Неструктурированная информация  Оперируеттекстом в свободной форме  Позволяет использовать  Ключевые слова и операторы в запросах  Более сложные запросы с «концептами»  Найти все страницы о наркотиках  Классическая модель поиска текстовых документов 35
  • 36.
    Полу-структурированная информация  «Неструктурированной» информациине существует  Например, в презентациях есть заголовки и списки тезисов  Позволяет строить запросы вида:  Заголовок содержит информация AND Список_тезисов содержит запрос … не говоря уже о лингвистической структуре 36
  • 37.
    Более сложный поискполу- структурированной информации  Заголовок об объектно-ориентированном программировании AND Автор что-то вроде stro*rup  где * - символ подстановки  Проблемы:  Как обработать запрос «об»?  Как ранжировать результаты поиска?  XML поиск 37
  • 38.
    Кластеризация, классификация и ранжирование Кластеризация: группировать имеющиеся документы в группы по содержимому.  Классификация: на базе набора тем и нового документа D, определить, к какой теме(ам) принадлежит D.  Ранжирование: как лучше упорядочить документы (результаты поиска)? 38
  • 39.
    Поиск по интернету Разнотипные документы  Разнообразные пользователи, запросы и информационные потребности  Кроме ключевых слов можно использовать информацию из социальных сетей  анализ ссылок, переходов по ссылкам ...  Как работают поисковые системы? Как их можно улучшить? 39
  • 40.
    Более сложные аспекты информационногопоиска  Межязыковой информационный поиск  Ответы на вопросы  Аннотирование  Интеллектуальный анализ текстов (Text mining)  … 40

Editor's Notes

  • #6 Grep is line-oriented; IR is document oriented.
  • #16 Linked lists generally preferred to arrays Dynamic space allocation Insertion of terms into documents easy Space overhead of pointers