當我嘗試使用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