O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Яндекс Малый ШАД - лингвистика в поиске

485 visualizações

Publicada em

Разбор запросов
Естественные тексты

Publicada em: Negócios
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Яндекс Малый ШАД - лингвистика в поиске

  1. 1. 18 мая 2013 г. Лингвистика в поиске Алексей Зобнин Малый ШАД
  2. 2. Лингвистика в поиске Поисковая система должна быстро и точно обрабатывать миллионы запросов. Чтобы найти релевантные документы, требуется ‒ правильно определить язык запроса ‒ исправить возможные опечатки ‒ произвести морфологический анализ ‒ расширить или переформулировать запрос
  3. 3. Поисковые системы
  4. 4. Как работает поиск? ‒ размер интернета исчисляется экзабайтами ‒ в интернете размещены миллиарды страниц Конечно, обходить весь интернет каждый раз для ответа на запрос невозможно. Поэтому поисковая система заранее индексирует сайты.
  5. 5. Индекс Специальная структура данных, похожая на предметный указатель или адресный справочник. Индекс позволяет по каждому слову найти все документы и позиции, в которых оно встречается. Поиск в интернете состоит из двух больших частей: ‒ подготовка поискового индекса ‒ поиск ответа на конкретный запрос в индексе
  6. 6. Индекс: пример Проиндексируем произведения А. С. Пушкина: 1. «Руслан и Людмила» 2. «Евгений Онегин» 3. «Медный всадник» … берегу 1, 2, 3, … дуб 1, … дядя 2, … Евгений 2, 3, … кот 1, 2, …
  7. 7. Булев поиск ‒ в индексе лежат отдельные слова документов ‒ документ рассматривается как множество слов ‒ ищем документы, содержащие искомые слова ‒ запрос может содержать логические операторы AND, OR, NOT Поиск сводится к пересечению и объединению упорядоченных списков словопозиций.
  8. 8. Недостатки булева поиска ‒ нет ранжирования результатов по релевантности ‒ не учитываются частоты слов ‒ не учитываются расстояния между словами ‒ не учитываются различные формы слов ‒ нет расширений запроса
  9. 9. Расстояния между словами Модифицируем индекс: будем записывать полные «координаты» слов. Например, ‒ номер документа ‒ номер предложения ‒ номер слова в предложении ‒ ???
  10. 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. 11. Нормализация Какие токены следует отождествить? ё и е (но всё ‒ все, осёл ‒ осел) cooperation, coöperation и co-operation iPhone и iphone, Windows и windows? ä=ae, ö=oe, ü=ue renyxa
  12. 12. Стоп-слова Как поступать с частотными токенами? и, в, на, с, не, по, для, его, что, то, это, все, от, к, из, за, а, о, как, уже, или, их, том, г, я, у, будет, есть, больше, было, ... было или не было? что есть, то есть как, это уже все?
  13. 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. 14. Распознавание языка дружина князя Игоря (русский) дружина князя Ігоря (украинский) такси — русский или украинский? kayak — турецкий или английский? Nokia — на каком языке отвечать?
  15. 15. Распознавание языка: факторы ‒ алфавит ‒ частоты слов в разных языках ‒ регион пользователя / адрес документа ‒ язык интерфейса пользователя ‒ соответствие языковой модели Используется машинное обучение.
  16. 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. 17. Морфологический анализ Хотим искать все формы слов из запроса. Для этого можно либо расширять запрос другими формами, либо хранить в индексе начальные формы слов. Основные задачи: ‒ лемматизация (определение нормальной формы) ‒ определение грамматических характеристик ‒ генерация других форм слова
  18. 18. Префиксное дерево (бор, trie) Цыган, цыганка, цыкать, цыпленок, цыпочки, цыц: ц ы г а ак п л о ч е т ь н к и о к ц на ак
  19. 19. Словоформа и парадигма Словоформа: чаю кофе потанцуем Лемма: [ча]й [кофе] [потанц]евать Парадигма: -й -я -ю -й -ем -е -и -ев -ям -и -ями -ях - -ую -уй -уешь -ует -евал -евала -евало -уем -уемте -уйте -уете -уют -евали -евать
  20. 20. Добавим грамматические теги ковер [ковер] сущ, неод, муж, ед, им [ковр]а сущ, неод, муж, ед, род [ковр]у сущ, неод, муж, ед, дат [ковер] сущ, неод, муж, ед, вин [ковр]ом сущ, неод, муж, ед, твор [ковр]е сущ, неод, муж, ед, пр [ковр]ы сущ, неод, муж, мн, им [ковр]ов сущ, неод, муж, мн, род [ковр]ам сущ, неод, муж, мн, дат [ковр]ы сущ, неод, муж, мн, вин [ковр]ами сущ, неод, муж, мн, твор [ковр]ах сущ, неод, муж, мн, пр ...
  21. 21. А если слова нет в словаре? я иду {идти} по ковру {ковёр} мы идём {идти} по коврём {коврать?} ты идёшь {идти} по коврёшь {коврать?} вы идёте {идти} по коврёте {коврать?} он идёт {идти} по коврёт {коврать?} они идут {идти} по коврут {коврать?} http://company.yandex.ru/technologies/mystem/
  22. 22. А если слова нет в словаре? «Глокая куздра штеко будланула бокра и курдячит бокрёнка» Л. В. Щерба. глокая {глокать? глокий?} куздра {куздра?} штеко {штекий? штеко?} будланула {будланул? будланула? будлануть?} бокра {бокр? бокра? бокрый?} и {и} кудрячит {кудрячит? кудрячита? кудрячитый? кудрячить?} бокренка {бокренк? бокренка? бокренок?}
  23. 23. Построение гипотез по образцу бокренка: кенгуренка тигренка → бокренок черенка → бокренок будланула: обманула → будлануть буренка сестренка → бокренка керенка шестеренка → бокренка гранула → будланула манула → будланул
  24. 24. Морфологическая омонимия Задача: выбрать правильный морфологический разбор слова (с учетом контекста). Хранение денег в банке. Что делают белки в клетке? Фотографии Львов. Капля стекла со стекла. Полосы стали красными... Полосы стали красными реками текли по конвейеру трубопрокатного завода.
  25. 25. Скрытые марковские модели Задача: приписать наиболее вероятным образом каждому слову 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) .
  26. 26. Скрытые марковские модели Считаем, что распределение тегов подчиняется марковскому свойству: Вероятности в правой части могут быть найдены как частоты по большому размеченному корпусу (например, 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).
  27. 27. Очепятки ‒ орфографические ошибки: аднакласники ‒ слитное-раздельное написание: афишатеатров ‒ контекстные: меховой слон спорная команда по хоккею ‒ искаженная раскладка клавиатуры: lytdybr
  28. 28. Исправление орфоопечаток ‒ ищем ближайшие слова по расстоянию Левенштейна: количеству вставок, удалений или замен, необходимых для исправления ‒ используем K-граммный индекс для символов ‒ рассматриваем запросы без опечаток с похожим контекстом ‒ учитываем вероятность исправленного запроса по языковой модели
  29. 29. Расширения запроса ‒ синонимы огромный — большой бегемот — гиппопотам ‒ орфографические варианты написания джава — ява ‒ транслитерация и перевод yandex — яндекс ‒ аббревиатуры МГУ — Московский государственный университет ‒ словообразование авто — автомобиль саша — Александр, Александра
  30. 30. Источники расширений ‒ словари ‒ анализ текстов документов ‒ анализ логов запросов и кликов ‒ переформулировки запросов пользователей ‒ автоматические правила
  31. 31. Литература 1. К. Маннинг, П. Рагхаван, Х. Шютце — Введение в информационный поиск. 2. K. Manning, H. Schütze — Foundations of Statistical Natural Language Processing. 3. D. Jurafsky, J. Martin — Speech and Language Processing.

×