当我尝试使用text2vec包中的sim2()创建Jaccard相似度矩阵时,我对一个奇怪的性能问题感到困惑。 我有一个稀疏矩阵[210,000 x 500],为此我想获得Jaccard相似矩阵,如上所述。 当我直接尝试使用矩阵在SIM2的功能,它需要在30分钟内culminutes错误消息当我使用两个似乎相同的稀疏矩阵创建Jaccard相似度矩阵时,为什么会得到两个不同的表现
这是R脚本,我用:
library(text2vec)
JaccSim <- sim2(my_sparse_mx, method = "jaccard", norm = "none") # doesn't work
这是错误消息我得到运行该脚本的半小时后:
Cholmod错误“的问题太大”在文件../Core/cholmod_sparse.c, 线92
但是,当我从原始矩阵中对另一个稀疏矩阵进行子集化时,使用所有行并运行脚本,只需要3分钟,并且成功生成Jaccard相似度矩阵(这是一个稀疏矩阵本身)。
spmx_1 <- Matrix(my_sparse_mx[1:210000], sparse = TRUE)
JaccSim <- sim2(spmx_1, method = "jaccard", norm = "none") #works!
这一个成功运行。这里发生了什么?我所做的只是将我的sparse_matrix集成到另一个矩阵(使用原始矩阵的所有行)并使用第二个稀疏矩阵。
为了澄清,my_sparse_mx有21万行 (我创造了它具有使用下面的许多行:
my_sparse_mx <-Matrix(0,nrow = 210000,ncol = 500,sparse = TRUE))
,然后用1的相应贯穿其他一些工艺填补起来还有,当我做NROWS。 (my_sparse_mx)我仍然获得21万。
我想知道为什么会这样。
完全错过了那一个,谢谢 – Ankhnesmerira