Este informe proporciona el analisis exploratorio de los datos de texto que se utilizaran para el proyecto Capstone para la Especializacion en Ciencia de Datos .
setwd("c:/r/decimo/final/en_US")
archivo1 <- readLines("en_US.blogs.txt",warn=FALSE, encoding="UTF-8")
tamano1<-file.info("en_US.blogs.txt")$size/1024^2
tamano1
## [1] 200.4242
lineas1 <-length(archivo1)
lineas1
## [1] 899288
carteres1<-sum(nchar(archivo1))
carteres1
## [1] 206824505
palabras1<-sum(stri_count_words(archivo1))
palabras1
## [1] 37546239
setwd("c:/r/decimo/final/en_US")
Archivo2 <- readLines("en_US.news.txt",warn=FALSE, encoding="UTF-8")
tamano2<- file.info("en_US.news.txt")$size/1024^2
tamano2
## [1] 196.2775
lineas2<-length(Archivo2)
lineas2
## [1] 77259
carteres2<-sum(nchar(Archivo2))
carteres2
## [1] 15639408
palabras2<-sum(stri_count_words(Archivo2))
palabras2
## [1] 2674536
setwd("c:/r/decimo/final/en_US")
archivo3<-readLines("en_US.twitter.txt",warn=FALSE, encoding="UTF-8")
tamano3<-file.info("en_US.twitter.txt")$size/1024^2
tamano3
## [1] 159.3641
lineas3<-length(archivo3)
lineas3
## [1] 2360148
Carteres3<-sum(nchar(archivo3))
Carteres3
## [1] 162096031
palabras3<-sum(stri_count_words(archivo3))
palabras3
## [1] 30093372
##visualizar los datos en un datafreme
data.frame(archivo=c("blog","new","twitter"),
tamano=c(tamano1,tamano2,tamano3),
lineas = c(lineas1,lineas2,lineas3),
caracteres= c(carteres1,carteres2,Carteres3),
Palabras= c(palabras1,palabras2,palabras3))
## archivo tamano lineas caracteres Palabras
## 1 blog 200.4242 899288 206824505 37546239
## 2 new 196.2775 77259 15639408 2674536
## 3 twitter 159.3641 2360148 162096031 30093372
#tomando el uno porciento de la data original
sample_data <-c(sample(archivo1,length(archivo1)*0.01),
sample(Archivo2,length(Archivo2)*0.01),
sample(archivo3,length(archivo3)*0.01))
corpus<-VCorpus(VectorSource(sample_data))
corpus1<-tm_map(corpus,removePunctuation)
corpus2<-tm_map(corpus,stripWhitespace)
corpus3<-tm_map(corpus,tolower)
corpus4<-tm_map(corpus,removeNumbers)
corpus5<-tm_map(corpus,PlainTextDocument)
corpus6<-tm_map(corpus,removeWords,stopwords("english"))
#creando matrix de documentos
library("RWeka")
one <- function(x)
unlist(lapply(ngrams(words(x), 1), paste, collapse = " "), use.names = FALSE)
tabla1 <- TermDocumentMatrix(corpus6,control = list(tokenize = one))
tabla1
## <<TermDocumentMatrix (terms: 79836, documents: 33365)>>
## Non-/sparse entries: 377629/2663350511
## Sparsity : 100%
## Maximal term length: 102
## Weighting : term frequency (tf)
dos <- function(x)
unlist(lapply(ngrams(words(x), 1), paste, collapse = " "), use.names = FALSE)
tabla2 <- TermDocumentMatrix(corpus6,control = list(tokenize = dos))
tabla2
## <<TermDocumentMatrix (terms: 79836, documents: 33365)>>
## Non-/sparse entries: 377629/2663350511
## Sparsity : 100%
## Maximal term length: 102
## Weighting : term frequency (tf)
tres <- function(x)
unlist(lapply(ngrams(words(x), 1), paste, collapse = " "), use.names = FALSE)
tabla3 <- TermDocumentMatrix(corpus6,control = list(tokenize = tres))
tabla3
## <<TermDocumentMatrix (terms: 79836, documents: 33365)>>
## Non-/sparse entries: 377629/2663350511
## Sparsity : 100%
## Maximal term length: 102
## Weighting : term frequency (tf)
#Encontrando la frecuencias de los terminos en las matrices
one_corpus<-findFreqTerms(tabla1,lowfreq=50)
dos_corpus<-findFreqTerms(tabla2,lowfreq=50)
tres_corpus<-findFreqTerms(tabla3,lowfreq=50)
one_corpus_num<-rowSums(as.matrix(tabla1[one_corpus,]))
one_corpus_table<-data.frame(palabras=names(one_corpus_num),frequency=one_corpus_num)
one_corpus_sort<-one_corpus_table[order(-one_corpus_table$frequency),]
head(one_corpus_sort)
## palabras frequency
## the the 2983
## just just 2474
## will will 2195
## like like 2161
## one one 1914
## can can 1896
freq1 <- rowSums(as.matrix(tabla1[one_corpus,]))
freq1 <- data.frame(word=names(freq1),frequency=freq1)
plotthegraph <- function(data,title,num){
df <- data[order(-data$frequency),][1:num,]
barplot(df[1:num,]$freq, las = 2, names.arg = df[1:num,]$word,
col ="blue", main = title,
ylab = "Frequencies",cex.axis =0.8)
}
par(mar=c(10,4,4,2))
plotthegraph(freq1,"Unigrams",10)
freq2 <- rowSums(as.matrix(tabla2[dos_corpus,]))
freq2 <- data.frame(word=names(freq2),frequency=freq2)
plotthegraph <- function(data,title,num){
df <- data[order(-data$frequency),][1:num,]
barplot(df[1:num,]$freq, las = 2, names.arg = df[1:num,]$word,
col ="blue", main = title,
ylab = "Frequencies",cex.axis =0.8)
}
par(mar=c(10,4,4,2))
plotthegraph(freq2,"Bigrams",10)
```