R中稀疏矩阵的余弦()相似性——如何加速?(NLP)
我使用的是R余弦()函数{“lsa”package}确定存储在稀疏矩阵中的两个向量之间的相似性。每个矩阵中有240000行,3100列。1000行的计算时间约为2分钟,这相当于处理完整数据集的8小时。我正在寻找加快处理时间的方法,因为我将不得不运行几次时代 这是我的代码:R中稀疏矩阵的余弦()相似性——如何加速?(NLP),r,performance,nlp,R,Performance,Nlp,我使用的是R余弦()函数{“lsa”package}确定存储在稀疏矩阵中的两个向量之间的相似性。每个矩阵中有240000行,3100列。1000行的计算时间约为2分钟,这相当于处理完整数据集的8小时。我正在寻找加快处理时间的方法,因为我将不得不运行几次时代 这是我的代码: t1 <- Sys.time() for (i in 1:NROWS) { title_cosine_sim[i] <- cosine(dtm_search[i,],dtm_title[i,]) desc_
t1 <- Sys.time()
for (i in 1:NROWS) {
title_cosine_sim[i] <- cosine(dtm_search[i,],dtm_title[i,])
desc_cosine_sim[i] <- cosine(dtm_search[i,], dtm_desc[i, ])
if (i%%1000 == 0 ) {
cat("processed ", i, "rows out of 240,760...", system.time(), "\n")
}
}
print( difftime( Sys.time(), t1, units = 'sec'))
cat("finish")
t1这是我用于DocumentTermMatrix的代码。代码不可复制-什么是title\u cosine\u sim、dtm\u search、dtm\u title、dtm\u desc?这是我用于DocumentTermMatrix的代码。代码不可复制-title\u cosine\u sim、dtm\u search、dtm\u title、dtm\u desc是什么?
c1 <- makeCluster(4)
registerDoParallel(c1)
#calculate title similarity vector
t1 <- Sys.time()
title_cosine_sim <- foreach(z = 1:NUMROWS, .combine = 'rbind', .packages = c('lsa', 'Matrix')) %dopar% {
cosine( dtm_search[z,], dtm_title[z,] )
}
# calculate description similarity vector
t1 <- Sys.time()
desc_cosine_sim <- foreach(z = 1:NUMROWS, .combine = 'rbind', .packages = c('lsa', 'Matrix')) %dopar% {
cosine( dtm_search[z,],dtm_title[z,] )
}
stopCluster(c1)
print( difftime( Sys.time(), t1, units = 'sec'))
cat("finish PARALLEL processing")