Descarga, analisis y visualización de datos en Twitter

28 mayo, 2020
7 Compartido 1,520 Visualizaciones

Hace unos días publicamos en Big Data Magazine un artículo en el que se hablabamos sobre algunos data sets gratuitos. Twitter es otra fuente de colección de datos que podemos utilizar de manera gratuita. 

Os vamos a contar los pasos que debeís seguir para hacer vuestro propio analisis de datos en Twitter.

El primer paso es descargar los datos de Twitter, para eso hay varias opciones:

  • Obtenerlos de la API pública de Twitter.
  • Encontrar un conjunto de datos de Twitter existente.
  • Compra en Twitter.
  • Acceder o comprar desde un proveedor de servicios de Twitter.

Nosotros vamos a utilizar una herramienta para la recuperación de la API pública de Twitter. Por eso, el primer paso es descargar estas bibliotecas ‘tweepy’, ‘textblob‘ y ‘wordcloud usando ‘pip installtweepy‘, ‘pip installtextblob‘ y ‘pipinstalar wordcloud‘.

Descargar los datos de Twitter

Ahora procederemos a descargar los datos de Twitter, para ello utilizaremos la API «tweepy» donde debes crearte una cuenta con Twitter Developer. Después, de crear la cuenta eliges la opción «Comenzar» y vas a la opción «Crear una aplicación». Obtendrás las credencias requereridas.

Puede elegir la palabra clave aquí y el número máximo de tweets que se descargarán a través de la API de tweepy.

#Defining Search keyword and number of tweets and searching tweets
query = 'lockdown'
max_tweets = 2000
searched_tweets = [status for status in tweepy.Cursor(api.search, q=query).items(max_tweets)]

Análisis

#Sentiment Analysis Report
#Finding sentiment analysis (+ve, -ve and neutral)
pos = 0
neg = 0
neu = 0
for tweet in searched_tweets:
    analysis = TextBlob(tweet.text)
    if analysis.sentiment[0]>0:
       pos = pos +1
    elif analysis.sentiment[0]<0:
       neg = neg + 1
    else:
       neu = neu + 1
print("Total Positive = ", pos)
print("Total Negative = ", neg)
print("Total Neutral = ", neu)

#Plotting sentiments
labels = 'Positive', 'Negative', 'Neutral'
sizes = [257, 223, 520]
colors = ['gold', 'yellowgreen', 'lightcoral']
explode = (0.1, 0, 0)  # explode 1st slice
plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=140)
plt.axis('equal')
plt.show()

twitter data analysis; sentiment analysis

Aquí, crearemos una gráfica con todos los datos de tweets que hemos descargado. Más adelante, todos los datos procesados se guardarán en un archivo CSV en el sistema local. De esta manera, podemos utilizar estos datos de tweets para otros propósitos.

Creación del marco de datos y guardado en archivo CSV

Limpieza de textos de Tweet mediante operaciones de PNL

Como estamos listos ahora con el conjunto de datos de tweets, analizaremos nuestro conjunto de datos y limpiaremos estos datos en los siguientes segmentos.

Aquí, mientras tenemos ya listos los datos de tweets porque los hemos limpiado, realizaremos operaciones de PNL en los textos de tweets. Eliminaremos también la información que no es necesaria como retweets, hipertextos, etc.

#Cleaning Tweets
corpus = []
for i in range(0, 1000):
    tweet = re.sub('[^a-zA-Z0-9]', ' ', tweet_dataset['text'][i])
    tweet = tweet.lower()
    tweet = re.sub('rt', '', tweet)
    tweet = re.sub('http', '', tweet)
    tweet = re.sub('https', '', tweet)
    tweet = tweet.split()
    ps = PorterStemmer()
    tweet = [ps.stem(word) for word in tweet if not word in set(stopwords.words('english'))]
    tweet = ' '.join(tweet)
    corpus.append(tweet)

Después de realizar las operaciones de NLP, podemos visualizar las palabras más frecuentes en los tweets a través de la Word Cloud.

Visualizar las palabras más frecuentes

#Visualization
#Word Cloud
all_words = ' '.join([text for text in corpus])
wordcloud = WordCloud(width=800, height=500, random_state=21, max_font_size=110).generate(all_words)
plt.figure(figsize=(10, 7))
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis('off')
plt.show()

tweet word cloud 

Te podría interesar

El 60% de los eCommerce utilizará soluciones de Inteligencia Artificial en 2020
Inteligencia Artificial
19 compartido2,344 visualizaciones
Inteligencia Artificial
19 compartido2,344 visualizaciones

El 60% de los eCommerce utilizará soluciones de Inteligencia Artificial en 2020

Mónica Gallego - 1 agosto, 2019

La inteligencia artificial transforma los procesos de los comercios electrónicos, mejora la experiencia de usuario y genera mayores ingresos. Chatbots, patrones de consumo de clientes, logística e…

BigDataPedia: Chatbots: qué son y cómo nos pueden ayudar en nuestro negocio
BigData-Pedia
9 compartido2,164 visualizaciones
BigData-Pedia
9 compartido2,164 visualizaciones

BigDataPedia: Chatbots: qué son y cómo nos pueden ayudar en nuestro negocio

Georgina Ortíz - 17 marzo, 2020

Tienes una duda sobre un producto, te conectas a su web y te aparece un chat para interactuar, lanzas una pregunta y te responden al momento resolviendote…

Google Reply, la app que contesta por ti tus redes sociales
Chatbots
45 compartido2,369 visualizaciones
Chatbots
45 compartido2,369 visualizaciones

Google Reply, la app que contesta por ti tus redes sociales

José Luis Arcángel - 28 febrero, 2018

La semana pasada, escuchamos acerca de una nueva aplicación llamada Responder de Google que eliminará la molestia de socializar al leer sus mensajes en las redes sociales y sugerir…

Dejar comentario

Su email no será publicado

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.