Divide y vencerás: usar la polaridad para una comparison cloud
Ahora que has visto cómo la polaridad puede usarse para dividir un corpus, ¡pongámoslo en práctica! Este código te guiará para dividir un corpus según el sentimiento, de manera que puedas examinar la información por subconjuntos en lugar de de forma holística.
Tu sesión de R tiene oz_pol, que se creó aplicando polarity() a "The Wonderful Wizard of Oz".
Para simplificar, hemos creado una función personalizada llamada pol_subsections() que divide el corpus por puntuación de polaridad. Primero, la función acepta un data frame donde cada fila es una oración o documento del corpus. El data frame se divide allí donde los valores de polaridad son mayores o menores que 0. Por último, las oraciones positivas y negativas, con polaridades distintas de cero, se pegan con el parámetro collapse para agrupar los términos en un único corpus. Finalmente, los dos documentos se concatenan en un vector con dos documentos distintos.
pol_subsections <- function(df) {
x.pos <- subset(df$text, df$polarity > 0)
x.neg <- subset(df$text, df$polarity < 0)
x.pos <- paste(x.pos, collapse = " ")
x.neg <- paste(x.neg, collapse = " ")
all.terms <- c(x.pos, x.neg)
return(all.terms)
}
En este punto has omitido las oraciones neutras y quieres centrarte en organizar el texto restante. En este ejercicio usamos de nuevo el operador %>% para encadenar objetos a funciones. Tras una limpieza sencilla, usa comparison.cloud() para crear la visualización.
Este ejercicio forma parte del curso
Análisis de sentimiento en R
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
oz_df <- oz_pol$all %>%
# Select text.var as text and polarity
___(text = ___, polarity = ___)
# Apply custom function pol_subsections()
all_terms <- ___(___)
all_corpus <- all_terms %>%
# Source from a vector
___() %>%
# Make a volatile corpus
___()