Watson: bienvenido a la era cognitiva
Patricia Carmona Noticias 25/02/2016
IBM Watson
Dentro del catálogo de servicios disponibles en Bluemix, IBM ha creado una serie de servicios cognitivos que permiten enriquecer de forma sencilla las aplicaciones. Dentro de estos servicios hay disponibles APIs para hacer análisis de sentimientos de textos, convertir voz a texto y viceversa o extraer información de fotografías, entre muchos otros. El nombre de estos servicios es Watson, en homenaje a uno de los fundadores de IBM.
El origen de Watson se remonta a 2004. Después de que DeepBlue derrotase a Kaspárov en aquella histórica partida de ajedrez en 1997, IBM comenzó a buscar un nuevo reto para su inteligencia artificial, y lo encontraron en el concurso de preguntas Jeopardy. Desde ese momento un grupo de ingenieros trabajó en la creación de un sistema informático con la intención de derrotar a los mejores concursantes del programa. En febrero de 2011 se grabaron dos programas del concurso, en los cuales Watson salió victorioso compitiendo contra los dos mejores concursantes de la historia hasta la fecha. Puedes ver un resumen del reto en https://www.youtube.com/watch?v=D2H5j_UYtSM
Servicios disponibles
En el catálogo de Watson se pueden encontrar una gran variedad de servicios cognitivos para utilizar en tus aplicaciones.
Dentro de estos servicios esta la API de Alchemy. El servicio de AlchemyLanguage permite extraer información detrás de un texto, como un análisis del sentimiento del texto, extracción de palabras clave y entidades (personas célebres, organizaciones, lugares, etc), el autor, relaciones o la emoción del texto (si es un texto agresivo, divertido, etc) entre otros muchos campos. También cuenta con un servicio para análisis de imágenes, AlchemyVision, que permite obtener información relativa a una imagen como qué personas aparecen y si son famosas, palabras clave asociadas a la misma, objetos, textos, etc. Por último, AlchemyData News permite buscar noticias y blogs a partir de una serie de palabras claves enriquecidas con NLP.
Otro servicio destacado de Watson es Personality Insights, que a partir de un texto largo escrito por una persona, es capaz de describir la personalidad de esa persona. También destaca Visual Insights, que a partir de un grupo de imagenes es capaz de extraer palabras clave comunes a todas esas imagenes.
Consulta toda la información sobre estos servicios y el resto del catálogo.
Todos los servicios de Watson, como se ha indicado anteriormente, están disponibles en formato API. Aún así, hay disponibles SDKs para múltiples plataformas facilitando aún más el uso de estos servicios:
Node-RED
Por otro lado, la aplicación de diseño visual Node-RED dispone de múltiples módulos de Watson dentro de su catálogo. Esta herramienta opensource disponible tanto para desplegar en un servidor privado como en el catálogo de Bluemix, permite el desarrollo rápido de aplicaciones simples. Esto permite por un lado crear productos plenamente funcionales o validar propuestas antes de iniciar desarrollos mucho más complejos.
Implementar flujos en Node-RED es sencillo. A continuación se detallan los pasos a seguir para crear una app que analiza el sentimiento de tweets con la palabra clave Betabeers recolectados por el API en directo de Twitter, se queda con aquellos con valor positivo y los reproduce en formato audio:
-
Despliega una instancia de Node-RED en Bluemix seleccionandola dentro del catálogo de Bluemix.
-
Accede al editor de Node-RED dentro de la instancia que acabas de crear.
-
El editor está compuesto por un selector de nodos a la izquierda clasificados por categorías, una sección de información a la derecha con varias pestañas (información del nodo seleccionado, consola de debug o credenciales) y el editor en el centro. En la parte de arriba está el menú y el botón de despliegue.
-
Para agregar nodos, basta con arrastrar el nodo desde el menú al editor. Los flujos tienen que tener al menos un nodo de inicio y un nodo de salida. En nuestro caso, el flujo es el siguiente: un nodo coge tweets que se envían a un analizador de sentimientos. Como este nodo está solo en inglés, traducimos los mensajes. A continuación, un switch filtra los mensajes positivos, que se envían a un delay de 6 mensajes por segundo para que no se reproduzcan varios mensajes a la vez. Según van pasando los mensajes, se convierten de texto a voz y se reproducen por un web socket. A parte de este flujo, hay que crear otro que sirva de cliente web para reproducir dicho contenido.
Puedes importar directamente el flujo pulsando en el menú de opciones > import > clipboard. El código para importar está disponible en https://drive.google.com/file/d/0BwrTk2q6YnZubFl1eHFxR1NZWFE/view?usp=sharing
La imagen anterior muestra el resultado de este ejemplo, y puedes verlo en funcionamiento en http://nodered-betabeers.mybluemix.net/audio.
Watson en el mundo real
IBM tiene a disposición de los desarrolladores múltiples ejemplos de aplicaciones desarrolladas con Watson para que sirvan como ejemplo de uso de los diferentes servicios disponibles. Entre estos ejemplos hay aplicaciones que simulan el trabajo de un headhunter, analizan las tendencias actuales o incluso a crear un pequeño rover. Puedes encontrar más ejemplos en https://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/gallery.html.
Existen múltiples empresas que han desarrollado sus productos entorno a la tecnología Watson. Hay ejemplos como ROSS que utilizan la búsqueda de conceptos en el ámbito jurídico, permitiendo buscar citas y referencias en textos jurídicos.
Por otro lado, hay aplicaciones que, entrenadas con conocimientos de expertos, permiten resolver dudas al resto de personas. Algunas de estas aplicaciones son GenieMD, que permite resolver dudas a pacientes sobre tratamientos médicos, o AskSofie, que responde a preguntas sobre enfermedades o patógenos de forma similar a la que lo haría un veterinario.
Para finalizar, CogniToys ha desarrollado un juguete que utiliza Watson para comunicarse e interacionar con los niños, permitiendo además que aprenda y adapte su comportamiento en función de la personalidad del niño.
Así que tanto si estás interesado en empezar a adentrarte en el mundo de la inteligencia artificial y los servicios cognitivos como si quieres dotar de nuevas funcionalidades a tus aplicaciones, no dudes en visitar la web oficial para conocer todo lo que Watson puede ofrecer.