SlideShare una empresa de Scribd logo
1 de 34
BOT
DE RESULTADOS ELECTORALES
EN NODE.JS
J AV I E R A B A D Í A , D I C 2 0 1 6
¿POR QUE?
DEMO
D I R E C TA M E N T E A L A P I S C I N A
backend
service
ANATOMÍA DE UN BOT
plataforma
entender
procesar
responder
ENTENDER
N L - U N D E R S TA N D I N G
INTENT
parameter
parameter
‘ganador’
‘Durango’ 48027
‘2016’
ALTERNATIVAS
• NLTK (python)
• Freeling (C++)
• https://stanfy.com/blog/advanced-natural-language-
processing-tools-for-bot-makers/
– wit.ai (Facebook)
– LUIS (Microsoft)
– api.ai ($)
– Alexa (AWS)
– Watson (IBM)
ML-’PREDECIR’ LA INTENCIÓN
extraer features
predecir
INTENT
contexto
PRE-PROCESO
FEATURES - REGEX
ML – PREDECIR – DECISION TREES
modificado para añadir classifier.fromJSON()
TRAINING THE MODEL
MANUAL REWIRING = PARCHEAR
DISPATCH
PROCESARP I E C E O F C A K E
TAN FÁCIL COMO LLAMAR A LA API
REST
RESPONDERN L - G E N E R A T I O N
VARIEDAD
RESPONDER A LO DESCONOCIDO = NO
PROVOCAR
PLATAFORMA
OPCIONES
twitter FB messenger telegram UI Web/Móvilwhatsapp
✓
✗
fácil de
desarrollar
penetración
chat-friendly
✓ ✓✓ ✗✗ ✗
✓✓ ✓✓✓✓ ✓
✓ ✓✗ ✓✓ ✓✓
TWITTER
• API de twitter
–stream o poll
• escuchar mensajes (filtrados)
• publicar mensajes o enviar dm
• quotas
–automation rules and best practices
https://support.twitter.com/articles/76915
–the twitter rules https://support.twitter.com/articles/18311
–pri queue
RECIBIENDOTWEETS
ASYNC - COORDINAR TAREAS ASÍNCRONAS
POST-MORTEMI N G E N I E R Í A S O C I A L
PRUEBAS PREVIAS - ENTRENAMIENTO
•usando la interfaz web
•3 generaciones
–yo solo
–yo y algunos amigos
–yo, algunos amigos y toda la lista de nodejs-
madrid
•información muy valiosa
•patrón de uso distinto que a través de twitter
TWITTER != INTERACTIVO
•en twitter la gente no chatea
•responder a @menciones no funciona
•quotas
–2500 mensajes por hora
USUARIOS IMPACIENTES
• hay que promocionar el bot con antelación
• hay que generar contenido “interesante” antes de que
empiece el “sarao”
• la gente prueba y no vuelve
RECURSOS
RECURSOS
• NLP
– NLTK
– Freeling
– https://stanfy.com/blog/advanced-
natural-language-processing-tools-
for-bot-makers/
• Bots
– https://botmakers.org/ + canal de
Slack
– https://botwiki.org/tutorials/twitterbo
ts/
– https://ursooperduper.github.io/2014
/10/27/twitter-bot-with-node-js-part-
1.html
• twitter
– automation rules and best practices
– https://support.twitter.com/articles/76
915)
– the twitter rules
– https://support.twitter.com/articles/18
311)
• módulos npm
– Decision Tree
– Twit
¡GRACIAS!
E S T O E S T O D O A M I G O S

Más contenido relacionado

Similar a Anatomía de un Bot para Resultados Electorales

Aplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con RedisAplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con Redis
Alberto Gimeno
 

Similar a Anatomía de un Bot para Resultados Electorales (20)

Web Semántica de la teoría a la práctica: lecciones aprendidas en ambientes p...
Web Semántica de la teoría a la práctica: lecciones aprendidas en ambientes p...Web Semántica de la teoría a la práctica: lecciones aprendidas en ambientes p...
Web Semántica de la teoría a la práctica: lecciones aprendidas en ambientes p...
 
Aplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con RedisAplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con Redis
 
