En procesamiento del lenguaje natural (NLP) el término Sentiment analysis no se refiere a un análisis psicológico de un texto (todavía no nos estamos planteando quitarle el trabajo a los psicólogos). Sentiment analysis se refiere a extraer información subjetiva de un texto.
Durante los últimos meses he estado trabajando en una aplicación de análisis de sentimiento que consiste en clasificar opiniones de usuarios en positivas y negativas. Se llama Opinum [Bonev et al, 2012] y se puede entrenar para cualquier contexto si uno cuenta con un conjunto de datos (etiquetados) para entrenarlo. Los idiomas para los que se podría entrenar son la mayoría de los europeos.
Un ejemplo de su funcionamiento. Las dos frases siguientes comparten casi las mismas palabras pero en orden diferente:
“Al tener la web, no pierdes el tiempo por teléfono.” [Reconocida como: positiva]
“En el teléfono os hacen perder el tiempo y no tienen web.” [Reconocida como: negativa]
Muchos analizadores tradicionales se basan en contar palabras clave que se consideran positivas y negativas, pero en
Opinum lo que importa es la secuencia.
La primera prueba con
Opinum está hecha con opiniones del
ámbito financiero: bancos, cajas, productos financieros... un tema bonito. (Hablando de ironía, Opinum no está preparado para opiniones irónicas, aunque sí que hay trabajos en análisis del sentimiento que abordan este tema). Podéis
probar esta versión on-line, en
http://aplica.prompsit.com/es/opinum. Se trata de introducir una opinión completa, no sólo unas palabras o una frase:
¿Cómo funciona? Se entrenan dos modelos: uno para las opiniones positivas y otro para las negativas. Los modelos están basados en n-gramas, capturando la información de secuencia.
¿Cuál es la dificultad? Para construir este tipo de modelos hace falta una cantidad enorme de texto, y no suele haber corpus tan grandes de opiniones etiquetadas.
¿Cómo se supera el problema? Simplificando los textos simplificamos el modelo de lengua, de manera que con los datos que contamos es factible entrenarlos.
La simplificación consiste en eliminar (casi) toda la morfología de los textos: desaparecen singulares, plurales, tiempos verbales, personas. La esencia del texto permanece, pero la complejidad se reduce drásticamente. Así, las frases siguientes serían equivalentes:
Me di cuenta de mi error cuando hablé con la directora.
Te darás cuenta de tus errores cuando hables con el director.
Os daríais cuenta de vuestro error cuando hablarais con los directores.
porque todas pasan a ser:
PrnPers dar cuenta de DetPos error cuando hablar con el director.
Puede parecer un abuso, pero si torturas los datos lo suficiente,
in the end they will confess.
[Bonev et al, 2012] B. Bonev, G. Ramírez-Sánchez, S. Ortiz Rojas. "Opinum: statistical sentiment analysis for opinion classification". WASSA - ACL2012.