Usar asociación de palabras
Otra forma de pensar en las relaciones entre palabras es con la función findAssocs() del paquete tm. Para cualquier palabra dada, findAssocs() calcula su correlación con todas las demás palabras en un TDM o DTM. Las puntuaciones van de 0 a 1. Una puntuación de 1 significa que dos palabras siempre aparecen juntas en los documentos, mientras que una puntuación cercana a 0 significa que rara vez aparecen en el mismo documento.
Ten en cuenta que el cálculo de findAssocs() se realiza a nivel de documento. Así, para cada documento que contiene la palabra en cuestión, se asocian los otros términos de esos documentos específicos. Los documentos sin el término de búsqueda se ignoran.
Para usar findAssocs(), pasa un TDM o DTM, el término de búsqueda y una correlación mínima. La función devolverá una lista de todos los demás términos que cumplan o superen el umbral mínimo.
findAssocs(tdm, "word", 0.25)
Los valores mínimos de correlación suelen ser relativamente bajos por la diversidad de palabras. No te sorprendas si 0.10 muestra una asociación fuerte entre dos términos.
Los tweets sobre café se han limpiado y organizado en tweets_tdm para el ejercicio. Buscarás una asociación de términos, manipularás los resultados con list_vect2df() de qdap y luego crearás un gráfico con el código de ggplot2 del script de ejemplo.
Este ejercicio forma parte del curso
Minería de texto con Bag-of-Words en R
Instrucciones del ejercicio
- Crea
associationsusandofindAssocs()sobretweets_tdmpara encontrar términos asociados con "venti" que cumplan un umbral mínimo de0.2. - Visualiza los términos asociados con "venti" imprimiendo
associationsen la consola. - Crea
associations_dfllamando alist_vect2df(), pasandoassociationsy estableciendocol2en"word"ycol3en"score". - Ejecuta el código de
ggplot2para crear un diagrama de puntos con los valores de asociación.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Create associations
___ <- ___(___, ___, ___)
# View the venti associations
___
# Create associations_df
___ <- ___(___, ___, ___)
# Plot the associations_df values
ggplot(associations_df, aes(score, word)) +
geom_point(size = 3) +
theme_gdocs()