big data: el poder de la información - conceptos...
TRANSCRIPT
BIG DATA: el Poder de la informaciónConceptos, Infraestructuras y Datos
Xavi Barber
Centro de Investigación Operativa.Universidad Miguel Hernández de Elche
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 1 / 98
1 Big Data y Marketing
2 Hadoop y su arquitectura
3 Utilidades del Big Data
4 Cómo trabajar con grandes bases de datos
5 Machine Learning
6 Técnicas de Machine Learning
7 Data Mining y R
8 Text analytics
9 Redes Sociales
10 WordCloud desde twitter
11 Facebook
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 2 / 98
willfreedom
ring
day
drea
mlet
ever
y
able
one faith
free
mountain
natio
n
shall
blackchildren
god
land
last
little
mad
e
men
new
sing
state
today white
alab
ama
boys
brotherhood
even
former
geor
gia
girls
handsheat
hill
hope join
live
sons
stone
thee
true
words
allow
almighty
amer
ica
back
brothers
city
color
country
creed
died
fathers
four
great
hew
hills
holdjail
lips
lord
low
must
old
red
sit
skin
stillta
ble
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 3 / 98
Big Data y Marketing
Big Data y Marketing
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 4 / 98
Big Data y Marketing
Introducción
Ahora la moda es Big Data, la gente habla de ellos y creé que son casi cosa demagos. Se cree que las predicciones serán hechas con 100% de precisión, locual es totalmente absurdo y totalmente falto de sustento. Denota a miparecer una postura exagerada y sobre cargada de fanatismo con la sensaciónde que todo es predecible.
-No es así, ni todo es predecible ni todo se solventa con Big Data, se requieremucho más que eso para muchos problemas técnicas y mucho menos para lamayoría de problemas de algunas empresas.“Big data is like teenage sex: everyone talks about it, nobodyreally knows how to do it, everyone thinks everyone else is doingit, so everyone claims they are doing it...” Dan Ariely
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 5 / 98
Big Data y Marketing
Si bien en cualquier proyecto o análisis la mayor cantidad de tiempo se invierteen el procesamiento y limpieza de lo datos, no tienen valor extra la informaciónsi no se hace uso de alguna técnica de explotación. Lo que se llama ciencia dedatos es más cercana a un puñado de algoritmos, de técnicas y metodologías,pero además se debe tener la curiosidad y libertad de experimentar con lainformación para tratar de aprovecharla lo mejor posible.
Data Scientist (n.): "Person who is better at statistics thanany software engineer and better at software engineering than anystatistician”.... Josh Wills
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 6 / 98
Big Data y Marketing
Definiciones
Sistemas que manipulan grandes conjuntos de datos.Las dificultades más habituales en estos casos se centran en la captura, elalmacenamiento, búsqueda, compartición, análisis, y visualización.La tendencia a manipular ingentes cantidades de datos se debe a la necesidaden muchos casos de incluir los datos relacionados del análisis en un granconjunto de datos .
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 7 / 98
Big Data y Marketing
Estamos viviendo la época de la revolución del Big Data, donde los grandesvolúmenes de datos, usados para trabajar, han superado con creces, la capacidad deprocesamiento de un simple host. El Big Data nace para solucionar estos problemas:
Como almacenar y trabajar con grandes volúmenes de datos.Y la más importante, como poder interpretar y analizar estos datos, denaturaleza muy dispar.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 8 / 98
Big Data y Marketing
Si miramos alrededor nuestro, vemos que cualquier dispositivo que usamos generadatos, estos pueden ser analizados actualmente.De esta gran cantidad de datos que tenemos a nuestro alcance, sólo el 20% setrata de información estructura y el 80% son datos no estructurados. Estosúltimos añaden complejidad en la forma que se tienen que almacenar y analizar.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 9 / 98
Big Data y Marketing
Hadoop aparece en el mercado como una solución para estos problemas, dando una
forma de almacenar y procesar estos datos.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 10 / 98
Hadoop y su arquitectura
Hadoop y su arquitectura
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 11 / 98
Hadoop y su arquitectura
Recopilando información
http://www.ticout.com/blog/2013/04/02/introduccion-a-hadoop-y-su-ecosistema/
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 12 / 98
Hadoop y su arquitectura
Apache Hadoop es un framework que permite el procesamiento de grandesvolúmenes de datos a través de clusters, usando un modelo simple deprogramación.Además su diseño permite pasar de pocos nodos a miles de nodos de formaágil.Hadoop es un sistema distribuido usando una arquitectura Master-Slave,usando para almacenar su Hadoop Distributed File System (HDFS) yalgoritmos de MapReduce para hacer cálculos.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 13 / 98
Hadoop y su arquitectura
http://www.ticout.com/blog/2013/04/02/introduccion-a-hadoop-y-su-ecosistema/
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 14 / 98
Hadoop y su arquitectura
Internet de las CosasInternet de las cosas se refiere a una red de objetos cotidianos interconectados.El concepto de Internet de las cosas se atribuye a Auto-ID Center, fundado en1999 y basado en el MIT.
https://pixabay.com/es/red-iot-internet-de-las-cosas-782707/
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 15 / 98
Hadoop y su arquitectura
La idea es muy simple pero su aplicación es difícil. Si todas las latas, libros, zapatoso partes de un vehículo estuvieran equipados con dispositivos de identificaciónminúsculos, la vida cotidiana en nuestro planeta sufriría una transformación. Ya noexistirían cosas fuera de stock o productos perdidos, porque nosotros sabríamosexactamente lo que se consume en el otro lado del planeta. El robo sería una cosadel pasado, sabríamos dónde está el producto en todo momento. Lo mismo seaplica a los paquetes perdidos.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 16 / 98
Hadoop y su arquitectura
Si todos los objetos de la vida cotidiana, desde el yogur a un avión, estuvieranequipados con etiquetas de radio, podrían ser identificados y gestionados porequipos de la misma manera que si lo fuesen por seres humanos.Con la próxima generación de aplicaciones de Internet (protocolo IPv6) sepodrían identificar todos los objetos, algo que no se puede hacer con IPv4, elsistema actualmente en uso. Este sistema sería, por tanto, capaz de identificarinstantáneamente cualquier tipo de objeto.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 17 / 98
Hadoop y su arquitectura
El Internet de las cosas debe codificar de 50 a 100.000 millones de objetos yseguir el movimiento de estos. Todo ser humano está rodeado de 1.000 a5.000 objetos.Actualmente, el término Internet de las Cosas se usa con una denotación deconexión avanzada de dispositivos, sistemas y servicios que va más allá deltradicional M2M y cubre una amplia variedad de protocolos, dominios yaplicaciones ( códigos QR, etc.).
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 18 / 98
Hadoop y su arquitectura
Inteligencia: El Internet de las cosas probablemente será “no determinista” yde red abierta (ciberespacio), en la que entidades inteligentes auto-organizadas(servicio Web) u objetos virtuales (avatares) serán interoperables y capaces deactuar de forma independiente (que persiguen objetivos propios ocompartidos), en función del contexto, las circunstancias o el ambiente. Segenerará una Inteligencia Ambiental.Consideraciones temporales: En esta Internet de los objetos, hecha de milesde millones de eventos paralelos y simultáneos, el tiempo ya no será utilizadocomo una dimensión común y lineal, sino que dependerá de la entidad de losobjetos, procesos, sistema de información, etc.
Este Internet de las cosas tendrá que basarse en los sistemas de TI en paralelomasivo (computación paralela).
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 19 / 98
Utilidades del Big Data
Utilidades del Big Data
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 20 / 98
Utilidades del Big Data
Redes Sociales
Las redes sociales son el origen de ese Big Data en la gran mayoría deocasiones. Mediante herramientas de monitoreo se pueden capturar enormescantidades de conversaciones públicas referidas a las marcas o conceptos quese desean examinar.Posteriormente, utilizando tecnologías que incorporen inteligencia artificial yprocesamiento de lenguaje natural, se pueden convertir esas conversacionespúblicas entre personas en datos tremendamente útiles.Los datos extraídos incluyen el género de las personas que conversan, el idiomautilizado, su rango de edad, su profesión, su ubicación geográfica o elsentimiento expresado, permitiendo una segmentación de targets muy fiable enun tiempo record y con unos costes mínimos si lo comparamos con losmétodos tradicionales.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 21 / 98
Utilidades del Big Data
-Otro uso habitual consiste en la extracción de las asociaciones semánticasutilizadas por cada target, de forma que el departamento de marketing puedeconocer exactamente qué palabras están utilizando, en positivo y en negativo, losfuturos clientes antes incluso de empezar a definir la campaña.-La tecnología juega un papel crucial en el Big Data Marketing, aunque la existenciade herramientas comerciales de costes ajustados hace que no se trate ya de unterreno reservado a las grandes corporaciones, sinó al alcance de cualquier empresade tamaño medio.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 22 / 98
Utilidades del Big Data
360º de visión sobre el cliente
Para conseguir un conocimiento total del cliente, las compañías deben obtenerinformación de fuentes internas y externas para poder asesorarle y entendercuál es la mejor manera de ayudarle. El objetivo es comprender elcomportamiento del cliente y predecir sus futuras acciones.Los empleados que trabajan directamente con los clientes deben poseer lainformación suficiente y adecuada para crear una relación de confianza yconseguir un compromiso o una fidelidad por parte del consumidor. Paraconseguirlo, el empleado debe poder disponer al instante tanto de informacióninterna (según el comportamiento del cliente en otras experiencias con lapropia compañía) como externa (sobre sus gustos e intereses, obtenida deredes sociales, correo electrónico, etc).
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 23 / 98
Utilidades del Big Data
Gran volumen de Datos
Hay que aclarar que la palabra cliente es un nombre genérico, que pasará adenominarse paciente en el sector de la salud, un sospechoso en un caso policial,etc.Finalmente, para 2020 se prevé que el Big Data continue creciendo, y que en eseaño se llegue al 4300% en la generación de datos anuales, “gracias a los cambiostecnológicos acelerados de transición de lo analógico a lo digital, y al rápidoaumento en la generación de datos, tanto por particulares como por grandesempresas”.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 24 / 98
Cómo trabajar con grandes bases de datos
Cómo trabajar con grandes bases de datos
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 25 / 98
Cómo trabajar con grandes bases de datos
Cloud Computing vs Big Data
Big Data es un concepto más amplio que decir “Grandes bases de datos”, esun nuevo paradigma de la recogida, almacenamiento, manipulación y lo másimportante extraer el significado de diferentes tipos de datos.Cloud Computing es el paradigma de la computación en el “aire”. No hayque configurar ninguna máquina ni servidor, ejemplos de ellos son:
EC2 - Amazon Web ServicesCompute Engine - IaaS — Google Cloud Platform
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 26 / 98
Cómo trabajar con grandes bases de datos
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 27 / 98
Cómo trabajar con grandes bases de datos
elección de softaware o lenguaje
SPSS y SAS son buenos y no se han quedado atrás en actualizaciones ymejoras al software, pero. . .La desventaja tanto de SPSS y SAS es que al no ser libres la velocidad con lacual se adaptan o mejoran es lenta, R y Python los han dejado atrás en cosade nada y basta ver la cantidad de librerías o módulos que existen de estosúltimos. Lo difícil es elegir entre ese montón de librerías las mejores paranuestras necesidades, para eso uno va y consulta en artículos de investigación,foros o blog y sin mucho esfuerzo las mejores persisten.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 28 / 98
Cómo trabajar con grandes bases de datos
Python
Python es un lenguaje de programación interpretado cuya filosofía hacehincapié en una sintaxis muy limpia y que favorezca un código legible.Se trata de un lenguaje de programación multiparadigma, ya que soportaorientación a objetos, programación imperativa y, en menor medida,programación funcional. Es un lenguaje interpretado, usa tipado dinámico y esmultiplataforma.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 29 / 98
Cómo trabajar con grandes bases de datos
Python 3: Fibonacci series up to n > def fib(n):a, b = 0, 1
while a > n:
print(a, end=' ')
a, b = b, a+b
print()
fib(1000)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 30 / 98
Cómo trabajar con grandes bases de datos
Map Reduce
MapReduce es una técnica de procesamiento y un programa modelo decomputación distribuida basada en java. El algoritmo MapReduce contiene dostareas importantes, a saber Mapa y reducir. Mapa toma un conjunto de datosy se convierte en otro conjunto de datos, en el que los elementos se dividen entuplas (pares clave/valor). En segundo lugar, reducir tarea, que toma la salidade un mapa como entrada y combina los datos tuplas en un conjunto máspequeño de tuplas. Como la secuencia de MapReduce el nombre implica, lareducción se realiza siempre después de que el mapa.La principal ventaja de MapReduce es que es fácil de escalar procesamiento dedatos en múltiples nodos. En el modelo MapReduce, el procesamiento dedatos primitivos son llamados mapas y reductores.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 31 / 98
Cómo trabajar con grandes bases de datos
public class WordCount {
public static class TokenizerMapperextends Mapper<Object, Text, Text, IntWritable>{
private final static IntWritable one = new IntWritable(1);private Text word = new Text();
public void map(Object key, Text value, Context context) throws IOException, InterruptedException {
StringTokenizer itr = new StringTokenizer(value.toString());while (itr.hasMoreTokens()) {
word.set(itr.nextToken());context.write(word, one);
}}
}
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 32 / 98
Cómo trabajar con grandes bases de datos
MapReduce con R
Existe la posibilidad de realizar “trabajos”" de MapReduce vía Hadoopstreming API a traves de R.Se trata de conectar con un servidor Hadoop pero a traves de nuestroordenador. Lanzamos las ordenes y nos devuelve los resultados en un tiempoinfinitamente inferior al que tardaría si intentasemos descargar los datos delservidor y utilizar R para realizar los modelos deseados.
En el siguiente enlace podreis encontrar más información al respecto:[link](http://www.revolutionanalytics.com/sites/default/files/
using-r-with-hadoop.pdf)
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 33 / 98
Cómo trabajar con grandes bases de datos
#! /usr/bin/env Rscript# map.Rlibrary(stringdist, quietly=TRUE)
input <- file("stdin", "r")
while(length(line <- readLines(input, n=1, warn=FALSE)) > 0) {# in case of empty lines# more sophisticated defensive code makes sense hereif(nchar(line) == 0) break
fields <- unlist(strsplit(line, "\t"))
# extract 2-gramsd <- qgrams(tolower(fields[4]), q=2)
for(i in 1:ncol(d)) {# language / 2-gram / countcat(fields[2], "\t", colnames(d)[i], "\t", d[1,i], "\n")
}}
close(input)
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 34 / 98
Machine Learning
Machine Learning
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 35 / 98
Machine Learning
Definición de ML
Machine learning is a method of data analysis that automates analytical modelbuilding. Using algorithms that iteratively learn from data, machine learning allowscomputers to find hidden insights without being explicitly programmed where tolook.(Definición de ML por SAS)
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 36 / 98
Machine Learning
DEbido a las nuevas tecnologías actuales, existe una gran información la cualdeseamos controlar de forma muy rápida y de manera completa, y sobre todoen el mundo empresaria.Algunos ejemplos que pueden resultar familiares:
El coche de Google sin conductor,La esencia del Machine Learning, las recomendaciones on-line de Amazon oNetflix,Conocer lo que los consumidores dicen de “tu” empresa en Redes SocialesDetección del fraude fiscal, en seguros, etc.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 37 / 98
Técnicas de Machine Learning
Técnicas de Machine Learning
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 38 / 98
Técnicas de Machine Learning
Supervised learning
Algoritmos que reciben la información de Entrada y Salida, así el algoritmoaprende y corregise los errores.
Métodos de ClasificaciónMétodos de Regresión
Ejemplo : anticiparse a las transacciones de tarjeta de crédito haciendoofertas al usuario previas a su gasto.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 39 / 98
Técnicas de Machine Learning
Unsupervised learning
Utilizado cunado no se dispone de un “histórico de datos”. El sistema noconoce la “verdadera respuesta”. El algoritmo debe ir viendo las respuesta yperseguir una meta óptima.
Mapas de ClasificaciónMapas de vecindadCluster k-meansMétodos de descoposición singular.
Ejemplo: Identificar segmentos de consumidores con característicassimilares los cuales puedan tratarse de forma similar en una campaña demarketing
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 40 / 98
Técnicas de Machine Learning
Semi-supervised learning y Reinforcement learning
Semi-supervised: igual que el supervisado pero con menos informacióndisponible. Un ejemplo es el reconocimiento de patrones (reconocimiento facialdesde una WebCam).
Reinforcement: usado en robótica, juegos y navegación. El algoritmo descubreatraves del prueba-error. El objetivo del algoritmo es aprender la mejor“política” posible.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 41 / 98
Técnicas de Machine Learning
Diferencia entre ML, Data Mining y Deep Learning
Data Mining aplica métodos desde distintas áreas para identificar patrones(conocidos) en los datos. Esto puede incluir algoritmos estadísticos, machinelearning, text analytics, series temporales y otras áreas analíticas. El datamingi también incluye el estudio y práctica del almacenamiento y manipulaciónde datos.
Machine Learning es una categoría dentro del Data mining que usaautomatismos y algoritmos iterativos paa encontrar patrones en los datos.Machine Learning se centra en algoritmos matemáticos, los cuales aprenden delos datos con una mínima intervención humana.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 42 / 98
Técnicas de Machine Learning
Las redes neuronales han introducido un nuevo concepto, el Deep Leraning,con gran importancia dentro de la Inteligencia Artificial, aprovechando lainformación del pasado. Los investigadores están ahora buscando cómo aplicarestos conocimientos al reconocimiento de patrones, sobre todo en el campo dela médicina, diagnóstico automático por imágenes, y en otros campos como losmercados financieros y el marketing en tiempo real.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 43 / 98
Data Mining y R
Data Mining y R
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 44 / 98
Data Mining y R
Paquestes de R para grandes bases de datos
Una vez demostrado que Big Data es simplemente lo que hace años se llamabaHigh Dimensional Data, vamos a ver cómo afrontar problemas con grandesbases de datos.
Rcpp: Para escribir funciones de R utilizando C++, aumentado la rapidez deejecución.data.table: Un camino alternativo para organizar conjuntos de datos paraorganizalos de forma muy, muy, muy rápida.parallel - Una altertativa cuando el banco de datos es muy grande.www.r-pbd.org: El proyecto “Programming with Big Data in R” es un conjuntode paquetes que permite realizar cálculos en high performance, high-level interfacesto MPI, ScaLAPACK, NetCDF4, y otras más.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 45 / 98
Data Mining y R
Métodos implementados en R
Neural networksDecision treesRandom forestsAssociations and sequence discoveryGradient boosting and baggingSupport vector machinesNearest-neighbor mappingk-means clusteringSelf-organizing mapsGenetic algorithmsExpectation maximizationMultivariate adaptive regression splinesBayesian networks Kernel density estimationPrincipal component analysisSingular value decompositionGaussian mixture modelsSequential covering rule buildingY otros más. . .
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 46 / 98
Text analytics
Text analytics
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 47 / 98
Text analytics
Text Mining
Es una de las ramas de la lingüística computacional que trata de obtenerinformacion y conocimiento a partir de conjuntos de datos que en principio notienen un orden o no estan dispuestos en origen para transmitir esainformacion.Es una tecnica clave en un mundo como el actual en el que continuamente serecogen datos desde distintas perspectivas y de muchos aspectos diferentes detodas las actividades propias de los seres humanos.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 48 / 98
Text analytics
La extracción de términos, es la técnica más básica que identifica lostérminos clave y entidades lógicas (nombres de las organizaciones, lugares,fechas y valores financieros entre otros). Es el formato más básico de mineríade texto. La estructura de datos más simple en la minería de texto es el vectorde características, una lista de las palabras ponderadas que aparecen en untexto.La extracción de información se basa en los términos extraídos del textopara identificar las relaciones básicas, tales como las funciones de las distintasempresas en una fusión,o la promoción de la reacción química de una enzima.La extracción de información se centra en un conjunto de hechos queconstituyen un evento, episodio, o estado.El análisis relacional, combina múltiples vínculos para formar modelos devarios pasos de procesos complejos. Es un conjunto de técnicas que permitetener una idea de las relaciones entre varias entidades con múltiples conexiones,pasos, o enlaces.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 49 / 98
Text analytics
Beneficios del Text Mining
Es importante diferenciar entre Minería de Datos de Texto y acceso a lainformación. Acceso a la información es ayudar a los usuarios a encontrar losdocumentos que satisfagan sus necesidades de información.El Text Mining se centra en cómo usar un bloque de información textual, comouna amplia base de conocimientos a partir de la cual se puede extraer nuevainformación nunca antes conocida.El Text Mining, contribuye a proporcionar sistemas suplementados conherramientas para el análisis exploratorio de los datos.También se puede entender el Text Mining como un proceso de análisisexploratorio de datos que conduce al descubrimiento de información hasta elmomento desconocida, o utilizada para responder a preguntas para las cualesno se conoce actualmente la respuesta.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 50 / 98
Text analytics
Text mining y R
pubmed.mineR: Text Mining of PubMed Abstractstext2vec: Fast Text Mining Framework for Vectorization and WordEmbeddingstextmineR: Functions for Text Mining and Topic Modelingtm: Text Mining PackageImport texts from files in the Alceste format using the tm text miningframeworkText Mining Distributed Corpus Plug-InImport Articles using
Text Mining E-Mail Plug-In
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 51 / 98
Redes Sociales
Redes Sociales
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 52 / 98
Redes Sociales
APIs
Para analizar el contenido de las redes sociales mediante técnicas de textmining, necesitamos primero obtener los datos.La gran mayoría de Redes Sociales publican sus APIs (ApplicationProgramming Interfaces) para que se puede acceder a su información desdeotras herramientas.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 53 / 98
Redes Sociales
Existen distintos paquetes para obtener información de Twitter
Paquete DescripciónRKlout Fetch Klout Scores for Twitter UsersstreamR Access to Twitter Streaming API via RtwitteR R Based Twitter ClientgraphTweets Visualise Twitter Interactions
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 54 / 98
Redes Sociales
Twitter: ejemplosMapping Twitter Followers in R
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 55 / 98
Redes Sociales
Twitter conectar al APIPaso 1: CREAMOS UNA APLICACIÓN DENTRO DE TWITTER
Accedemos a la web https://apps.twitter.com ponemos nuestro usuario ycontraseña:
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 56 / 98
Redes Sociales
Paso 1: CREAMOS UNA APLICACIÓN DENTRO DE TWITTERNos indicará las “apps” que ya tenemos creadas o si queremos crear una nueva.Introducimos los datos y aceptamos las condiciones de uso.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 57 / 98
Redes Sociales
Paso 1: CREAMOS UNA APLICACIÓN DENTRO DE TWITTER
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 58 / 98
Redes Sociales
Paso 1: CREAMOS UNA APLICACIÓN DENTRO DE TWITTER
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 59 / 98
Redes Sociales
Paso 1: CREAMOS UNA APLICACIÓN DENTRO DE TWITTER - Vemosnuestros datos de autentificación
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 60 / 98
Redes Sociales
Paso 1: CREAMOS UNA APLICACIÓN DENTRO DE TWITTER - Tenermos quecrear nuestros token
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 61 / 98
Redes Sociales
Paso 1: CREAMOS UNA APLICACIÓN DENTRO DE TWITTER - Ya lostenemos creados token
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 62 / 98
Redes Sociales
Paso 1: CREAMOS UNA APLICACIÓN DENTRO DE TWITTER - Comporbamosque funcionan nuestros token
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 63 / 98
Redes Sociales
Paso 1: CREAMOS UNA APLICACIÓN DENTRO DE TWITTER - Nos dice loque vamos a hacer
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 64 / 98
Redes Sociales
Paso 1: CREAMOS UNA APLICACIÓN DENTRO DE TWITTER - La query quehacemos
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 65 / 98
Redes Sociales
Paso 1: CREAMOS UNA APLICACIÓN DENTRO DE TWITTER - La query quedevuelve
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 66 / 98
Redes Sociales
Paso 2: INSTALAR Y CARGAS LOS PAQUETES DE R– ROAuth: nos permite un interfax para la OAuth 1.0 specification, permitiendo alusuario identificarse vía OAuth al servidor que ha solicitado.– Twitter: Nos muestra el interface para la Twitter web API.
#install.packages("twitteR")#install.packages("ROAuth")library("twitteR")library("ROAuth")
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 67 / 98
Redes Sociales
Paso 3: CREAR Y GUARDAR LA TWITTER AUTHENTICATED CREDENTIALOBJECT
Para los usuarios de Windows:# Download "cacert.pem" filedownload.file(url="http://curl.haxx.se/ca/cacert.pem",destfile="cacert.pem")
#create an object "cred" that will save the authenticated object that we can use for later sessionscred <- OAuthFactory$new(consumerKey='3ws7ZnTp5KodYS4RsS0WZZC8x',
consumerSecret='ngKsMpyXsAxAg6LC3rmKLJfe8gslmrIYsfLW4fFYiFTLr64abk',requestURL='https://api.twitter.com/oauth/request_token',accessURL='https://api.twitter.com/oauth/access_token',authURL='https://api.twitter.com/oauth/authorize')
# Executing the next step generates an output --> To enable the connection, please direct your web browser to: <hyperlink> . Note: You only need to do this part oncecred$handshake(cainfo="cacert.pem")#6432188
To enable the connection, please direct your web browser to:https: // api. twitter. com/ oauth/ authorize? oauth_ token= 1Tpw2wAAAAAAuvqjAAABVDSxOGwWhen complete, record the PIN given to you and provide it here: 6432188
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 68 / 98
Redes Sociales
Paso 3: CREAR Y GUARDAR LA TWITTER AUTHENTICATED CREDENTIALOBJECT
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 69 / 98
Redes Sociales
Paso 3: CREAR Y GUARDAR LA TWITTER AUTHENTICATED CREDENTIALOBJECT
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 70 / 98
Redes Sociales
#save for later use for Windowssave(cred, file="twitter authentication.Rdata")
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 71 / 98
Redes Sociales
Paso 4: DESCARGAR TWEETS
library(twitteR)library(httr)
# Credenciales
consumer_key = "3ws7ZnTp5KodYS4RsS0WZZC8x"consumer_secret = "ngKsMpyXsAxAg6LC3rmKLJfe8gslmrIYsfLW4fFYiFTLr64abk"access_token = "28545046-kCfBBHxJbiTDkDY4vWDwaB5UnndLPYxfjrMMXPb7N"access_secret = "sL0O9XCl5YarLUwhXjFVq0wOGyRTMwieKIL8gegA8UWFB"
credentials_file = "cred.RData"
setup_twitter_oauth(consumer_key, consumer_secret, access_token, access_secret ) #, credentials_file)
#[1] "Using direct authentication"#Use a local file to cache OAuth access credentials between R sessions?#1: Yes <--#2: No
tw <- searchTwitter("#rstats",n=200,lang="en")saveRDS(tw, file="tweets.RDATA")
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 72 / 98
Redes Sociales
head(tw)# [[1]]# [1] "apowers411: RT @dataandme: ICYMI walk-through:# “How to start analyzing tweets with #Rstats &# #Neo4j” by @stevenbeeckman https://t.co/HRrw4WgiLT https:/..."## [[2]]# [1] "cathyjingqiu: RT @hadleywickham:# Some advice on writing functions in# #rstats: https://t.co/nPnyEGlUP3. Feedback welcomed!"## [[3]]# [1] "ysabet_m: RT @drob: When teaching,# be careful not to mix up \"I learned this a long time ago\"# with \"This is simple\"\n\n#rstats"## [[4]]# [1] "yodacomplex: RT @drob: When teaching,# be careful not to mix up \"I learned this# a long time ago\" with \"This is simple\"\n\n#rstats"
#....
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 73 / 98
Redes Sociales
Ahora ya estamos en disposición de descargarnos los tweets del contenido quedeseemos, para analizarlos.
Sentiment AnalysisWordCloudGeographical Analysisetc.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 74 / 98
Redes Sociales
Os adjunto varios tutoriales en inglés:Mining twittertext mining with RUsing twitteR psackasgeVideotutorialSentioment analysis example
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 75 / 98
WordCloud desde twitter
WordCloud desde twitter
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 76 / 98
WordCloud desde twitter
library(“tm”)
library(twitteR)library(tm)library(wordcloud)library(RColorBrewer)
tw2<-readRDS(file="tweets.RDATA")
mach_text = sapply(tw2, function(x) x$getText())
# create a corpusmach_corpus = Corpus(VectorSource(mach_text))
# create document term matrix applying some transformationstdm = TermDocumentMatrix(mach_corpus,
control = list(removePunctuation = TRUE,stopwords = c("machine", "learning", stopwords("english")),removeNumbers = TRUE, tolower = TRUE))
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 77 / 98
WordCloud desde twitter
# define tdm as matrixm = as.matrix(tdm)# get word counts in decreasing orderword_freqs = sort(rowSums(m), decreasing=TRUE)# create a data frame with words and their frequenciesdm = data.frame(word=names(word_freqs), freq=word_freqs)
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 78 / 98
WordCloud desde twitter
# plot wordcloudwordcloud(dm$word, dm$freq,
random.order=FALSE,colors=brewer.pal(8, "Dark2"))
rstatsag
o
time
venn
datascience
https
learned
careful
drob longmix
simple
teaching
amp
diagrams
now
amcrisan
bad
excuses
httpstcoqaqiyg
like
new
sec
rbloggersupsetr
call
pyth
on
rladieslondon
vers
ion
analysis
banana
diagram
good
heres
infamous
mwilsonsayres
rladies
shiny
theatavism
via
chapter
cont
inuu
mio
datatable
looks
nilsgehlenborg register
rladiessf
sqlstop
welcome
writingbi
gdat
a
chdoig
community
cran
crashes
data
days
fwrite
ggplot
hosted
httpstcodlyeovykc
httpstcoiozlygetb
ipl
markdanese
nothing
open
opendata
package
part
party
prejudice
pride
readrreadcsv
rstudio
seeing
server
sign
theres
thrill
waste
web
inar
wondering
yorkr
# save the image in png formatpng("img/MachineLearningCloud.png", width=12, height=8, units="in", res=300)wordcloud(dm$word, dm$freq, random.order=FALSE, colors=brewer.pal(8, "Dark2"))dev.off()
## pdf## 2
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 79 / 98
WordCloud desde twitter
WordClud comparativos
# user hits the error easy handled already used in multi handle, then dodetach(rCurl)detach("package:httr", character.only =TRUE)library(rCurl)library(httr)
# SAS tweetsfcb_tweets = userTimeline("SAS", n=100)
# SPSS tweetsat_tweets = userTimeline("IBMSPSS", n=100)
# rstats tweestrm_tweets = userTimeline("hadleywickham", n=100)
# VCF pcs tweetsvcf_tweets = userTimeline("Stata", n=100)
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 80 / 98
WordCloud desde twitter
# get textatt_txt = sapply(fcb_tweets, function(x) x$getText())ver_txt = sapply(at_tweets, function(x) x$getText())mob_txt = sapply(rm_tweets, function(x) x$getText())pcs_txt = sapply(vcf_tweets, function(x) x$getText())
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 81 / 98
WordCloud desde twitter
clean text
clean.text = function(x){# tolowerx = tolower(x)# remove rtx = gsub("rt", "", x)# remove atx = gsub("@\\w+", "", x)# remove punctuationx = gsub("[[:punct:]]", "", x)# remove numbersx = gsub("[[:digit:]]", "", x)# remove links httpx = gsub("http\\w+", "", x)# remove tabsx = gsub("[ |\t]{2,}", "", x)# remove blank spaces at the beginningx = gsub("^ ", "", x)# remove blank spaces at the endx = gsub(" $", "", x)return(x)
}
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 82 / 98
WordCloud desde twitter
# clean textsatt_clean = clean.text(att_txt)ver_clean = clean.text(ver_txt)mob_clean = clean.text(mob_txt)pcs_clean = clean.text(pcs_txt)
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 83 / 98
WordCloud desde twitter
#Join texts in a vector for each companyatt = paste(att_clean, collapse=" ")ver = paste(ver_clean, collapse=" ")mob = paste(mob_clean, collapse=" ")pcs = paste(pcs_clean, collapse=" ")
# put everything in a single vectorall = c(att, ver, mob, pcs)
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 84 / 98
WordCloud desde twitter
# remove stop-wordsall = removeWords(all,c(stopwords("english"),
"att", "verizon","tmobile", "metropcs"))
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 85 / 98
WordCloud desde twitter
# create corpuscorpus = Corpus(VectorSource(all))
# create term-document matrixtdm = TermDocumentMatrix(corpus)
# convert as matrixtdm = as.matrix(tdm)
# add column namescolnames(tdm) = c("ATT", "Verizon", "T-Mobile", "MetroPCS")
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 86 / 98
WordCloud desde twitter
Plot comparison wordcloud# comparison cloudcomparison.cloud(tdm, random.order=FALSE,colors = c("#00B2FF", "red", "#FF0099", "#6600CC"),title.size=1.5, max.words=500)
# save the image in png formatpng("img/CaparasionCloud1.png",
width=12, height=8, units="in", res=300)comparison.cloud(tdm, random.order=FALSE,colors = c("#00B2FF", "red", "#FF0099", "#6600CC"),title.size=1.5, max.words=500)dev.off()![](img/CaparasionCloud1.png)
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 87 / 98
WordCloud desde twitter
# commonality cloudcommonality.cloud(tdm, random.order=FALSE,colors = brewer.pal(8, "Dark2"),title.size=1.5)
pdf("img/CarriersCommCloud.pdf", width=8, height=8)commonality.cloud(tdm, random.order=FALSE,colors = brewer.pal(8, "Dark2"),title.size=1.5)dev.off()
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 88 / 98
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 89 / 98
FaceBook desde R con Rfaceebook
Información actualizada: link
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 90 / 98
Obteniendo permisos de Facebook
(Los cambios en las API pueden hacer que estos pasos sean dintintos, de la API 2.5 a las APi 2.6 varias cosas dejaron de funcionar).
Las restricciones de seguridad de Facebook hacen que no se puede analizar con lamisma facilidad que en Twitter, pero si se puede obtener bastante información.Tutorial obtenido desde: link
Para crear una nueva App iremos a link
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 91 / 98
Click on “Apps” and choose “Add a New App“. In the next window choose“Website” and give your app a fancy name.After clicking on “Create a New App ID“, choose a category for your app inthe next window and apply the changes with “Create App ID“.You can then click on “Skip Quick Start” to get directly to the settings of yourapp.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 92 / 98
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 93 / 98
Una vez ya en R:
install.packages("devtools")library(devtools)
install_github("Rfacebook", "pablobarbera", subdir="Rfacebook")
require("Rfacebook")
fb_oauth <- fbOAuth(app_id="123456789", app_secret="1A2B3C4D",extended_permissions = TRUE)
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 94 / 98
The console will then print you the message:
Copy the URL and go to the settings of your Facebook app. Click on the settingstab on the left side and then choose “+ Add Platform“.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 95 / 98
Then add the URL in the field “Site URL” and save the changes.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 96 / 98
Go back to your R session and hit enter. Then a browser window should open youhave to allow the app to access your Facebook account.If everything worked the browser should show the message
And your R console will confirm it with
save(fb_oauth, file="fb_oauth")
load("fb_oauth")
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 97 / 98
Analizando desde Facebook
me <- getUsers("me",token=fb_oauth)
my_likes <- getLikes(user="me", token=fb_oauth)
Ya tenemos los Likes de nuestros post, podemos realizar un text mining.
Xavi Barber (Cio-UMH) BIG DATA: el Poder de la información 98 / 98