Upload
andres-mauricio-palacios
View
326
Download
0
Embed Size (px)
Citation preview
ACERCA DE…
Ingeniero de sistemas con énfasis en inteligencia de negocio.
Consultor líder de Big Data y analítica para PwC - PricewaterhouseCoopers.
Co-fundador de Meridean, start-up para investigación de mercados y análisis de información no estructurada. (5 años).
Creador de PeopleVector, plataforma para análisis de reputación corporativa en tiempo real.
1. Apache Storm2. Los indicadores mandan3. Arquitectura cloud4. Procesamiento de lenguaje natural
CONTENIDO
¿QUÉ TAN RÁPIDO ES “TIEMPO REAL”?
Definición blanda:
“El sistema generalmente no es tiempo real, pero si debe ser bastante rápido la mayoría del tiempo”
Realtime
segundos
ml s.
Near real-timeminutos -
horas
Offlinehoras - dias
ej: filtros
ej: correlaciones
ej: análisis comportamient
o
Batch
In motion
I. APACHE STORMEs un framework para computación en tiempo real distribuida y tolerante a fallas.
Originado en BackType/Twitter, bajo código abierto desde 2011.
Procesamiento individual a medida que cada mensaje llega (at-least-one)
CASOS DE USOTwitter (220 nodos, 50B mensajes/día. 2013)Detectar trending topics, personalización de ads, búsquedas ad-hoc, optimización de ingresos.Yahoo (320 nodos, 130k mensajes/s. 2013)Eventos de usuarios, analizar feeds de contenidos y logs de aplicacionesSpotify (22 nodos, 200k mensajes/s. 2014)Motor de recomendaciones, Generación de Ads y monitoreoNetflix, Alibaba, Cisco, WeatherChannel…
LENGUAJES
Hecho en: Clojure y algo de Java
Para programar en: Java, Python,Scala, Ruby, cualquier otro.
FILOSOFÍA DE STORM• Topologías: unen datos con funciones a
través de un DAG (grafo acíclico dirigido).
TOPOLOGÍA: SPOUT Y BOLTS“1234 Tres tristres tigres, tragaban trigo en un trigal, en tres tristes trasto, tragaban trigo tres tristes tigres”
SpoutBolt
Dividir en palabras
(1234, tres, tristes, tigres…)
BoltFiltrar
símbolos,
números y
stopwords
BoltContar palabra
s
BoltContar palabra
s
(tres, tristes, tigres…)
(tragaban,trigo trigal…)
( “tres”: 4, “tristes”: 3,“tigres”: 2,)
( “tragaban”: 2, “trigo”: 2,“trigal”: 1)
BoltImprimir
EJEMPLO EN LOCALTopologyBuilder builder = new TopologyBuilder(); builder.setSpout("palabras", new FiltrarSimbolos(), 1); builder.setBolt(“conteo_palabras", new ContarPalabras(), 3) .shuffleGrouping("palabras");builder.setBolt(“listado_palabras", new ImprimirConteo(), 2) .shuffleGrouping(“conteo_palabras");Map conf = new HashMap();conf.put(Config.TOPOLOGY_WORKERS, 4); LocalCluster cluster = new LocalCluster(); cluster.submitTopology("mi_topologia", conf, builder.createTopology());
EJEMPLO EN REMOTOTopologyBuilder builder = new TopologyBuilder(); builder.setSpout("palabras", new FiltrarSimbolos(), 1); builder.setBolt(“conteo_palabras", new ContarPalabras(), 3) .shuffleGrouping("palabras");builder.setBolt(“listado_palabras", new ImprimirConteo(), 2) .shuffleGrouping(“conteo_palabras");Map conf = new HashMap();conf.put(Config.TOPOLOGY_WORKERS, 4); StormSubmitter.submitTopology(“mi_topologia”, conf, builder.createTopology());
¿POR QUÉ USAMOS STORM?
¿POR QUÉ ALGO EN TIEMPO REAL?
¿QUÉ VALOR SE LES VA A DAR A LOS CLIENTES?
¿SOLO SE NECESITA TIEMPO REAL?
TOMA DE DECISIONESTeoría de la información de Shannon:
La información y la incertidumbre están inversamente relacionadas. Entre más información tenga una sentencia, menor incertidumbre hay.
Decisiones
TOMA DE DECISIONES
Hay 2.300 tuits sobre la marca
85% negativos15% positivos
Los mensajes negativos (85%) contienen lo términos ladrones, factura
El autor @MaoGomez ( de influencia alta, ubicado en Cali) está publicando múltiples mensajes negativos sobre la marca con las palabras ladrones, factura y esta siendo difundido (53 Rts y 14 conversaciones )
Tomar decisión
VALOR DE INDICADORES
0
El autor @MaoGomez ( de influencia alta, en Cali) está publicando múltiples mensajes negativos sobre la marca con las palabras ladrones, factura y esta siendo difundido (53 Rts y 14 conversaciones )
5 min 15 min 1 hora 1 día 1 mes
Aporta a la operación
No aporta a la estrategia
Cant
idad
de
dato
s
Tiempo necesario
VALOR DE INDICADORES
0
En el último mes el 55% de las menciones negativas pertenecieron a la categoría facturación. Con 33 autores de influencia alta
5 min 15 min 1 hora 1 día 1 mes
Aporta a la estrategia
Cant
idad
de
dato
s
Tiempo necesario
PIPELINE PROCESAMIENTO
MISIÓNPre-procesar y limpiar el textoDetectar categoría de reputación
Calidad de producto, Atención al cliente, Finanzas, Innovación, Ética+ Sociedad y Liderazgo
Detectar sentimiento Positivo, Negativo, Neutro (NC)
Pre-procesFiltrar stop
words
enriquecer links
Stemmer
Limpieza
Tokenizar
Eliminar y filtrar Reemplazar
onomatopeyas y abreviaturas
Categorización
SupervisadoOpenNLP
No supervisadoGoogle
Word2vec
+
SentimientoSupervisado
OpenNLP+
Inducir de reglas
diccionario
Visualización
CATEGORIZACIÓN
seed: ~20000 tuits y posts
(Clasificador SVM) Aprender reglas para decidirsi un determinado elemento pertenece o no a un conjunto
Supervisado
Y
No Supervisado
Representación de palabras en vectores
característicos
Dump de Wikipedia en
español
Representar las palabras como vectores de muchas dimensiones. Con ello, encuentran que palabras similares se acomodan unas al lado de las otras en un espacio vectorial altamente dimensional.
Ira ——> odio ——> enojo ——> iracundo
Pantalla ——> display ——> LCD ——>Oled
Bonito ——> atractivo ——> lindo ——> chévere
Apple ——> Samsung ——> LG ——> Motorola