Este fin de semana, mi amigo Joan y yo hemos participado en el HackForGood, un hackathon que se celebra simultáneamente en muchas universidades de España y que busca durante 2 días soluciones tecnológicas a retos sociales. Es una competición abierta a personas con perfiles técnicos, programadores, diseñadores, maquetadores, sociólogos, psicólogos, emprendedores… Nosotros estuvimos en la sede de la Universitat Politècnica de València, en la Escuela Técnica Superior de Ingenieros de Telecomunicación.

Nuestro proyecto recibió el Primer Premio en Valencia y estamos muy contentos. Llegamos el viernes por la mañana sin saber qué reto solucionar, pero después de las charlas iniciales y de un almuerzo con brainstorm, elegimos 2 retos candidatos y sus posibles soluciones. A continuación estudiamos qué APIs existían que nos pudiesen servir y finalmente escogimos nuestro reto antes de la hora de comer: Ayudar a detectar las noticias falsas (Fake News).

Las fake news son aquellas noticias que se inventan con intención de cambiar situaciones sociales y políticas en algunas partes del mundo, que se viralizan rápido y son difíciles de clasificar como noticias falsas o reales cuando se reciben. Gobiernos y grandes empresas como Facebook trabajan para evitar este tipo de noticias.

Nuestra implementación incluyó:
– La programación de una skill para Alexa, que hace de Interfaz de Usuario. Funcionó muy bien con un dispositivo Amazon Echo Alexa.
– Desarrollo de backend (AWS Lambda + DynamoDB + uso de APIs de Azure Cognitive Services).
Leds y programación en Raspberry Pi, para que la respuesta de Alexa encendiera el LED en rojo (noticia falsa) o en verde (noticia real). Esto no terminó de funcionar durante el hackathon y aun no hemos tenido tiempo de encontrar el problema.

En esta presentación que hicimos el sábado hay más detalles sobre el problema de las noticias falsas y nuestra solución técnica. El código fuente está en github.

Cuando el usuario dice un titular de noticia (en este caso se lo dice a la skill de Alexa), Alexa le pregunta si sabe dónde lo vio y el backend comprueba en este orden:

  1. Si el usuario ha dicho la fuente de la noticia, comprueba esta fuente contra una lista negra de fuentes.
  2. Si no está en la lista negra la fuente, normaliza el titular (quita caracteres especiales, etc).
  3. Comprueba si el titular normalizado está en una lista negra de titulares.
  4. Si no, busca el titular en Microsoft Azure Cognitive Services, utilizando News Search.
  5. Si lo encuentra, informa al usuario del medio de comunicación que lo publicó y la fecha.
  6. Si no lo encuentra, busca el titular en la base de datos DynamoDB del proyecto e informa al usuario de cuántas personas distintas han sospechado de este titular (es decir, cuántos han preguntado por él).

El resultado lo pronuncia Alexa correctamente. En el futuro, también lo indicaría con las luces led.

Por supuesto que la solución que se plantea e implementa durante esas horas no es una solución «production ready», pero obtienes resultados en el tiempo marcado, aprendes mucho y rápido, conoces a otros equipos, trabajas en grupo y lo pasas muy bien. Como dijeron los organizadores al final del evento, en la hackathon mejoras skills que necesitas en los proyectos reales, ya que solo con los conocimientos teóricos no basta. En conclusión, recomiendo 100% la experiencia a todo el mundo 🙂