Publicado hace 5 meses por

Big Data es exactamente eso: una gran cantidad de datos que usamos para generar eso que en inglés llamamos “insights” o perspectivas. Una serie de datos puede darnos mucha información. Pero una gran cantidad terabytes combinados, junto a modelos matemáticos complejos y poder de cómputo suficiente, puede crear descubrimientos que los humanos no podríamos concebir. La cantidad y valor de la información, pero sobre todo la perspectivas, con las cuales nos proveen los analisis de Big Data sobrepasan la capacidad humana.  Si bien esto es asunto por todos conocido, surgen siempre las preguntas de como iniciarse en las aplicaciones del Big data para nuestras empresas. Y uno de los puntos principales es de donde sacar la big data. El primer paso para el big data analytics es obtener las fuentes de información. Acceder y obtener adecuadamente esa información es el proceso que conocemos como Data Mining. La mayoría de los negocios manejan grandes cantidades de información trasaccional: clientes, productos, lugares, fechas, montos, etc, que vienen generalmente de sus sistemas de información en formato estructurado. En este artículo, vamos a explorar el uso de técnicas de data mining para extraer data de Twitter, una fuente pública y accesible que puede ser muy útil para todo tipo de negocios. Desde conocer cómo es vista nuestra empresa por el público (o la nueva camapaña de radio), hasta cual es la marca de ron que mas se menciona en la zona de los Valles del Tuy (Miranda, Venezuela). Teniendo esos perspectivas nos será más sencillo planificar nuestras campañas, conversaciones en las redes y quizá hasta las compras de inventario. Twitter es una verdera mina de oro para minar datos.

Herramientas Python

Existe una librería en Python llamada Tweepy (tweepy.org) con la que podemos acceder a una gran cantidad de valores de la API de Twitter. Si bien su instalación es bastante sencilla, usando pip o github,les recomendamos que vayan directamente a la fuente para los detalles.

Creación de una cuenta de Desarrollo

Para usar la API de Twitter es necesario crear una cuenta de desarrollador en la API de Twitter. Para esto, es necesario logearse o crear una cuenta en apps.twitter.com. Una vez allí, deberá crearse una nueva APP, pulsando el botón correspondiente. Es necesario rellenar los campos de la planilla de registro y aceptar los términos y condiciones de Twitter. Una vez que el proyecto ha sido creado, hay que obtener los accesos correspondientes, generalmente pulsando en “Keys and Access Tokens”. Luego de generar el Customer Secret y el Consumer Key, podremos acceder al Access Token y al Secret Token

Comencemos a desarrollar:

En cada proyecto debemos crear un API object usando Tweepy, con el que llamaremos las funciones. Este objeto debe estar autenticado con los parámetros obtenidos en el paso anterior. Básicamente, primero importaremos la información de autenticación

import tweepy
consumer_key = “wXXXXXXXXXXXXXXXXXXXXXXX1”
Consumer_secret = “qxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”
access_token = “9XXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXi”
access_token_secret = “kXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXt”

 

Luego, se crea el API object

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

Una vez construido este API object básico (formará parte de cada nuevo proyecto) podemos empezar a ejecutar comandos sobre nuestra cuenta (o aquella con la que nos hayamos logeado en primer lugar). En este primer ejemplo, recuperaremos lo 10 tweets mas recientes de nuestra cuenta, usando la función home_timeline():

public_tweets = api.home.timeline()
for tweet in public_tweets:
print tweet.text

Como resultado, obtendremos una lista con los mas recientes (10) tweets de nuestra cuenta. Para operaciones mas complejas tenemos que revisar los atributos que el API nos puede devolver. Las respuestas del Twitter API estan en formato JSON y contienen mucha información a disposición. Si bien la mayoría de los queries consistirán en el atributo “text”, JSON tiene disponibles otros como Fecha de Creación (print tweet.created_at), Nombre (print tweet.user.screen_name), lugar (print tweet.user.location) y muchos otros. Para ua lista completa de los atributos del JSON. JSON tambien nos permite obtener tweets de otras cuentas con la función user.timeline(), siempre y cuando los tweets de ese usuario sean públicos o tengamos la autorización correspondiente.Tambien hay que notar que solo podemos obtener un número de tweets por query limitado por las reglas del API de twitter.

Sin menospreciar lo anterior, consideramos que la función más importante en nuestros ejercicios de Big Data Analytics debe ser la función search(). A través de la función search(), y específicamente del parámetro -q, cuya función es exactamente lo que queremos. Podemos crearnos ahora un código en Python que sirva a nuestros propósitos

# Creamos un objeto API co la info de autenticación.
api = twepi.API(Auth)

# Introducimos los términos
query = “ejemplo”
# Introducimos el lenguaje en el que queremos las respuestas
language = “en”

# Aqui usamos la función
results = api.search(q=query, lang=language)
# Crearemos un lazo para imprimir los resultados

for tweet in results:
print tweet.user.screen_name,”Tweeted”,tweet.text

Esto creará en la pantalla un flujo de tweets con información, con el que podremos después implementar nuestros procesos de analítica.

En conclusión, podemos usar la API de Twitter para obtener una gran cantidad de datos para minar siempre y cuando se comprendan bien y se menejen correctamente las Twitter rate Limiting Guidelines y la interfase Tweepy.

Foto cortesía de:
Paulo Brandao

Otras publicaciones