Phase 05: NLP: Foundations to Advanced

Resolución de la Comisión

"Le llamó, no contestó, el médico estaba al almuerzo". Tres referencias a dos personas y nadie es nombrado.

Type: Learn

Languages: Python

Prerequisites: Phase 5 · 06 (NER), Phase 5 · 07 (POS & Parsing)

Time: ~60 minutes

El problema

Extraer cada mención de Apple Inc. de un artículo de 300 palabras. fácil cuando el artículo dice "Apple". difícil cuando dice "la compañía", "ellos", "el gigante tecnológico de Cupertino", o "la firma de Jobs". Sin resolver estas menciones a la misma entidad, su tubería de NER pierde 60-80% de las menciones.

La resolución de coreferencia une todas las expresiones que se refieren a la misma entidad del mundo real en un cluster. Es el pegamento entre la PNL de nivel superficial (NER, análisis) y la semántica descendente (IE, QA, resumen, KG).

Por qué importa en 2026:

  • Resumen: "El CEO anunció... " vs "Tim Cook anunció... " El resumen debe nombrar al CEO.
  • La respuesta a la pregunta: "¿A quién llamó?" requiere resolver "ella".
  • Extracción de información: un gráfico de conocimiento con "PER1 fundó Apple" y "Jobs fundó Apple" como entradas separadas es incorrecto.
  • Multi-document IE: la fusión de menciones entre artículos sobre el mismo evento es coreferencia de documentos cruzados.

El concepto

!Coreference clustering: mentions → entities

The task.Input: un documento. Output: un agrupamiento de menciones (amplitud) donde cada agrupamiento se refiere a una entidad.

Mention types.

  • Named entity."Tim Cook"
  • Nominal."el CEO", "la compañía"
  • Pronominal."él", "ella", "ellos", "el"
  • Appositive."Tim Cook, el CEO de Apple,

Architectures.

  1. Rule-based (Hobbs, 1978).Resolución de pronombres basados en árboles sintácticos usando reglas gramaticales. buena línea de base. sorprendentemente difícil de superar en pronombres.
  2. Mention-pair classifier.Para cada par de menciones (m_i, m_j), pronostica si son más básicas. Cluster por cierre transitivo. Norma pre-2016.
  3. Mention-ranking.Para cada mención, clasifique antecedentes de candidatos (incluyendo "sin antecedentes").
  4. Span-based end-to-end (Lee et al., 2017).Encuentra todos los candidatos hasta un límite de longitud, predice las puntuaciones, predice la probabilidad de antecedentes para cada período, agrupar codiciosamente, el estándar moderno.
  5. Generative (2024+).Promover un LLM: "Enumera cada pronombre en este texto y su antecedente".

The evaluation metrics.Cinco métricas estándar (MUC, B3, CEAF, BLANC, LEA) porque ninguna métrica única captura la calidad de agrupamiento.

Known hard cases.

  • Descripciones definidas referidas a las entidades introducidas en páginas anteriores.
  • Anafora de puente ("las ruedas" → un coche mencionado anteriormente).
  • Cero anafora en idiomas como el chino y el japonés.
  • Cataphora (pronom antes del referente): "Cuando sheentró, Mary sonrió".

Construye el mismo

Paso 1: coreferencia neuronal preentrenada (AllenNLP / spaCy-experimental)

pythonimport spacy
nlp = spacy.load("en_coreference_web_trf")   # experimental model
doc = nlp("Apple announced new products. The company said they would ship soon.")
for cluster in doc._.coref_clusters:
    print(cluster, "->", [m.text for m in cluster])

En un documento más largo, se obtiene algo así:

  • Cluster 1: [Apple, la compañía, ellos]
  • Grupo 2: [productos nuevos]

Paso 2: resolver de pronombres basados en reglas (ensensenación)

¿ Qué ?code/main.pypara una implementación de un solo nivel de restricción:

  1. Menciones de extractos: entidades nombradas (capitalizadas), pronombres (busca directa), descripciones definidas ("la X").
  2. Para cada pronombre, mira las menciones anteriores de K y marcalas por:

- acuerdo de género/número (heurística)

- reciente (ganas más cercanas)

- papel sintáctico (objetos preferidos)

  1. Enlace el antecedente con más puntuaciones.

