Поиск в коллекциях текстовых документов на основе методов семантического анализа, использующих универсальные гипертекстовые энциклопедии Александр Болдаков Институт системного программирования РАН [email protected] Московская секция ACM SIGMOD, 27 ноября 2008 г. План доклада Необходимость применения методов семантического анализа при поиске Wikipedia как основа для построения универсальной базы знаний Обзор методов семантического анализа текстов, основанных на использовании Wikipedia Применения знаний о семантике текста для решения задачи поиска и автоматического извлечения полезных категорий для навигации по результатам поиска Задача поиска в текстовых коллекциях Information retrieval & Semantic Web Актуальность (Web 2.0 – очередной всплеск) Разные типы документов в коллекциях Блоги (мало связанные, актуальные,…) Новости (мало связанные, очень актуальные,…) Научные статьи (строгая терминология, мало именованных сущностей,…) Web (большое количество “мусора”, сильная связанность,…) Проблемы лексического поиска по ключевым словам Лексическая многозначность терминов Учет синонимов Многозначность терминов в запросе Многозначность терминов в тексте документа Результат: ухудшение точности результатов Синонимы, аббревиатуры, сленг, прозвища и т.д. Результат: ухудшение полноты результатов Оценка релевантности Основана на композиции статистических значений Результат: ухудшение сортировки результатов Проблемы лексического поиска по ключевым словам (2) Сложность подбора ключевых слов Неопределенность предмета поиска Недостаточная осведомленность о предметной области Результат: ухудшение полноты результатов Интерфейс Система – “черный ящик” Модель поиска – несвязанная последовательность запросов Нет механизмов уточнения поиска Результат: снижение эффективности поиска и “ощущение потерянности” в данных Методы семантического анализа текстов, основанные на использовании Wikipedia Устранение лексической многозначности Нахождение терминов, семантически близких к данному Ранжирование терминов в документе Выделение ключевых слов в тексте Wikipedia - основа для построения универсальной базы знаний Универсальность (более 3х миллионов статей) Актуальность Структурированность информации Доступность для пополнения пользователями (в отличии от многих формальных языков описания знаний) Построение универсальной базы знаний на основе Wikipedia Словарь из концепций База данных возможных значений для многозначных слов База данных возможных синонимов для концепций Взвешенный граф из концепций с расстояниями, отражающими семантическую близость между концепциями Структура Wikipedia Статьи различных типов: Концепции Статьи, содержащие возможные варианты значений для многозначных терминов Статьи – переадресации на другие статьи (синонимы, аббревиатуры, …) Гипертекстовые ссылки между статьями различных типов Ссылки Ссылки Ссылки Ссылки … в тексте статьи в разделе “см.также” на даты на категории Измерение семантической близости концепций Википедии Концепции вместе со ссылками образуют граф ссылок Википедии Меры семантической близости в графах Коэффициент Дайса (нормированное количество общих соседей) Учет весов ссылок Нахождение концепций, семантически близких к данной Задача: получить N наиболее близких по смыслу концепций к заданной Проблема: подход в “лоб” неэффективен (статья “United Kingdom” содержит более 1млн статей с ненулевым значением близости) Решение: использование набора эвристик, понижающих точность, но повышающих эффективность вычисления меры близости Устранение лексической многозначности терминов Задача: связать многозначный термин в тексте с одним из возможных значений Возможные значения для многозначных терминов определены в базе знаний Критерий выбора: максимизация суммы мер семантической близости между значением и терминами, входящими в контекст многозначного термина Устранение лексической многозначности терминов: пример Текст: “Jigsaw is W3C's open-source project that started in May 1996. It is a web server platform that provides a sample HTTP 1.1 implementation and …” Ранжирование терминов в документе Задача: отсортировать термины в документе по их семантической важности Термины в документе образуют взвешенный граф Критерий важности термина: центральность вершины в графе (вершина в графе важна, если она находится в окружении сильно связанных с ней вершин) Для определения веса используется алгоритм PageRank на взвешенном графе Выделение ключевых слов Ключевое слово — слово в тексте, способное в совокупности с другими ключевыми словами дать представление о содержимом документа Метод основан на ранжировании терминов в документе и специальном критерии выбора граничного значения для отнесения термина к ключевым Семантический инструментарий База знаний на основе Wikipedia Словарь концепций Синонимы для концепций Варианты значений для многозначных слов Мера близости между концепциями Методы извлечения семантики из текстов Применение семантических методов для улучшения поиска Устранение лексической многозначности Учет синонимов Учёт семантической важности концепции в документе Помощь в подборе поисковых терминов Синонимы и в запросе, и в документе связаны с основной концепцией Ранжирование результатов Использование словаря для формирования поисковых запросов Устранение лексической многозначности терминов в документах Расширение запроса семантически близкими концепциями, с учетом степени близости Поисковый интерфейс Поиск как многошаговая комбинация поиска и навигации Автоматическое извлечение и рекомендация уточняющих категорий Необходимость интеграции с традиционным лексическим поиском Не все концепции есть в Wikipedia (как и в любом другом источнике) Виды поиска Навигационный Пример: Болдаков доклад SIGMOD 2006 Исследовательский Пример: Electric Car Терминология Концепция – некоторая однозначноидентифицируемая сущность, которой соответствует статья Wikipedia Термин – слово на естественном языке Что может быть поисковым запросом? Концепция Термин Произвольная комбинация концепций и терминов Пример: - Electric Car Electric Car; General Motors; Electric Car; “fastest speed” Извлечение семантики из документа Документ D состоит из последовательности лексем L(D)=l1,l2,…,lk C(D) = {ci} – концепции, выделенные в документе G(D) = (V,E) – взвешенный граф концепций: V=C(D), E=VxV. Вес каждого ребра – семантическая близость концепций Лексическое представление концепций NormName(c) = title(c) без выражения в скобках в конце строки c = sedna (database) NormName(c) = “sedna” LexName(c) = if (title(c) = NormName(c)) then title(c)+”_(concept)” else replace(title(c),” “,”_”) Пример: c = IBM, LexName(c) = “IBM_(concept)” с = sedna (database), LexName(c) = “sedna_(database)” Модель представления документов и запросов Документ (запрос) представлен вектором концепций и терминов. Размерность вектора |C|+|W| Если концепция или термин присутствуют в документе (запросе) они получают ненулевой вес в соответствующей компоненте вектора Критерии значимости терминов и концепций Значимость терминов: значимость определяется статистическими величинами Значимость концепций: концепция в документе тем более значима, чем больше в документе сильно связанных с ней концепций Sedna (database) в окружении не связанных концепций Sedna (database) в окружении XML, XQuery, XML database Соотношение лексических и семантических весов Если концепция встречается в документе без связанных с ней концепций, то её вклад в релевантность такой же, как у лексического термина Если концепция встречается в документе в окружении связанных с ней концепций, то её вклад должен асимптотически приближаться к вкладу еще одного слова из запроса Определение весов для терминов Измерение косинуса между векторами fd,t – частота встречаемости термина в документе ft – число документов в которых встречается термин N – общее число документов в коллекции Определение весов для концепций wd ,c 1 ln f d ,c 1 f d ,ci Sim c, ci ci R c f d ,c частота встречаемости концепции c в документе Rc множество концепций в документе, связанных с c Sim c, ci мера семантической близости c и ci Если нет связанных вершин, то вес совпадает с лексическим весом концепции Индексация документов Для каждой концепций сi из C(D) в индекс добавляется запись LexName(сi) → (idD,wсi) Для каждого термина li из L(D) в индекс добавляется запись li → (idD,wli) Семантика поиска по концепции Наиболее релевантными должны быть документы, в которых присутствует искомая концепция (семантически) Необходимо учитывать ошибки алгоритмов устранения лексической многозначности и ошибок при выделении терминов в тексте Учет ошибок устранения многозначности и ошибок при выделении терминов L – последовательность слов Repr(c) = {Li} – множество возможных текстовых представлений концепции Пример: c = IBM Repr(c) = IBM, International Business Machines, Big Blue, … Выполнение запросов: поиск по концепции Поиск по концепции с Repr(c) = {Li} Интерпретация запроса: LexName(сi), L1*w, L2*w, …, LN*w w - вес понижающий вклад Li в релевантность Li – улучшают полноту выборки и не влияют на порядок документов, содержащих распознанную концепцию Выполнение запросов: поиск по терминам Поиск по терминам l1,l2,…,lk Интерпретация запроса: l1,l2,…,lk Ранжирование результатов происходит по статистическим принципам Выполнение запросов: смешанный поиск Поиск по концепции с и лексеме l Repr(c) = {Li} Интерпретация запроса: LexName(сi),L1*w,…,LN*w, l w - вес понижающий вклад Li в релевантность Li – улучшают полноту выборки и не влияют на порядок документов, содержащих распознанную концепцию с и/или термин l Расширение запроса концепциями, семантически близкими к искомой Существующие подходы: Расширение запроса терминами из внешних источников: словарей, онтологий,… Расширение запроса терминами из документов, релевантных оригинальному запросу Расширение запроса концепциями, семантически близкими к искомой (2) Exp(c)={c1,…,ck} – множество концепций: Sim(c1,c2)!=0 Expp(c)={c1,…,ck} – множество концепций: Sim(c1,c2)>p Расширение запроса по концепции с Qorig = c Qexpanded = c;c1*w1;…;ck*wk wi = Sim(c,ci) Построение фасетного поискового интерфейса Комбинация навигационного и поискового интерфейсов В ответ на поисковый запрос фасетная поисковая система формирует: Список релевантных результатов на текущий запрос Набор фасетов – терминов, предназначенных для: Уточнения поискового запроса Навигации по коллекции документов Методы извлечения фасетных терминов: Использование созданной вручную метаинформации о документах Автоматическое извлечение фасетных терминов Автоматическое извлечение фасетных терминов Подзадачи Идентификация терминов-кандидатов Рекомендация конкретных фасетов на текущем шаге поиска Учет текущего запроса Учет текущего множества результатов Построение фасетного поиска на основе методов семантического анализа текстов Идентификация фасетов: хорошие претенденты – ключевые Рекомендация фасетов: слова в документах Объединение ключевых слов для всех документов из текущего множества результатов – множество возможных фасетов Термины, семантически близкие к запросу, описывают текущий домен интересов пользователя Решение: RQ Di текущее множество результато в, релевантных запросу Q KW D множество ключевых концепций документа D Exp(Q) {ci : Sim (Q, ci ) 0} множество концепций, семантически связанных с Q F ExpQ D множество фасетов на заданном шаге поиска KW DR Q Спасибо за внимание Александр Болдаков Институт системного программирования РАН [email protected]