El concepto de la comunicación entre humanos y máquinas es un clásico de la ciencia ficción, pero de una ciencia ficción que parece estar casi al alcance de la mano, con Siri, Alexa y otros asistentes de voz. Pero, ¿cómo hemos llegado hasta aquí?

Hay una rama de la Inteligencia Artificial que lleva mucho tiempo estudiando cómo hacer que las máquinas puedan extraer información del lenguaje humano. Este área se llama Procesado de Lenguaje Natural o NLP (siglas en inglés).

En este post nos apoyaremos en la experiencia que tenemos en Paradigma en Análisis de Sentimiento y así veremos de forma ilustrativa la evolución de estas tecnologías.

Análisis de Sentimiento

Dentro del NLP existen multitud de subáreas, cada una de ellas intentando dar respuesta a una tarea concreta de extracción de información del lenguaje natural, puesto que aún estamos lejos de alcanzar una verdadera inteligencia cognitiva.

Ejemplos de estas áreas pueden ser la Comprensión de Lenguaje Natural (NLU) que, junto con la Transcripción de Voz (Speech Transcription en inglés), son las tecnologías que utilizan los bots conversacionales tan populares recientemente.

Otros ejemplos de NLP pueden ser la detección de temas de un texto, detección de entidades (NER), y otros de más bajo nivel como el análisis semántico de las palabras de un texto o el análisis morfosintáctico de oraciones.

Sin embargo, el análisis de sentimiento intenta discernir si la connotación de una frase es positiva, negativa o neutral. Normalmente el objetivo es encontrar y clasificar opiniones con respecto a una marca o producto, pero también se puede orientar de forma más general, simplemente para estudiar la evolución del sentimiento en un grupo.

Por otro lado, también es un área más amplia que intenta extraer información del lenguaje según el significado de las palabras empleadas, por ejemplo, clasificar textos según temas.

Por último, la extracción de emociones busca encontrar las emociones expresadas o implícitas en la comunicación, escrita o audiovisual. Es, en cierto modo, una evolución del análisis de sentimiento en la cual se tienen en cuenta más dimensiones además de la polaridad.

Esto se puede realizar categorizando las emociones por categorías (alegría, tristeza, rabia…) o representando las emociones en un espacio multidimensional.

Los comienzos del Análisis de Datos en Paradigma

Los primeros proyectos de Paradigma para el análisis de sentimiento empezaron a desarrollarse alrededor de 2010 y estaban basados en el análisis morfosintáctico de las palabras. Utilizando la librería Freeling, se obtenía la función morfológica de las palabras y su lema o forma raíz. A partir de ello se construían reglas y se clasificaban las palabras en diferentes tipos para crear diccionarios.

Con la combinación de palabras y reglas se analizaba el texto relacionado en una entidad concreta. Este análisis estaba orientado a textos medianos, como posts de blogs y foros.

Parte del esfuerzo estaba orientado a detectar cuándo se estaba hablando de la entidad y a localizar mensajes de spam. Además, se creaba un diccionario por cada proyecto, por lo que detrás de cada proyecto había un gran trabajo humano.

Pero veamos cómo está siendo la evolución del Análisis de Sentimientos desde esa época hasta el presente y qué posibilidades habrá en el futuro.

La irrupción de las redes sociales y el comienzo del Big Data

Los proyectos basados en ese modelo funcionaron un tiempo, pero pronto aparecerían nuevos factores que alterarían para siempre el panorama de los proyectos de reputación. Por un lado, la adopción de Twitter como plataforma de comunicación y, por otro, la aparición del procesado Big Data.

Twitter se convirtió en la principal forma de ventilar las opiniones en Internet y también en un canal de soporte de usuarios. Esto hizo que muchas compañías comenzaran a preocuparse por su reputación en esta red social.

La longitud limitada de los tweets y el volumen de los mismos obligó a replantearse el modelo del análisis de datos. Gracias a ser textos finitos, no era necesario asegurarse de que todas las opiniones vertidas en el texto se refirieran a la marca en cuestión, ni había que preocuparse por la cohesión de un texto o por anáforas y catáforas. A cambio, el volumen de información a analizar crecía sin parar.

Al poder procesar los tweets de forma individual, pronto se pudo adoptar Hadoop MapReduce como la tecnología con la que procesar las opiniones, lo que además permitió hacer frente al volumen cada vez mayor de tweets recolectados.

Entre los proyectos que se basaron en esta tecnología podemos mencionar el proyecto Magnet, Market-as-a-service (ambos cofinanciados por el CDTI), el proyecto Eurosentiment englobado en el marco de financiación de la Unión Europea FP7 además de soluciones ad hoc para proyectos.

