Reporte de Práctica

Análisis de Sentimientos en Twitter

Autor: Vicente Nevarez

Este reporte describe un análisis de sentimientos realizado en una muestra de tweets utilizando el lenguaje R y varias librerías de procesamiento y visualización de texto.

Librerías Utilizadas

Para realizar el análisis se utilizaron las siguientes librerías:

  • tidytext: Para el manejo y transformación de textos.
  • textdata: Para obtener diccionarios de sentimientos.
  • dplyr: Para la manipulación de datos.
  • tidyft: Para facilitar el análisis de texto.
  • ggplot2: Para la visualización de datos.

Lectura y Preparación de Datos

Se carga un conjunto de datos de tweets desde un archivo CSV.

dat <- read.csv("/Users/vicentcodes/Documents/Tareas/Sem8/Analisis de datos/R/twitter.csv")

De este conjunto de datos, se toma una muestra de los primeros 10,000 tweets para el análisis.

datos = head(dat, 10000)

Tokenización de Tweets

Se utiliza la función unnest_tokens de tidytext para dividir los tweets en palabras individuales (tokens).

tweents_token <- unnest_tokens(tbl = datos,
                               output = "word",
                               input = "text",
                               token = "words")

Análisis de Sentimientos

Se realiza un análisis de sentimientos utilizando el lexicón “bing”, el cual clasifica palabras en sentimientos positivos y negativos.

tw_bing <- inner_join(x = tweents_token, y = get_sentiments("bing"), by = "word")

Identificación de las Palabras Más Frecuentes

Se cuentan las palabras más frecuentes y se seleccionan las 20 más comunes.

top_veinte <- tw_bing %>%
  dplyr::count(word) %>%
  dplyr::top_n(n = 20, wt = n) %>%
  dplyr::arrange(desc(n))

Visualización de Frecuencia de Palabras

Se crea un histograma de las 20 palabras más utilizadas.

histograma <- ggplot(data = top_veinte, aes(x = reorder(top_veinte$word, -top_veinte$n), y = top_veinte$n)) +
  geom_bar(stat = "identity", fill = "red") +
  labs(x = "Palabras", y = "Frecuencia") +
  ggtitle("20 palabras más usadas en Twitter") +
  theme_classic()
Histograma de las 20 palabras más usadas
Histograma de las 20 palabras más usadas

Clasificación de Sentimientos

Se crea un dataframe que incluye las palabras más frecuentes y su clasificación de sentimiento.

df_top_veinte <- data.frame(word = top_veinte$word, n = top_veinte$n)

df_top_veinte$sentimiento <- ifelse(df_top_veinte$word %in% tw_bing$word[tw_bing$sentiment == "positive"], "Positivo",
                                    ifelse(df_top_veinte$word %in% tw_bing$word[tw_bing$sentiment == "negative"], "Negativo", "Neutral"))

Visualización de Sentimientos

Se genera un gráfico de barras que muestra la frecuencia de las palabras más comunes, clasificadas por su sentimiento.

ggplot(df_top_veinte, aes(x = word, y = n, fill = sentimiento)) +
  geom_bar(stat = "identity") +
  scale_fill_manual(values = c("red", "blue", "grey"), labels = c("Negativo", "Positivo", "Neutral")) +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
  labs(title = "Histograma de las palabras más frecuentes",
       x = "Palabra",
       y = "Frecuencia")
Histograma de palabras por sentimiento
Histograma de palabras por sentimiento

Conclusiones

El análisis muestra las palabras más frecuentes en los tweets y su clasificación de sentimientos. Este tipo de análisis puede ser útil para entender las opiniones y emociones predominantes en las redes sociales. ```