gpt4 book ai didi

r - 如何在 R 中不通过 Corpus/VCorpus 将稀疏或 simple_triplet_matrix 转换为 tm-package 文档术语矩阵?

转载 作者:行者123 更新时间:2023-12-04 10:28:19 29 4
gpt4 key购买 nike

我有一个 sparseMatrix(库矩阵)或一个 simple_triplet_matrix(库 slam)文档 x 术语,例如:

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,而无需通过 Corpus/VCorpus 创建。

这只适用于小矩阵: In R tm package, build corpus FROM Document-Term-Matrix

我的矩阵很大,~16K x ~53K,所以列表表明对于合理的 RAM 来说太大了,而且我不明白为什么我应该通过语料库创建,tm 包手册明确说明了文档术语矩阵是一个稀疏矩阵。

关于如何将已经稀疏的矩阵转换为 tm 的文档术语矩阵有什么建议吗?

谢谢。

最佳答案

诚然,文档在这里有点棘手。您可以在 simple_triplet_matrix 上使用强制函数 as.DocumentTermMatrix 但不能使用直接构造函数 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"

关于r - 如何在 R 中不通过 Corpus/VCorpus 将稀疏或 simple_triplet_matrix 转换为 tm-package 文档术语矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28009371/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com