Estimada Miriam Alzate Creo que casi todos pasamos por un problema semejante, por las dudas ¿usted utiliza alguna librería para realizar el análisis o se encuentra escribiendo desde cero utilizando matrices? Un matemático puede explicarlo mucho mejor, pero cuándo yo comencé a ver matrices transpuestas, y varias en modelos muy semejantes a los modelos mixtos, encontré una cantidad de requerimientos de memoria impresionantes, luego me aprendí que matriz común solo es útil cuándo los datos son pocos, a nivel industrial no hay computadora que pueda. Seguramente si utiliza algún paquete este contempla el problema y automáticamente trabaja sobre la memoria. ¿Utilizo algo como lo siguiente (copio y pego)? library(Matrix) A <- as(regMat, "sparseMatrix") # see also `vignette("Intro2Matrix")` B <- Matrix(regMat, sparse = TRUE) # Thanks to Aaron for pointing this out identical(A, B) Javier Rubén Marcuzzi
El lun., 10 feb. 2020 a las 16:05, Carlos Ortega (<c...@qualityexcellence.es>) escribió: > Hola Miriam, > > Puedes hacer varias cosas para salir al paso: > > - El flujo proceso que se suele seguir en este tipo de análisis es el de > cargar todos los documentos a una gran matriz (documento/palabra) sobre > la > que luego te quitas muchas palabras "inútiles" (las stopwords). Pues lo > que > puedes hacer de primeras, es sobre tus ficheros de palabras de entrada > limpiarles y quitarles estas palabras (preposiciones, artículos y > adverbios) con esto minimizas mucho el número de palabras a representar. > También habrá palabras que en tu tipo de análisis significarán poco (me > lo > invento la palabra "producto" por ejemplo). > - ¿Cómo limpio esto en mis ficheros?. Puedes hacerlo con cierta > facilidad utilizando comandos de linux (grep, sed en particular). > - Una vez que has limpiado todo esto, puedes volver a probar a cargar > el nuevo fichero en "tm" y proceder con el análisis. Si es que tu > memoria > RAM (no el disco como te han dicho) es la suficiente. > - Realmente, si estás interesada en conocer la frecuencia de palabras > para luego pintar una "inútil" nube de palabras, puedes > incluso calcular la > frecuencia de aparición igualmente con un comando de linux > (unique). Y > luego usar el paquete "wordcloud2" para pintar la nubecita. :-). > - Como alternativa, como supongo que querrás analizar sentimiento, y > estas cosa o incluso ver POS cambiaría de tercio y no usaría "tm" me > pasaría a la librería "udpipe" o en su defecto a la librería (tidytext) > del > que Julia Silge (su autora, tiene su libro de cómo usar su librería en > abierto: > https://www.tidytextmining.com/tidytext.html#the-unnest_tokens-function > ). > > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > > > El lun., 10 feb. 2020 a las 17:20, Xavier-Andoni Tibau Alberdi (< > xaviti...@gmail.com>) escribió: > > > Me temo que no tengo demasiada experiencia en trabajar con sparse matrix > en > > R. Definitivamente cuando haces 'as.matrix(x)' estas convirtiendo x en > una > > matriz normal, no sparse. He visto que existe el paquete slam para > trabajar > > con ellas (documentación > > <https://www.rdocumentation.org/packages/slam/versions/0.1-47>). > Deberías > > ver si las opciones del paquete te permiten hacer lo que quieres. > > > > Faltaría más información de que haces luego con la matriz, para poder > saber > > si es posible dividir-la. Te pongo un ejemplo, si quieres calcular el > valor > > promedio de las columnas, puedes dividir la matriz en dos, calcularlos > por > > separado y luego juntar los resultados. Pero si tu matriz sirve para > hacer > > una regresión lineal, no puedes, puesto que necesitas la inversa de la > > matriz y no se puede calcular a partir de dos mitades. > > > > A ver si con el paquete slam puedes continuar, sino deberías compartir > que > > haces luego con la matriz para que podamos intentar aconsejarte. > > > > Saludos, > > > > Xavier Tibau > > > > Missatge de l'adreça <miriam.alz...@unavarra.es> del dia dl., 10 de > febr. > > 2020 a les 16:56: > > > > > Muchas gracias Xabier. > > > > > > He intentaddo trabajar con la sparse matrix pero al pasar tdm a matriz > me > > > dice también que "cannot allocate a vector of size 12 gb". > > > He hecho tdm<-as.matrix(tdm) > > > > > > ¿Está bien hecho eso para trabajar con la sparse matrix? > > > > > > Gracias! > > > > > > El Lun, 10 de Febrero de 2020, 16:15, Xavier-Andoni Tibau Alberdi > > escribió: > > > > La respuesta de Carlos creo que es mucho mas acertada que la mía. > > Cuando > > > > trabajas con una matriz mayoritariamente con 0s, puedes > representar-la > > en > > > > forma de sparse matrix, y ocupa mucho menos espacio porque no guardas > > > > todos > > > > los valores, sino aquellos distintos de 0 y su posición. > > > > > > > > Estas construyendo la matriz sparse con esto: > > > > tdm<-TermDocumentMatrix(corpus,control=list(weighting =weightTf)) > > > > > > > > puedes ver aquí > > > > < > > > > > > https://www.rdocumentation.org/packages/tm/versions/0.7-7/topics/TermDocumentMatrix > > > > > > > > la documentación. > > > > > > > > Al hacer esto, conviertes la matrz sparse a matriz normal y pones en > > > > memoria todos los 0s, que ahora ocupan espacio en la memoria volátil > > > (RAM) > > > > de tu ordenador. > > > > tdm.reviews.m<-as.matrix(tdm) > > > > > > > > Estamos hablando de memoria RAM, no del disco duro de tu ordenador. > > > > > > > > Entiendo que tal y como sugiere Carlos, (1) lo mejor es que antes de > > > pasar > > > > de sparse matrix a matriz normal, consideres en reducir la cantidad > de > > > > columnas (o filas) de tu matriz. Imagino que es una matriz con > > > frecuencias > > > > de palabras, a lo mejor puedes eliminar aquellas columnas que > > representen > > > > términos muy poco usados. O (2) sigas usando la sparse matrix para tu > > > > analisis. > > > > > > > > Espero que se entienda y te sirva de ayuda, > > > > > > > > Saludos, > > > > > > > > Xavier Tibau > > > > > > > > > > > > > > > > Missatge de l'adreça <miriam.alz...@unavarra.es> del dia dl., 10 de > > > febr. > > > > 2020 a les 16:05: > > > > > > > >> Buenas, > > > >> El archivo de R ocupa 33 megas. La matriz que quiero construir cupa > 14 > > > >> gb. > > > >> En el disco local (C) tengo 400 gb disponibles de 670. > > > >> No estoy muy puesta en trabajar con este tipo de datos. ¿Qué > > diferencia > > > >> es > > > >> trabajar con data.frame? > > > >> > > > >> Gracias! > > > >> > > > >> El Vie, 7 de Febrero de 2020, 18:07, Xavier-Andoni Tibau Alberdi > > > >> escribió: > > > >> > Depende de la operació que quieras hacer con la matriz. Si quitas > > > >> filas y > > > >> > columnas en algun momento, quiza lo puedes hacer por bloques y > luego > > > >> la > > > >> > juntas. O quizá puedes cargarlo directamente como data.frame? > > Quanta > > > >> RAM > > > >> > tienes? Cuanto pésan los datos? > > > >> > > > > >> > > > > >> > > > > >> > > > > >> > > > > >> > El vie., 7 feb. 2020 18:04, <miriam.alz...@unavarra.es> escribió: > > > >> > > > > >> >> Es la primera vez que trabajo con este tipo de datos...No se si > se > > > >> puede > > > >> >> dividir esa matriz. ¿Cómo lo podría hacer? > > > >> >> > > > >> >> Muchas gracias! > > > >> >> El Vie, 7 de Febrero de 2020, 17:55, Xavier-Andoni Tibau Alberdi > > > >> >> escribió: > > > >> >> > Significa que tus datos són muy grandes y no se pueden guardar > en > > > >> la > > > >> >> RAM. > > > >> >> > Tienes alternativas para dividir la matriz? > > > >> >> > > > > >> >> > El vie., 7 feb. 2020 17:26, <miriam.alz...@unavarra.es> > > escribió: > > > >> >> > > > > >> >> >> Buenas tardes, > > > >> >> >> > > > >> >> >> Estoy haciendo un análisis de contenido con el paquete tm. A > la > > > >> hora > > > >> >> de > > > >> >> >> ejecutar este código: > > > >> >> >> tdm<-TermDocumentMatrix(corpus,control=list(weighting > > =weightTf)) > > > >> >> >> tdm.reviews.m<-as.matrix(tdm) > > > >> >> >> > > > >> >> >> La primera línea sí me la ejecuta bien pero en la segunda > tengo > > > >> este > > > >> >> >> error: > > > >> >> >> Error: cannot allocate vector of size 14.0 Gb > > > >> >> >> > > > >> >> >> ¿Cómo puedo corregirlo? Estoy usando la versión de 64bits de > R. > > > >> >> >> > > > >> >> >> Un saludo > > > >> >> >> > > > >> >> >> Miriam > > > >> >> >> > > > >> >> >> _______________________________________________ > > > >> >> >> R-help-es mailing list > > > >> >> >> R-help-es@r-project.org > > > >> >> >> https://stat.ethz.ch/mailman/listinfo/r-help-es > > > >> >> >> > > > >> >> > > > > >> >> > > > >> >> > > > >> >> > > > >> > > > > >> > > > >> > > > >> > > > > > > > > > > > > > > > > > [[alternative HTML version deleted]] > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es@r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es > > [[alternative HTML version deleted]] > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es