我正在尝试在R环境中修改一组大约300个播放,我将其作为.txt文件。理想情况下,我想把它们全部分成大约500个单词。但是,我不确定这个过程。
我从这次尝试开始:
chunk.size <- 500
texts <- list.files(pattern="*.txt")
texts <- paste(readLines(texts), collapse=" ")
texts.lower <- tolower(texts)
texts.lower <- strsplit(words.lower, "\\s+")
texts <- unlist(words.lower)
x <- seq_along(texts)
text.chunks <- split(texts, ceiling(x/chunk.size))
然而,我得到了一个错误:
Error in file(con, "r") : invalid 'description' argument
答案 0 :(得分:0)
很少在这里继续。我假设你可以轻松生成一个文件列表(lof
),而你并不关心在白色空间边界上打破字符串。
这将返回一个列表,其中每个元素(由文件名引用)包含整个文件。这个元素将是一个字符串向量,每个字符都是blockSize
个字符或更少(对于最后一个字符串)。
blockSize <- 500
lof <- list.files(pattern='*.txt')
listOfTextBlocks <- sapply(lof, function(f) {
txt <- paste(readLines(f), collapse='\n')
nch <- nchar(txt)
ind <- seq(1, nch, by=blockSize)
substring(txt, ind, c(ind[-1]-1, nch))
}, simplify=FALSE)
如果这不符合您的需求,请提供better guidance。
<强> 修改 强>
这将在白色空间边界处破裂。
blockSize <- 500
lof <- list.files(pattern='*.md')
listOfTextBlocks <- sapply(lof, function(f) {
txt <- scan(f, character(0))
n <- 1:length(txt)
split(txt, ceiling(n/blockSize))
}, simplify=FALSE)
这会为您提供列表清单。