Cómo dividir un texto de una manera creciente -- r campo con split campo con text-mining campo con cut campo con strsplit camp Relacionados El problema

how to split a text in an increasing manner


0
vote

problema

Español

Tengo un pequeño problema con el que necesito asesoramiento de expertos. Necesito dividir los textos en pedazos con diferentes tamaños. Por ejemplo, uno de los textos consta de 19578 palabras. Lo que quiero hacer es poner las primeras 1000 palabras en la primera pieza, las primeras palabras de 2000 en la segunda pieza, las primeras 3000 palabras en la tercera ... y poner las primeras 19000 palabras en la decimonovención. Por lo tanto, cada trozo aumenta en 1000 palabras y tiene que contener palabras de los trozos anteriores. (En un sentido numérico, la lista deseada se vería como: [1,1000], [1,2000], [1,3000], [1,4000], ... [1,19000])

Uso del paquete STRYR, he puesto el texto en una lista:

  words <-str_split(as.character(text), pattern = boundary(type = "word"))   

e intenté dividir la lista con la función dividida:

  split.words <-split(unlist(words), cut(seq_along(unlist(words)), 19, labels = F))   

Sin embargo, el resultado es muy diferente de lo que deseo. Produce trozos igualmente de tamaño. (Si fuera una lista numérica, se verían trozos: [1,1000], [1001,2000], ..., [18001,19000])

También intenté combinar elementos de la lista de Split.Word por C () Función:

  combined <- c(split.words[[1]][["1"]], split.words[[1]][["2"]], split.words[[1]][["3"]], split.words[[1]][["4"]], ...)   

Una vez más, el resultado es un elemento de carácter que está en trozos de 1000 palabras (un elemento, pero todavía hay secciones con 1000 palabras en ellas). Básicamente, solo he cambiado el tipo de una lista a un elemento de carácter por la función C ().

Ahora, mi pregunta es cómo puedo dividir mis textos en trozos de tamaño desigual que aumentan en 1000 palabras. Tenga en cuenta que todos los trozos deben comenzar desde la primera palabra.

Original en ingles

I have a small problem with which I need experts` advice. I need to split texts into pieces with different sizes. For example, one of the texts consists of 19578 words. what I want to do is to put the first 1000 words in the first piece, the first 2000 words in the second piece, the first 3000 words in the third ... and put the first 19000 words in the nineteenth piece. So each chunk increases by 1000 words and has to contain words of the previous chunks. (in a numeric sense, the desired list would look like : [1,1000], [1,2000], [1,3000], [1,4000],... [1,19000])

Using stringr package, I`ve put the text into a list:

words <-str_split(as.character(text), pattern = boundary(type = "word")) 

and tried to split the list with the split function:

split.words <-split(unlist(words), cut(seq_along(unlist(words)), 19, labels = F)) 

However, the result is vastly different from what I desire. It produces equally-sized chunks. (if it was a numeric list, chunks would look like: [1,1000],[1001,2000], ..., [18001,19000])

I also tried to combine elements of the split.word list by c() function:

combined <- c(split.words[[1]][["1"]], split.words[[1]][["2"]], split.words[[1]][["3"]], split.words[[1]][["4"]], ...) 

yet again the outcome is a character element which is in chunks of 1000 words (one element, but still there are sections with 1000 words in them). Basically, I`ve just changed the type from a list into a character element by c() function.

NOW my question is how I can split my texts into unequally-sized chunks that increase by 1000 words. Note that all the chunks must start from the first word.

              
   
   

Lista de respuestas

0
 
vote

Tal vez usted puede intentar Reduce con la opción accumulate = TRUE

  Reduce(c,split.words,accumulate = TRUE)   
 

Maybe you can try Reduce with option accumulate = TRUE

Reduce(c,split.words,accumulate = TRUE) 
 
 
0
 
vote
  mkdir ./d.output  cat giant-humungous-file.txt | cut -d' ' -f1-1000 > ./d.output/file1000.txt  cat giant-humungous-file.txt | cut -d' ' -f1-2000 > ./d.output/file2000.txt   

etc.

entonces puedes hacer esto: -

  find ./d.output/*.txt -type f >> stack cat stack | tr ' ' ' ' | sed s'@^@cat @'g | sed s'@$@ > newfile.txt@' > stack2 mv stack2 stack chmod +x ./stack ./stack   
 
mkdir ./d.output  cat giant-humungous-file.txt | cut -d' ' -f1-1000 > ./d.output/file1000.txt  cat giant-humungous-file.txt | cut -d' ' -f1-2000 > ./d.output/file2000.txt 

Etc.

Then you can do this:-

find ./d.output/*.txt -type f >> stack cat stack | tr '\n' ' ' | sed s'@^@cat @'g | sed s'@$@ > newfile.txt@' > stack2 mv stack2 stack chmod +x ./stack ./stack 
 
 

Relacionados problema

1  Eliminar palabras duplicadas en una fila  ( Removing duplicate words in a row ) 
Tengo una columna en la tabla como abajo Col1 ======================== "No","No","No","No","No" "No","No","No" Yes No "Yes","...

6  Use Strsplit para obtener el último carácter en r  ( Use strsplit to get last character in r ) 
Tengo un archivo de nombres de bebés con los que estoy leyendo y luego tratando de obtener el último carácter en el nombre del bebé. Por ejemplo, el archivo p...

2  R elementos cambiantes en un contexto de datos  ( R changing elements in a dataframe ) 
Estoy tratando de, como dice el título, cambie los elementos de mi contexto de un personaje a otro. El flujo de datos es el siguiente: g1=c("CC","DD","GG")...

1  Transformar el carácter con rangos o valores en vector de solo valores en r  ( Transform character with ranges or values into vector of only values in r ) 
Tengo un vector de carácter c("1:3","4") y lo que necesito es ReadWriteChild0 . Lo que hice hasta ahora era obtener cada elemento del vector original, us...

113  Dividir cadenas delimitadas en una columna e insertar como nuevas filas [duplicar]  ( Split delimited strings in a column and insert as new rows ) 
Esta pregunta ya tiene respuestas aquí : Cuerdas separadas por comas divididas en una columna en fil...

0  Dividiendo un personaje por "". en r [duplicado]  ( Splitting a character by in r ) 
Esta pregunta ya tiene respuestas aquí : Cómo usar la función STRSPLIT con un período ...

0  Strsplit en R no funciona por $ como carácter dividido [duplicado]  ( Strsplit in r not working for as split character ) 
Esta pregunta ya tiene respuestas aquí : ¿Cómo dibuje los signos de dólar ($ ) ¿De los datos especia...

1  Dividiendo una cadena delimitada de una coma en varias columnas y asigna 0 a incesante  ( Spliting a comma delimitted string into several columns and asigning 0 to nospac ) 
En mi data.frame un vector x que contiene cadenas de texto (con seis valores (de 0 a 100) separados por comas dentro de cada cadena) en este formato: x...

2  Después de Strsplit, la salida no está en el formato esperado  ( After strsplit the output is not in the format expected ) 
Mi archivo de entrada llamado "locaddr" tiene los siguientes registros: "Shelbourne Road, Dublin, Ireland" "1 Hatch St...

1  Cómo concatenete Strings después de STR_SPLIT  ( How to concatenete strings after str split ) 
Dado este marco de datos Audio.Sound()4 Mi salida deseada sería Audio.Sound()5 He intentado Audio.Sound()6 Pero la salida es Audio.Sound(...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos