MISIÓN 1 · Lección 6

Aplicación de Reconocimiento de Entidades (NER)

El Reconocimiento de Entidades Nombradas (NER) identifica elementos clave en un texto, como personas, organizaciones, ubicaciones, fechas o cantidades. Es esencial en minería de información, chatbots, motores de búsqueda y análisis de documentos.

Ejemplo básico con spaCy

import spacy

nlp = spacy.load("es_core_news_md")
doc = nlp("Apple lanzó el iPhone en California en 2007")

for ent in doc.ents:
    print(ent.text, ent.label_)
# Apple ORG
# iPhone MISC
# California LOC
# 2007 DATE

Las etiquetas pueden incluir: PERSON, ORG, LOC, DATE, MONEY, entre otras.

Uso en un pipeline

El NER puede integrarse en aplicaciones para:

Exportar entidades a JSON

import json

ents = [{"text": e.text, "label": e.label_} for e in doc.ents]
print(json.dumps(ents, ensure_ascii=False, indent=2))

Este formato facilita integrar la información extraída en APIs o bases de datos.

Visualización de entidades

spaCy incluye un visualizador integrado (displacy):

from spacy import displacy

texto = "Lionel Messi juega para el Inter de Miami en Estados Unidos."
doc = nlp(texto)
displacy.serve(doc, style="ent")

Esto abre un servidor local con el texto resaltado en colores según el tipo de entidad.

Ejemplo de aplicación con FastAPI

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Texto(BaseModel):
    text: str

@app.post("/ner")
async def get_entities(item: Texto):
    doc = nlp(item.text)
    ents = [{"text": e.text, "label": e.label_} for e in doc.ents]
    return {"entities": ents}

Retos del NER

Extensión y entrenamiento personalizado

Podemos entrenar un modelo NER para dominios específicos:

Aplicaciones reales

Reflexión final

El NER transforma texto no estructurado en datos estructurados útiles. Dominarlo permite construir soluciones de alto valor en sectores como salud, derecho, finanzas y marketing.