MixedEmotions: Spark y extracción de emociones en multimedia

El análisis de sentimiento tiene muchas aplicaciones, pero hay veces que no es suficiente para extraer buenas conclusiones cuando se manejan cantidades ingentes de datos. En ocasiones, se necesita algo con más detalle.

Una solución puede ser la extracción de emociones. En mayo de 2015 echó a andar MixedEmotions, un proyecto dentro del marco Horizonte2020 con Paradigma como socio experto en Big Data.

El objetivo era muy ambicioso: conseguir una plataforma para la extracción de emociones en audio, texto e imagen de vídeo. El consorcio estaba formado por nueve compañías de diferente perfil.

La plataforma tenía también otras capacidades de NLP, como el análisis de sentimiento o extracción de entidades, pero su principal foco era la caracterización y extracción de emociones.

Las emociones extraídas se podían representar como categorías (alegría, tristeza, enfado, asco y miedo) o de forma tridimensional en la línea del modelo PAD (Pleasure, Arousal, Dominance). Los módulos de análisis de sentimiento ya no están basados en listas y reglas manuales, sino en técnicas de Machine Learning, principalmente sistemas de redes neuronales.

Para el procesado distribuido, se utilizó Spark sobre Mesos, experimentando una mejora en muchas áreas con respecto al desarrollo en el antiguo Hadoop 1.x. También se usaron otras tecnologías como HDFS, Docker y Marathon para manejar microservicios. La plataforma MixedEmotions es open source en su mayor parte y está a disposición de los usuarios.

El futuro

Desde que se empezó a usar en la empresa, el análisis de sentimiento ha evolucionado mucho. Ha pasado de estar basado en reglas más o menos complejas a estar basado en técnicas de Machine Learning.

Esta evolución también pasa de ser un conjunto de procesos lentos y costosos a estar desplegado en entornos de procesado distribuido para analizar grandes volúmenes de datos. Por otro lado, cada vez hay más herramientas de extracción de información de textos que responden a la necesidad de análisis más finos que un simple bueno o malo.

Todo ello hace que cada vez sea menos rentable crear una solución para el análisis de lenguaje desde cero a partir de librerías. En los últimos tiempos han aparecido soluciones de los gigantes de Internet para el Análisis de Lenguaje Natural en la nube, por ejemplo en Google Cloud Platform, en Amazon Web Services, en Microsoft Azure y en IBM.

Google Cloud Platform ofrece el servicio Cloud Natural Language, con capacidades de análisis de sentimiento y extracción de entidades en ocho idiomas y detección de temas en inglés. También tiene tecnología de transcripción de voz con Speech API y de bots conversacionales con Dialogflow.

En noviembre de 2017 Amazon lanzó Amazon Comprehend, con funcionalidades de análisis de sentimiento, extracción de entidades y detección de temas entre otros. Amazon cuenta también con Amazon Transcribe para la conversión de voz a texto. Sin olvidarnos de Amazon Lex, tecnología de bots conversacionales en la que está basado Amazon Alexa.

El servicio de procesado de lenguaje natural de IBM se llama Watson y tiene un un servicio de Natural Language Understanding con capacidad de analizar sentimiento y extraer emociones, transcripción de voz y bots conversacionales, entre otros.

Microsoft Azure tiene una sección de servicios de inteligencia artificial llamada Microsoft Cognitive Services, entre los cuales el servicio de Text Analytics tiene capacidades de análisis de sentimiento.

Conclusión

El Análisis de Lenguaje Natural ha evolucionado mucho desde sus orígenes. Parece claro que es con la potencia de las técnicas de Machine Learning donde se puede obtener más fiabilidad en estos procesos, lo que hace más atractivo utilizar servicios en la nube de gigantes como Amazon y Google.

Pero por supuesto no son la solución a todos los problemas. Habrá muchos casos en los que estas herramientas no sean apropiadas y se necesite algo más específico.

De cualquier forma, parece asegurado que las formas en las que las máquinas nos entienden seguirán evolucionando y que veremos nuevas herramientas salir al mercado, posiblemente en la nube, gracias a la potencia de procesado que las técnicas Big Data pueden aportar al área de Machine Learning.

Cuéntanos qué te parece.

Los comentarios serán moderados. Serán visibles si aportan un argumento constructivo. Si no estás de acuerdo con algún punto, por favor, muestra tus opiniones de manera educada.

Suscríbete