Construyendo una Infraestructura de Big Data rentable y escalable (la evoluci...
Construyendo una Infraestructura de Big Data rentable y escalable (la evoluci...Construyendo una Infraestructura de Big Data rentable y escalable (la evoluci...
Construyendo una Infraestructura de Big Data rentable y escalable (la evoluci...
 
Presentación software libre y recursos abiertos para la capacitación del pers...
Presentación software libre y recursos abiertos para la capacitación del pers...Presentación software libre y recursos abiertos para la capacitación del pers...
Presentación software libre y recursos abiertos para la capacitación del pers...
 
Servicios Web en Android
Servicios Web en AndroidServicios Web en Android
Servicios Web en Android
 
Mejores prácticas desarrollo de base de datos
Mejores prácticas desarrollo de base de datos Mejores prácticas desarrollo de base de datos
Mejores prácticas desarrollo de base de datos
 
C++ Introducción de elementos del lenguaje
C++ Introducción de elementos del lenguajeC++ Introducción de elementos del lenguaje
C++ Introducción de elementos del lenguaje
 
Text Mining con R en SQL Server 2016
Text Mining con R en SQL Server 2016Text Mining con R en SQL Server 2016
Text Mining con R en SQL Server 2016
 
Defensa Final PFC
Defensa Final PFCDefensa Final PFC
Defensa Final PFC
 
Introduction to Machine Learning with Azure
Introduction to Machine Learning with AzureIntroduction to Machine Learning with Azure
Introduction to Machine Learning with Azure
 
Apis, como reutilizar contenidos en tu web
Apis, como reutilizar contenidos en tu webApis, como reutilizar contenidos en tu web
Apis, como reutilizar contenidos en tu web
 
Minería de datos / Machine Learning
Minería de datos / Machine LearningMinería de datos / Machine Learning
Minería de datos / Machine Learning
 
Presentacion pb y dl rev b
Presentacion pb y dl rev bPresentacion pb y dl rev b
Presentacion pb y dl rev b
 
Seminario Twitter Dynamics
Seminario Twitter DynamicsSeminario Twitter Dynamics
Seminario Twitter Dynamics
 
Python y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-CorrientesPython y la POO, en una clase, UNNe-Corrientes
Python y la POO, en una clase, UNNe-Corrientes
 
Taller de c sharp
Taller de c sharpTaller de c sharp
Taller de c sharp
 
Database Fundamentals - Sesión 1 - SQL Server
Database Fundamentals - Sesión 1 - SQL ServerDatabase Fundamentals - Sesión 1 - SQL Server
Database Fundamentals - Sesión 1 - SQL Server
 
Webinar Arquitectura de Microservicios
Webinar Arquitectura de MicroserviciosWebinar Arquitectura de Microservicios
Webinar Arquitectura de Microservicios
 
PowerShell para SharePoint OnPremises y Online, la herramienta compartida por...
PowerShell para SharePoint OnPremises y Online, la herramienta compartida por...PowerShell para SharePoint OnPremises y Online, la herramienta compartida por...
PowerShell para SharePoint OnPremises y Online, la herramienta compartida por...
 
Why Apache Flink is better than Spark by Rubén Casado
Why Apache Flink is better than Spark by Rubén CasadoWhy Apache Flink is better than Spark by Rubén Casado
Why Apache Flink is better than Spark by Rubén Casado
 

Más de Javier Abadía

Más de Javier Abadía (11)

Python Asíncrono - Async Python
Python Asíncrono - Async PythonPython Asíncrono - Async Python
Python Asíncrono - Async Python
 
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - Exasol
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - ExasolExtendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - Exasol
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - Exasol
 
UX/UI para Desarrolladores
UX/UI para DesarrolladoresUX/UI para Desarrolladores
UX/UI para Desarrolladores
 
Reactividad en Angular, React y VueJS
Reactividad en Angular, React y VueJSReactividad en Angular, React y VueJS
Reactividad en Angular, React y VueJS
 
Las reglas que hay que romper para que tu equipo de desarrollo sea el más RÁPIDO
Las reglas que hay que romper para que tu equipo de desarrollo sea el más RÁPIDOLas reglas que hay que romper para que tu equipo de desarrollo sea el más RÁPIDO
Las reglas que hay que romper para que tu equipo de desarrollo sea el más RÁPIDO
 
Retos de Programación en Python
Retos de Programación en PythonRetos de Programación en Python
Retos de Programación en Python
 
Django + Vue, JavaScript de 3ª generación para modernizar Django
Django + Vue, JavaScript de 3ª generación para modernizar DjangoDjango + Vue, JavaScript de 3ª generación para modernizar Django
Django + Vue, JavaScript de 3ª generación para modernizar Django
 
Vue.js + Django - configuración para desarrollo con webpack y HMR
Vue.js + Django - configuración para desarrollo con webpack y HMRVue.js + Django - configuración para desarrollo con webpack y HMR
Vue.js + Django - configuración para desarrollo con webpack y HMR
 
Análisis de colores: cómo analizar tendencias de moda automáticamente
 Análisis de colores: cómo analizar tendencias de moda automáticamente Análisis de colores: cómo analizar tendencias de moda automáticamente
Análisis de colores: cómo analizar tendencias de moda automáticamente
 
Codemotion 2016 - d3.js un taller divertido y difícil
Codemotion 2016 - d3.js un taller divertido y difícilCodemotion 2016 - d3.js un taller divertido y difícil
Codemotion 2016 - d3.js un taller divertido y difícil
 
La Noche Electoral
La Noche ElectoralLa Noche Electoral
La Noche Electoral
 

Anatomía de un Bot para Resultados Electorales

Notas del editor

  1. resultados electorales el independiente nos lanzamos a la piscina twitter
  2. open fourth-round.xlsx