¿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
Instrucciones del ejercicio
- Usa
head()sobresb_wordspara revisar las palabras principales. - Crea una nueva columna
expectationsdividiendo la mayor frecuencia de palabra,freq[1], entre la columnarank. - Inicia
sb_plotusandomjs_plot().- Pasa
sb_wordsconx = rankyy = freq. - Dentro de
mjs_plot()estableceshow_rollover_textenFALSE.
- Pasa
- Sobrescribe
sb_plotusandomjs_line()y pasasb_plot. - Añade a
sb_plotconmjs_add_line().- Pasa el objeto
sb_plotanterior y el vectorexpectations.
- Pasa el objeto
- Coloca una leyenda en un nuevo objeto
sb_plotusandomjs_add_legend().- Pasa el objeto
sb_plotanterior. - Las etiquetas de la leyenda deben ser
"Frequency"y"Expectation".
- Pasa el objeto
- Llama a
sb_plotpara mostrar el gráfico. Pasa el ratón por un punto para resaltar simultáneamente un punto defreqy deExpectation. ¡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