R 有效地组合多个文档术语矩阵
如果我有许多文档术语矩阵的列表,我可以这样做来组合它们:R 有效地组合多个文档术语矩阵,r,sparse-matrix,tm,large-data,R,Sparse Matrix,Tm,Large Data,如果我有许多文档术语矩阵的列表,我可以这样做来组合它们: # setup for example require(tm) data("acq") data("crude") acq_dtm <- DocumentTermMatrix(acq) crude_dtm <- DocumentTermMatrix(crude) # make list of dtms list_of_dtms <- list(acq_dtm, crude_dtm) # convert list of d
# setup for example
require(tm)
data("acq")
data("crude")
acq_dtm <- DocumentTermMatrix(acq)
crude_dtm <- DocumentTermMatrix(crude)
# make list of dtms
list_of_dtms <- list(acq_dtm, crude_dtm)
# convert list of dtms into one big dtm
dtms_combined_into_one <- do.call(tm:::c.DocumentTermMatrix, list_of_dtms)
#例如设置
要求(商标)
数据(“acq”)
数据(“原油”)
acq_dtm我不认为有一个简单的方法可以加速你已经在做的事情(也许有一个聪明的方法)。看看str(acq\U dtm)
:
i
指向文档组件中的文档编号,j
指向术语(前几个术语是数字)v
是文档i
中术语j
的频率。当你这样做的时候
c(acq_dtm, crude_dtm)
这不仅仅是堆积一些稀疏矩阵(可以使用slam::abind_simple_sparse_array
)来完成);两个矩阵的v
分量必须合并,然后必须重新计算相应的i
和j
值
如果我打算对此进行更多研究,我可能会看看slam
的文档
另外,tm::c.TermDocumentMatrix
的代码显示了tm是如何进行此计算的;不知道是否有可能改进。文档术语矩阵是一个SLAM简单三元组矩阵,这意味着它只是一组三元组(i,j,value)。如果您知道所有语料库中的术语都是相同的,并且i,j在每个dtm中表示相同的值,那么您可以将它们绑定在一起。但这通常不是真的。将所有语料库合并成一个大语料库,然后计算dtm怎么样?看起来那样可能会更快。谢谢,你能在回答中展开吗?嗯,我做了一些测试,我从合并的语料库重建dtm的想法比你已经在做的要慢一个数量级。我将发布我对稀疏矩阵的想法。
c(acq_dtm, crude_dtm)