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!!!