R

Forma tu propia nube de palabras (wordcloud) con R 30 enero, 2012

Una receta rápida para que no se me traspapele 🙂 El siguiente script en R lee un fichero de texto (/tmp/article.txt), lo analiza y genera una vistosa nube de palabras. Depende de los paquetes tm (text mining), RColorBrewer (para la gestión de paletas de color) y wordcloud (el verdadero artífice de la nube final). En la imagen que acompaña a este artículo se muestra la nube de palabras correspondiente al Plan vasco de Ciencia, Tecnología e Innovación 2015 (PCTi2015). Esa imagen es el resultado de ejecutar el código R objeto de este post (se genera en /tmp/cloud.png).
Quedaría ver cómo añadir el código que falta para deshacerse de los adverbios, preposiciones y demás hierbas mayores de 4 letras…

Categorias diariolinux R
  • Grrot dice:

    Para eliminar los artículos, adverbios,etc puedes usar FreeLing http://nlp.lsi.upc.edu/freeling/

  • Nugbe dice:

    Para la gente que ha mostrado interés en probarlo y no tiene ningún contacto previo con R, resumo TODOS LOS PASOS que hay que hacer en una consola de ubuntu:

    Primero instalar R en linux:
    sudo apt-get update
    sudo apt-get install r-base
    sudo apt-get install r-base-dev
    sudo apt-get install r-recommended

    Después, como nos hacen falta varias librerías de R, las instalamos. Para eso arrancamos R desde una terminal simplemente escribiendo la letra “R” mayúscula:

    $ R

    (ahora instalaremos las librerías que exige este programa poniendo en la terminal que está con el R abierto los siguientes comandos:)

    > install.packages(“RColorBrewer”, dependencies = TRUE)
    > install.packages(“wordcloud”, dependencies = TRUE)

    (Ahora escribís el código del programa de Juanan, teniendo en cuenta que el fichero de texto de origen ha de ser el vuestro)

    require(tm)
    require(wordcloud)
    require(RColorBrewer)
    r <- paste(readLines(file.path("/home/aitor","CuentosDeEvaLuna.txt")), collapse=' ')
    r <- gsub("[ft.,;:`'\"\(\)]+”, ” “, r)
    words <- tolower(strsplit(r, " +")[[1]])

    words 3]
    # remove words accuring less than 5 times
    words=words[words>4]

    # create the image
    png(“/tmp/cloud.png”, width=580, height=580)
    pal2 <- brewer.pal(8,"Set2")
    wordcloud(names(words), words, scale=c(9,.1),min.freq=3,
    max.words=Inf, random.order=F, rot.per=.3, colors=pal2)
    dev.off()

    et voilá! En el directorio /tmp os ha creado un fichero llamado "cloud.png" con una bonita foto 😉

  • Nicolás dice:

    Hola, veo en el script armado algo medio extraño:

    words 3]

    ¿qué le falta?

    gracias!!!

  • […] (aún no he encontrado el error en el anterior o la forma de que aparezcan), lo encuentran en esta página. En mi caso he tenido que modificar el archivo de origen para que se logren identificar las […]

  • […] (aún no he encontrado el error en el anterior o la forma de que aparezcan), lo encuentran en esta página. En mi caso he tenido que modificar el archivo de origen para que se logren identificar las […]

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *