Просто сначала получите список ваших файлов docx, он выдаст имена файлов. Затем запустите на них функцию char_segment с помощью lapply, loop или purrr :: map ()
В следующем коде предполагается, что ваши целевые документы хранятся в каталоге с именем "docx" в вашем рабочем каталоге.
library(quanteda)
library(readtext) ## Remember to include in your posts the libraries required to replicate the code.
list_of_docx <- list.files(path = "./docx", ## Looks inside the ./docx directory
full.names = TRUE, ## retrieves the full path to the documents
pattern = "[.]docx$", ## retrieves al documents whose names ends in ".docx"
ignore.case = TRUE) ## ignores the letter case of the document's names
Подготовка к циклу
df_docx <- data.frame() ## Create an empty dataframe to store your data
for (d in seq_along(list_of_docx)) { ## Tell R to run the loop/iterate along the number of elements within thte list of doccument paths
temp_object <-readtext(list_of_docx[d])
temp_segmented_object <- char_segment(temp_object$text, pattern = ",", remove_pattern = TRUE)
temp_df <- as.data.frame(temp_segmented_object)
colnames(temp_df) <- "segments"
temp_df$title <- as.character(list_of_docx[d]) ## Create a variable with the title of the source document
temp_df <- temp_df[, c("title", "segments")]
df_docx <- rbind(df_docx, temp_df) ## Append each dataframe to the previously created empty dataframe
rm(temp_df, temp_object, d)
df_docx
}
head(df_docx)