Comece agoraComece grátis

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

Ver curso

Instruções do exercicio

  • Use head() em sb_words para revisar as palavras do topo.
  • Crie uma nova coluna expectations dividindo a maior frequência de palavra, freq[1], pela coluna rank.
  • Inicie sb_plot usando mjs_plot().
    • Passe sb_words com x = rank e y = freq.
    • Dentro de mjs_plot(), defina show_rollover_text como FALSE.
  • Sobrescreva sb_plot usando mjs_line() e passe sb_plot.
  • Adicione a sb_plot com mjs_add_line().
    • Passe o objeto sb_plot anterior e o vetor expectations.
  • Coloque uma legenda em um novo objeto sb_plot usando mjs_add_legend().
    • Passe o objeto sb_plot anterior
    • Os rótulos da legenda devem ser "Frequency" e "Expectation".
  • Chame sb_plot para exibir o gráfico. Passe o mouse sobre um ponto para destacar simultaneamente um ponto de freq e de Expectation. 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
Editar e Executar Código