Skip to content

Cadenas de Correferencia

Agrupa segmentos de texto que se refieren a la misma entidad para tareas de resolución de correferencia.

Cadenas de Correferencia

La anotación de correferencia permite a los anotadores agrupar segmentos de texto que se refieren a la misma entidad. Esto es esencial para la resolución de entidades, la resolución de pronombres y el análisis del discurso.

Descripción General

Una cadena de correferencia es una colección de menciones (segmentos de texto) que todas se refieren a la misma entidad del mundo real. Por ejemplo:

"Marie Curie fue una física. Ella ganó el Premio Nobel. La científica cambió su campo para siempre."

Los segmentos "Marie Curie", "Ella", "La científica" y "su" todos se refieren a la misma persona y forman una sola cadena de correferencia.

Inicio Rápido

La anotación de correferencia requiere dos componentes de esquema:

  1. Un esquema de segmentos para crear menciones
  2. Un esquema de correferencia para agrupar menciones en cadenas
yaml
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

Opciones de Configuración

CampoTipoPredeterminadoDescripción
annotation_typestringRequeridoDebe ser "coreference"
namestringRequeridoIdentificador único para este esquema
descriptionstringRequeridoInstrucciones mostradas a los anotadores
span_schemastringRequeridoNombre del esquema de segmentos que proporciona las menciones
entity_typeslist[]Lista de categorías de tipos de entidad
allow_singletonsbooleantruePermitir cadenas con solo una mención
visual_display.highlight_modestring"background"Estilo visual: "background", "bracket" o "underline"

Ejemplos

Con Tipos de Entidad

Clasifica cadenas por tipo de entidad:

yaml
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"

Sin Singletons

Para tareas donde cada mención debe vincularse a al menos otra mención:

yaml
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

Visualización Personalizada

yaml
annotation_schemes:
  - annotation_type: coreference
    name: coref
    description: Link coreference chains
    span_schema: mentions
    visual_display:
      highlight_mode: "underline"  # Options: background, bracket, underline

Interfaz de Usuario

Crear Cadenas

  1. Crear menciones: Usa la herramienta de anotación de segmentos para resaltar todas las menciones de entidades
  2. Seleccionar menciones: Haz clic en los segmentos resaltados que quieras encadenar
  3. Crear cadena: Haz clic en "Nueva Cadena" para agrupar las menciones seleccionadas

Gestionar Cadenas

  • Añadir a Cadena: Selecciona menciones adicionales y haz clic en "Añadir a Cadena"
  • Fusionar Cadenas: Selecciona múltiples cadenas y haz clic en "Fusionar Cadenas" para combinarlas
  • Eliminar Mención: Selecciona una mención y haz clic en "Eliminar Mención" para quitarla de su cadena

Código de Colores

A cada cadena se le asigna automáticamente un color distinto. Las menciones en la misma cadena comparten el mismo color, facilitando la identificación visual de la pertenencia a la cadena.

Formato de Salida

Las anotaciones de correferencia se guardan como vínculos de segmentos:

json
{
  "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"
    }
  ]
}

Flujo de Trabajo Recomendado

  1. Primera pasada - Lee el texto y resalta todas las menciones de entidades
  2. Segunda pasada - Agrupa las menciones en cadenas de correferencia
  3. Revisión - Verifica que todas las menciones estén correctamente asignadas y no falten cadenas

Mejores Prácticas

  1. Definir límites claros de mención - Establece directrices para lo que cuenta como una mención
  2. Manejar menciones anidadas - Decide cómo manejar casos como "el CEO de Microsoft"
  3. Considerar referencias genéricas - Determina si las referencias genéricas deben incluirse
  4. Entrenar a los anotadores - La correferencia es compleja; proporciona ejemplos y rondas de práctica
  5. Usar tipos de entidad con moderación - Demasiados pueden ralentizar la anotación sin mejorar la calidad de los datos

Lectura Adicional

Para detalles de implementación, consulta la documentación fuente.