La inteligencia al servicio del desarrollador
Con al auge de la computación distribuida, con cada vez más servicios universales (en la “nube”) y el data-mining, se ha hecho cada vez más patente que el análisis y el tratamiento de los datos es vital para obtener información relevante.
La cantidad de datos es tan ingente que se hace imprescindible poder discriminarlos y seleccionarlos. Esta tarea no es sencilla ni está al alcance de cualquiera. Parte de esa dificultad es debida a que los datos son cada vez más sencillos de obtener, pero son prácticamente tan difíciles de analizar como hace décadas.
Volviendo a lo anterior, nuestros smartphones son una fuente inmensa de datos: Con sus cámaras, sus micrófonos y sus sensores se pueden tomar muestras de todo nuestro entorno.
Enormes cantidades de datos en forma de imágenes, vídeo, audio o incluso de cada movimiento (ejemplo de ello son las pulseras cuantificadoras). De ellos podemos obtener información muy valiosa y útil para aplicarla más allá, para exprimir sus posibilidades.
¿Pero cómo?
El ser humano
Somos seres con grandes capacidades cognitivas. Cualquiera es capaz de reconocer una cara, una melodía o un texto. El ser humano es especialmente bueno identificando patrones y simplificando la realidad que le rodea para destilar todo tipo de conceptos.
Por ejemplo, cuando vemos escrita la palabra “perro”, un aluvión de conceptos relacionados vienen a nuestra mente. O, cuando escuchamos una canción, podemos diferenciar perfectamente una guitarra de un piano aunque estén sonando a la vez.
Todas estas tareas son tareas puramente cognitivas y son, en realidad, de una gran complejidad. Por ejemplo, para cualquier ordenador, la identificación inmediata de una melodía con un estilo musical es una tarea ardua e inabarcable en tiempo o en capacidad de cálculo. Nosotros apenas tardamos unos segundos. Es algo innato.
Inteligencia Artificial. Ahí está la clave.
Afortunadamente, estamos viviendo un momento muy importante en el desarrollo de las llamadas inteligencias artificiales (IAs).
En pocos años, nos hemos acostumbrado a que una aplicación de navegación por GPS sea capaz de articular palabras en nuestro idioma mediante síntesis de voz, o hacer una foto a un texto y poder traducirlo en segundos.
Sin ir más lejos, ya existen aplicaciones como Skype, al alcance de todos, con las que podemos hablar con personas en otro idioma desde cualquier parte del mundo. Si nuestro interlocutor es chino, podremos hablar en español y nuestro interlocutor nos escuchará en chino. Nosotros a él en español. Casi al instante.
La traducción, como podemos imaginar, es otra de las tareas donde los ordenadores han sido históricamente pésimos. Parece que poco a poco los ordenadores se van haciendo más humanos y más hábiles para todas aquellas tareas en las que antes patinaban una y otra vez.
¿Qué son los Cognitive Services?
Una de las empresas que más ha apostado por la inteligencia artificial ha sido Microsoft, un terreno donde han invertido fuertemente durante años y que ya está dando sus frutos. Bingy Cortanason solamente dos de sus nombres más reconocibles, servicios que son alimentados por una inteligencia “viva”, un sistema que está en constante aprendizaje y con una capacidad de cálculo y de aprendizaje asombrosa.
La buena noticia es que esa inteligencia está a nuestra disposición.
Cognitive Services es la Inteligencia como Servicio (Intelligence as a Service)
Los Cognitive Services son una suite de servicios que resuelven tareas cognitivas; tareas que hasta ahora eran más propias de seres humanos que de máquinas.
Veamos un ejemplo para ver la potencia de esta tecnología:
Tomamos varias fotografías con nuestro móvil, y, automáticamente, la aplicación es capaz de etiquetar a todas las personas que aparecen en ellas, y no solo eso, sino que también genera un álbum de fotos con un título adecuado para la ocasión y una descripción para cada fotografía.
Sorprendente, ¿verdad?
La aplicación puede reconocer las caras de las personas, el lugar donde se están tomando las fotos e incluso deducir el título para el álbum y las fotos que contiene.
Todo esto es posible por el análisis avanzado de datos de los Cognitive Services: de datos brutos a información relevante. Así de sencillo.
Cognitive Services nos abre nuevos horizontes poniendo la Inteligencia Artificial en nuestras manos.
Desde el punto de vista del desarrollador, el abanico de posibilidades que abre es enorme así como el conjunto de aplicaciones que pueden beneficiarse:
En el campo de la imagen, Cognitive Services no deja de ser sorprendente:
- Es capaz de identificarnos en fotografías y vídeos.
- Reconoce las emociones de una persona, su edad, su pose, su actitud…
- Sabe si una persona tienen barba, gafas u otros accesorios.
- Identifica objetos, su entorno y el contexto.
- Puede poner nombre a una imagen dependiendo de su contenido.
Cognitive Services no solamente procesa imágenes, también escucha, piensa y busca:
- Es capaz de reconocer el idioma de un hablante.
- Puede transformar un texto en voz con una fidelidad y naturalidad sobresalientes.
- Puede entender un texto, extraer las ideas clave del mismo y detectar matices subjetivos del mismo, como la tristeza o la alegría.
- Se da cuenta de la entonación y la estructura de frases habladas.
- Crea mapas conceptuales.
- Ofrece sugerencias para búsquedas, puede buscar noticias, imágenes, vídeos…
En pocas palabras: Podemos potenciar la utilidad de nuestras aplicaciones.
Todo ello con un esfuerzo mínimo, de fácil integración y lo mejor de todo: en constante mejora.
Y a vosotros, ¿Qué os parecen los Cognitive Services de Microsoft?
¡Compartid con nosotros vuestras opiniones!
¡Nos vemos!
Escrito por José Manuel Nieto, Senior Developer en Bravent.
Fuente de las imágenes: Microsoft Cognitive Services