FactRuEval — соревнование по выделению именованных сущностей и извлечению фактов
Соревнования по различным аспектам анализа текста проводятся на международной конференции по компьютерной лингвистике «Диалог» каждый год. Обычно сами соревнования проходят в течение нескольких месяцев до мероприятия, а на самой конференции объявляют результаты. В этом году планируются три соревнования:
- по выделению именованных сущностей и фактов — FactRuEval;
- по анализу тональности — SentiRuEval;
- по исправлению опечаток — SpellRuEval.
Статья, которую вы начали читать, преследует три цели. Первая — мы хотели бы пригласить разработчиков систем автоматического анализа текстов принять участие в соревнованиях. Вторая — мы ищем помощников, которые могли бы разметить текстовые коллекции, на которых будут проверяться системы наших участников (это, во-первых, интересно, а во-вторых — вы сможете принести реальную пользу науке). Ну, а третья — соревнования по выделению именованных сущностей и фактов проводятся на «Диалоге» впервые, и мы хотим рассказать всем заинтересованным читателям, как они будут происходить.
Западные компьютерные лингвисты давно уделяют внимание извлечению фактов из текстов. Первая конференция-соревнование называлась Message Understanding Conference (MUC) и прошла в 1987 году. Мероприятие финансировалось военными (DARPA), и тематика текстов вначале была сфокусирована на их интересах: отчёты о военно-морских операциях и терроризм в латиноамериканских странах. Потом были новостные статьи на экономическую тематику, статьи о запусках ракет и авикатастрофах.
Начиная с 1999 года соревнования продолжились в рамках программы Automatic Content Extraction (ACE) и уже не ограничивались английским языком (добавили китайский и арабский). Участникам предлагались следующие задачи:
- выделение сущностей (Entity Detection and Tracking) — различали семь типов (персона, организация, локация, предприятие, оружие, транспортное средство и гео-политическая сущность) с подтипами.
- выделение отношений (Relation Detection and Characterization) — пространственные отношения, родственные и деловые отношения между персонами, места работы, членство в организациях, владение, национальность и другие.
- выделение событий (Event Detection and Characterization) — взаимодействие, движение, перемещение, создание и разрушение.
Подробный инструкции для задач на ACE в разные годы доступны на сайте Linguistic Data Consortium.
C 2009 года похожие по содержанию задачи были представлены в разделе Knowledge Base Population на Text Analysis Conference (TAC). В 2015 году в KBP вошли такие треки:
- Cold Start KBP — дана схема базы данных и большая коллекция текстов; необходимо заполнить БД информацией о встречающихся в текстах объектах и отношениях между ними.
- Tri-Lingual Entity Discovery and Linking — дана непустая база данных и коллекция текстов на трёх языках (английский, китайский, испанский); необходимо выделить из текстов упоминания имеющихся в БД объектов и привязать эти упоминания к объектам из БД. Отсутствующие в БД объекты нужно туда добавить.
- Event Track — извлечение информации о событиях и их атрибутах.
- Validation/Ensembling Track — улучшение результатов работы системы, извлекающей из текста атрибуты объектов, путём объединения ответов нескольких таких систем или дополнительной их лингвистической обработки.
Публикации по результатам TAC Workshops находятся на сайте NIST.
Первые соревнования по фактографическому поиску у нас проводились в 2004–2006 гг. в рамках семинара РОМИП.
В 2004 году в дорожке по фактам давалась коллекция текстов и список персон (например: Стинг, английский поп-певец). Необходимо было найти в коллекции факты (события), связанные с этой персоной, и предоставить список документов и координаты фрагментов в них (начало фрагмента и его длину), где эти события упомянуты.
В 2005 и 2006 годах предлагалось несколько задач в этом направлении:
- выделение именованных сущностей (персона, организация, географический объект, прочее);
- выделение фактов нескольких типов (место работы, владение организацией).
С тех пор прошло около 10 лет. За это время специалистами в области компьютерной лингвистики, интеллектуального анализа данных и других смежных направлений было сделано довольно много. Причём как большими компаниями, так и небольшими исследовательскими группами. Однако в свободном доступе мало достоверной информации о полученных результатах. И вот теперь в рамках конференции «Диалог» пройдёт независимое сравнительное тестирование систем извлечения информации для русского языка, результаты которого будут доступны всем желающим.
Соревнование FactRuEval-2016 будет включать три дорожки: две по выделению именованных сущностей и одна по извлечению фактов. Все три дорожки будут оцениваться на одной коллекции современных новостных текстов. Далее я на одном коротком примере объясню задачу каждой из дорожек. Текст будет такой:
Глава села Мартышкино Иван Петров заявил, что в Мартышкино …
0 1 2 3 4 5 6
01234567890123456789012345678901234567890123456789012345678901
Дорожка №1: именованные сущности
Задача первой дорожки состоит в том, чтобы выделить каждое вхождение именованной сущности в текст и определить её тип. Т.е. в приведённом выше тексте должно быть выделено три сущности: «село Мартышкино», персона «Иван Петров» и ещё раз «Мартышкино». В качестве ответа в этой задаче нужно сгенерировать текстовый файл, в котором для каждой сущности будет указан тип, номер первой буквы выделенного фрагмента от начала текста и его длина:
LOC 6 15
PER 22 11
LOC 48 10
Дорожка №2: идентификация сущностей и атрибуты
В этой дорожке уже не нужно привязывать сущности к позициям в тексте. Вместо этого нужно связать все упоминания одной и той же сущности в рамках текста в один объект и определить атрибуты этого объекта. Например, в обсуждаемом примере «Мартышкино» упоминается дважды, однако в выдаче оно должно появиться только один раз. Для персон должны быть отдельно указаны фамилия, имя, отчество и прозвище. Окончательный результат будет таким:
PER
Firstname:Иван
Lastname:Петров
LOC
Name:село «Мартышкино»
Дорожка №3: Извлечение фактов
Факт — это отношение между несколькими объектами. У факта есть тип и набор полей. Например: тип факта — Occupation, поля — Who, Where, Position и Phase (начал, закончил или неопределено). В этом году мы будем извлекать несколько типов фактов:
- Occupation (работа персоны в организации)
- Deal (сделка между несколькими сторонами без указания её предмета и условий)
- Ownership (владение организацией)
- Meeting (встреча нескольких персон)
Из нашего примера должен быть извлечён один факт: Иван Петров работает в селе «Мартышкино» главой.
Occupation
Who:Иван Петров
Where:село «Мартышкино»
Position:глава
У соревнований по фактографическому поиску всегда довольно объёмные руководства по разметке, и это соревнование не стало исключением. Участникам необходимо изучить «Описание дорожек» и «Формат выдачи результатов».
Оценка результатов
Соревнование пройдёт в январе 2016. Перед его началом участникам будет предоставлена демонстрационная коллекция размеченных текстов и программа-компаратор, при помощи которой можно будет самостоятельно оценить свои результаты. Компаратор будет опубликован в виде исходного кода на Python. На доработку своих систем и приведение результатов их работы в ожидаемому формату будет дано несколько недель.
После этого, чтобы оценить качество работы систем участников соревнования, им будет предоставлена тестовая коллекция, в которую входит несколько сотен заранее размеченных документов. Поскольку несколько сотен документов чисто теоретически участники могут разметить вручную, то в тестовую коллекцию будет добавлено ещё несколько десятков тысяч документов из тех же источников, что и заранее размеченные документы. На разметку всех этих документов будет дано два дня. Результаты работы систем в описанном формате будут переданы оргкомитету.
Коллекция текстов
Корпус текстов соревнования состоит из новостных и аналитических текстов на общественно-политическую тему на русском языке. Источниками текстов являются следующие издания:
Корпус разделён на две части: демонстрационная и тестовая. Соотношение количества текстов из разных источников в этих двух частях одинаково. Сбалансированность по каким бы то ни было другим показателям не гарантируется.
Работы по разметке этой коллекции текстов идут сейчас на сайте OpenCorpora.org. Мы приглашаем всех заинтересованных присоединиться к этим работам. О том, как устроена разметка, написано в отдельной статье «Как, читая новости, приносить пользу науке?». Подробная инструкция по разметке находится здесь.
Задача размечающих корпус состоит в том, чтобы найти в тексте имена, фамилии и отчества людей, названия организаций и географические названия, выделить их мышью и выбрать тип выделенного объекта. Для организаций и географических названий нужно также указать дескриптор (слово или словосочетание, обозначающее родовое понятие). После этого, выделенные фрагменты текста (спаны) нужно объединить в упоминания объектов. Например, имя и фамилию нужно объединить в упоминание объекта типа Person, а дескриптор организации («НИИ») и её название («НИИ транспорта и дорожного хозяйства») нужно объединить в упоминание объекта типа Org. Список упоминаний объектов, который должен получиться в итоге, показан на следующей картинке. В инструкции подробно разобраны примеры и сложные случаи, возникающие при разметке.
Можно участвовать в любой из объявленных дорожек или во всех сразу. Вам нужно научить вашу систему выводить результаты в описанном формате. После этого с помощью компаратора оцените её работу на демонстрационной части коллекции (как только будет закончена её разметка, мы её опубликуем). Внесите необходимые изменения, в соответствии с найденными расхождениями.
В самое ближайшее время мы просим потенциальных участников зарегистрироваться (мы будем присылать вам новости и сообщим о начале процедуры оценки результатов) и помочь доразметить корпус (страница с заданиями доступна после логина на OpenCorpora). Мы бы хотели как можно быстрее опубликовать его демонстрационную часть.
Мы также будем рады любым комментариям и предложениям здесь или письмом.