Onde você pode observar a lei de Zipf?
Embora Zipf tenha observado uma queda acentuada e previsível no uso de palavras, você pode não acreditar totalmente na lei de Zipf. Você pode estar pensando: "Eu conheço muitas palavras e tenho um vocabulário único". Isso pode ser verdade para você, mas não para a maioria das pessoas! Para provar, vamos construir uma visualização a partir de 3 milhões de tweets mencionando "#sb". Lembre-se de que a visualização não segue perfeitamente a lei de Zipf: todos os tweets mencionam a mesma hashtag, então há um viés. Ainda assim, a visualização que você vai criar mostra uma queda acentuada, indicando baixa diversidade lexical entre milhões de tweets. Ou seja, há ciência por trás do uso de léxicos para análise de linguagem natural!
Neste exercício, você vai usar o pacote metricsgraphics. Embora o autor sugira usar o operador pipe %>%, você vai construir o gráfico passo a passo para aprender os diferentes aspectos do plot. A função principal do pacote metricsgraphics é mjs_plot(), que é o primeiro passo para criar um gráfico em JavaScript. A partir daí, você pode adicionar outras camadas por cima do gráfico.
Um exemplo de fluxo de trabalho com metricsgraphics sem usar o operador %>% está abaixo:
metro_plot <- mjs_plot(data, x = x_axis_name, y = y_axis_name, show_rollover_text = FALSE)
metro_plot <- mjs_line(metro_plot)
metro_plot <- mjs_add_line(metro_plot, line_one_values)
metro_plot <- mjs_add_legend(metro_plot, legend = c('names', 'more_names'))
metro_plot
Este exercicio faz parte do curso
Análise de Sentimentos em R
Instruções do exercicio
- Use
head()emsb_wordspara revisar as palavras do topo. - Crie uma nova coluna
expectationsdividindo a maior frequência de palavra,freq[1], pela colunarank. - Inicie
sb_plotusandomjs_plot().- Passe
sb_wordscomx = rankey = freq. - Dentro de
mjs_plot(), definashow_rollover_textcomoFALSE.
- Passe
- Sobrescreva
sb_plotusandomjs_line()e passesb_plot. - Adicione a
sb_plotcommjs_add_line().- Passe o objeto
sb_plotanterior e o vetorexpectations.
- Passe o objeto
- Coloque uma legenda em um novo objeto
sb_plotusandomjs_add_legend().- Passe o objeto
sb_plotanterior - Os rótulos da legenda devem ser
"Frequency"e"Expectation".
- Passe o objeto
- Chame
sb_plotpara exibir o gráfico. Passe o mouse sobre um ponto para destacar simultaneamente um ponto defreqe deExpectation. A mágica do JavaScript!
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# Examine sb_words
___
# Create expectations
sb_words$expectations <- sb_words %$%
{___[___] / ___}
# Create metrics plot
sb_plot <- ___(___, x = ___, y = ___, ___ = ___)
# Add 1st line
sb_plot <- ___(___)
# Add 2nd line
sb_plot <- ___(___, ___)
# Add legend
sb_plot <- ___(___, legend = c("___", "___"))
# Display plot
sb_plot