No es competitivo con los modelos neuronales, pero muestra el espacio de búsqueda y las decisiones que un modelo de extremo a extremo debe tomar.

Paso 3: utilizar los LLM para la referencia

pythonprompt = f"""Text: {text}

List every pronoun and noun phrase that refers to a person or company.
Cluster them by what they refer to. Output JSON:
[{{"entity": "Apple", "mentions": ["Apple", "the company", "it"]}}, ...]
"""

Dos modos de fracaso para ver. Primero, LLM se fusionan demasiado ("él" y "ella" se refieren a dos personas distintas). segundo, LLM caen silenciosamente menciones en documentos largos.

Paso 4: evaluación

El script estándar conll-2012 calcula MUC, B3, CEAF-φ4 y informa el promedio. Para una evaluación interna, comience con la precisión de nivel de período y recuerde su conjunto de pruebas anotado, luego añada el enlace de mención F1.

Las trampas

  • Singleton explosion.Algunos sistemas informan cada mención como su propio grupo. B3 es indulgente. MUC castiga esto. Siempre compruebe las tres métricas.
  • Pronouns in long context.El rendimiento cae en 15 F1 en documentos de más de 2.000 tokens.
  • Gender assumptions.Las reglas de género codificadas en forma dura infringen referentes no binarios, organizaciones, animales.
  • LLM drift on long docs.Una sola llamada de API no puede mencionar de manera confiable los clusters en más de 50 párrafos. Utilice la ventana deslizante + fusionar.

Usalo

La pila de 2026:

SituationPick
English, single documenten_coreference_web_trf (spaCy-experimental) or AllenNLP neural coref
MultilingualSpanBERT / XLM-R trained on OntoNotes or Multilingual CoNLL
Cross-document event corefSpecialized end-to-end models (2025–26 SOTA)
Quick LLM baselineGPT-4o / Claude with structured-output coref prompt
Production dialog systemsRule-based fallback + neural primary + manual review for critical slots

El patrón de integración que se lanzará en 2026: ejecutar primero NER, ejecutar coref, fusionar coref clusters en entidades NER.

Envío

Salvo comooutputs/skill-coref-picker.md¿Qué es esto ?

markdown---
name: coref-picker
description: Pick a coreference approach, evaluation plan, and integration strategy.
version: 1.0.0
phase: 5
lesson: 24
tags: [nlp, coref, information-extraction]
---

Given a use case (single-doc / multi-doc, domain, language), output:

1. Approach. Rule-based / neural span-based / LLM-prompted / hybrid. One-sentence reason.
2. Model. Named checkpoint if neural.
3. Integration. Order of operations: tokenize → NER → coref → downstream task.
4. Evaluation. CoNLL F1 (MUC + B³ + CEAF-φ4 average) on held-out set + manual cluster review on 20 documents.

Refuse LLM-only coref for documents over 2,000 tokens without sliding-window merge. Refuse any pipeline that runs coref without a mention-level precision-recall report. Flag gender-heuristic systems deployed in demographically diverse text.

Los ejercicios

  1. Easy.Ejecutar el resolver basado en reglas en code/main.pyEn 5 párrafos hechos a mano, se mide la precisión de la referencia-enlace en comparación con la verdad de fondo.
  2. Medium.Usar un modelo del núcleo neuronal preentrenado en un artículo de noticias. Comparar grupos con su propia anotación manual. ¿Dónde falló?
  3. Hard.Construir un pipeline de NER mejorado en el núcleo: primero NER, luego fusionarse a través de clusters centrales.

Términos clave

TermWhat people sayWhat it actually means
MentionA referenceA span of text that refers to an entity (name, pronoun, noun phrase).
AntecedentWhat "it" refers toThe earlier mention a later one corefers with.
ClusterThe entity's mentionsSet of mentions that all refer to the same real-world entity.
AnaphoraBackward referenceLater mention refers to earlier ("he" → "John").
CataphoraForward referenceEarlier mention refers to later ("When he arrived, John...").
BridgingImplicit reference"I bought a car. The wheels were bad." (wheels of THAT car.)
CoNLL F1The number on leaderboardsAverage of MUC, B³, CEAF-φ4 F1 scores.

Leer más

This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.

Browse the complete course catalog or open this lesson on GitHub.