我有一个df
,其中约有10万行,其中texts
和doc_id
是我要用于文本分析的列。
为了执行一些文本转换,我生成了一个单词Corpus:
df %>% data.frame(.) %>% DataframeSource(.) %>% Corpus(.) -> wordCorpus
诸如tolower
之类的标准转换效果很好:
wordCorpus<- tm_map(wordCorpus, content_transformer(wordCorpus))
但是,如果我进行一些更复杂的转换,则会用完内存(尽管我有32GB的RAM)。
memory.limit(size=100000)
complex <- content_transformer(function(x) gsubfn("(\\d+)(-| - | bis | jusqu'à )(\\d+)", ~ paste(seq(..1, ..3), collapse = " "), x))
wordCorpus<- tm_map(wordCorpus,complex)
在df
本身上执行转换会更有效吗?
类似df %>% group_by(doc_id) %>% mutate(texts=gsubfn("(\\d+)(-| - | bis | jusqu'à )(\\d+)", ~ paste(seq(..1, ..3), collapse = " "), .)
还是有更好的方法以更少的内存使用量完成转换?