5 · Etiquetado POS y reconocimiento de entidades
Clasifica el rol gramatical de cada token y extrae personas, lugares y organizaciones del texto crudo.
El etiquetado POS clasifica la categoría gramatical de cada token; el NER encuentra entidades nombradas (personas, lugares, organizaciones) — ambos son salidas estructuradas a partir de texto crudo.
Sin esto:
Perderías la información estructural que impulsa cada sistema de extracción de información.
Hasta ahora hemos tratado el texto como una bolsa de palabras — tokens sin contexto gramatical. Pero el lenguaje tiene estructura: "bank" como sustantivo significa institución financiera; "bank" como verbo significa inclinar. "Apple" en un informe de resultados se refiere a la empresa; "apple" en una receta se refiere a la fruta.
El etiquetado POS (Part-of-Speech) asigna a cada token una etiqueta gramatical: sustantivo (NN), verbo (VB), adjetivo (JJ), adverbio (RB), etc. Estas etiquetas son útiles para:
- Proporcionar la pista POS correcta a
WordNetLemmatizer - Extracción de palabras clave (conservar solo sustantivos y verbos)
- Ingeniería de features para clasificación de texto
El Reconocimiento de Entidades Nombradas (NER) va un paso más allá: identifica y clasifica frases de varios tokens que se refieren a entidades del mundo real — personas (PERSON), lugares (GPE), organizaciones (ORG), valores monetarios (MONEY), fechas (DATE).
NLTK usa el tagset Penn Treebank para POS y un chunker de Máxima Entropía para NER. Son sólidos para aprender pero más lentos y menos precisos que alternativas modernas como spaCy o modelos basados en Transformers.
Python (in browser)
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
Referencia de etiquetas Penn Treebank — las 16 etiquetas más útiles
NER con nltk.ne_chunk — código de referencia (maxent_ne_chunker no disponible en Pyodide)
Python (in browser)
Python runs entirely in your browser via Pyodide (~6 MB on first Run, cached after).
spaCy y Hugging Face — las alternativas de NER de nivel producción a NLTK
¿Qué significa la etiqueta POS Penn Treebank 'NNP'?
- `nltk.pos_tag(tokens)` asigna etiquetas Penn Treebank (NN, VB, JJ, RB, NNP, etc.) a cada token — esencial para una lematización correcta y extracción de sustantivos.
- El `ne_chunk` de NLTK proporciona NER pero requiere el corpus `maxent_ne_chunker` que no se puede descargar en Pyodide — usa spaCy o Hugging Face para NER en producción.
- Filtrar tokens por etiqueta POS (conservando solo `tag.startswith('NN')`) es una técnica de extracción de palabras clave simple pero poderosa.
- La etiqueta NNP es el puente entre la tokenización y el NER — los sustantivos propios son los principales candidatos a entidades nombradas.
Pipelines de extracción de información; detección de intención en chatbots (POS ayuda a identificar verbos de acción); análisis de CVs (NER extrae habilidades, empresas, títulos); minería de literatura biomédica (nombres de fármacos, símbolos de genes); análisis de noticias financieras (nombres de empresas, valores monetarios).
Si lo quitas: Sin etiquetas POS, la lematización toma el valor por defecto de sustantivo — 'running' se queda como 'running' en vez de reducirse a 'run'. Sin NER, extraer 'Apple', 'U.K.', '$1 billion' del texto requiere reglas regex escritas a mano para cada patrón de entidad.