SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
Алгоритмы в поисковых системах
            исследование, программирование и соревнование


                                  Дмитрий Барашев


                                     11 марта 2010




Дмитрий Барашев | Алгоритмы в поисковых системах            1/26
1 Кружок

     2 Поисковик

     3 Что будет дальше




Дмитрий Барашев | Алгоритмы в поисковых системах   2/26
1 Кружок

     2 Поисковик

     3 Что будет дальше




Дмитрий Барашев | Алгоритмы в поисковых системах   3/26
Что будем делать




           Исследовать
           Программировать
           Соревноваться




Дмитрий Барашев | Алгоритмы в поисковых системах   4/26
Исследование
          (настоящее)



    Приличная научная работа включает в себя несколько
    частей
    Анатомия научной работы
        Изучение предыдущего опыта, похожих работ и
        смежных областей
        Разработка своего подхода
        Проведение экспериментов

    Ваша работа тоже хочет быть приличной.



Дмитрий Барашев | Алгоритмы в поисковых системах         5/26
Исследование
          (ваше)



    У вас нет своего подхода, но исследование есть.
    Анатомия вашего исследования
        Прочитать и понять несколько книг и статей
        Реализовать один или несколько алгоритмов и
        сравнить их характеристики
        Выбрать наиболее приемлемый для вас подход
        Оформить результаты в виде прототипа научной
        статьи на 2-3 страницы.




Дмитрий Барашев | Алгоритмы в поисковых системах       6/26
Программирование


    Мы хотим не только почитать книги и статьи но и
    применить знания на практике
    Прототип поисковика
        Может проиндексировать некоторое количество HTML
        файлов
        Может отвечать на пользовательские запросы

    Данных будет много, поместиться целиком в память
    шансов нет.



Дмитрий Барашев | Алгоритмы в поисковых системах           7/26
Соревнование

    Просто так читать статьи и писать код скучно. Стать
    лучшим – интересно!
    Соревнование
        В конце семестра мы проведём сравнительное
        тестирование поисковых систем
        Один и тот же запрос, слева результаты поисковика
        A, справа результаты поисковика B. Чьи лучше?

    Хорошее неленивое исследование и аккуратное
    программирование – больше шансов на победу



Дмитрий Барашев | Алгоритмы в поисковых системах            8/26
Формат работы


    Семинар.
       Основную работу вы делаете самостоятельно:
                  Изучаете литературу
                  Пишете код и проводите эксперименты
                  Пишете текст работы
           Очные встречи и специальные лекции будут
           Большая часть работы и общения будет в online на
           barashev.net




Дмитрий Барашев | Алгоритмы в поисковых системах              9/26
Команды
          веселее вместе

    Teh team
        В команде 2-4 человека
        Каждый самостоятельно изучает литературу,
        договаривается с товарищами о формате обмена
        данными, реализует понравившиеся алгоритмы и
        оценивает их характеристики
        Из полученных компонент команда собирает
        поисковик
        Поисковик у команды получается общий, а
        исследования в значительной степени индивидуальные
    В поисковике как минимум две большие компоненты и
    каждую можно реализовать несколькими способами.
    Работы на всех хватит.
Дмитрий Барашев | Алгоритмы в поисковых системах             10/26
1 Кружок

     2 Поисковик

     3 Что будет дальше




Дмитрий Барашев | Алгоритмы в поисковых системах   11/26
Базовая терминология
          чтобы слова что-то означали


           Документ (document) – некоторая атомарная единица
           результатов поиска
           Корпус (corpus) – множество документов, среди
           которых идёт поиск
           Запрос (query) – одно или более искомое слово
           Релевантный документ (matching document) –
           документ который по какому-то критерию
           удовлетворяет запросу
           Результат (result) – множество релевантных
           документов


Дмитрий Барашев | Алгоритмы в поисковых системах               12/26
Давайте начнём
          (что может быть проще)

    Наивная реализация
        Получает запрос
        Перебирает все документы в корпусе, проверяет
        каждый на релевантность методом поиска подстроки
        для каждого слова запроса.
        Если документ релевантный, записывает его в
        результат




Дмитрий Барашев | Алгоритмы в поисковых системах           13/26
Давайте начнём
          (что может быть проще)

    Наивная реализация
        Получает запрос
        Перебирает все документы в корпусе, проверяет
        каждый на релевантность методом поиска подстроки
        для каждого слова запроса.
        Если документ релевантный, записывает его в
        результат

    К сожалению она работать не будет...
        Стоимость поиска равна O(C ∗ Q), где C и Q размеры
        корпуса и запроса
        Ваши пользователи просто заснут, не дождавшись
        результатов
