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.
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.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)
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")
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")
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))
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()
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"))
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")
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. ```