Invisible o desaparece (Interpretando los tuits)

Hasta ahora algunas capacidades inteligentes habían sido exclusivas de los humanos. Como interpretar el sentido de una frase, saber por la expresión de una persona si lo que le estamos diciendo le divierte, sorprende o asusta, saber si un padre se parece a su hijo, o entender que una frase como "no hay jabón" significa que "hay que comprar jabón".

Sin embargo, desde marzo del 2016, tenemos a nuestra disposición una serie de servicios que permiten humanizar nuestras aplicaciones.

personalityinsights

Los llamados Servicios Cognitivos se agrupan en cinco categorías dependiendo de su idiosincrasia: de visión, que nos permite reconocer caras, emociones, objetos... tanto en imágenes como en videos; de voz, que habla y escucha a los usuarios, reconociendo a la persona y lo que dice; de lenguaje (escrito), que procesa textos y entiende qué necesitan los usuarios; de conocimiento, que basándose en la web, fuentes académicas o en sus propias fuentes es capaz de interpretar información, representarla, evaluarla o compararla; y de búsqueda, que usa las APis de Bing para acceder a millones de web,  buscar imágenes, etc...

capture

Como la fuente de información de la que queremos extraer resultados es twitter, nos centraremos en la categoría de "lenguaje", ya que el procesamiento de textos posiblemente nos acerque a nuestras necesidades de interpretar si un tuit es bueno o malo.

capture

Y leyendo un poco las descripciones de casa uno de los cinco servicios disponibles para texto, rápidamente encontramos lo que estábamos buscando: la API de análisis de texto nos permite detectar el sentimiento, las palabras clave de una frase, los temas que menciona, y el idioma del texto.

Puedes hacer una prueba sobre cómo funciona esta API en esta web.

capture

Parece evidente que el parámetro "sentiment" del resultado que devuelve el servicio es justo lo que necesitamos.

Así que, de nuevo, en el fichero que está ejecutándose en nuestro WebJob, puedes ver la llamada a la API de Text Analytics y cómo aislamos el parámetro.

Para pedir la "SUBSCRIPTION_KEY" y probarlo gratuitamente puedes ir a esta página y suscribirte en unos segundos.

capture

Este plan que permite probar gratis los servicios cognitivos es gratis, con ciertas limitaciones en cuanto al número de peticiones que hagas. Puedes ver estas limitaciones en la página de pricing.

capture

 

Una vez realizada la llamada a la API con las opciones que detectamos necesarias para analizar nuestro tuit, vemos que el parámetro que nos indica el sentimiento de la frase se llama "score".

capture

 

Si observas el código, no dejes que te confunda que hacemos una media ponderada, los mensajes más recientes pesan más a la hora de realizar el cálculo del sentimiento general. Tampoco cambia el color con cada mensaje, porque en caso de un uso intenso del término en twitter los cambios en la lámpara más que darnos información relevante, nos pueden marear. :)

Una vez calculado el sentiemiento, decidiremos el color que aplicamos a la lámpara:
if (sentiment > 0.6) color = green; else if (sentiment < 0.4) color = red; else color = blue;

... y ya?

Pues ahora estaría bien que la lámpara se iluminara (¿no?).

¡No te pierdas el próximo post!

Isabel Cabezas
@isabelcabezasm
Technical Evangelist

 

(Editado) Links a todos los post de la serie:

Invisible o desaparece (El principio o cómo se nos ocurrió la idea)
Invisible o desaparece (Consumiendo la API de Twitter)
Invisible o desaparece (Interpretando los tuits)
Invisible o desaparece (el Internet de los Cacharritos)
Invisible o desaparece (comunicándonos con las nubes)