Дмитрий Барашев | Алгоритмы в поисковых системах             13/26
Индексирование
          что это такое


    Чтоб поиск выполнялся быстрее, корпус надо
    проиндексировать.
    Построение примитивного индекса
        Каждый документ разбиваем на токены (слова).
        Получаем отображение документ → список токенов.
        Полученное отображение инвертируем, то есть делаем
        отображение токен → список документов.

    В полученном инвертированном индексе стоимость поиска
    будет O(R ∗ Q), где R – размер результата.



Дмитрий Барашев | Алгоритмы в поисковых системах             14/26
Пример

    Example
    Оригинальный корпус:
    doc1: "foo bar baz"
    doc2: "baz lorem ipsum"
    doc3: "foo lorem amet"
    Инвертированный индекс:
    "foo": {doc1, doc3}
    "bar": {doc1}
    "baz": {doc1, doc2}
    "lorem": {doc2, doc3}
    "ipsum": {doc2}
    "amet": {doc3}

Дмитрий Барашев | Алгоритмы в поисковых системах   15/26
Индексирование
          вариации

    Количественные характеристики
        Минимизация размера индекса (меньше занимает
        места ⇒ больший корпус можно проиндексировать)
        Минимизация времени построения (быстрее строим
        ⇒ быстрее можем обновлять)

    Качественные характеристики
        В индексе могут присутствовать позиции вхождения
        токенов в документы
        Для разных зон документа могут быть разные
        индексы
        Документы в постинг-листах могут быть упорядочены
        по-разному
Дмитрий Барашев | Алгоритмы в поисковых системах            16/26
Поиск
          что значит "релевантен"

    Определять релевантность можно по-разному.
    Модели поиска
       Булевская: запрос является логическим выражением
       ключевых слов (например все объединены AND’ом).
       Релевантны те документы, которые удовлетворяют
       выражению. Все релевантные документы имеют
       одинаковую ценность.
       Векторная: документ и запрос представлены как
       векторы в пространстве токенов. Мера релевантности
       – косинус угла между векторами. У результатов
       разная ценность.


Дмитрий Барашев | Алгоритмы в поисковых системах            17/26
Поиск
          не всё одинаково полезно

    Два документа, одинаково релевантные запросу, могут
    иметь существенно разную ценность.
    Что важнее?
        Ваш запрос: "Бюджет фильма Аватар"
        Результат 1 лежит на avatarmovie.com, результат 2 на
        afisha.ru, результат 3 в безвестном ЖЖ с 3-мя
        читателями.
    Слова в запросе имеют разную важность
    Какое слово важнее?
        Ваш запрос: "килограмм плутония цена"


Дмитрий Барашев | Алгоритмы в поисковых системах               18/26
Условия работы прототипа
          программное окружение и входные данные
    Все прототипы должны быть написаны на Java или на
    языке, компилирующемся в Java байткод. Все прототипы
    будут работать в одинаковых условиях.
    Программное окружение
        Единый интерфейс обмена данными с диском
        Единый интерфейс для чтения исходного корпуса

    Корпус документов
        Каждый документ – это XHTML файл с
        идентификатором и списком идентификаторов
        документов, в которые идут ссылки.
        Будет тренировочный корпус, помещающийся в RAM
        и боевой, который в RAM не поместится.
Дмитрий Барашев | Алгоритмы в поисковых системах           19/26
1 Кружок

     2 Поисковик

     3 Что будет дальше




Дмитрий Барашев | Алгоритмы в поисковых системах   20/26
Ближайшие шаги

    Что нужно сделать в ближайшие дни
        Собрать команды и "зарегистрировать" их на
        barashev.net
        Постараться в команде распределить роли – кто будет
        индексировать, кто искать, а кто может будет делать
        ранкинг
        Начать читать литературу
        Убедиться что вы знаете и помните:
                  как   программировать на Java
                  как   парсить XHTML
                  как   писать тесты (пригодится)
                  как   работает жёсткий диск (пригодится тем более)

Дмитрий Барашев | Алгоритмы в поисковых системах                       21/26
Подробности о программном окружении




    Подробности о программном окружении в течении
    ближайших дней на сайте или на ближайшей очной
    встрече.




Дмитрий Барашев | Алгоритмы в поисковых системах     22/26
Основная литература



    Читать, к сожалению, придётся по-английски.
          Introduction to Information Retrieval (Manning,
          Raghavan, Sch¨tze)
                         u
          http://nlp.stanford.edu/IR-book/information-retrieva
          Information Retrieval (Rijsbergen)
          http://www.dcs.gla.ac.uk/Keith/Preface.html




