viernes, mayo 03, 2019

Google Cloud Natural Language Analysis API: Un ejemplo con Chuck Norris, "hacker" y el estrangulamiento de Chema Alonso.

Hace unos días estuve probando los servicios de Visión Artificial en Microsoft Azure para el reconocimiento de Celebrities, y un poco más aún, cómo funcionaban algunos servicios de Sentiment Análisis en textos en lenguaje natural. Los dos servicios tenían algo de controversia para mí, el primero porque asusta que un sistema de visión artificial reconozca también a las personas en fotografías, el segundo por cómo están entrenando a la AI para reconocer correcta - o incorrectamente - el sentimiento de una frase.

Figura 1: Google Cloud Natural Language Analysis API: Un ejemplo
con Chuck Norris, "hacker" y el estrangulamiento de Chema Alonso.

Ayer, aprovechando que tenía el día de fiesta, quise echarle un ojo a la API de Google Cloud para el Análisis de Lenguaje Natural, que entre otras cosas tiene un Análisis de Sentimiento. Bueno, al menos en algún idioma, porque el Español no está por ahora - supongo que estará en breve, pero por ahora solo podemos probar con la lenguaje de la Gran Bretaña.

Puse varios textos, y aunque es verdad que en Visión Artificial no tiene "Celebrities" - aún - en el caso del texto sí que busca los nombres de personas que son citadas en él dentro de la Wikipedia. Ya que no reconoce Celebrities en fotos, decidí contar lo que se veía en la foto en la que estoy con el gran Chuck Norris. Y aunque no tiene el servicio citado,  sí que en la frase reconoce a Chuck Norris, y me reconoce a mí. Y lo hace enlazando las páginas de la Wikipedia en Inglés para Chuck, y Wikipedia en Español para mí, lo que está bien porque busca en todo el Wiki-mundo.

Figura 3: Análisis de Entidades en Google Cloud NLP API

En cuanto a la parte de importancia (Salience) en la frase. Chuck queda muy por encima de mí - algo normal teniendo en cuenta que nadie somos dignos de él. Pero no, no es por la importancia de la persona, sino por el protagonismo en la frase. Al ser el sujeto le da más importancia. La misma frase, pero cambiando la enunciación a una frase en pasiva, el resultado cambia completamente.

Figura 4: Mimas entidades, cambian el Salience de cada una. 

Si miramos la parte de Análisis de Sentimiento vemos cosas curiosas. La primera que considera que la frase tiene un sentimiento Negativo, un -0.4 cuando el máximo es -0.5. Vamos, no Negativo, sino MUY Negativo. En eso estoy de acuerdo, ya que cualquier frase,  sea en activa, pasiva o reflexiva, que termine con Chema Alonso estrangulado - sea el idioma que sea - es malo. Muy malo, remarco.

Figura 5: Análisis de Entidades en Google Cloud NLP API

Probando ya palabras concretas, como el caso de "Hacker", se puede comprobar que el termino es neutral si va aislado. Pero que si ponemos adjetivos como Big, Great o en incluso "Old", el termino tiende a hacerse negativo con facilidad. Qué le vamos a hacer.

Figura 6: El termino "hacker" aislado es neutro

En la Figura 6 se ve que aislado es neutro, pero si ponemos "Big" Hacker el sentimiento se va a -0.5, lo que es muy, muy, muy negativo. El Análisis de Sentimiento de esta última parte de mi texto debería ser igual, MUY Negativo.

Figura 7: Análisis de Sentimiento MUY Negativo

El servicio también hace un Análisis Sintáctico de forma gratuita que seguro que hace felices a muchos niños estudiando Lengua y teniendo que resolver las estructuras sintácticas de las oraciones - que recuerdos de mis años mozos en C.O.U.  -.

Figura 8: Análisis Sintáctico de una frase con Google Cloud NLP API

Y poco más. Como podéis ver, estas tecnologías que utilizan Inteligencia Artificial para crear sistemas Cognitivos - o Cognitive Intelligences como nuestra querida AURA - están en pleno crecimiento y tomando decisiones muy aceleradas. Algunas con sesgos, otras con malas interpretaciones semánticas, otras con malas interpretaciones en sentimiento, e incluso con desconocimiento de muchos términos, por lo que creo que debemos prestar atención a lo que está sucediendo en este mundo.


Figura 9: Conferencia de Chema Alonso en VIII CILE (Córdoba, Argentina)

Os dejo la conferencia que di sobre este tema en el VIII Congreso Internacional de la Lengua Española en Córdoba (Argentina) para que veáis algunos ejemplos de lo que decía. En este caso concreto del artículo de hoy, podéis probar la API de Google Cloud NLP vosotros mismos, y estaré encantado de que compartáis conmigo todo lo que vayáis descubriendo que pueda ser interesante.

Saludos Malignos!

3 comentarios:

  1. Hola! Gracias por tu artículo. Si quieres puedes ver la API de Bitext que incluye análisis de sentimiento en 8 idiomas incluido el español https://api.bitext.ai/#/services/textanalysis/sentiment/spa

    ResponderEliminar
  2. Creo que sí que está el Español incluido, amigo
    https://cloud.google.com/natural-language/docs/languages

    ResponderEliminar
  3. @Tony, "Amigo", el artículo habla del sentiment analysis, no del NLP. Hemos integrado Aura en Google Assistant hace un año y medio y sabemos que soporta NLP en Español. Esto es Sentiment Analysis. Saludos!

    ResponderEliminar