这是一个相当具体的问题,但希望它是有关给别人太...检查稀疏
有谁知道,如果有找到的文件数量的简单方法该术语是否出现在包含{tm}包的语料库中?
基本上,如果我有一个我已经构建的术语文档矩阵,我想看看这个行对于一个特定术语的稀疏程度如何,即矩阵中有多少列有该行的非零值。 for循环显然可以工作,但我正在处理一个非常大的矩阵,因此在一个循环中重复进行子集化会让CPU感到厌烦。其实......(对上述问题的回答会很好,但是)我真正想要做的就是获得这个数字,每个这个术语在矩阵中。现在,我使用:
TDM <- TermDocumentMatrix(somecorpus)
terms <- TDM$dimnames$Terms
idf <- data.frame(term = terms, freq = numeric(length(terms)), stringsAsFactors = F)
for (i in 1:nrow(idf)) {
aa <- as.matrix(TDM[,idf$term[i]])
idf$freq[i] <- length(aa[aa[,1]>0, ])
}
这样的作品,但它需要一个looong时间。有更好的想法吗? 在此先感谢, Seth
使用'apply'应该比'for'循环快。也许可以尝试类似于'apply(idf,MARGIN = 1,FUN = function(x){sum(ifelse(x> 0,1,0))})'看看是否更快。 – Zach
但是,如果您提供了样本语料库,它会更容易帮助。也许前10或20个文件使用'dput()'。 – Zach