Enmilocalfunciona

Thoughts, stories and ideas.

Aplicaciones inteligentes con Microsoft Cognitive Services y Azure

Publicado por Santi Macias el

Microsoft AzureMachine LearningCognitive Services

En el post de hoy, vamos a conocer que son los Microsoft Cognitive Services y cómo nos puede ayudar en el desarrollo de nuestras aplicaciones web, escritorio, móviles y chatbots.

¿Qué son los Cognitives Services?

Los Cognitives Services son una colección de servicios disponibles en Azure que como desarrolladores podemos utilizar en nuestras aplicaciones para hacerlas más inteligentes.

Se presentaron oficialmente en el Build 2015 como Proyecto Oxford y podemos entenderlos como Machine Learning en segundo plano donde Microsoft se encarga de entrenar los modelos, mantener y actualizar los servicios en Azure y exponerlos a través de APIs para consumirlos desde nuestras aplicaciones.

alt

¿Cómo nos puedes ayudan en nuestras aplicaciones?

Incorporar estos servicios con algoritmos inteligentes a nuestras aplicaciones permitirán que éstas puedan ver, oír, hablar, comprender e interpretar las necesidades de los usuarios con formas de comunicación y expresión naturales.

Veamos algunos ejemplos de uso:

  • Análisis de texto y escritura.
  • Chatbots que entienden el lenguaje natural del usuario.
  • Identificar personas, caras, edad en fotografías.
  • Reconocimiento de objetos, su entorno y el contexto en imágenes.
  • Saber si una persona tiene barba, gafas u otros accesorios.
  • Reconocimiento de voz o personalidades.

Tipos de Cognitives Services

Actualmente existen 5 tipos agrupados en estas categorías: Visión, Voz, Lenguaje, Conocimiento y Búsqueda. Cada una de ellas a su vez dispone de diferentes servicios que podemos integrar dentro de nuestras aplicaciones y desarrollos, vamos a conocerlos.

alt

Los podemos utilizar en una gran variedad de aplicaciones como se muestra en esta imagen

alt

Veamos las categorías en el Directorio Cognitive Services de Azure:

Vision Services

Los servicios de visión son un conjunto de algoritmos de procesamiento de imágenes para identificar, moderar y poner una leyenda de forma inteligente a sus imágenes.

Algunos servicios que encontramos son los siguientes:

  • Computer Vision: Clasificación de imágenes, actividades, escenas, celebridades y puntos de referencia en imágenes, así como, reconocimiento de escritura a mano y óptico (OCR) en imágenes.
  • Face API: Detección de caras, personas y reconocimiento de emociones en imágenes.
  • Emotion API: Reconocimiento de emociones como felicidad, tristeza, sorpresa, ira, temor, desprecio, asco, neutralidad.
  • Video Indexer: Detección de caras, objetos, escenas y actividad en videos y extracción y análisis de metadatos, audios y fotogramas clave.

Speech Services

Los servicios de speech son útiles para convertir voz en texto, usar la voz con fines de comprobación o reconocimiento del hablante a sus aplicaciones.

  • Conversión Voz/Texto: Conversión de voz a texto y viceversa para las aplicaciones con interfaces más naturales.
  • Speaker Recognition: Identificación y comprobación del hablante.
  • Traducción de voz: traducción en tiempo real de voz, automatizada y personalizable.

Language Services

Los servicios de Lenguaje permiten a las aplicaciones procesar lenguaje natural con scripts precompilados, evaluar sentimientos y aprender a reconocer lo que los usuarios desean.

  • Análisis de texto: Análisis de opiniones de texto, reconocimiento de entidades con nombre y extracción de frases clave.
  • Traducción de Texto: Detección de idioma automática, traducción de texto automatizada y personalizable.
  • Spell check: Corrector ortográfico contextual y multilingüe a escala Web.
  • Moderador de contenido: Moderación de contenido explícito u ofensivo para imágenes y videos para bloquear o permitir contenido coincidente.
  • LUIS: Reconocimiento del lenguaje natural basado en Machine Learning para comprensión lingüística natural en aplicaciones, bots y dispositivos IoT.

Knowledge Services

Los servicios de conocimiento crean mapas de información y datos complejos para resolver tareas como recomendaciones inteligentes y búsqueda semántica.

  • QnA Maker: Crear base de conocimientos a partir de colecciones de preguntas y respuestas frecuentes
  • Coincidencia semántica para bases de conocimiento

Search Services

Los servicios de búsqueda permiten agregar el API de Bing para buscar en miles de millones de páginas web, imágenes, vídeos y noticias con una sola llamada API.

  • Bing Web Search: Búsqueda web inteligente en internet sin anuncios ubicación y diferentes filtros para analizar los resultados.
  • Bing Custom Search: Creación de motores de búsqueda personalizado y sin anuncios.
  • Bing Video Search: Buscar videos en la web para Identificación de tendencias y temas de videos filtrarlos, analizarlos, y trabajar con ellos, etc.
  • Bing Image Search: Buscar imágenes en la web para filtrarlas, analizarlas, etc.
  • Bing News Search: Artículos de noticias en la Web por ejemplo sobre mercados financieros, ciencia o Identificación de tendencias.

NOTA: Algunos Cognitive Services se encuentran en VERSIÓN PRELIMINAR, antes de usarlos en producción consultar la página oficial en Azure para conocer su disponibilidad.

Probando los diferentes Cognitive Services

Cada servicio comentado anteriormente dispone una página web propia donde encontraremos una explicación detallada del mismo y un área donde verlo en funcionamiento, sin necesidad de regístranos, ni tener ninguna cuenta de Azure.

alt

En estos enlaces disponemos de ejemplos para probar los servicios:

Aplicación de ejemplo en acción

Como la mejor forma de entender realmente como nos pueden ayudar en nuestras aplicaciones todo este mundo de servicios cognitivos, os dejo el video oficial de Microsoft que presento en el Build 2017 para ver todo su potencial.

Build2017

Conclusiones

Las soluciones cognitivas nos abren la puerta a utilizar algoritmos de Inteligencia Artificial en nuestras aplicaciones para que los usuarios tengan experiencias más naturales y ayudan a las empresas a ser más eficientes en sus operaciones y optimizar sus procesos de negocios.

En definitiva, la habilidad de una plataforma como Azure Cognitive Services de entender, razonar y aprender como un ser humano permite agregar mucho más valor al cliente final permitiendo tomar decisiones de acuerdo con las distintas opciones presentadas con mayor grado de confianza.

Para usar Microsoft Cognitive Services, necesitamos una cuenta registrada de Azure y es importante conocer las tarifas de precios asociadas a cada servicio, ya que, aunque hay una franja gratuita, cada servicio tienen un precio por volumen de llamadas o transacciones.

Por último, recordar que algunos Cognitive Services se encuentran en VERSIÓN PRELIMINAR.

Como siempre, cualquier duda o consulta dejarlo en los comentarios.

Autor

Santi Macias

Microsoft Tech Lead en knowmad mood, +20 años trabajando con tecnologías Microsoft actualmente centrado sobretodo en Azure, Cloud Native, DevOps, Docker, Kubernetes, Microservicios y Serverless.