Skip to content
Tutorials4 min read

Construyendo Tu Primera Tarea de Anotación NER

Tutorial paso a paso para crear una tarea de anotación de reconocimiento de entidades nombradas con etiquetas de span y atajos de teclado.

Potato Team·

Construyendo Tu Primera Tarea de Anotación NER

El Reconocimiento de Entidades Nombradas (NER) es una de las tareas de NLP más comunes. En este tutorial, aprenderás cómo crear una interfaz completa de anotación NER con resaltado de spans, atajos de teclado y selección de tipos de entidades.

Lo Que Vamos a Construir

Al final de este tutorial, tendrás una interfaz de anotación donde los anotadores pueden:

  • Resaltar spans de texto haciendo clic y arrastrando
  • Asignar tipos de entidades (Persona, Organización, Ubicación, etc.)
  • Usar atajos de teclado para una anotación más rápida
  • Editar o eliminar anotaciones existentes

Requisitos Previos

  • Potato instalado (pip install potato-annotation)
  • Familiaridad básica con YAML
  • Datos de texto de ejemplo para anotar

Paso 1: Configurar el Esquema de Anotación

Crea un archivo config.yaml:

yaml
annotation_task_name: "Named Entity Recognition"
 
data_files:
  - data/sentences.json
 
item_properties:
  id_key: id
  text_key: text
 
# Enable span annotation
annotation_schemes:
  - annotation_type: span
    name: entities
    description: "Highlight and label named entities in the text"
    labels:
      - name: PER
        description: "Person names"
        color: "#FF6B6B"
        keyboard_shortcut: "p"
      - name: ORG
        description: "Organizations"
        color: "#4ECDC4"
        keyboard_shortcut: "o"
      - name: LOC
        description: "Locations"
        color: "#45B7D1"
        keyboard_shortcut: "l"
      - name: DATE
        description: "Dates and times"
        color: "#96CEB4"
        keyboard_shortcut: "d"
      - name: MISC
        description: "Miscellaneous entities"
        color: "#FFEAA7"
        keyboard_shortcut: "m"
    min_spans: 0  # Allow sentences with no entities

Paso 2: Preparar Tus Datos

Crea data/sentences.json con tus datos de texto:

json
{"id": "1", "text": "Apple Inc. announced that CEO Tim Cook will visit Paris next Tuesday."}
{"id": "2", "text": "The United Nations headquarters in New York hosted delegates from Japan."}
{"id": "3", "text": "Dr. Sarah Johnson published her research at Stanford University in March 2024."}

Paso 3: Agregar Guías de Anotación

Ayuda a tus anotadores con guías claras:

yaml
# Add to config.yaml
annotation_guidelines:
  title: "NER Annotation Guidelines"
  content: |
    ## Entity Types
 
    **PER (Person)**: Names of people, including fictional characters
    - Examples: "John Smith", "Dr. Johnson", "Batman"
 
    **ORG (Organization)**: Companies, institutions, agencies
    - Examples: "Apple Inc.", "United Nations", "Stanford University"
 
    **LOC (Location)**: Places, including countries, cities, landmarks
    - Examples: "Paris", "New York", "Mount Everest"
 
    **DATE**: Dates, times, and temporal expressions
    - Examples: "Tuesday", "March 2024", "next week"
 
    **MISC**: Other named entities not fitting above categories
    - Examples: "Nobel Prize", "iPhone", "COVID-19"
 
    ## Annotation Rules
    1. Include titles (Dr., Mr.) with person names
    2. For nested entities, annotate the largest meaningful span
    3. Don't include articles (the, a) in entity spans

Paso 4: Comenzar a Anotar

Inicia tu tarea NER:

bash
potato start config.yaml

Flujo de Trabajo de Anotación

  1. Seleccionar texto: Haz clic y arrastra para resaltar un span
  2. Elegir tipo de entidad: Haz clic en un botón de etiqueta o usa el atajo de teclado
  3. Editar anotaciones: Haz clic en un span existente para modificar o eliminar
  4. Enviar: Presiona Enter o haz clic en Enviar cuando hayas terminado

Paso 5: Revisar la Salida

Las anotaciones se guardan en formato JSONL:

json
{
  "id": "1",
  "text": "Apple Inc. announced that CEO Tim Cook will visit Paris next Tuesday.",
  "annotations": {
    "entities": [
      {"start": 0, "end": 10, "label": "ORG", "text": "Apple Inc."},
      {"start": 30, "end": 38, "label": "PER", "text": "Tim Cook"},
      {"start": 50, "end": 55, "label": "LOC", "text": "Paris"},
      {"start": 61, "end": 73, "label": "DATE", "text": "next Tuesday"}
    ]
  }
}

Consejos para una Mejor Anotación NER

  1. Guías consistentes: Las reglas claras reducen el desacuerdo
  2. Ejemplos de entrenamiento: Muestra a los anotadores casos extremos antes de comenzar
  3. Calibración regular: Discute los casos difíciles en equipo
  4. Medir acuerdo: Usa el acuerdo entre anotadores para identificar problemas

Próximos Pasos


¿Necesitas ayuda? Consulta nuestra documentación de anotación de span para más detalles.