Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 有效地组合多个文档术语矩阵_R_Sparse Matrix_Tm_Large Data - Fatal编程技术网

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)