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…
require(tm) require(wordcloud) require(RColorBrewer) r <- paste(readLines(file.path("/tmp","article.txt")), collapse=' ') r <- gsub("[ft.,;:`'\"\(\)<>]+", " ", r) words <- tolower(strsplit(r, " +")[[1]]) words <- table(words) # remove words with _bad_ chars (non utf-8 stuff) words=words[nchar(names(words), "c")==nchar(names(words), "b")] # remove words shorter then 4 chars words=words[nchar(names(words), "c")>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() |
Para eliminar los artículos, adverbios,etc puedes usar FreeLing http://nlp.lsi.upc.edu/freeling/
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 😉
Muchas gracias por tu aporte
Hola, veo en el script armado algo medio extraño:
words 3]
¿qué le falta?
gracias!!!