lunes, 26 de septiembre de 2016

Chatbots: hablando con las máquinas


A medida que avanza la tecnología, los humanos y las máquinas se acercan cada vez más y la forma en la que nos comunicamos con ellas es cada vez más natural.
 
Desde la época en la que para decirle a un ordenador lo que tenía que hacer había que perforar una serie de tarjetas hemos ido mejorando, llegado hasta ahora, momento en el que incluso podemos decirle con nuestras propias palabras lo que queremos como si se lo dijéramos a otra persona. Eso implica una comunicación intuitiva que elimina la barrera del conocimiento técnico permitiendo a cualquiera interactuar con una máquina.

Es por esto que existe una gran tendencia a usar los llamados chatbots en numerosos ámbitos y negocios.

Un bot es un software que realiza una tarea de forma automática sin intervención humana. Los chatbots son bots diseñados para charlar con las personas simulando ser otra persona para ofrecer cualquier tipo de servicio al usuario de una forma más cercana, bien sea obtener información de un producto, contratar un viaje o fijar una cita en tu agenda.

El desarrollo de la inteligencia artificial y el machine learning permite que cada vez estos chatbots tengan más personalidad y sean más reales, dando lugar a complejos asistentes personales con los que se puede hablar de cualquier cosa y que en un futuro próximo podrán llegar a ser indistinguibles de un ser humano.

Es muy probable que todos nosotros hayamos hablado alguna vez con un chatbot, pues están presentes en muchas webs, aplicaciones de mensajería (Telegram, Facebook Messenger) o incluso en nuestros propios smartphones (Siri, Cortana, Google Assistant) y cada vez estarán más presentes en nuestro día a día.

¿Pero cómo se desarrolla un bot? Pues existen varias plataformas de creación de bots, dentro de las cuales cabe destacar las siguientes:

  • Telegram (https://core.telegram.org/bots/api): Desarrollo de bots para la aplicación de mensajería de Telegram.
  • Facebook Messenger (https://messengerplatform.fb.com/): Desarrollo de bots para la aplicación de mensajería de Facebook.
  • Pandorabots (http://www.pandorabots.com/): Desarrollo de bots que definen flujos conversacionales mediante el uso de AIML (Artificial Intelligence Mark-up Language) que se basa en el matching de patrones.
  • rebot.me (http://rebot.me/): Creación de bots definiendo respuestas para las distintas frases que pueda introducir el usuario.
  • LUIS (https://www.luis.ai/): Language Understanding Intelligent Service. Es un framework de Microsoft que permite procesar el lenguaje natural para extraer información analizable.
  • wit (https://wit.ai/): Similar a LUIS pero libre. Tiene además la funcionalidad de definir flujos de conversación.

En I+D, el equipo de Bond hemos desarrollado e integrado un chatbot cuya misión es entablar una conversación con el usuario que se da de alta en la aplicación para conocerle mejor y extraer información útil que será utilizada para generar recomendaciones más acertadas, que es la principal funcionalidad de la plataforma. Este chatbot realiza un papel activo en la conversación, siendo el encargado de realizar las preguntas, al contrario de lo que suele ser común.

Concretamente se ha desarrollado utilizando LUIS. Con este framework de Microsoft se pueden crear modelos de entendimiento del lenguaje para poder extraer información de las frases del usuario que será utilizada para generar su perfil en Bond y avanzar en el flujo de la conversación.

Estos modelos se crean gracias a un proceso de aprendizaje en el que el desarrollador va proporcionando distintos ejemplos de oraciones y marcándolas con intents y entities determinados hasta que la plataforma es capaz de identificar por sí misma la información.
 
Un intent viene a ser la intención del usuario en una frase determinada y los entities son elementos de información necesarios para nuestro caso de uso.

Cuando el modelo está creado, se despliega en un endpoint HTTP. El código Java implementado en Bond enviará ahí las frases del usuario y obtendrá como respuesta un JSON con todos estos elementos. La lógica de negocio decidirá qué preguntas hacer para continuar con la conversación al mismo tiempo que va almacenando en base de datos la información.

Integrar otros chatbots para otros propósitos diferentes dentro de la aplicación es tan sencillo como entrenar otros modelos de entendimiento y escribir la lógica que ejecute las acciones necesarias.

Autor: Roger Guizan

lunes, 23 de mayo de 2016

Asistimos al Google I/O Extended



El pasado miércoles 18/5/2016 varios de los miembros del equipo R&D TMS asistimos al Google I/O Extended organizado por GDG Spain que tuvo lugar en el Auditorio Google Campus Madrid.


La jornada estaba estructurada en dos partes, por la mañana una serie de charlas técnicas y por la tarde la Streaming party en la que se vería en directo la retransmisión del Google I/O 2016.

Al llegar al auditorio, tras las presentaciones y la información general del recinto nos ofrecieron unirnos al space creado para la ocasión en la nueva aplicación de Google. Y comienzan las charlas.

La primera, a cargo de un trabajador de milanuncios, fue sobre cómo escribir código Java más limpio mediante la utilización de una librería llamada Guava, que incluye lambdas, optionals para evitar los problemas con nulls y nuevos tipos de colecciones que no están incluidas en el JDK.

Después un miembro de jobandtalent nos habló sobre el desarrollo de aplicaciones Android con Java 8 y las nuevas características retrocompatibles hacia versiones anteriores del sistema operativo. Entre otras se destacaron la implementación de métodos default en interfaces, lambdas, referencias a métodos y los streams.



La tercera charla estuvo centrada en los mensajes push y las notificaciones, sobre cómo realizar un buen uso de ellas creando una imagen de marca, minimizando los dismiss y evitando molestias al usuario.

Tras un breve descanso para un café, se retomó la sesión hablando del software libre y del valor que tiene la creación de comunidades, el compartir experiencias y moverse conociendo gente para el desarrollo software y las personas que se dedican a ello.


Ya cerca del mediodía llegó la charla sobre Go, un lenguaje de programación simple y eficiente creado por unos empleados de google y que usan muchas grandes empresas como Docker, Dropbox o la propia Google.


La sexta y última de las charlas técnicas trató el tema del desarrollo de aplicaciones con Angular 2 para Dart, sus ventajas e inconvenientes y las diferencias entre Typescript y Dart.

Finalizada la primera mitad del día, llegó la hora de la comida y un par de horas de descanso para empezar a las 17:30 la segunda mitad: la Streaming Party.

Esta vez el auditorio había cambiado su forma ligeramente y se respiraba un ambiente diferente. Había cervezas, refrescos, camisetas y regalos. Además, un puesto de palomitas funcionando constantemente al que llamaban Popcorn as a Service.


Lo primero fue la presentación de varias comunidades que participaban en el evento y querían publicitarse para ganar miembros.

Tras esas breves presentaciones, ya con la cuenta atrás del inicio del Google I/O en todas las pantallas, se formó una mesa redonda en la que varios expertos discutieron cualquier tema que a la audiencia se le ocurría (cómo se ve el desarrollo de aplicaciones móviles en 5 años, cómo afrontaban ellos el tema de la accesibilidad, etc…).
Y cuando el contador llegó a 0, exactamente a las 19:00h se apagaron las luces y comenzó la retransmisión en directo de la conferencia del Google I/O a cargo de su CEO Sundar Pichai.

Muchas fueron las novedades presentadas, google home como asistente en casa, una mejora de google now más conversacional y contextual, Allo y Duo para la mensajería, actualizaciones en segundo plano para Android N, un nuevo modo VR llamado Daydream, prueba de aplicaciones sin instalación gracias a Android instant apps, mejoras para los desarrolladores y más.

Para finalizar, a las 21:00 todo el auditorio se arremolinó alrededor de unas pizzas para discutir esa gran cantidad de información que se había volcado y tras eso se da por acabado un largo pero interesante día en el Google I/O Extended 2016 de Madrid.


martes, 17 de mayo de 2016

Evento Android Innovation Day






El pasado 10 de mayo se celebró en el Campus de Google en Madrid el primer Android Innovation Day que tiene lugar en Europa. Se han reunido distintas personas involucradas de una forma u otra en su sistema operativo, desde fabricantes hasta startups que han elegido Android como punto de partida para su negocio. 


El evento comenzó con un discurso de Matt Brittin, presidente de Google para Europa, Oriente Medio y África, con el tema Android como motor de crecimiento en Europa, quien se centró en comentar la versatilidad del Sistema Operativo que permite llegar a todo el mundo, de cómo ha evolucionado desde su origen en 2007. Se habló que en la actualidad, cada persona tiene una media de 2.9 dispositivos conectados. A pesar de ser un gran dato, se corresponde con una minoría en el mundo, por ello el objetivo es llegar a esa mayoría para el 2020 (5.000 millones de personas) y que el desarrollo móvil crea 1.6 millones de puestos de trabajo en Europa y se espera llegar a los 4 o 5 millones. 

El ecosistema móvil en Europa - Estado de situación y potencialidades futuras.

En que los protagonistas fueran Catriona Meehan, Director, EU Policy & Government Relations de Application Developers Alliance; Bill Ray, Senior Research Analyst de VisionMobile; Alejandro Perales, Presidente de AUC y Benoit Tabaka, Public Policy & Gov’t Relations - Economic Policy, de Google.

Los protagonistas comentaron que hay distintos modelos de empresa para generar dinero con una app, no solo es poner un banner. Existen suscripciones, opciones Premium… y los desarrolladores tienen que pensar más allá de la publicidad.
Hace 10 años el ecosistema era totalmente distinto, con solo unas compañías desarrollando móviles Android. El desarrollo de un ecosistema adaptable ha permitido a desarrolladores y fabricantes un acceso mejor y un crecimiento mayor del sistema. En Europa hay unos 15 fabricantes compitiendo.
Uno de los objetivos de Google es  crear un solo mercado electrónico europeo, ya que ahora existen muchos y diferenciados. La idea es que si estás en un país y quieres ampliar tu mercado no sea necesario más, ya que el hablar con tu gobierno en su momento valdrá porque todas las legislaciones serán iguales. Un ejemplo de este camino al mercado común es la eliminación del roaming.
 
Android, Móvil y Desarrolladores


Los protagonistas de este tema fueran los representantes de sus startups. El primero en presentarse fue Pedro Javier Sáez, CEO de Lazzus, una aplicación que permite guiarse a personas con discapacidad ocular entre dos puntos, analizando el entorno que hay entre medias, de ahí su variación con un GPS convencional.

También partició Pablo Reaño el CEO de wePlan, aplicación que te permite comparar tarifas en el mundo de la telefonía e incluso contratar dichas tarifas a través de la aplicación. Por otro lado teníamos a José Luis García, CEO y Cofundador de Fluzo una aplicación pensada para ser utilizada por otras aplicaciones, que bautizan como una combinación de Shazam y Google Analytics de los medios audiovisuales. Y por último José Luis Marina, CEO de Taniwa una empresa española que se centró en eHealth, la bioinformática y en big data. 

Hablaron acerca de la utilización de herramientas de terceros, que te facilita el trabajo y ayuda a poder concentrarse en el desarrollo propio y que la clave es encontrar un nicho de mercado, una necesidad no cubierta y apoyarse en las posibilidades del mundo móvil. Para emprender es pensar que no va a ser rentable en un breve plazo de tiempo y estar preparado para ello, además de buscar financiación de terceros pero no centrarse en eso y sí en vender tu producto.

La magia de los dispositivos: hablan los fabricantes.


En cuanto a términos de fabricantes, asistieron Rodrigo del Prado, cofundador y director general adjunto de BQ, Sandra López la Directora de Marketing, Sony España, Rubén Pérez Prieto, Country Manager España y Portugal de HTC y Araceli de la Fuente la Directora de Marketing del Área de Mobile Communication de LG.

Todos estaban de acuerdo en que quizá el mundo del Smartphone como tal ya ha tocado fondo y es ahora cuando mediante IoT y aprovechando los sensores que estos dispositivos nos ofrecen tenemos que explotar una nueva forma de interactuar con este dispositivo.

Se habló que el Smartphone es un producto de consumo y que la gama Premium es algo importante pero no obsesivo, para posicionarte en un mercado de calidad. El cliente tiene más información, más accesibilidad y puede dar ese feedback a las empresas para mejorar el producto. 

Los protagonistas han comentado acerca de los wearables, que hay mucha evolución aun por hacer especialmente en potencia computacional o autonomía de los dispositivos. Además comentaron que el futuro del móvil está centrado en la cámara, audio y especialmente la batería, no solo en duración de la carga, sino en la vida útil de la misma.

Otro tema trata en el evento fue Privacidad y Seguridad en Android: Oportunidades y cómo combatir riesgos. En este tema el protagonista fue Stephan Micklitz, Ingeniero Director de Google. 

Habló sobre Android que está continuamente mejorando la plataforma de seguridad, con sus más de 500 trabajadores dedicados a ello, para proteger los más de 1.400 millones de dispositivos y sus datos.

En la tienda Google Play se realizan diferentes técnicas de seguridad como el análisis de las aplicaciones, análisis de seguridad en la red alertando de phising, malware, ataques por ingeniería social, en la instalación de paquetes, bloqueo y eliminación de aplicaciones peligrosas.

A su vez, se han desarrollado nuevas características relativas a la seguridad como el escáner de la huella dactilar, el Hardering System, que permite al usuario aceptar los permisos cuando se ejecuta cierta aplicación o el Device manager con el que se permite localizar el dispositivo, bloquearlo, llamarlo, etc.

Clausura: ¿Qué nos depara el futuro del móvil?  

En que el protagonista fue Fabian Hemmert, considerado uno de los principales expertos en la comunicación móvil en Europa.

Habló de cómo entender el mundo digital. No solo viendo el contenido en la pantalla, sino que el dispositivo sea capaz de transmitirnos qué estamos haciendo; como ejemplo un pen que al firmar una compra por un módico valor se comporta normal pero que si la cantidad es mayor empieza a ofrecer resistencia a la hora de la escritura. Dotando al móvil de “vida”, de reacciones, ayudamos a sentir lo que pasa en él.

La relación con la tecnología ha de ser más relajada y centrarnos más en nosotros mismos, necesitamos “una dieta” de información. El móvil no es el mejor aparato en nada, solo es un OK en distintos aspectos, por eso no deberíamos depender tanto de él y pese a que a ninguno le gusten los ratos de soledad y aburrimiento, también los necesitamos y nos ayudan a conocernos a nosotros mismos. 

Autor: Altran Labs Team   

martes, 8 de marzo de 2016

Gamification as a Service

Gamificación(gamification en inglés) es el empleo de mecánicas de juego en entornos y aplicaciones no lúdicas con el fin de potenciar la motivación, la concentración, el esfuerzo, la fidelización y otros valores positivos comunes a todos los juegos. Se trata de una nueva y poderosa estrategia para influir y motivar a grupos de personas.

La implementación de estrategias de gamificación permite crear Engagement, logrando que los miembros de una comunidad, los trabajadores de una empresa, los estudiantes de un instituto, los habitantes de una ciudad participen de manera dinámica y proactiva en acciones que generalmente requieren un esfuerzo de la voluntad.


Según Gartner, los principales contextos de no-juego donde mayor expectación y adopción está generando la tendencia son:
  • Customer Engagement
  • Employee Performance
  • Advanced Education
  • Personal Development
  • Innovation
Las mecánicas de juego son una serie de reglas que intentan generar juegos que se puedan disfrutar, que generen placer, participación y compromiso por parte de los jugadores, al aportarles retos y un camino por el que discurrir.

“La gamificación del trabajo aumenta la motivación y productividad de empleados y socios, así como, la satisfacción de clientes”

Las mecánicas de juego más utilizadas son:
  • Puntos: Los puntos son valores numéricos que se le asignan al usuario por la realización de acciones o tareas. Se convierten en una mecánica de juego que engancha al usuario de tal manera que éste se motiva por tener más y conservarlos, para así conseguir acceso a nuevos contenidos y/o niveles. Los puntos deben, por un lado, servir de guía al jugador para premiar su nivel de participación e implicación en el juego, y, por otro, servir al diseñador como herramienta de control y mejora. En gamificación, existen diferentes tipologías de puntos, como los puntos de experiencia, puntos canjeables, puntos de habilidad o puntos de reputación, entre otros.
  • Niveles: Los niveles son un indicador del progreso del usuario, alzando el reconocimiento de éste tras haber ido consiguiendo realizar las diferentes tareas asignadas. Los niveles deben seguir una evolución progresiva en la que comienzan siendo sencillos y se dificultan a medida que el usuario se encuentra familiarizado y experimentado con el juego.
  • Clasificaciones: También se conocen como leaderboards y ofrecen unacomparación entre los resultados de los diferentes usuarios. Estos rankings se traducen en una competición entre los jugadores que promueve el deseo de estar siempre en la parte alta de la lista, incentivando la participación e involucración con el juego.
  • Misiones: Se trata de un estímulo a largo plazo que motiva al usuario a ser competitivo y se esfuerce en conseguir el éxito. Hay que ser cuidadosos con la misión que se lanza a los usuarios y se necesita estructurar previamente a la perfección, facilitando al usuario su explicación pero siempre manteniendo un mínimo de intriga. Al fin y al cabo, las personas somos curiosas por naturaleza y esto supondrá un estímulo de reacción.


  • Badges: Las insignias o badges son una de las mecánicas de juego más utilizadas y que mejores resultados dan, es una herramienta utilizada desde hace mucho y sirve como sistema de acreditación social. Entre alguna de las ventajas que conlleva utilizar esta mecánica de juego se encuentra la promoción social, la progresión en el juego y la competición entre usuarios.

 

GaaS - Gamification as a Service

GaaS es una plataforma creada por Altran para dar soporte a las estrategias de gamificación de las diferentes soluciones creadas por la compañía. Una de sus primeras integraciones se ha realizado con la plataforma Bond.
 
Mecánicas en Bond:
  • Los usuarios consiguen puntos cada vez que interaccionan con la aplicación.
  • Los usuarios pueden consultar su clasificación en la aplicación (leaderboard).
  • Periódicamente se lanzan desafíos a los usuarios, mediante notificaciones, invitándoles a realizar un tipo de interacción concreta en un periodo de tiempo determinado (Ejemplo: votar n recomendaciones en x tiempo, visualizar n contenidos por dia, etc)
  • Dependiendo de los puntos obtenidos los usuarios se clasifican por niveles (status).Los usuarios pueden conseguir badges mediante la consecución de desafíos.

Con el API de GaaS es muy sencillo incluir gamificación en cualquier aplicación o servicio, simplemente define tus niveles, misiones y premios y ¡a gamificar!

Autor: Luis Roldán