首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将稀疏或simple_triplet_matrix转换为tm-包文档术语矩阵,而无需通过语料库/VCorpus,在R中?

如何将稀疏或simple_triplet_matrix转换为tm-包文档术语矩阵,而无需通过语料库/VCorpus,在R中?
EN

Stack Overflow用户
提问于 2015-01-18 11:54:39
回答 1查看 1.5K关注 0票数 3

我有一个sparseMatrix (库矩阵)或一个simple_triplet_matrix (库slam)的docs术语,例如:

代码语言:javascript
复制
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     .     .     .     .

或者:

代码语言:javascript
复制
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的文档术语矩阵,有什么建议吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-18 13:21:22

诚然,这里的文档有些棘手。您可以使用胁迫函数as.DocumentTermMatrix,但不能使用simple_triplet_matrix上的直接构造函数DocumentTermMatrix

代码语言:javascript
复制
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)

你可以检查:

代码语言:javascript
复制
> class(mat2)
[1] "DocumentTermMatrix"    "simple_triplet_matrix"
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28009371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档