Dividir para conquistar: usando polaridade em uma comparação de nuvem
Agora que você viu como a polaridade pode ser usada para dividir um corpus, vamos colocar em prática! Este código vai guiar você na divisão de um corpus com base em sentimento, para que possa analisar as informações em subconjuntos em vez de olhar tudo de forma holística.
Sua sessão do R tem oz_pol, que foi criado aplicando polarity() a "The Wonderful Wizard of Oz".
Para simplificar, criamos uma função personalizada chamada pol_subsections() que divide o corpus pelo escore de polaridade. Primeiro, a função recebe um data frame em que cada linha é uma frase ou um documento do corpus. O data frame é particionado onde os valores de polaridade são maiores ou menores que 0. Por fim, as frases positivas e negativas, com polaridades diferentes de zero, são unidas com o parâmetro collapse para que os termos sejam agrupados em um único corpus. Por último, os dois documentos são concatenados em um único vetor com dois 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)
}
Neste ponto, você removeu as frases neutras e quer focar em organizar o texto restante. Neste exercício usamos novamente o operador %>% para encaminhar objetos para funções. Depois de uma limpeza simples, use comparison.cloud() para criar a visualização.
Este exercicio faz parte do curso
Análise de Sentimentos em R
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
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
___()