• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Алексей Колосов
 

Алексей Колосов

on

  • 1,073 views

Алгоритм полнотекстокового поиска с обучением на основе статистических данных

Алгоритм полнотекстокового поиска с обучением на основе статистических данных

Statistics

Views

Total Views
1,073
Views on SlideShare
953
Embed Views
120

Actions

Likes
0
Downloads
7
Comments
0

4 Embeds 120

http://mathlingvo.ru 97
http://nlpseminar.ru 14
http://www.mathlingvo.ru 8
http://www.nlpseminar.ru 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Алексей Колосов Алексей Колосов Presentation Transcript

    • Алгоритм полнотекстокового поиска с обучением на основе статистических данных Алексей Колосов
    • Оглавление
      • Постановка задачи
      • Функции системы
      • Обработка запросов
      • Поисковый алгоритм
      • Эксперименты
      • Обучение
      • Перспективы развития
      • Постановка задачи
      • Функции системы
      • Обработка запросов
      • Поисковый алгоритм
      • Эксперименты
      • Обучение
      • Перспективы развития
    • Задача
      • Имеется портал, посвященный ответам на вопросы пользователей. Ответы на вопросы формируют специалисты-консультанты
      • Имеются базы документов, поиск по которым может позволить найти ответ
      • Необходимо снизить нагрузку специалистов, отвечающих на вопросы
    • Рабочий процесс Не помогло? До: После: Помогло?
    • Обработка данных Вопрос пользователя (произвольный рус./англ. текст) Ссылки на документы Вход Выход Поисковая система
    • Поиск по теме сообщения - результаты
    • Практические задачи
      • Автоматический подбор документов, содержащих нужную пользователям информацию, на основе полного текста вопроса
          • Поиск одинаковых или очень похожих вопросов (фильтрация дубликатов)
          • Подбор близких по смыслу документов, которые могут также заинтересовать пользователя
          • Быстрый поиск по ключевым словам
    • Отличия данного вида поиска от поиска в Интернете
      • Запрос состоит из нескольких предложений, а не из нескольких слов
      • Авторы страниц заинтересованы в адекватности результатов поиска (нет SEO)
      • Количество документов невелико (десятки тысяч)
      • Все документы посвящены одной тематике или ряду близких тематик
      • Постановка задачи
      • Функции системы
      • Обработка запросов
      • Поисковый алгоритм
      • Эксперименты
      • Обучение
      • Перспективы развития
    • Функции системы (подзадачи)
      • Постановка задачи
      • Функции системы
      • Обработка запросов
      • Поисковый алгоритм
      • Эксперименты
      • Обучение
      • Перспективы развития
    • Обработка запросов
      • Фильтрация шумовых слов
      • Выявление словосочетаний
      • Раскрытие форм слов (с меньшим весом)
      • Раскрытие синонимов (с меньшим весом)
    • Выявление словосочетаний – знаки препинания ( при индексировании)
      • Примеры:
      • issue - tracking tools => [N, N + 0.25]
      • ... the issue , but{stop word} tracking changes ... => [N, N + 3 ]
      • Object . Method () =>
      • Object[N], Method[N + 0.25]
      • … some object . Method A shows… => object[N], Method[N + 1 5 ]
    • Выявление словосочетаний - семантика
      • Несмотря на грамматические ошибки, пользователи обычно применяют корректные сочетания слов для описания технической сути проблемы.
      • Построение концептуального графа позволяет отфильтровать несвязанные слова и грамматически неверные конструкции.
    • Пример запроса
      • Hi there!
      • i have a script test with a bunch of checkpoints , but when it hits a checkpoint cannot be verified, the execution of the script stops and any tests after the failed checkpoint do not get executed.
      • Thank's in advance.
      • Randy
    • Концептуальный граф - фрагмент
    • Отфильтрованные предложения
    • Результаты разбора
      • Словосочетания, по которым должен производиться поиск
      • Каждое словосочетание имеет свой вес
      • Поскольку текст может содержать несколько вопросов / касаться нескольких тем, словосочетания объединяются оператором OR
      • В результате разбора задача поиска по тексту сводится к задаче поиска по набору словосочетаний, решаемой с помощью предлагаемого алгоритма
      • Постановка задачи
      • Функции системы
      • Обработка запросов
      • Поисковый алгоритм
      • Эксперименты
      • Обучение
      • Перспективы развития
    • Поисковый алгоритм
      • Факторы, влияющие на релевантность:
      • Операторы поиска ( AND, AND NOT, OR, “exact phrase”, и т.п .)
      • Скорректированный вес ключевых слов
      • Позиции слов в документе и знаки препинания
      • Вес проиндексированного поля
      • Результаты морфологического разбора запроса
    • Используемая модель
      • Для моделирования документа или запроса используется векторная модель:
      • The native methods of the control =>
      • [the (0.333), native(0.166), methods(0.166), of (0.166), control(0.166)]
      • [0, 5] [1] [2] [3] [4]
    • Процесс поиска
    • Релевантность по словам где – вес соответсвующих слов, вычисленный по формуле tf.
    • Релевантность по словосочетаниям
      • Словосочетания, повторяющиеся в тексте запроса несколько раз, имеют больший вес (зависящий от количество повторений)
      • Чем длиннее словосочетание, тем более узкий смысл оно имеет = > тем больше смысловая близость между документами, содержащими эту фразу
      • Чем дальше слова расположены друг от друга, тем меньше вероятность того, что они связаны
    • Релевантность по словосочетаниям. Факторы
      • Количество искомых словосочетаний, встречающихся в документе
      • Количество слов в искомых словосочетаниях
      • Расстояние между словами словосочетаний в документе и знаки препинания (слова должны быть в одном предложении)
    • Есть ли словосочетание в тексте?
      • Слова, расположенные далеко друг от друга (а также разделенные знаками препинания), скорее всего, не связаны между собой
      • Слова, расположенные в разных предложениях, скорее всего, не связаны между собой.
      • Контекстное окно должно учитывать и то, и другое
    • Словосочетание есть в документе, если...
      • ...( расстояние между каждой парой слов ) < M, где M – величина, на которую искуственно увеличивается позиция слова после конца предложения.
      • Пример: AJAX applications testing
      • AJAX web applications are, indeed, difficult for testing . => сум. расстояние: 7
      • No AJAX applications . Testing desktop applications is another task. =>
      • сум. расстояние: 16
    • Релевантность по словосочетаниям - формула среднее арифметическое релевантностей по каждому из рассматриваемых словосочетаний p i , выделенных из запроса q . Здесь w pi – вес словосочетания в запросе, R p - релевантность документа словосочетанию p i , вычисляемая по следующей форумле: где – количество слов в словосочетании p i , – суммарное расстояние между каждым из этих слов в рассматриваемом документе d j , вычисленное для каждого вхождения в документ словосочетания p i .
    • Итоговая релевантность
      • Словосочетания должны иметь больший вес, однако отсутствие совпадений по словосочетаниям не означает отсуствие релевантности
      • Релевантность считается отдельно по каждому полю, каждое поле имеет свой вес
      • Итоговая релевантность не должна зависеть от алгоритма вычисления ее слагаемых
    • Итоговая релевантность - формула где – косинус угла между векторами запроса q и документа d j , характеризующий их близость по ключевым словам , R phrase – релевантность по словосочетаниям, W field – вес проиндексированного поля
      • Постановка задачи
      • Функции системы
      • Обработка запросов
      • Поисковый алгоритм
      • Эксперименты
      • Обучение
      • Перспективы развития
    • Эксперимент. Формула оценки качества поиска где rel i – релевантность, проставленная асессором [0..2] , i – порядковый номер результата в выдаче p = 10 – количество оцениваемых результатов
    • Результаты экспериментов Среднее качество « top 10 » результатов ( discounted cumulative gain) , max=10,51 Количество запросов
      • Постановка задачи
      • Функции системы
      • Обработка запросов
      • Поисковый алгоритм
      • Эксперименты
      • Обучение
      • Перспективы развития
    • Обучение
      • Явная оценка неэффективна (оценивают качество документов только 0,23% пользователей)
      • Имеется подробная статистика об использовании портала
      • Если автоматически подобранные документы не помогли, запрос пользователя поступает к специалистам = > известна «полезность» каждого набора результатов для поиска по тексту
      • Систему обучают пользователи, не делая ничего дополнительно
    • Особенности:
      • при локальном поиске нет смысла учитывать «авторитетность» страницы (ссылки на нее)
      • никто не заинтересован в искусственном продвижении какой-либо страницы из локальной базы по определенным запросам засчет внестраничных факторов
      • прямая корректировка веса слов позволяет точно настраивать алгоритм
    • Оценка качества при поиске по тексту
      • Хорошие результаты поиска:
      Хорошие результаты – просмотренные документы Плохие результаты – просмотренные документы Плохие результаты поиска: Плохие результаты – документы с первой страницы результатов
    • Оценка качества при обычном поиске
      • Хорошие результаты поиска:
      Хорошие результаты – просмотренные документы Хорошие результаты – просмотренные документы
    • Оценка качества при обычном поиске
      • Плохие результаты поиска:
      Плохие результаты – все показанные документы с номерами [ 0 , N-1], где N – номер первого просмотренного документа Плохие результаты – документы с первой страницы результатов Плохие результаты – просмотренные документы
    • Корректировка весов после поиска
      • Величина должна сходиться к «идеальному» весу = > следующее изменение меньше, чем предыдущее
      • Корректировка весов не должна приводить к обнулению веса
      • Первая корректировка не должна приводить к делению на ноль или сильному изменению веса
    • Корректировка весов после поиска где – текущий скорректированный вес ключевого слова в индексе (измененный ранее в результате обработки статистики), – вес ключевого слова, изначально вычисленный по формуле tf . Значение n берется в зависимости от полезности обрабатываемого результата. Если результат является плохим, берется n = 1, если хорошим – берется n = 2. K > 0 – константа.
    • Корректировка весов при изменении документа
      • Изменение документа должно приводить к пересчету весов
      • Небольшие исправления не должны приводить к потере скорректированного веса
      • Новый вес должен быть тем ближе к старому (скорректированному), чем ближе по смыслу новая и старая версии документов
    • Корректировка весов при изменении документа - формула w i , j = tf i , j + cos ( d ’ j , d j ) · ( tf i , j - w’ i , j ) здесь cos ( d ’ j , d j ) – схожесть старой версии документа d j и новой версии документа d ’ j , вычисленная как косинус угла между их векторами , tf i , j – вес слова в новой версии документа, w’ i , j – скорректированный вес слова в старой версии документа.
      • Постановка задачи
      • Функции системы
      • Обработка запросов
      • Поисковый алгоритм
      • Эксперименты
      • Обучение
      • Перспективы развития
    • Обучение распознаванию фраз
      • По поведению пользователей можно судить о правильности разбиения запроса на фразы
      • Подсчет количества фраз в хороших и плохих результатах поможет определить, какие пары слов являются связанными
      • Сохранение полученных данных позволит правильно провести разбиение при следующем поиске
      • Накопленные данные можно использовать для автоматизированного создания шаблонов (при расширении поддержки какого-либо языка, или для поддержки нового языка)
    • Обучение распознаванию фраз. Пример
      • Запрос: expanding XML entities => [expanding, XML], [XML, entities]
      • Хорошие результаты: просмотрено (10), expanding + XML (1), XML + entities (9)
      • Рейтинг [XML, entities]++
    • Обучение распознаванию фраз. Пример
      • Фразы с высоким рейтингом:
      • [XML, entities] [web, tests] [file, names]
      • Шаблон:
      • существительное ед.ч. + существительное мн.ч. = словосочетание
    • Выводы
      • В системе автоматизации формирования ответа службы поддержки необходимо применять поиск по ключевым словам и словосочетаниям
      • Применение концептуальных графов упрощает поиск словосочетаний
      • Использование статистики может улучшить качество разбиения запросов на словосочетания
    • Вопросы?
    • Выявление близких по смыслу слов
      • Близкими по смыслу словами могут считаться:
      • Слова одной части речи
      • Употребляемые в одном и том же отношении
      • С одним и тем же словом
      • Пример: купить в магазине, купить в супермаркете, купить в гипермаркете, купить в бутике
      • = > [ магазин, супермаркет, гипермаркет, бутик ]