1. 18 мая 2013 г.
Лингвистика в поиске
Алексей Зобнин
Малый ШАД
2. Лингвистика в поиске
Поисковая система должна быстро и точно
обрабатывать миллионы запросов.
Чтобы найти релевантные документы, требуется
‒ правильно определить язык запроса
‒ исправить возможные опечатки
‒ произвести морфологический анализ
‒ расширить или переформулировать запрос
4. Как работает поиск?
‒ размер интернета исчисляется экзабайтами
‒ в интернете размещены миллиарды страниц
Конечно, обходить весь интернет каждый раз для
ответа на запрос невозможно. Поэтому поисковая
система заранее индексирует сайты.
5. Индекс
Специальная структура данных, похожая
на предметный указатель или адресный справочник.
Индекс позволяет по каждому слову найти
все документы и позиции, в которых оно встречается.
Поиск в интернете состоит из двух больших частей:
‒ подготовка поискового индекса
‒ поиск ответа на конкретный запрос в индексе
6. Индекс: пример
Проиндексируем произведения А. С. Пушкина:
1. «Руслан и Людмила»
2. «Евгений Онегин»
3. «Медный всадник»
…
берегу 1, 2, 3, …
дуб 1, …
дядя 2, …
Евгений 2, 3, …
кот 1, 2, …
7. Булев поиск
‒ в индексе лежат отдельные слова документов
‒ документ рассматривается как множество слов
‒ ищем документы, содержащие искомые слова
‒ запрос может содержать логические операторы
AND, OR, NOT
Поиск сводится к пересечению и объединению
упорядоченных списков словопозиций.
8. Недостатки булева поиска
‒ нет ранжирования результатов по релевантности
‒ не учитываются частоты слов
‒ не учитываются расстояния между словами
‒ не учитываются различные формы слов
‒ нет расширений запроса
9. Расстояния между словами
Модифицируем индекс:
будем записывать полные «координаты» слов.
Например,
‒ номер документа
‒ номер предложения
‒ номер слова в предложении
‒ ???
10. Токенизация
Как правильно разбить текст на лексемы?
Ростов-на-Дону но San Francisco-Los Angeles
д'Артаньян, п'ять, don't, qu'est-ce que c'est?
Mr. O'Neill thinks that the boys' stories about Chile's capital
aren't amusing
中華人民共和國
Rindfleischetikettierungsüberwachungsaufgabenübertragungsgesetz
11. Нормализация
Какие токены следует отождествить?
ё и е (но всё ‒ все, осёл ‒ осел)
cooperation, coöperation и co-operation
iPhone и iphone, Windows и windows?
ä=ae, ö=oe, ü=ue
renyxa
12. Стоп-слова
Как поступать с частотными токенами?
и, в, на, с, не, по, для, его, что, то, это, все, от, к, из,
за, а, о, как, уже, или, их, том, г, я, у, будет, есть,
больше, было, ...
было или не было?
что есть, то есть
как, это уже все?
13. Закон Ципфа
Частота слова обратно пропорциональна
его номеру в частотном списке.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
0
2000000
4000000
6000000
8000000
10000000
12000000
14000000
14. Распознавание языка
дружина князя Игоря (русский)
дружина князя Ігоря (украинский)
такси — русский или украинский?
kayak — турецкий или английский?
Nokia — на каком языке отвечать?
15. Распознавание языка: факторы
‒ алфавит
‒ частоты слов в разных языках
‒ регион пользователя / адрес документа
‒ язык интерфейса пользователя
‒ соответствие языковой модели
Используется машинное обучение.
16. Языковые модели
Задача: оценить вероятность появления
предложения w1 w2 … wm в данном языке.
Считаем, что
Это — марковское свойство: мы считаем,
что вероятность встретить очередное слово
зависит только от n - 1 предыдущего слова.
Вероятности n-грамм могут быть найдены из корпуса.
P (w1 w2 ...w m) = ∏
i =1
m
P (w i ∣w 1...wi −1) ≈ ∏
i =1
m
P (w i ∣w i −(n−1)...wi −1).
17. Морфологический анализ
Хотим искать все формы слов из запроса.
Для этого можно либо расширять запрос другими
формами, либо хранить в индексе начальные формы слов.
Основные задачи:
‒ лемматизация (определение нормальной формы)
‒ определение грамматических характеристик
‒ генерация других форм слова
18. Префиксное дерево (бор, trie)
Цыган, цыганка, цыкать, цыпленок, цыпочки, цыц:
ц ы
г а
ак
п л
о ч
е
т ь
н
к и
о к
ц
на ак
21. А если слова нет в словаре?
я иду {идти} по ковру {ковёр}
мы идём {идти} по коврём {коврать?}
ты идёшь {идти} по коврёшь {коврать?}
вы идёте {идти} по коврёте {коврать?}
он идёт {идти} по коврёт {коврать?}
они идут {идти} по коврут {коврать?}
http://company.yandex.ru/technologies/mystem/
22. А если слова нет в словаре?
«Глокая куздра штеко будланула бокра
и курдячит бокрёнка»
Л. В. Щерба.
глокая {глокать? глокий?}
куздра {куздра?}
штеко {штекий? штеко?}
будланула {будланул? будланула? будлануть?}
бокра {бокр? бокра? бокрый?}
и {и}
кудрячит {кудрячит? кудрячита? кудрячитый? кудрячить?}
бокренка {бокренк? бокренка? бокренок?}
25. Морфологическая омонимия
Задача: выбрать правильный морфологический разбор
слова (с учетом контекста).
Хранение денег в банке.
Что делают белки в клетке?
Фотографии Львов.
Капля стекла со стекла.
Полосы стали красными...
Полосы стали красными реками текли по конвейеру
трубопрокатного завода.
26. Скрытые марковские модели
Задача: приписать наиболее вероятным образом
каждому слову wk в предложении тег tk.
Используем формулу Байеса для условной вероятности:
Получаем:
Задача — найти для данного предложения набор тегов,
который делает эту вероятность максимальной.
P (A ∣B )=
P (B ∣ A)P (A)
P (B)
.
P (t1 ...tm ∣w 1...wm) =
P (w 1...wm ∣t1 ...t m) P (t 1...t m)
P (w 1...w m)
.
27. Скрытые марковские модели
Считаем, что распределение тегов подчиняется
марковскому свойству:
Вероятности в правой части могут быть найдены как
частоты по большому размеченному корпусу
(например, http://ruscorpora.ru)
Для поиска оптимальных тегов используется
динамический алгоритм Витерби.
P (w1 ...w m ∣t1 ...tm) P (t1 ...tm) ≈ ∏
k =1
m
P (w k ∣t k ) P (tk ∣tk −(n−1)...tk −1).
29. Исправление орфоопечаток
‒ ищем ближайшие слова по расстоянию Левенштейна:
количеству вставок, удалений или замен, необходимых
для исправления
‒ используем K-граммный индекс для символов
‒ рассматриваем запросы без опечаток с похожим
контекстом
‒ учитываем вероятность исправленного запроса по
языковой модели
30. Расширения запроса
‒ синонимы
огромный — большой
бегемот — гиппопотам
‒ орфографические варианты написания
джава — ява
‒ транслитерация и перевод
yandex — яндекс
‒ аббревиатуры
МГУ — Московский государственный университет
‒ словообразование
авто — автомобиль
саша — Александр, Александра
31. Источники расширений
‒ словари
‒ анализ текстов документов
‒ анализ логов запросов и кликов
‒ переформулировки запросов пользователей
‒ автоматические правила
32. Литература
1. К. Маннинг, П. Рагхаван, Х. Шютце —
Введение в информационный поиск.
2. K. Manning, H. Schütze — Foundations of Statistical
Natural Language Processing.
3. D. Jurafsky, J. Martin —
Speech and Language Processing.