Дмитрий Барашев | Алгоритмы в поисковых системах         23/26
Как это сделали вы?
          расскажите, не стесняйтесь




    В конце семестра попросим команды, а победителя
    особенно, рассказать о применённых алгоритмах.




Дмитрий Барашев | Алгоритмы в поисковых системах      24/26
А как это делается по-настоящему?


    Большие поисковики конечно гораздо сложнее. Всех
    секретов они не откроют. Но кое-что будет.
    Бонусные лекции
        MapReduce – технология параллельной обработки
        большого количества информации
        Bigtable – распределённая слабоструктурированная
        таблица




Дмитрий Барашев | Алгоритмы в поисковых системах           25/26
Какое у этого продолжение


           У конкретно этой работы продолжения скорее всего не
           будет. Это всего лишь введение в исследования
           вообще и в тему information management.
           В группе исследования методов организации
           информации (http://meta.math.spbu.ru) можно
           заниматься дальнейшими исследованиями в самых
           разнообразных направлениях, востребованных как в
           науке так и в промышленности.




Дмитрий Барашев | Алгоритмы в поисковых системах                 26/26

Mais conteúdo relacionado

Mais procurados

20150129 минобороны презентация v02
20150129 минобороны презентация v0220150129 минобороны презентация v02
20150129 минобороны презентация v02finnopolis
 
Algorithms overview for content discovery and distribution (on russian)
Algorithms overview for content discovery and distribution (on russian) Algorithms overview for content discovery and distribution (on russian)
Algorithms overview for content discovery and distribution (on russian) Alexander Petrov
 
информационные и информационно поисковые системы интернет
информационные и информационно поисковые системы интернетинформационные и информационно поисковые системы интернет
информационные и информационно поисковые системы интернетInno4ka2323
 
Informacia v-baze-dannyh-docazatelnoi-mediciny
Informacia v-baze-dannyh-docazatelnoi-medicinyInformacia v-baze-dannyh-docazatelnoi-mediciny
Informacia v-baze-dannyh-docazatelnoi-medicinyamansaulyk
 
"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУYandex
 
Познай ТОП, выпуск 3. Севальнев Дмитрий и Юрков Сергей на MegaIndex.tv
Познай ТОП, выпуск 3. Севальнев Дмитрий и Юрков Сергей на MegaIndex.tvПознай ТОП, выпуск 3. Севальнев Дмитрий и Юрков Сергей на MegaIndex.tv
Познай ТОП, выпуск 3. Севальнев Дмитрий и Юрков Сергей на MegaIndex.tvДмитрий Севальнев
 
Fact Extraction (ideograph)
Fact Extraction (ideograph)Fact Extraction (ideograph)
Fact Extraction (ideograph)NLPseminar
 
Проектирование программных систем. Занятие 8
Проектирование программных систем. Занятие 8Проектирование программных систем. Занятие 8
Проектирование программных систем. Занятие 8Dima Dzuba
 
Search systems
Search systemsSearch systems
Search systemsKuznecov
 
извлечение объектов и фактов из текстов
извлечение объектов и фактов из текстовизвлечение объектов и фактов из текстов
извлечение объектов и фактов из текстовYandex
 
Russir 2010 final
Russir 2010 finalRussir 2010 final
Russir 2010 finalyaevents
 
Принципы работы поисковой системы
Принципы работы поисковой системыПринципы работы поисковой системы
Принципы работы поисковой системыNetpeak
 
32 - Базы данных. Пространственные индексы
32 - Базы данных. Пространственные индексы32 - Базы данных. Пространственные индексы
32 - Базы данных. Пространственные индексыRoman Brovko
 
Новое SEO. Изменения в ранжировании Яндекса 2014. Конференция в Казани
Новое SEO. Изменения в ранжировании Яндекса 2014. Конференция в КазаниНовое SEO. Изменения в ранжировании Яндекса 2014. Конференция в Казани
Новое SEO. Изменения в ранжировании Яндекса 2014. Конференция в КазаниДмитрий Севальнев
 

Mais procurados (18)

20150129 минобороны презентация v02
20150129 минобороны презентация v0220150129 минобороны презентация v02
20150129 минобороны презентация v02
 
Algorithms overview for content discovery and distribution (on russian)
Algorithms overview for content discovery and distribution (on russian) Algorithms overview for content discovery and distribution (on russian)
Algorithms overview for content discovery and distribution (on russian)
 
информационные и информационно поисковые системы интернет
информационные и информационно поисковые системы интернетинформационные и информационно поисковые системы интернет
информационные и информационно поисковые системы интернет
 
Informacia v-baze-dannyh-docazatelnoi-mediciny
Informacia v-baze-dannyh-docazatelnoi-medicinyInformacia v-baze-dannyh-docazatelnoi-mediciny
Informacia v-baze-dannyh-docazatelnoi-mediciny
 
"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" Михаил Агеев, Яндекс, МГУ
 
Познай ТОП, выпуск 3. Севальнев Дмитрий и Юрков Сергей на MegaIndex.tv
Познай ТОП, выпуск 3. Севальнев Дмитрий и Юрков Сергей на MegaIndex.tvПознай ТОП, выпуск 3. Севальнев Дмитрий и Юрков Сергей на MegaIndex.tv
Познай ТОП, выпуск 3. Севальнев Дмитрий и Юрков Сергей на MegaIndex.tv
 
Извлечение знаний и фактов из текстов
Извлечение знаний и фактов из текстовИзвлечение знаний и фактов из текстов
Извлечение знаний и фактов из текстов
 
seo
seo seo
seo
 
Fact Extraction (ideograph)
Fact Extraction (ideograph)Fact Extraction (ideograph)
Fact Extraction (ideograph)
 
Информационный поиск. Методы оценки качества поиска. Эволюция результатов
Информационный поиск. Методы оценки качества поиска. Эволюция результатовИнформационный поиск. Методы оценки качества поиска. Эволюция результатов
Информационный поиск. Методы оценки качества поиска. Эволюция результатов
 
PressPortrets
PressPortretsPressPortrets
PressPortrets
 
Проектирование программных систем. Занятие 8
Проектирование программных систем. Занятие 8Проектирование программных систем. Занятие 8
Проектирование программных систем. Занятие 8
 
Search systems
Search systemsSearch systems
Search systems
 
извлечение объектов и фактов из текстов
извлечение объектов и фактов из текстовизвлечение объектов и фактов из текстов
извлечение объектов и фактов из текстов
 
Russir 2010 final
Russir 2010 finalRussir 2010 final
Russir 2010 final
 
Принципы работы поисковой системы
Принципы работы поисковой системыПринципы работы поисковой системы
Принципы работы поисковой системы
 
32 - Базы данных. Пространственные индексы
32 - Базы данных. Пространственные индексы32 - Базы данных. Пространственные индексы
32 - Базы данных. Пространственные индексы
 
Новое SEO. Изменения в ранжировании Яндекса 2014. Конференция в Казани
Новое SEO. Изменения в ранжировании Яндекса 2014. Конференция в КазаниНовое SEO. Изменения в ранжировании Яндекса 2014. Конференция в Казани
Новое SEO. Изменения в ранжировании Яндекса 2014. Конференция в Казани
 

Destaque

Mokador 2010 Eng
Mokador 2010   EngMokador 2010   Eng
Mokador 2010 Engguest9a2b06
 
Ph D Swati Dhar
Ph D Swati DharPh D Swati Dhar
Ph D Swati DharSwati Dhar
 
Budowa dróg krajowych i autostrad na lata 2008 - 2012
Budowa dróg krajowych i autostrad na lata 2008 - 2012Budowa dróg krajowych i autostrad na lata 2008 - 2012
Budowa dróg krajowych i autostrad na lata 2008 - 2012Mateusz Mazur
 
The Changing Global Economic Order and the Tall Re-Order of the Global Softwa...
The Changing Global Economic Order and the Tall Re-Order of the Global Softwa...The Changing Global Economic Order and the Tall Re-Order of the Global Softwa...
The Changing Global Economic Order and the Tall Re-Order of the Global Softwa...guest01f5efb
 
20091231露德玩趴手冊
20091231露德玩趴手冊20091231露德玩趴手冊
20091231露德玩趴手冊guestc5ae5c
 
Rzeszów - celny wybór
Rzeszów - celny wybórRzeszów - celny wybór
Rzeszów - celny wybórMateusz Mazur
 

Destaque (8)

Mokador 2010 Eng
Mokador 2010   EngMokador 2010   Eng
Mokador 2010 Eng
 
Etlap Hu
Etlap HuEtlap Hu
Etlap Hu
 
Ph D Swati Dhar
Ph D Swati DharPh D Swati Dhar
Ph D Swati Dhar
 
Budowa dróg krajowych i autostrad na lata 2008 - 2012
Budowa dróg krajowych i autostrad na lata 2008 - 2012Budowa dróg krajowych i autostrad na lata 2008 - 2012
Budowa dróg krajowych i autostrad na lata 2008 - 2012
 
The Changing Global Economic Order and the Tall Re-Order of the Global Softwa...
The Changing Global Economic Order and the Tall Re-Order of the Global Softwa...The Changing Global Economic Order and the Tall Re-Order of the Global Softwa...
The Changing Global Economic Order and the Tall Re-Order of the Global Softwa...
 
20091231露德玩趴手冊
20091231露德玩趴手冊20091231露德玩趴手冊
20091231露德玩趴手冊
 
Fotos-BodaCivil
Fotos-BodaCivilFotos-BodaCivil
Fotos-BodaCivil
 
Rzeszów - celny wybór
Rzeszów - celny wybórRzeszów - celny wybór
Rzeszów - celny wybór
 

Semelhante a Запуск клуба "Поисковые системы"

Фишки из патентов Google на GuruConf-2017
Фишки из патентов Google на GuruConf-2017Фишки из патентов Google на GuruConf-2017
Фишки из патентов Google на GuruConf-2017Taras Gushcha
 
Принципы работы поисковой системы
Принципы работы поисковой системыПринципы работы поисковой системы
Принципы работы поисковой системыNetpeak
 
Lan-Crawler Bachlor RU
Lan-Crawler Bachlor RULan-Crawler Bachlor RU
Lan-Crawler Bachlor RUcDima
 
Алексей Колосов
Алексей Колосов Алексей Колосов
Алексей Колосов Lidia Pivovarova
 
Puple's presentation
Puple's presentationPuple's presentation
Puple's presentationKuznecov
 
системный анализ и реинжиниринг
системный анализ и реинжинирингсистемный анализ и реинжиниринг
системный анализ и реинжинирингAleksandr Barmin
 
"Анализ неявных предпочтений пользователей" — Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" — Михаил Агеев, Яндекс, МГУ"Анализ неявных предпочтений пользователей" — Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" — Михаил Агеев, Яндекс, МГУYandex
 
Продвижение сайтов в Уфе от Андрея Буйлова
Продвижение сайтов в Уфе от Андрея БуйловаПродвижение сайтов в Уфе от Андрея Буйлова
Продвижение сайтов в Уфе от Андрея БуйловаAndrei Builov
 
Никулин Павел. Machine learning для текстового анализа
Никулин Павел. Machine learning для текстового анализаНикулин Павел. Machine learning для текстового анализа
Никулин Павел. Machine learning для текстового анализаДмитрий Шахов
 
SEO-Коучинг 4.0_Day1
SEO-Коучинг 4.0_Day1SEO-Коучинг 4.0_Day1
SEO-Коучинг 4.0_Day1seo-intellect
 
20111002 information retrieval raskovalov_lecture3
20111002 information retrieval raskovalov_lecture320111002 information retrieval raskovalov_lecture3
20111002 information retrieval raskovalov_lecture3Computer Science Club
 
"Анализ поведения пользователей и персонализация поисковой выдачи". Юрий Усти...
"Анализ поведения пользователей и персонализация поисковой выдачи". Юрий Усти..."Анализ поведения пользователей и персонализация поисковой выдачи". Юрий Усти...
"Анализ поведения пользователей и персонализация поисковой выдачи". Юрий Усти...Yandex
 
Поиск в СЭД? Элементарно, Ватсон!
Поиск в СЭД? Элементарно, Ватсон!Поиск в СЭД? Элементарно, Ватсон!
Поиск в СЭД? Элементарно, Ватсон!DIRECTUM
 
Гайд по текстовому антиспаму
Гайд по текстовому антиспамуГайд по текстовому антиспаму
Гайд по текстовому антиспамуAlexey Chekushin
 
Ainl 2013 bogatyrev_математическая и лингвистическая
Ainl 2013 bogatyrev_математическая и лингвистическаяAinl 2013 bogatyrev_математическая и лингвистическая
Ainl 2013 bogatyrev_математическая и лингвистическаяAINL Conferences
 
Дизайн мышление или почему так важно знать про правило 7 плюс/минус 2
Дизайн мышление или почему так важно знать про правило 7 плюс/минус 2Дизайн мышление или почему так важно знать про правило 7 плюс/минус 2
Дизайн мышление или почему так важно знать про правило 7 плюс/минус 2Kamil Kalimullin
 
Федор Романенко - "Ранжирование: от строчки кода до Матрикснета"
Федор Романенко - "Ранжирование: от строчки кода до Матрикснета"Федор Романенко - "Ранжирование: от строчки кода до Матрикснета"
Федор Романенко - "Ранжирование: от строчки кода до Матрикснета"Rostislav Shorgin
 

Semelhante a Запуск клуба "Поисковые системы" (20)

Фишки из патентов Google на GuruConf-2017
Фишки из патентов Google на GuruConf-2017Фишки из патентов Google на GuruConf-2017
Фишки из патентов Google на GuruConf-2017
 
лекция 5
лекция 5лекция 5
лекция 5
 
Принципы работы поисковой системы
Принципы работы поисковой системыПринципы работы поисковой системы
Принципы работы поисковой системы
 
Lan-Crawler Bachlor RU
Lan-Crawler Bachlor RULan-Crawler Bachlor RU
Lan-Crawler Bachlor RU
 
Алексей Колосов
Алексей Колосов Алексей Колосов
Алексей Колосов
 
Системы автоматического составления обзорных рефератов
Системы автоматического составления обзорных рефератовСистемы автоматического составления обзорных рефератов
Системы автоматического составления обзорных рефератов
 
Puple's presentation
Puple's presentationPuple's presentation
Puple's presentation
 
системный анализ и реинжиниринг
системный анализ и реинжинирингсистемный анализ и реинжиниринг
системный анализ и реинжиниринг
 
"Анализ неявных предпочтений пользователей" — Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" — Михаил Агеев, Яндекс, МГУ"Анализ неявных предпочтений пользователей" — Михаил Агеев, Яндекс, МГУ
"Анализ неявных предпочтений пользователей" — Михаил Агеев, Яндекс, МГУ
 
Продвижение сайтов в Уфе от Андрея Буйлова
Продвижение сайтов в Уфе от Андрея БуйловаПродвижение сайтов в Уфе от Андрея Буйлова
Продвижение сайтов в Уфе от Андрея Буйлова
 
Никулин Павел. Machine learning для текстового анализа
Никулин Павел. Machine learning для текстового анализаНикулин Павел. Machine learning для текстового анализа
Никулин Павел. Machine learning для текстового анализа
 
SEO-Коучинг 4.0_Day1
SEO-Коучинг 4.0_Day1SEO-Коучинг 4.0_Day1
SEO-Коучинг 4.0_Day1
 
20111002 information retrieval raskovalov_lecture3
20111002 information retrieval raskovalov_lecture320111002 information retrieval raskovalov_lecture3
20111002 information retrieval raskovalov_lecture3
 
кулагин поиск близких по смыслу языковых выражений
кулагин поиск близких по смыслу языковых выраженийкулагин поиск близких по смыслу языковых выражений
кулагин поиск близких по смыслу языковых выражений
 
"Анализ поведения пользователей и персонализация поисковой выдачи". Юрий Усти...
"Анализ поведения пользователей и персонализация поисковой выдачи". Юрий Усти..."Анализ поведения пользователей и персонализация поисковой выдачи". Юрий Усти...
"Анализ поведения пользователей и персонализация поисковой выдачи". Юрий Усти...
 
Поиск в СЭД? Элементарно, Ватсон!
Поиск в СЭД? Элементарно, Ватсон!Поиск в СЭД? Элементарно, Ватсон!
Поиск в СЭД? Элементарно, Ватсон!
 
Гайд по текстовому антиспаму
Гайд по текстовому антиспамуГайд по текстовому антиспаму
Гайд по текстовому антиспаму
 
Ainl 2013 bogatyrev_математическая и лингвистическая
Ainl 2013 bogatyrev_математическая и лингвистическаяAinl 2013 bogatyrev_математическая и лингвистическая
Ainl 2013 bogatyrev_математическая и лингвистическая
 
Дизайн мышление или почему так важно знать про правило 7 плюс/минус 2
Дизайн мышление или почему так важно знать про правило 7 плюс/минус 2Дизайн мышление или почему так важно знать про правило 7 плюс/минус 2
Дизайн мышление или почему так важно знать про правило 7 плюс/минус 2
 
Федор Романенко - "Ранжирование: от строчки кода до Матрикснета"
Федор Романенко - "Ранжирование: от строчки кода до Матрикснета"Федор Романенко - "Ранжирование: от строчки кода до Матрикснета"
Федор Романенко - "Ранжирование: от строчки кода до Матрикснета"
 

Запуск клуба "Поисковые системы"

  • 1. Алгоритмы в поисковых системах исследование, программирование и соревнование Дмитрий Барашев 11 марта 2010 Дмитрий Барашев | Алгоритмы в поисковых системах 1/26
  • 2. 1 Кружок 2 Поисковик 3 Что будет дальше Дмитрий Барашев | Алгоритмы в поисковых системах 2/26
  • 3. 1 Кружок 2 Поисковик 3 Что будет дальше Дмитрий Барашев | Алгоритмы в поисковых системах 3/26
  • 4. Что будем делать Исследовать Программировать Соревноваться Дмитрий Барашев | Алгоритмы в поисковых системах 4/26
  • 5. Исследование (настоящее) Приличная научная работа включает в себя несколько частей Анатомия научной работы Изучение предыдущего опыта, похожих работ и смежных областей Разработка своего подхода Проведение экспериментов Ваша работа тоже хочет быть приличной. Дмитрий Барашев | Алгоритмы в поисковых системах 5/26
  • 6. Исследование (ваше) У вас нет своего подхода, но исследование есть. Анатомия вашего исследования Прочитать и понять несколько книг и статей Реализовать один или несколько алгоритмов и сравнить их характеристики Выбрать наиболее приемлемый для вас подход Оформить результаты в виде прототипа научной статьи на 2-3 страницы. Дмитрий Барашев | Алгоритмы в поисковых системах 6/26
  • 7. Программирование Мы хотим не только почитать книги и статьи но и применить знания на практике Прототип поисковика Может проиндексировать некоторое количество HTML файлов Может отвечать на пользовательские запросы Данных будет много, поместиться целиком в память шансов нет. Дмитрий Барашев | Алгоритмы в поисковых системах 7/26
  • 8. Соревнование Просто так читать статьи и писать код скучно. Стать лучшим – интересно! Соревнование В конце семестра мы проведём сравнительное тестирование поисковых систем Один и тот же запрос, слева результаты поисковика A, справа результаты поисковика B. Чьи лучше? Хорошее неленивое исследование и аккуратное программирование – больше шансов на победу Дмитрий Барашев | Алгоритмы в поисковых системах 8/26
  • 9. Формат работы Семинар. Основную работу вы делаете самостоятельно: Изучаете литературу Пишете код и проводите эксперименты Пишете текст работы Очные встречи и специальные лекции будут Большая часть работы и общения будет в online на barashev.net Дмитрий Барашев | Алгоритмы в поисковых системах 9/26
  • 10. Команды веселее вместе Teh team В команде 2-4 человека Каждый самостоятельно изучает литературу, договаривается с товарищами о формате обмена данными, реализует понравившиеся алгоритмы и оценивает их характеристики Из полученных компонент команда собирает поисковик Поисковик у команды получается общий, а исследования в значительной степени индивидуальные В поисковике как минимум две большие компоненты и каждую можно реализовать несколькими способами. Работы на всех хватит. Дмитрий Барашев | Алгоритмы в поисковых системах 10/26
  • 11. 1 Кружок 2 Поисковик 3 Что будет дальше Дмитрий Барашев | Алгоритмы в поисковых системах 11/26
  • 12. Базовая терминология чтобы слова что-то означали Документ (document) – некоторая атомарная единица результатов поиска Корпус (corpus) – множество документов, среди которых идёт поиск Запрос (query) – одно или более искомое слово Релевантный документ (matching document) – документ который по какому-то критерию удовлетворяет запросу Результат (result) – множество релевантных документов Дмитрий Барашев | Алгоритмы в поисковых системах 12/26
  • 13. Давайте начнём (что может быть проще) Наивная реализация Получает запрос Перебирает все документы в корпусе, проверяет каждый на релевантность методом поиска подстроки для каждого слова запроса. Если документ релевантный, записывает его в результат Дмитрий Барашев | Алгоритмы в поисковых системах 13/26
  • 14. Давайте начнём (что может быть проще) Наивная реализация Получает запрос Перебирает все документы в корпусе, проверяет каждый на релевантность методом поиска подстроки для каждого слова запроса. Если документ релевантный, записывает его в результат К сожалению она работать не будет... Стоимость поиска равна O(C ∗ Q), где C и Q размеры корпуса и запроса Ваши пользователи просто заснут, не дождавшись результатов Дмитрий Барашев | Алгоритмы в поисковых системах 13/26
  • 15. Индексирование что это такое Чтоб поиск выполнялся быстрее, корпус надо проиндексировать. Построение примитивного индекса Каждый документ разбиваем на токены (слова). Получаем отображение документ → список токенов. Полученное отображение инвертируем, то есть делаем отображение токен → список документов. В полученном инвертированном индексе стоимость поиска будет O(R ∗ Q), где R – размер результата. Дмитрий Барашев | Алгоритмы в поисковых системах 14/26
  • 16. Пример Example Оригинальный корпус: doc1: "foo bar baz" doc2: "baz lorem ipsum" doc3: "foo lorem amet" Инвертированный индекс: "foo": {doc1, doc3} "bar": {doc1} "baz": {doc1, doc2} "lorem": {doc2, doc3} "ipsum": {doc2} "amet": {doc3} Дмитрий Барашев | Алгоритмы в поисковых системах 15/26
  • 17. Индексирование вариации Количественные характеристики Минимизация размера индекса (меньше занимает места ⇒ больший корпус можно проиндексировать) Минимизация времени построения (быстрее строим ⇒ быстрее можем обновлять) Качественные характеристики В индексе могут присутствовать позиции вхождения токенов в документы Для разных зон документа могут быть разные индексы Документы в постинг-листах могут быть упорядочены по-разному Дмитрий Барашев | Алгоритмы в поисковых системах 16/26
  • 18. Поиск что значит "релевантен" Определять релевантность можно по-разному. Модели поиска Булевская: запрос является логическим выражением ключевых слов (например все объединены AND’ом). Релевантны те документы, которые удовлетворяют выражению. Все релевантные документы имеют одинаковую ценность. Векторная: документ и запрос представлены как векторы в пространстве токенов. Мера релевантности – косинус угла между векторами. У результатов разная ценность. Дмитрий Барашев | Алгоритмы в поисковых системах 17/26
  • 19. Поиск не всё одинаково полезно Два документа, одинаково релевантные запросу, могут иметь существенно разную ценность. Что важнее? Ваш запрос: "Бюджет фильма Аватар" Результат 1 лежит на avatarmovie.com, результат 2 на afisha.ru, результат 3 в безвестном ЖЖ с 3-мя читателями. Слова в запросе имеют разную важность Какое слово важнее? Ваш запрос: "килограмм плутония цена" Дмитрий Барашев | Алгоритмы в поисковых системах 18/26
  • 20. Условия работы прототипа программное окружение и входные данные Все прототипы должны быть написаны на Java или на языке, компилирующемся в Java байткод. Все прототипы будут работать в одинаковых условиях. Программное окружение Единый интерфейс обмена данными с диском Единый интерфейс для чтения исходного корпуса Корпус документов Каждый документ – это XHTML файл с идентификатором и списком идентификаторов документов, в которые идут ссылки. Будет тренировочный корпус, помещающийся в RAM и боевой, который в RAM не поместится. Дмитрий Барашев | Алгоритмы в поисковых системах 19/26
  • 21. 1 Кружок 2 Поисковик 3 Что будет дальше Дмитрий Барашев | Алгоритмы в поисковых системах 20/26
  • 22. Ближайшие шаги Что нужно сделать в ближайшие дни Собрать команды и "зарегистрировать" их на barashev.net Постараться в команде распределить роли – кто будет индексировать, кто искать, а кто может будет делать ранкинг Начать читать литературу Убедиться что вы знаете и помните: как программировать на Java как парсить XHTML как писать тесты (пригодится) как работает жёсткий диск (пригодится тем более) Дмитрий Барашев | Алгоритмы в поисковых системах 21/26
  • 23. Подробности о программном окружении Подробности о программном окружении в течении ближайших дней на сайте или на ближайшей очной встрече. Дмитрий Барашев | Алгоритмы в поисковых системах 22/26
  • 24. Основная литература Читать, к сожалению, придётся по-английски. Introduction to Information Retrieval (Manning, Raghavan, Sch¨tze) u http://nlp.stanford.edu/IR-book/information-retrieva Information Retrieval (Rijsbergen) http://www.dcs.gla.ac.uk/Keith/Preface.html Дмитрий Барашев | Алгоритмы в поисковых системах 23/26
  • 25. Как это сделали вы? расскажите, не стесняйтесь В конце семестра попросим команды, а победителя особенно, рассказать о применённых алгоритмах. Дмитрий Барашев | Алгоритмы в поисковых системах 24/26
  • 26. А как это делается по-настоящему? Большие поисковики конечно гораздо сложнее. Всех секретов они не откроют. Но кое-что будет. Бонусные лекции MapReduce – технология параллельной обработки большого количества информации Bigtable – распределённая слабоструктурированная таблица Дмитрий Барашев | Алгоритмы в поисковых системах 25/26
  • 27. Какое у этого продолжение У конкретно этой работы продолжения скорее всего не будет. Это всего лишь введение в исследования вообще и в тему information management. В группе исследования методов организации информации (http://meta.math.spbu.ru) можно заниматься дальнейшими исследованиями в самых разнообразных направлениях, востребованных как в науке так и в промышленности. Дмитрий Барашев | Алгоритмы в поисковых системах 26/26