gpt4 book ai didi

R tm 包创建 N 个最频繁项的矩阵

转载 作者:行者123 更新时间:2023-12-04 10:52:25 27 4
gpt4 key购买 nike

我有一个 termDocumentMatrix使用 tm 创建R中的包。

我正在尝试创建一个包含 50 个最常出现的术语的矩阵/数据框。

当我尝试转换为矩阵时,出现此错误:

> ap.m <- as.matrix(mydata.dtm)
Error: cannot allocate vector of size 2.0 Gb

所以我尝试使用 Matrix 包转换为稀疏矩阵:
> A <- as(mydata.dtm, "sparseMatrix") 
Error in as(from, "CsparseMatrix") :
no method or default for coercing "TermDocumentMatrix" to "CsparseMatrix"
> B <- Matrix(mydata.dtm, sparse = TRUE)
Error in asMethod(object) : invalid class 'NA' to dup_mMatrix_as_geMatrix

我尝试使用以下方法访问 tdm 的不同部分:
> freqy1 <- data.frame(term1 = findFreqTerms(mydata.dtm, lowfreq=165))
> mydata.dtm[mydata.dtm$ Terms %in% freqy1$term1,]
Error in seq_len(nr) : argument must be coercible to non-negative integer

这是一些其他信息:
> str(mydata.dtm)
List of 6
$ i : int [1:430206] 377 468 725 3067 3906 4150 4393 5188 5793 6665 ...
$ j : int [1:430206] 1 1 1 1 1 1 1 1 1 1 ...
$ v : num [1:430206] 1 1 1 1 1 1 1 1 2 3 ...
$ nrow : int 15643
$ ncol : int 17207
$ dimnames:List of 2
..$ Terms: chr [1:15643] "000" "0mm" "100" "1000" ...
..$ Docs : chr [1:17207] "1" "2" "3" "4" ...
- attr(*, "class")= chr [1:2] "TermDocumentMatrix" "simple_triplet_matrix"
- attr(*, "Weighting")= chr [1:2] "term frequency" "tf"
> mydata.dtm
A term-document matrix (15643 terms, 17207 documents)

Non-/sparse entries: 430206/268738895
Sparsity : 100%
Maximal term length: 54
Weighting : term frequency (tf)

我理想的输出是这样的:
term      frequency
the 2123
and 2095
able 883
... ...

有什么建议?

最佳答案

tm 中的术语文档矩阵已经创建为稀疏矩阵。在这里,mydata.tdm$imydata.tdm$j是矩阵的索引向量和 mydata.tdm$v是频率的相关向量。这样你就可以创建一个稀疏矩阵写作:

sparseMatrix(i=mydata.tdm$i, j=mydata.tdm$j, x=mydata.tdm$v)

那么你可以使用 rowSums并将您感兴趣的行链接到它们所代表的术语,使用 $Terms .

关于R tm 包创建 N 个最频繁项的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11508728/

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