EmpezarEmpieza gratis

¿Dónde puedes observar la ley de Zipf?

Aunque Zipf observó una caída pronunciada y predecible en el uso de las palabras, puede que no te convenza su ley. Quizá pienses: «Conozco un montón de palabras y tengo un vocabulario propio». Puede ser, pero ¡no es así para la mayoría! Para demostrarlo, vamos a crear una visualización a partir de 3 millones de tuits que mencionan «#sb». Ten en cuenta que la visual no sigue a la perfección la ley de Zipf: todos los tuits mencionan el mismo hashtag, así que está un poco sesgada. Aun así, la visual que construirás muestra una caída pronunciada que revela poca diversidad léxica entre millones de tuits. ¡Hay ciencia detrás del uso de lexicones para el análisis del lenguaje natural!

En este ejercicio usarás el paquete metricsgraphics. Aunque el autor sugiere usar el operador tubería %>%, construirás el gráfico paso a paso para conocer los distintos elementos. La función principal del paquete metricsgraphics es mjs_plot(), que es el primer paso para crear un gráfico en JavaScript. A partir de ahí, puedes añadir más capas encima del gráfico.

A continuación tienes un flujo de trabajo de metricsgraphics sin usar el operador %>%:

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 ejercicio forma parte del curso

Análisis de sentimiento en R

Ver curso

Instrucciones del ejercicio

  • Usa head() sobre sb_words para revisar las palabras principales.
  • Crea una nueva columna expectations dividiendo la mayor frecuencia de palabra, freq[1], entre la columna rank.
  • Inicia sb_plot usando mjs_plot().
    • Pasa sb_words con x = rank y y = freq.
    • Dentro de mjs_plot() establece show_rollover_text en FALSE.
  • Sobrescribe sb_plot usando mjs_line() y pasa sb_plot.
  • Añade a sb_plot con mjs_add_line().
    • Pasa el objeto sb_plot anterior y el vector expectations.
  • Coloca una leyenda en un nuevo objeto sb_plot usando mjs_add_legend().
    • Pasa el objeto sb_plot anterior.
    • Las etiquetas de la leyenda deben ser "Frequency" y "Expectation".
  • Llama a sb_plot para mostrar el gráfico. Pasa el ratón por un punto para resaltar simultáneamente un punto de freq y de Expectation. ¡La magia de JavaScript!

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# 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 y ejecutar código