Поисковая система на основе семантики Пермский Государственный Университет Рабчевский Евгений SEUS: search engine using semantics Поисковая машина с использованием семантики Поиск по русско-язычным коллекциям данных Модифицированная векторная модель На базе библиотеки Lucene и анализатора Dictum План доклада Постановка задачи, идея работы поисковой машины SEUS Работа SEUS на практике SEUS на РОМИП Результаты Постановка задачи Пусть коллекция документов состоит из двух документов: D1. Стоимость полетов в космос превышает стоимость жд билета в Москву. D2. Пункт продажи жд билетов в Москве находится здесь. А пользователь задает следующий запрос. Q: купить жд билет в Москве. Постановка задачи Отранжировать документы на основе семантики документов и вычислений на базе векторной модели Векторная модель ранжирования Текст представляется набором термов (слов текста, приведенных к нормальной форме) Запрос и документы коллекции представляются векторами, координатами которых являются относительные частоты соответствующих термов Ранжирование проводится на основании поиска наименьшего угла между вектором запроса и векторами документов коллекции Триплетное представление данных RDF модель как основа для представления данных RDF триплет – тройка RDF ресурсов: субъект, предикат и объект Модель поиска SEUS Текст представляется набором триплетов Запрос и документы коллекции представляются векторами, координатами которых являются коэффициенты доверия соответствующих триплетов Ранжирование проводится на основании поиска наименьшего угла между вектором запроса и векторами документов коллекции Представление текста в виде RDF графа Текст каждого предложения представляется графом, полученным с помощью полного синтаксического анализа В результирующий граф включаются все подграфы главного графа Триплетное представление документа 1 1 Стоимость полетов в космос1 превышать стоимость жд билета в Москву 2 полеты в космос стоимость (стоить) величина стоимости 3 тот кто способен летать полететь в Космос 4 полет в (направление движения) космос 5 жд билет в Москву стоимость (стоить) величина стоимости 6 жд билет в (направление движения) Москва 2 3 4 5 6 7 8 9 10 11 9 12 5 6 13 11 14 Триплетное представление документа 2 7 Пункт продажи жд билетов в Москве 15 место расположения 16 Здесь 17 8 Пункт продажи жд билетов 18 В (место расположения) 16 Москва 14 9 Продажа жд билетов 19 в (место проведения) 20 Москва 14 10 Продажа жд билетов 19 Имеет атрибут 21 Пункт 22 11 тот кто продает 23 Продажа - продавать 24 ЖД билет 13 12 Продажа 24 в (место проведения) 20 Москва 14 Триплетное представление запроса 13 14 15 покупка жд билетов в (место проведения) Москва Тот кто покупает покупка - покупать Жд билеты покупка в (место проведения) Москва 25 20 14 26 27 13 27 20 14 Лингвистическая онтология Покупка и продажа - инверсные понятия 16 17 тот кто покупает покупка тот кто продает тот кто продает продажа тот кто покупает 26 27 23 23 24 26 Триплетное представление документов, запроса и онтологии D1 1 1 2 4 3 7 4 10 5 12 6 13 D2 7 15 8 18 9 19 10 19 11 23 12 24 Q 13 25 14 26 15 27 O 16 26 17 23 2 5 8 11 5 11 3 6 9 9 6 14 16 16 20 21 24 20 17 14 14 22 13 14 20 27 20 14 13 14 27 24 23 26 Логический вывод 1 Триплет 25 20 14 разложили на триплеты 26 27 13 27 20 14 Значит первый (при желании) можно не рассматривать Логический вывод 2 Используя инверсные свойства Покупка и Продажа, из триплетов запроса 26 27 13 27 20 14 Получим триплеты 23 24 13 24 20 14 Вывод Все триплеты отражающие смысл запроса полностью содержатся в RDF графе (наборе триплетов), отражающем смысл документа D2. Что не выполняется для документа D1. Значит документ D2 более релевантен запросу Q. Для точной оценки можно подсчитать углы между соответствующими векторами Модель SEUS на практике Триплетное представление текста Коэффициенты доверия триплетов Логический вывод Триплетное представление текста RDF данные извлекаются при помощи: GRDDL извлечения из микроформатов (например RDF/A) Извлекаются из текста при помощи лексикосинтаксических шаблонов Лексико-синтаксические шаблоны Позволяют извлекать семантику текста на основе особенностей языка Тело шаблона состоит из входной и выходной схем. Входная схема – характерное описание части предложения, по которому в сочетании с входным текстом, можно однозначно построить выходную семантическую модель, соответствующую анализируемому тексту. Выходная семантическая модель представляется набором RDF триплетов, состоящих из субъекта, объекта и предиката. Пример шаблона Студент - это человек, который учится в университете http://result/subject/Студент http://result/property/#subClassOf http://result/object/человек LSPL (ПГУ) XML основанный язык формализации шаблонов LSPL (не путать с LSPL Большаковой) Элементы входной схемы: литерал, словоформа, часть речи, синтаксическая группа, знаки препинания Выходная схема – набор триплетов со с ссылками на элементы входной схемы Полный текст шаблона <pattern> <inputSchema> <element type="partOfSpeech" id="1"> <content>noun</content> </element> <element type="literal"> <content>-</content> </element> <element type="literal" id="2"> <content>это</content> </element> <element type="partOfSpeech" id="3"> <content>noun</content> </element> <element type="literal" id="4"> <content>,</content> </element> <element type="wordForm" id="5"> <content>который</content> </element> <element type="partOfSpeech" id="6"> <content>verb</content> </element> </inputSchema> <outputSchema> <statement> <subject>http://seus.rabchevsky.name/rdf#**1**</subject> <object>http://seus.rabchevsky.name/rdf#**3**</object> <property>http://www.w3.org/1999/02/22-rdf-syntax-ns#type</property> </statement> </outputSchema> </pattern> Интерпретатор языка LSPL Для обеспечения семантики языка LSPL использовался синтаксический анализатор DictaScope. Java библиотека PatternLib: Взаимодействие с синтаксическим анализатором Обработка шаблонов и применение их тексту Работа с RDF данными через RDF store библиотеки Jena Визуализация полученных RDF графов с помощью библиотеки GraphViz Взаимодействие с клиентскими программами Online анализатор http://seus.rabchevsky.name:8080/DemoSer vlet/ Вводится текст Выбираются шаблоны После анализа выводятся триплеты в декларативном и графическом виде Триплетное представление документа 1 1 Стоимость полетов в космос1 превышать стоимость жд билета в Москву 2 полеты в космос стоимость (стоить) величина стоимости 3 тот кто способен летать полететь в Космос 4 полет в (направление движения) космос 5 жд билет в Москву стоимость (стоить) величина стоимости 6 жд билет в (направление движения) Москва 2 3 4 5 6 7 8 9 10 11 9 12 5 6 13 11 14 определяется только субъект и предикат Триплетное представление документа 2 7 Пункт продажи жд билетов в Москве 15 место расположения 16 Здесь 17 8 Пункт продажи жд билетов 18 В (место расположения) 16 Москва 14 9 Продажа жд билетов 19 в (место проведения) 20 Москва 14 10 Продажа жд билетов 19 Имеет атрибут 21 Пункт 22 11 тот кто продает 23 Продажа - продавать 24 ЖД билет 13 12 Продажа 24 в (место проведения) 20 Москва 14 Семантический словарь Для эффективного триплетного представления текста необходим семантический словарь Статьи словаря можно оформлять в виде таких же лексико-синтаксических шаблонов Коэффициенты доверия триплетов Для триплетов, полученных с помощью шаблонов, суть вероятности валидной работы шаблона Для этого разработан валидатор шаблонов Валидатор шаблонов 1/3 http://seus.rabchevsky.name:8080/VallyWeb/ Позволяет оценивать работу шаблонов на коллекции документов Сейчас залиты коллекции РОМИП’2009 (legal, by.web и km.ru) Валидатор шаблонов 2/3 Пользователь выбирает шаблон из базы имеющихся шаблонов и может Пользователь применяет готовый шаблон к коллекции документов, и система выдает лексикализации данного шаблона Результат представляется в виде таблицы из лексикализации шаблона и соответствующего RDF графа Валидатор шаблонов 3/3 Планируется реализовать интерфейс для отметки качества работы шаблонов пользователем и механизм расчета коэффициентов доверия шаблонов Коэффициенты доверия триплетов Для триплетов, полученных с помощью логического вывода, специализированного под информационный поиск, суть вероятности валидной работы правила логического вывода Возможны случаи когда значение коэффициентов доверия триплета существенно зависят от контекста (наличия других триплетов) – сейчас это не предусмотрено Логический вывод Стандартный - при помощи стандартных машин вывода (например машина вывода RDFS или OWL в библиотеке Jena) Адаптированный под информационный поиск с учетом лингвистики (нужна лингвистическая онтология) Работа с RDF данными Полученные триплеты хранятся в RDF store библиотеки Jena Jena хранит RDF графы в виде моделей Физически модель может храниться в СУБД, в XML файлах на диске и т.д. В нашем случае – СУБД MySQL Семантический индекс 1/2 В БД Jena моделей RDF графов добавлены поля: Идентификатора триплета Ссылка на документ источник Вместо термов коллекции в индексе хранятся идентификаторы триплетов Семантический индекс 2/2 Модификация Lucene: Изменениям были подвергнуты методы класса Similarity библиотеки Lucene: метод обработки отдельного терма метод обработки коллекции термов. SEUS на РОМИП GRDDL – в коллекциях РОМИП отсутствуют микроформаты Лексико-синтаксические шаблоны на данный момент дают очень плохие результаты Адаптированный под информационный поиск не разработан SEUS в прогонах семинара Поиск по коллекции нормативно правовых документов и веб коллекции Взята стандартная библиотека Lucene Русскоязычный стеммер Snowball из поставки Lucene Результаты SEUS SEUS: TREC KM AND 0,7 0,6 Recall 0,5 0,4 0,3 0,2 0,1 0 0 0,1 0,2 0,3 0,4 0,5 0,6 Precision 0,7 0,8 0,9 1 Результаты 1/3 LSPL - создан язык для формализации средств, позволяющих представлять текст в виде RDF графов. Интерпретатор LSPL - создан инструмент для применения языка LSPL Валидатор шаблонов – создан инструмент для работы по наполнению базы шаблонов или семантического словаря (для лингвиста) Результаты 2/3 Модификация Lucene – создана модель для поиска документов представленных в виде RDF графов. Модель реализована. SEUS на РОМИП’2009 1/2 – получена оценка «эталонной модели поиска» - оценка стандартной поставки Lucene SEUS на РОМИП’2009 2/2 – получены коллекции данных, запросы и таблицы релевантности, с помощью которых впоследствии можно будет оценить качество работы семантической поисковой машины * Результаты 3/3 Семантический словарь – не создан Созданных шаблонов – очень мало Логический вывод для информационного поиска - не реализован Лингвистическая онтология – не создана Предметная область коллекций документов – не выбрана Спасибо за внимание! http://seus.rabchevsky.name/ http://seus.rabchevsky.name:8080/DemoServlet/ http://rabchevsky.name/semantic_web_in_IR http://seus.rabchevsky.name:8080/VallyWeb/ http://seus.rabchevsky.name:8080/SEUS/ Mail me: [email protected]