¡Stressed Out!
Aquí vas a ajustar las palabras negativas para adaptarlas al texto específico. Luego compararás las puntuaciones básicas y personalizadas de polarity().
Una canción popular de Twenty One Pilots se llama "Stressed Out". Si revisas la letra, verás que habla de la nostalgia de la juventud. En general, la mayoría diría que la polaridad es negativa. Repite constantemente ideas de estrés, miedos y fingir.
Comparemos la letra de la canción usando el lexicón de subjetividad por defecto y también uno personalizado.
Para empezar, tienes que comprobar que el lexicón de subjetividad key.pol no tenga ya el término que quieres añadir. Una forma de comprobarlo es con grep(). La función grep() devuelve la fila que contiene caracteres que coinciden con un patrón de búsqueda. Aquí tienes un ejemplo usado al indexar.
data_frame[grep("search_pattern", data_frame$column), ]
Después de verificar que la jerga o palabra nueva no está ya en el lexicón key.pol, necesitas añadirla. El siguiente código usa sentiment_frame() para construir el nuevo lexicón. En el código, sentiment_frame() acepta el vector original de palabras positivas, positive.words. Después, las negative.words originales se concatenan con "smh" y "kappa", ambas consideradas jerga negativa. Aunque puedes indicar los pesos positivos y negativos, el valor por defecto es 1 y -1, así que no se incluyen abajo.
custom_pol <- sentiment_frame(positive.words, c(negative.words, "hate", "pain"))
¡Ya estás listo para aplicar la polaridad y que haga referencia al lexicón de subjetividad personalizado!
Este ejercicio forma parte del curso
Análisis de sentimiento en R
Instrucciones del ejercicio
Hemos creado stressed_out, que contiene la letra de la canción "Stressed Out", de Twenty One Pilots.
- Usa
polarity()sobrestressed_outpara ver la puntuación por defecto. - Comprueba
key.polpara ver si hay palabras que contengan "stress". Usagrep()para indexar el data frame buscando en la columnax. - Crea
custom_polcomo un nuevo data frame de sentimiento.- Llama a
sentiment_frame()y pasapositive.wordscomo primer argumento sin concatenar términos nuevos. - Después, usa
c()para combinarnegative.wordscon los términos nuevos "stressed" y "turn back".
- Llama a
- Vuelve a aplicar
polarity()astressed_outcon el parámetro adicionalpolarity.frame = custom_polpara comparar cómo los términos nuevos cambian la puntuación y la acercan a una representación más fiel de la canción.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# stressed_out has been pre-defined
head(stressed_out)
# Basic lexicon score
___(___)
# Check the subjectivity lexicon
___[___("stress", x)]
# New lexicon
custom_pol <- ___(___, c(negative.words, "___", "___"))
# Compare new score
___(___, polarity.frame = ___)