Цепочки кореференции
Размечайте цепочки кореференции в Potato, объединяя фрагменты текста, которые указывают на одну сущность. Поддержка вложенных упоминаний, межпредложенческих цепочек и их визуализации.
Разметка кореференции позволяет объединять фрагменты текста, указывающие на одну и ту же сущность. Это основа для разрешения сущностей, разрешения местоимений и анализа дискурса.
Обзор
Цепочка кореференции — это набор упоминаний (фрагментов текста), каждое из которых указывает на одну и ту же сущность реального мира. Например:
«Мария Кюри была физиком. Она получила Нобелевскую премию. Эта учёная навсегда изменила свою область».
Фрагменты «Мария Кюри», «Она», «Эта учёная» и «свою» указывают на одного человека и образуют одну цепочку кореференции.
Быстрый старт
Для разметки кореференции нужны два компонента схемы:
- Схема спанов для создания упоминаний
- Схема кореференции для объединения упоминаний в цепочки
annotation_schemes:
- annotation_type: span
name: mentions
description: Highlight all entity mentions
labels:
- name: MENTION
tooltip: "Any reference to an entity"
sequential_key_binding: true
- annotation_type: coreference
name: coref_chains
description: Group mentions that refer to the same entity
span_schema: mentions
allow_singletons: trueПараметры конфигурации
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
annotation_type | строка | Обязательно | Должно быть "coreference" |
name | строка | Обязательно | Уникальный идентификатор этой схемы |
description | строка | Обязательно | Инструкция, которую видит разметчик |
span_schema | строка | Обязательно | Имя схемы спанов, поставляющей упоминания |
entity_types | список | [] | Список категорий типов сущностей |
allow_singletons | булево | true | Разрешить цепочки из одного упоминания |
visual_display.highlight_mode | строка | "background" | Стиль отображения: "background", "bracket" или "underline" |
Примеры
С типами сущностей
Классифицируйте цепочки по типу сущности:
annotation_schemes:
- annotation_type: span
name: ner
description: Mark named entities
labels:
- name: ENTITY
tooltip: "Any named entity mention"
- annotation_type: coreference
name: coref
description: Create coreference chains
span_schema: ner
entity_types:
- name: PERSON
color: "#6E56CF"
- name: ORGANIZATION
color: "#22C55E"
- name: LOCATION
color: "#3B82F6"
- name: OTHER
color: "#F59E0B"Без одиночных упоминаний
Для задач, где каждое упоминание обязано связаться хотя бы с одним другим:
annotation_schemes:
- annotation_type: span
name: mentions
description: Highlight co-referring mentions
labels:
- name: MENTION
- annotation_type: coreference
name: strict_coref
description: All mentions must be part of a chain with at least 2 mentions
span_schema: mentions
allow_singletons: falseСвоё визуальное оформление
annotation_schemes:
- annotation_type: coreference
name: coref
description: Link coreference chains
span_schema: mentions
visual_display:
highlight_mode: "underline" # Options: background, bracket, underlineИнтерфейс
Создание цепочек
- Создайте упоминания: инструментом разметки спанов выделите все упоминания сущностей
- Выберите упоминания: кликните по выделенным фрагментам, которые хотите объединить
- Создайте цепочку: нажмите «New Chain», чтобы объединить выбранные упоминания
Работа с цепочками
- Добавить в цепочку: выберите дополнительные упоминания и нажмите «Add to Chain»
- Объединить цепочки: выберите несколько цепочек и нажмите «Merge Chains»
- Убрать упоминание: выберите упоминание и нажмите «Remove Mention», чтобы исключить его из цепочки
Цветовая маркировка
Каждой цепочке автоматически назначается свой цвет. Упоминания из одной цепочки окрашены одинаково, так что принадлежность к цепочке видна сразу.
Формат вывода
Разметка кореференции сохраняется как связи между спанами:
{
"span_links": [
{
"schema": "coref_chains",
"link_type": "coreference",
"span_ids": ["mentions_0_5_MENTION", "mentions_34_37_MENTION", "mentions_72_85_MENTION"],
"entity_type": "PERSON"
},
{
"schema": "coref_chains",
"link_type": "coreference",
"span_ids": ["mentions_15_23_MENTION", "mentions_95_97_MENTION"],
"entity_type": "ORGANIZATION"
}
]
}Рекомендуемый порядок работы
- Первый проход — прочитайте текст и выделите все упоминания сущностей
- Второй проход — объедините упоминания в цепочки кореференции
- Проверка — убедитесь, что все упоминания распределены верно и ни одна цепочка не потеряна
Рекомендации
- Задайте чёткие границы упоминаний — сформулируйте, что вообще считается упоминанием
- Продумайте вложенные упоминания — решите, как поступать со случаями вроде «генеральный директор Microsoft»
- Определитесь с обобщёнными отсылками — решите, включать ли их
- Обучите разметчиков — кореференция сложна, дайте примеры и тренировочные раунды
- Не увлекайтесь типами сущностей — их избыток замедляет разметку, не улучшая данные
Что почитать дальше
- Разметка спанов — создание фрагментов текста
- Связывание сущностей — привязка спанов к базам знаний
- Связывание спанов — другие виды отношений между спанами
Детали реализации — в исходной документации.