Thursday, February 28, 2013

Twitter permite bajar todos tus tweets

      Luego que twitter permitiera descargar todos tus tweets,  hice una nube de palabras con la librería de R y la librería tm. En general sólo necesitas 2, pero con el colorcito son 3:

library("tm")
library("wordcloud")
library("RColorBrewer")

      Sin analisis temporal, paso todos los tweets a un archivo (bag of words):
aproximadamente 22000 palabras diferentes desde el 2009 hasta ahora en
8999 tweets. Sí, lo sé, tweet-a-holic en rehabilitación (hay peores :P).

      La buena Noticias es si han cambiado los temas menos "Yoiismo"  (el arte de hablar de cada actividad que realizá uno mismo), a mencionar enlaces y opiniones de  linux, datamining, R, y varios lenguajes de programación.

cut -d, -f8 tweets.csv  > corpustweets.txt

Luego leo este archivo desde R.
en mi sistema de archivo existe la carpeta tweets/corpus/tweets.txt

txt =  DirSource('C:\\tweets\\corpus')    //Esto debe ser un directorio.
tweets.corpus = Corpus(txt)
                //extensión del tipo de archivo.

Luego hacemos la matriz de documentos y la conversión a una matriz ordinaria (matrix)
Filtrado de signos de puntuación, llevando a minúscula y eliminando stopwords (palabras que no añaden semantica a la oración, como artículos y conjunciones: el , la, otros, y, etc).
 tweets.corpus <- tm_map(tweets.corpus, removePunctuation)  
 tweets.corpus <- tm_map(tweets.corpus, tolower)  
 tweets.corpus <- tm_map(tweets.corpus, function(x) removeWords(x, stopwords("spanish")))  
 tweets.corpus <- tm_map(tweets.corpus, function(x) removeWords(x, stopwords("english")))  
 wordcloud(d$word,d$freq, scale=c(8,.3),min.freq=2,max.words=Inf, random.order=FALSE, rot.per=.15, colors=pal2, ordered.colors=T, vfont=c("sans serif","gothic english","plain"))  


//otras funciones que realizan similares 
commonality.cloud(m, comonality.measure=min) 
comparison.cloud(m)

Más info en: 
 
http://cran.r-project.org/web/packages/wordcloud/wordcloud.pdf

script R:  
 
https://github.com/j3nnn1/tools/blob/master/twitter/wordcloudTwitterText.r


En otro post revisaré un poco reglas de asociación, clustering de palabras, 

correlaciones, un ranking de mis seguidores, y luego un poco de grafos..