EmpezarEmpieza gratis

AFINN: I'm your Huckleberry

Ahora pasamos al lexicón AFINN. El lexicón AFINN asigna valores numéricos de 5 a -5, no solo positivo o negativo. A diferencia de la columna sentiment del lexicón Bing, la columna de puntuación de sentimiento en AFINN se llama value.

Como antes, aplica inner_join() y después count(). A continuación, para sumar las puntuaciones de cada línea, usamos las funciones group_by() y summarize() de dplyr. La función group_by() toma un data frame existente y lo convierte en un data frame agrupado donde las operaciones se realizan "por grupo". Luego, summarize() te permite calcular un valor para cada grupo de tu data frame usando una función que agregue datos, como sum() o mean(). Así que, en nuestro caso, podemos hacer algo como

data_frame %>% 
    group_by(book_line) %>% 
    summarize(total_value = sum(book_line))

En la versión tidy de Huckleberry Finn, la línea 9703 contiene las palabras "best", "ever", "fun", "life" y "spirit". "best" y "fun" tienen puntuaciones AFINN de 3 y 4 respectivamente. Tras agregar, la línea 9703 tendrá una puntuación total de 7.

En el tidyverse, filter() se prefiere a subset() porque combina la funcionalidad de subset() con una sintaxis más simple. Aquí tienes un ejemplo que aplica filter() a data_frame donde algún valor en column1 es igual a 24. Fíjate en que el nombre de la columna no va entre comillas.

filter(data_frame, column1 == 24)

El objeto afinn contiene el lexicón AFINN. El objeto huck es una versión tidy de Adventures of Huckleberry Finn de Mark Twain para su análisis.

La línea 5400 es All the loafers looked glad; I reckoned they was used to having fun out of Boggs. Las stopwords y la puntuación ya se han eliminado del conjunto de datos.

Este ejercicio forma parte del curso

Análisis de sentimiento en R

Ver curso

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# See abbreviated line 5400
huck %>% filter(line == 5400)

# What are the scores of the sentiment words?
afinn %>% filter(word %in% c("fun", "glad"))

huck_afinn <- huck %>% 
  # Inner Join to AFINN lexicon
  inner_join(___, by = c("___" = "___")) %>%
  # Count by value and line
  ___(___, ___)
Editar y ejecutar código