Sentiment Analysis API: por qué analizar el documento entero te oculta la señal que importa
Sentiment Analysis API: por qué analizar el documento entero te oculta la señal que importa
Un artículo puede calificar positivamente la estrategia de expansión de una empresa y, en el mismo párrafo, criticar duramente a su CEO. Si tu pipeline de sentimiento opera a nivel de documento, recibirás un sentiment: neutral y seguirás adelante. El problema es que ninguna de las dos señales —ni la positiva ni la negativa— habrá llegado al equipo que la necesitaba.
Esto no es un caso de laboratorio. Es el patrón que aparece repetidamente cuando los equipos técnicos revisan retrospectivamente por qué su sistema de alertas no disparó ante una crisis de reputación real. El análisis de sentimiento a nivel de documento es útil como punto de partida, pero toma decisiones de diseño que la mayoría de los integradores no ha cuestionado explícitamente.
Vale la pena hacerlo ahora, antes de escalar el pipeline.
El problema estructural del sentimiento agregado
El modelo estándar asigna una puntuación de sentimiento a la unidad textual completa que le pasas. Si esa unidad es un artículo de 800 palabras con cuatro actores distintos y tres líneas editoriales entrecruzadas, el modelo hace lo único que puede hacer: promediar.
El resultado es matemáticamente correcto y analíticamente inútil.
La granularidad del análisis debe coincidir con la granularidad de la decisión de negocio. Si el equipo de comunicación quiere saber cómo está posicionada la marca frente a un competidor concreto dentro de la misma conversación mediática, necesita sentimiento por entidad, no por documento. Si el equipo de producto quiere monitorizar la percepción de una funcionalidad específica, necesita sentimiento por aspecto (aspect-based sentiment analysis, ABSA), no por texto completo.
Confundir los niveles no es un error menor: cambia los umbrales de alerta, cambia los volúmenes que parecen significativos y cambia las conclusiones.
Tres niveles de granularidad y cuándo usar cada uno
Nivel documento. Adecuado cuando el volumen es muy alto y el objetivo es clasificación gruesa a escala: detectar si la conversación sobre un sector es predominantemente positiva o negativa en una ventana temporal amplia. Útil para dashboards de tendencias, no para alertas operativas.
Nivel entidad. Necesario cuando hay múltiples actores relevantes en el mismo corpus. El pipeline extrae primero las entidades nombradas (NER), luego resuelve correferencias y finalmente aplica el modelo de sentimiento sobre los fragmentos textuales asociados a cada entidad. El coste computacional sube, pero la señal es radicalmente más limpia.
Nivel aspecto (ABSA). El más preciso y el más costoso. Requiere un esquema de aspectos predefinido (precio, calidad, soporte, liderazgo…) y un modelo entrenado o ajustado para ese dominio. Imprescindible en análisis de producto o reputación ejecutiva, donde el "qué" importa tanto como el "quién".
La elección no es permanente. Un pipeline bien diseñado puede aplicar nivel documento como filtro previo —descartando señales irrelevantes antes de gastar llamadas a la API— y escalar a nivel entidad o aspecto solo sobre el subconjunto que supera el umbral de relevancia.
Cómo estructurar el pipeline para no pagar por análisis que no usa nadie
El coste de las APIs de sentimiento no es plano. Cada llamada tiene un precio, y en modelos pay-as-you-go ese coste se acumula rápido cuando el volumen de señales públicas es alto.
Una arquitectura razonable tiene tres etapas antes de llegar al modelo de sentimiento:
Filtrado por relevancia temática. Solo pasan al análisis las menciones que contienen las entidades o keywords de interés. Esto elimina una fracción significativa del volumen total sin perder cobertura real.
Clasificación de intención editorial. Muchos textos son informativos puros —hechos sin valoración—. Aplicar sentimiento sobre ellos genera ruido. Un clasificador binario (valorativo / neutro-informativo) antes del modelo de sentimiento mejora la precisión del conjunto sin añadir latencia significativa.
Enrutamiento por nivel de granularidad. Las menciones que pasan los dos filtros anteriores se enrutan al nivel de análisis adecuado según reglas predefinidas: documento si el volumen restante sigue siendo alto, entidad si hay actores explícitos en el texto, aspecto si el contexto lo justifica.
Este diseño hace que el número de llamadas reales a la API de sentimiento sea una fracción del volumen original. En pipelines conectados a fuentes públicas de alta frecuencia —como los que alimenta FeedScale— la diferencia entre un pipeline sin filtros y uno con esta arquitectura puede ser de un orden de magnitud en coste mensual.
El problema del drift silencioso en el modelo
Un detalle que los equipos técnicos suelen descubrir tarde: los modelos de sentimiento degradan su precisión cuando el lenguaje del dominio evoluciona y el modelo no se actualiza.
En sectores con vocabulario técnico específico —finanzas, energía, salud, tecnología—, las connotaciones cambian. Una palabra que era neutra hace seis meses puede haberse cargado de connotación negativa por un evento del sector. El modelo no lo sabe.
La señal de alerta más fiable no es la precisión del modelo en un benchmark estático: es la tasa de discrepancia entre el sentimiento asignado automáticamente y el validado manualmente en una muestra periódica. Si esa tasa supera el umbral que tu equipo haya definido como aceptable, el modelo necesita recalibración o sustitución, independientemente de lo que digan los benchmarks del proveedor.
Implementar ese bucle de validación no es opcional si el análisis de sentimiento alimenta decisiones de negocio reales. Es parte del contrato de mantenimiento del pipeline.
Lo que el número no te dice
El sentimiento cuantificado es un proxy, no una verdad. Un score de -0.3 en una escala normalizada no significa lo mismo en un texto de opinión que en una transcripción de earnings call, ni en un medio especializado que en un foro generalista.
El contexto de la fuente debe viajar junto al dato de sentimiento. El pipeline que almacena solo el score —sin el tipo de fuente, el alcance estimado, la entidad a la que se refiere y el fragmento textual que lo originó— produce un número que nadie puede auditar ni contextualizar cuando la alerta llega.
Diseña el esquema de datos desde el principio para que el sentimiento sea un atributo de una señal completa, no un valor suelto en una columna. El día que alguien pregunte "¿por qué saltó esta alerta?", agradecerás haber tomado esa decisión antes de que el pipeline estuviera en producción.