33
APACHE STORM Minando redes sociales y medios en tiempo real

Apache Storm - Minando redes sociales y medios en tiempo real

Embed Size (px)

Citation preview

APACHE STORMMinando redes sociales y medios en tiempo

real

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

CONTEXTO

¿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

ARQUITECTURA

STORM UI

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());

COMPARACIÓN

COMPARACIÓN

II. LOS INDICADORES MANDAN

¿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

GENERAR INDICADORES EN TIEMPO REAL

ARQUITECTURA PARA:

GENERAR INDICADORES HISTÓRICOS

III. ARQUITECTURA

Ingesta Persistencia Procesamiento Visualización

IV. PROCESAMIENTO DE LENGUAJE

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

Con solo tuits y posts

Con información

externa (blogs,

Word2vec, Wikipedia)

SENTIMIENTO

seed: ~75000 tuits y posts

Supervisado Inducción de Reglas

Ó+

Diccionario palabras (-5,0,5)

(Clasificador SVM) aprenden reglas para decidirsi un determinado elemento pertenece o no a un conjunto