'语料库的大小'使用&t;< tm'创建的对象与原始textVector对象相比,R中的包不成比例地膨胀。有没有办法压缩语料库'尺寸?从data.frame创建的文本向量有1800万行。
textVector <-
sapply(df, as.character)) #df contains one 'character' column with 18M rows
system.time(corpus <- VCorpus(VectorSource(textVector)))
object.size(textVector) # 601 MB
object.size(corpus) #69.9GB
任何提示都表示赞赏。谢谢。
System info
[1] "x86_64, linux-gnu"; $version.string [1] "R version 3.1.2 (2014-10-31)"
$Session info: [1] tm_0.6-2
答案 0 :(得分:0)
语料库对象的内存大小是预期的,因为您有18 M行。当您为df
的每一行创建虚拟文本文档时,它应具有这么大的大小(6.9 GB)。下面是一个简化的例子。当您inspect
语料库时,您可以看到每个向量都保存为包含文本信息的单独文档集合。
Vcorpus
通常用于创建易失性对象。您的目标尚不清楚为什么要为每行创建语料库。如果您可以分享有关您要执行的操作的更多详细信息,我相信其他人可以为您提供有关如何使用VCorpus
的更多信息。
x <- c("hello","hi","What does Corups do ?")
df <- as.data.frame(x)
textVector <-
sapply(df, as.character)
system.time(corpus <- VCorpus(VectorSource(textVector)))
object.size(textVector)
object.size(corpus)
inspect(corpus)