我有一个sparseMatrix (库矩阵)或一个simple_triplet_matrix (库slam)的docs术语,例如:
library(Matrix)
mat <- sparseMatrix(i = c(1,2,4,5,3), j = c(2,3,4,1,5), x = c(3,2,3,4,1))
rownames(mat) <- paste0("doc", 1:5)
colnames(mat) <- paste0("word", 1:5)
5 x 5 sparse Matrix of class "dgCMatrix"
word1 word2 word3 word4 word5
doc1 . 3 . . .
doc2 . . 2 . .
doc3 . . . . 1
doc4 . . . 3 .
doc5 4 . . . .或者:
library(slam)
mat2 <- simple_triplet_matrix(c(1,2,4,5,3), j = c(2,3,4,1,5), v = c(3,2,3,4,1),
dimnames = list(paste0("doc", 1:5), paste0("word", 1:5)))我希望将这两个矩阵中的任何一个转化为tm::Document-Term-Matrix,而不需要经过语料库/VCorpus创建。
这只适用于小型矩阵:In R tm package, build corpus FROM Document-Term-Matrix
我的矩阵很大,~16K x ~53K,所以列表显示内存太大了,而且我也不明白为什么要在tm包手册中明确指出文档术语矩阵是稀疏矩阵的情况下进行语料库创建。
对于如何将已经稀疏的矩阵转换为tm的文档术语矩阵,有什么建议吗?
谢谢。
发布于 2015-01-18 13:21:22
诚然,这里的文档有些棘手。您可以使用胁迫函数as.DocumentTermMatrix,但不能使用simple_triplet_matrix上的直接构造函数DocumentTermMatrix。
library(slam)
library(Matrix)
mat2 = simple_triplet_matrix(c(1,2,4,5,3), j = c(2,3,4,1,5), v = c(3,2,3,4,1),
dimnames = list(paste0("doc", 1:5), paste0("word", 1:5)))
mat2 = as.DocumentTermMatrix(mat2, weighting = weightTfIdf)你可以检查:
> class(mat2)
[1] "DocumentTermMatrix" "simple_triplet_matrix"https://stackoverflow.com/questions/28009371
复制相似问题