information extraction overview
DESCRIPTION
TRANSCRIPT
Санкт-Петербург, 20 июня 2011 года
Татьяна Ландо
Information Extraction
Начнем с начала :)
В этом докладе:
NLP = Natural Language Processing
Natural Language Processing — Научно-практическая область, занимающаяся
обработкой естественного языка, т.е. обычных текстов устных или письменных.
— Включает:— синтез и распознавание речи— поиск по текстам (да-да, Яндекс, Google…)— автоматические переводчики— и многое другое
Information Extraction
— Одна из областей NLP и Information Retrieval — Извлечение структурированной информации из
неструктурированного текста (в большей степени)— Основная часть посвящена объектам, их отношениям и
свойствам в текстах.— Состоит из:
— Named Entity Extraction— Coreference resolution— Fact Extraction (Relationship Extraction)
— Содержит чертовски много лингвистики ;)
Named Entity Recognition (NER)— Извлечение объектов (именованных сущностей),
т.е. имен, названий, иногда дат, промежутков времени и т.д.
Популярный блогер и основатель антикоррупционного проекта <org>"РосПил"</org> <person>Алексей Навальный </person> фигурирует в уголовном деле как советник губернатора <org>Кировской области</org> <person> Никиты Белых </person>.
Coreference resolution— Попытка понять, что несколько извлеченных NE
обозначают один объект. — Разрешение анафоры (связывание местоимений)
До 2007 года Алексей Навальный был заместителем председателя московского отделения партии "Яблоко" , но из партии его исключили за национализм.
— Обычно ограничиваются поиском текстовых синонимов:
Яндекс – Yandex
ВТБ – Внешторгбанк
НАТО – Североатлантический союз
Fact/Relation Extraction
— Извлечение информации об отношениях между объектами или о значениях параметров.
Популярный блогер и основатель антикоррупционного проекта "РосПил" Алексей Навальный фигурирует в уголовном деле как советник губернатора Кировской области Никиты Белых.
person position org
Алексей Навальный основатель РосПил
Никита Белых губернатор Кировская область
Что извлекают?Information Extraction
— Объекты из текстов (только NER)
— События и детали: дата, время, место проведения, название
— Мнения и отзывы: объект оценки и тональность
— Контактные данные с веб-страниц: email, skype, телефон, факс, адрес, …
— Объявления: объект, предлагаемое действие (покупка, продажа, …), …
— Другую специфическую информацию, например структуры белков из медицинских статей
первичная обработка текстаInformation Extraction
На входе: текст на естественном языке
Текст анализируется на всех лингвистических уровнях:
— лексическом— морфологическом— синтаксическом— семантическом
Различные уровни участвуют в разных процедурах анализа текста, которые входят в системы извлечения фактов.
первичная обработка текстаInformation Extraction
Определение словарной формы слов и нормализация других объектов (числа, даты)
текст
токенизация / графематика
лемматизация/нормализация
частичный синтаксический
разбор
Выявление связей между словами, объединение слов в неразрывные группы
Разбиение текста на абзацы, предложения, слова.
Дальше, самое интересноеInformation Extraction
— Выделение объектов и определение типов (NER):
Иван Петров –> ФИО3 апреля 1975 года –> датадиректор по маркетингу –> должностьООО «Рога и копыта» -> компания
— Установление связей между объектами (Factes)
Директор по маркетингу компании «Рога и копыта» Иван Петров родился ровно 35 лет назад.
Information Extraction
Вице-губернатор Новосибирской области Владимир Анисимов объявил, что в 2009 году в области планируется ввести в строй 979 тыс. кв. м жилья. В ответ на вопрос председателя строительного комитета облсовета Александра Савельева, занимающего пост генерального директора компании «КПД-Газстрой», руководитель профильного департамента обладминистрации сообщил, что за государственный счет будет построено около 10 % заявленных площадей.
Пример
FIO
FIOpost
postpost
comp
comp
datenumber
number
geo
Как извлекают?Information Extraction
— по онтологиям (NER)
— опираясь на правила
— опираясь на статистики
Наверное, сначала нужно поговорить про онтологии…
ОнтологииInformation Extraction
Онтологии
— «концептуальные словари»
— структуры в которых описываются некоторые понятия и/или объекты, отношения между ними, их характеристики
— вообще-то это философский термин
Это:
Онтологии
— универсальные, описывают вообще все
— отраслевые, по предметным областям
— узкоспециализированные, под конкретную задачу
— онтологии объектов (база данных)
— онтологии концептов
Бывают
Онтологии
— Wikipedia, Dbpedia
— Imdb
— CrunchBase
— SUMO
— DOLCE
Примеры
ОнтологииInformation Extraction—
Используют онтологии объектов
—
Используют открытые источники, сливают их в одну онтологию объектов с типами и свойствами. Например, «препарируют» википедию
—
по тексту готовят гипотезы, опираясь на контексты и имеющиеся списки объектов (т.е. свою онтологию)
—
разрешают неоднозначность опираясь на связи между объектами сразу по всему тексту
ОнтологииInformation Extraction—
получается высокая точность NER, нет случайных NE
—
снятие омонимии тоже происходит с высокой точностью
—
низкая полнота: извлекается только то, что есть в онтологии
—
странная обновляемость, нужно либо добавлять объекты руками, либо строить процедуру автоматического обновления
ОнтологииInformation Extraction—
зависит от наличия внешних ресурсов, поэтому подход используется только для английского
—
хорошо использовать для закрытых классов, например географические названия
—
хорошо использовать в областях, где оперативно пополняются источники, например кинобазы
—
может использовать или не использовать лингвистическую информацию, т.е. подходить для любого «стиля» текста
Машинное обучение:Information Extraction
— извлекается как можно больше лингвистической информации о словах
— размечается обучающее множество, на нем обучается система
— запускается на корпусе, получаются результаты
Машинное обучение:Information Extraction
— не требует большого количества ручного труда по написанию правил
— не требует заранее подготовленной онтологии— систему легко перенастроить под другие «стили»
языка, например перейти от СМИ-текстов к сообщениям в твиттере
— не требует детального описания каждого контекста (т.е. правил не только меньше, но они имеют более общий вид)
— процедуры можно делать итеративными: простые правила -> факты –> более сложные правилат.е. правила можно извлекать автоматически
Машинное обучение:Information Extraction
— Недостаточно развиты инструменты для автоматической обработки, трудно получить лингвистические фичи(хорошо применимо для английского)
— Требуется большой обучающий корпус, правильно и полностью размеченный
— Сложно отследить в каком именно месте возникла ошибка и ее исправить «точечно»
Rule-basedInformation Extraction
— использует полный или частичный синтаксический анализ
— онтология категорий, т.е. указывается какие сущности могут обладать какими параметрами, например: компания – стоимость
— NER основанный на контекстах и внутренних структурах, контексты (шаблоны) составляются руками лингвистов
Rule-based NERInformation Extraction
— для фио: есть словарь имен, правила согласования имен, отчеств, фамилий, типовые окончания для отчеств и фамилий
— для дат: словарь названий месяцев, шаблоны построения дат
— для компаний: стоят в специфических контекстах, иногда упоминаются в кавычках, имеют специфические части (ООО, ЗАО,… )
Rule-based factsInformation Extraction
— шаблоны поверх NER— в шаблонах записываются отношения, в которых
могут находиться разные объекты, лингвистическая информация, которая может указывать на связь, конкретные слова, которые обозначают конкретные связи.
Владимир Ресин назначен и.о. мэра Москвы
person (им.п.) назначен post(тв.п.) org(р.п.)
Что же выбрать?Information Extraction
— Начиналось все с шаблонов— Сейчас в моде онтологии и машинное обучение— Выбор подхода определяется конкретной задачей — А будущее все равно за гибридными системами.
ПродуктыInformation Extraction
— Тэгирование новостных сообщений или сообщений в блогах. (NER)
— Мониторинг новостей по персоне, компании, продукту (NER)
— Мониторинг отношения прессы/блоггеров к событию, продукту (Facts)
— Автоматическое составление календаря будущих событий с заполнением полей когда, где… (Facts)
— Фильтры для поиска, использование в кластеризации, и в других задачах
— Придумайте сами ;)
ТенденцииInformation Extraction
— много систем для английского языка—много онтологий, много лингв. инструментов—простая морфология – проще настраивать
машинное обучение—большой рынок
— NER гораздо больше чем NER + Facts—крупные новостные сайты, тематические
блоги— Мнения по твиттеру, блогам… тоже на английском
Кто это делает?Information Extraction
— OpenCalais – самый известный англоязычный ресурс
— Gate – платформа позволяющая делать Fact Extraction с помощью машинного обучения и с помощью шаблонов
— Сотни стартапов по всему миру делают IE для английского языка
— Яндекс :)— Ашманов, RCO и пр делают это с русским
где почитать?Information Extraction
Text Mining, Information and Fact Extraction Marie-Francine Moens (Katholieke Universiteit Leuven) http://romip.ru/russir2008/program.html#tmife
Материалы конференции «Диалог» http://dialog-21.ru
Статьи в Википедии
И еще…
Семинар Natural Language Processing
http://mathlingvo.ru/nlpseminar
Спасибо!