Hola Oscar, A lo mejor este equivocado, pero creo que necesitas
read.table(bNames[[i]]) en lugar de bNames[[i]] Como esta, bNames[[i]] corresponde al nombre del corupus, no al corpus como tal. Nos ayudaria muchisimo el resultado de str(bNames) Saludos cordiales, Jorge.- 2015-04-13 9:25 GMT+10:00 Oscar Benitez <[email protected]>: > Jorge, estimados colaboradores de R-help > > Estuve tratando de utilizar un script para uno de los pasos en mi > an�lisis, que es transformar cada uno de los corpus en mi espacio de > trabajo en un objeto TermDocumentMatrix > > Tengo un vector llamado bNames que lista todos los corpus que quiero pasar > a TDM, y constru� los siguientes comandos: > > tdm.n1 <- vector('list', length = length(bNames)) > > for(i in seq_along(tdm.n1)){ > tdm.n1.[[i]] <- > TermDocumentMatrix(bNames[[i]],control=list(tokenize=nGram1Tok)) > } > > pero obtengo el siguiente error: > > Error in UseMethod("TermDocumentMatrix", x) : > no applicable method for 'TermDocumentMatrix' applied to an object of > class "character" > > entonces revis� qu� es lo que bNames[[i]] le est� pasando al for > > bNames[[1]] > [1] "qB001" > > Una cadena de texto, no el corpus llamado "qB001"!!, por eso obtengo el > error. > Alguien se le ocurre c�mo hacer para que lea cada uno de los objetos en la > lista y se los pase de a uno a la funci�n? > Muchas gracias por adelantado > Oscar > > > > > > > El 10 de abril de 2015, 11:28, Jorge I Velez <[email protected]> > escribi�: > >> Oscar, >> >> Cambia >> >> (l[i]) >> >> por >> >> read.table(l[i]) >> >> Olvide leer cada archivo en el codigo anterior. >> >> Saludos, >> Jorge.- >> >> 2015-04-11 0:02 GMT+10:00 Oscar Benitez <[email protected]>: >> >>> Jorge >>> Gracias por el consejo. Aparentemente no lo estoy aplicando bien, pues >>> el objeto que obtengo no contiene lo que quiero. >>> Me explico, al ejecutar >>> >>> txt <- vector('list', length = length(names)) #names el el vector donde >>> ya ten�a almacenada la lista de txt's >>> for(i in seq_along(txt)){ >>> txt[[i]] <- Corpus(VectorSource(names[i])) >>> } >>> >>> obtengo el objeto txt: >>> > class(txt) >>> [1] "list" >>> >>> si extraigo solamente el primer objeto de esa lista: >>> > txt[[1]] >>> <<VCorpus (documents: 1, metadata (corpus/indexed): 0/0)>> >>> >>> si quiero ver el contenido del primer copus >>> >>> > inspect(txt[[1]]) >>> <<VCorpus (documents: 1, metadata (corpus/indexed): 0/0)>> >>> >>> [[1]] >>> <<PlainTextDocument (metadata: 7)>> >>> qB001.txt >>> >>> me informa cosas sobre el objeto, pero los datos no est�n all�... >>> deber�a mostrarme algo as� como: >>> >>> inspect(cbD02[1:1]) #inspecciono el corpus cbD120, creado a mano por la >>> sentencia cbD120<-Corpus(VectorSource(qT120)) >>> >>> #......contenido del corpus...... >>> I went to go see some gypsy to tell me my future, but she asked for my >>> photograph instead. >>> itz me the one who was talkin to u last time !!! >>> starts at 4pm. come get sunny munny :) >>> kind of scary to imagine what needs military wiping!!!! >>> #.....m�s.contenido del corpus...... >>> >>> >>> si quiero aplicarle un funci�n propia de limpieza de corpus, por ejemplo >>> eliminar los n�meros presentes en el corpus >>> > tm_map(txt[[1]], removeNumbers) >>> <<VCorpus (documents: 1, metadata (corpus/indexed): 0/0)>> >>> >>> no hace nada de nada... >>> >>> Saludos >>> >>> Oscar >>> >>> >>> >>> >>> >>> El 10 de abril de 2015, 1:15, Jorge I Velez <[email protected]> >>> escribi�: >>> >>>> Oscar, >>>> >>>> Una forma de trabajar con este tipo de archivos es utilizando listas: >>>> >>>> # directorio del proyecto >>>> setwd('~/proyecto') >>>> >>>> # archivos de texto >>>> l <- list.files(pattern = '.txt') >>>> >>>> # procesamiento >>>> txt <- vector('list', length = length(l)) >>>> for(i in seq_along(txt)){ >>>> txt[[i]] <- Corpus(VectorSource(l[i])) >>>> } >>>> >>>> # para acceder a la informacion del primero archivo, solo debes escribir >>>> txt[[1]] >>>> >>>> >>>> Espero sea de utilidad. >>>> >>>> Saludos, >>>> Jorge.- >>>> >>>> >>>> 2015-04-10 14:14 GMT+10:00 Oscar Benitez <[email protected]>: >>>> >>>>> Hola a todos! >>>>> Estoy en un proyecto de text mining y por razones de los recursos con >>>>> que >>>>> cuento tuve que separar los archivos de texto de input del proyecto en >>>>> muchos archivos peque�os. >>>>> Luego de transformar cada uno de estos archivos en un corpus separado, >>>>> puedo aplicar limpieza sobre cada corpus, buscar n-gramas, construir >>>>> cada >>>>> termDocumentMatrix y finalmente reunir todo en una sola TDM. >>>>> >>>>> Pero estoy atorado en el paso de transformar cada uno de los archivos >>>>> en >>>>> corpus mediante un loop. Es decir que en lugar de hacer esto infinitas >>>>> veces: >>>>> >>>>> #Librerias necesarias >>>>> library(tm) >>>>> >>>>> corpus_001<-Corpus(VectorSource(qBlog001)) >>>>> corpus_002<-Corpus(VectorSource(qBlog002)) >>>>> corpus_003<-Corpus(VectorSource(qBlog003)) >>>>> ......... >>>>> corpus_150<-Corpus(VectorSource(qBlog150)) >>>>> ........ >>>>> >>>>> quisiera poder armar un loop que haga el trabajo, como por ejemplo >>>>> >>>>> >>>>> >>>>> #lista con los nombres que quiero para cada corpus >>>>> c_names <- paste("corpus_",formatC(seq(length(bNames)), >>>>> width=3, flag="0"), >>>>> sep="") >>>>> >>>>> donde bNames es la lista de los df que tengo cargados "qBlog001" >>>>> "qBlog002"..."qBlog150"... >>>>> >>>>> algo as� es lo que tengo en mente: >>>>> >>>>> for (i in bNames) { >>>>> for (j in c_names) { >>>>> j<- Corpus(VectorSource(i)) >>>>> } >>>>> } >>>>> >>>>> Pero no funciona, he probado con lapply, con sapply, con llply de la >>>>> librer�a (plyr) y no encuentro la manera de hacerlo.. >>>>> Cualquier sugerencia sera bienvenida! >>>>> Muchas gracias por adelantado! >>>>> >>>>> >>>>> -- >>>>> Oscar Benitez >>>>> >>>>> [[alternative HTML version deleted]] >>>>> >>>>> _______________________________________________ >>>>> R-help-es mailing list >>>>> [email protected] >>>>> https://stat.ethz.ch/mailman/listinfo/r-help-es >>>>> >>>> >>>> >>> >>> >>> -- >>> Oscar Benitez >>> >> >> >> > > > -- > Oscar Benitez > [[alternative HTML version deleted]]
_______________________________________________ R-help-es mailing list [email protected] https://stat.ethz.ch/mailman/listinfo/r-help-es
