这个问题是对上一个问题的详细说明,我曾询问过关于在按顺序标记的数据帧上重复功能的问题。
过去,我需要做一些小改动才能data.tables
从文件夹读入 R(例如更改日期、重新编码)。
但是,现在我的目标有点复杂:我想从一个文件夹中读取几个文本文件,从这些字符 vectos 中随机抽取一个样本,将随机样本读入语料库(使用 package tm
)然后生成data.frame
具有单词/短语及其频率列表的新词。
到目前为止我开发的代码如下:
BigramTokenizer <- function(x) NGramTokenizer(x, Weka_control(min = 1, max = 5)) # Finds words or phrases
files <- list.files("~/path/", full.names = TRUE, pattern="\\.txt$") # Reads in files
out <- lapply(1:length(files), function(x) {
df <- scan(files[x], what="", sep="\n") # Read in files
df<-sample(c(df),size=1500,replace=F) # Take random sample
corpus <- Corpus(VectorSource(df)) # Create corpus
corpus <- tm_map(corpus, stripWhitespace)
corpus <- tm_map(corpus, tolower)
corpus <- tm_map(corpus, removeWords, stopwords("english"))
tdm <- TermDocumentMatrix(corpus, control = list(tokenize = BigramTokenizer)) #Create term document matrix
m <- as.matrix(tdm)
v <- sort(rowSums(m),decreasing=TRUE)
d <- data.frame(word = names(v),freq=v) # Create new dataframe with words & their frequencies
})
但是,尽管此功能有效,但我不确定如何仅访问 data.framesd
而丢弃其余部分?是否out
包含在 中创建的所有对象lapply
?